在上周BERT这篇论文[5]放出来引起了NLP领域很大的反响,很多人认为是改变了游戏规则的工作,该模型采用BERT + fine-tuning的方法,在11项NLP tasks中取得了state-of-the-art的结果,包括NER、问答等领域的任务。本文对该论文进行介绍。
1. 现有的Language Model Embedding
语言模型来辅助NLP任务已经得到了学术界较为广泛的探讨,通常有两种方式:feature-based
fine-tuning
1.1 Feature-based方法
Feature-based指利用语言模型的中间结果也就是LM embedding, 将其作为额外的特征,引入到原任务的模型中,例如在TagLM[1]中,采用了两个单向RNN构成的语言模型,将语言模型的中间结果
引入到序列标注模型中,如下图1所示,其中左边部分为序列标注模型,也就是task-specific model,每个任务可能不同,右边是前向LM(Left-to-right)和后向LM(Right-To-Left), 两个LM的结果进行了合并,并将LM embedding与词向量、第一层RNN输出、第二层RNN输出进行了concat操作。图1 TagLM模型示意图
通常feature-based方法包括两步:首先在大的语料A上无监督地训练语言模型,训练完毕得到语言模型
然后构造task-specific model例如序列标注模型,采用有标记的语料B来有监督地训练task-sepcific model,将语言模型的参数固定,语料B的训练数据经过语言模型得到LM embedding,作为task-specific model的额外特征
ELMo是这方面的典型工作,请参考[2]
1.2 Fine-tuning方法
Fine-tuning方式是指在已经训练好的语言模型的基础上,加入少量的task-specific parameters, 例如对于分类问题在语言模型基础上加一层softmax网络,然后在新的语料上重新训练来进行fine-tune。
例如OpenAI GPT [3] 中采用了这样的方法,模型如下所示图2 Transformer LM + fine-tuning模型示意图
首先语言模型采用了Transformer Decoder的方法来进行训练,采用文本预测作为语言模型训练任务,训练完毕之后,加一层Linear Project来完成分类/相似度计算等NLP任务。因此总结来说&#x