主要贡献
动机:目前的单向标准语言模型限制了预训练期间可用的体系结构,例如,在OpenAI GPT中使用的左-右架构,其中每个表征只能关注Transformer的自注意层中的先前表征。
贡献:1、提出了一种新的双向语言表示模型BERT。
2、证明了语言表征双向预训练的重要性,BERT使用掩码语言模型来实现预训练的深度双向表示。
3、表明预训练的表示减少了许多高度工程化的特定于任务的架构的需求。
网络框架
模型输入
对于一对句子,模型的输入是将相应的表征、分割和位置嵌入相加来构造的。其中标记[SEP]用于分割不同的句子(A/B),标记[CLS]的输出C用于下句预测(NSP),训练出一个简易的分类器,表示句子间对齐的效果。
预训练(Pre-training)
BERT的模型架构是一个多层双向Transformers编码器,预训练过程包含两个无监督任务:
1、Masked LM 每个序列中随机屏蔽15%的WordPiece标记,然后让模型预测那些被屏蔽的标记。但本文作者并没有像其他模型那样完全使用[MASK]表征替换“掩码”单词,而是80%的可能为[MASK]表征,10%的可能为随机表征,剩下10%概率为不变表征。
2、Next Sentence Prediction (NSP) 为了训练一个能够理解句子关系的模型。在为预训练选择输入句子A和B时,50%的可能B是A的下一句(标记为IsNext), 50%的可能B是语料库中的随机句子(标记为NotNext)。
微调(Fine-Tuning)
微调过程除了输出层外,其余架构与预训练完全相同,其BERT模型使用预训练的参数进行初始化,然后用来自下游任务的标记数据对所有模型参数进行微调。虽然都使用同样的参数初始化模型,但每个下游任务都有单独的微调模型(例如输入的为问题-段落对、假设-前提对)。
实验结果
上图通过实验结果证明了BERT的深度双向性的重要性:
NO NSP:一个双向模型,使用“掩码LM”(MLM)训练,但没有“下一句预测”(NSP)任务。
LTR & NO NSP:一个仅左上下文的模型,使用标准的从左到右(LTR) LM进行训练,而不是使用MLM。
“+ BiLSTM”:表示在微调期间在“LTR + No NSP”模型之上添加了一个随机初始化的BiLSTM。
可见单向的LTR模型在所有任务上的表现都比双向MLM模型差,在MRPC和SQuAD上有很大的下降。哪怕加上了一个随机初始化的BiLSTM来加强LTR系统,效果仍然比预先训练的双向模型差得多。