NAACL 2019 | BERT : 深度双向Transformers预训练语言模型

得益于互联网上的大量语料,预训练语言模型可以大幅度地提高众多下游NLP任务的性能指标。预训练模型用于这些任务主要有两种方式,一种方式是基于feature的(例如:2018年的ELMo),另外一种是与下游NLP模型进行finetune的(例如:GPT, Generative Pre-trained Transformer)。ELMo和GPT都是只使用了单向的语言模型去学习通用的语言表示。本文的主要工作就是突破这个限制,使得预训练语言模型也能用于需要左右两边的tokens同时进行双向推理的NLP任务,例如SQuAD等问答任务。

NAACL 2019 | BERT : 深度双向Transformers预训练语言模型_第1张图片

论文地址:
https://arxiv.org/abs/1810.04805
代码地址:
https://github.com/google-research/bert

引言

受完形填空的启发,本论文提出了Masked Language Model(MLM)作为一种新的训练约束,这个训练约束是为了解决上面提到单向推理限制的问题。MLM主要是在训练阶段去预测被随机Masked掉的tokens,这种做法使得对每个token的最后向量表示都包含了左右两边的信息,而不仅是之前的单边信息。
NAACL 2019 | BERT : 深度双向Transformers预训练语言模型_第2张图片

模型结构

Bert
NAACL 2019 | BERT : 深度双向Transformers预训练语言模型_第3张图片
Bert主要的结构是Transformer Block,Transformer Block主要由Multi-Head Attention模块组成,而Multi-Head Attention则由多个Scaled Dot-Product Attention组成,如图3所示。
NAACL 2019 | BERT : 深度双向Transformers预训练语言模型_第4张图片
Scaled Dot-Product Attention的计算公式分别如下所示:
NAACL 2019 | BERT : 深度双向Transformers预训练语言模型_第5张图片
其中的 Q Q Q, K K K, V V V分别表示着query,key和value。因此, K K K V V V代表里面的里面相同位置的向量具有一一对应的关系,而 Q Q Q K K K的矩阵相乘代表了query和key之间的相似度,最后和 V V V的相乘则代表了根据相似度取value里面的值。
Multi-Head Attention的计算公式如下所示:

不同的Head代表了不同内容的Attention。

训练方式

Bert在训练中使用了两种无监督的预测任务

1.Masked Language Model

提出MLM主要是受到了英语测试完形填空的任务的启发,在该预测任务中,每次的输入会用”[MASK]”去随机替换15%的tokens,然后在输出端,预测出这些tokens。这种方法虽然可以很好地利用左右两边的信息,但是会存在两个问题。第一个就是造成了预训练和微调的不匹配;第二个是每次训练都仅有15%的tokens被利用说明了需要更长的时间来收敛。针对第一个问题,对替换过程做出了一些改变,相对于全部替换为”[MASK]”,该论文改为其中80%次里面替换为”[MASK]”,10%次随机改为其他词,10%次为真值。

2.Next Sentence Prediction

在类似于阅读理解和自然语言推理等任务中,是需要理解两个句子之间的关系的。而这个关系是比较难被语言模型所建模,因此,需要联合Next Sentence Prediction这个任务加入到Bert模型中进行联合学习。在该任务的训练中,label为IsNext和NotNext各有50%的样本。
结合上面两个任务,Bert的输入样本举例如下:
NAACL 2019 | BERT : 深度双向Transformers预训练语言模型_第6张图片

3、预训练数据

使用BookCorpus和Wikipedia进行了预训练,里面分别包含了8亿和25亿个单词

实验

在GLUE里面的8个NLP任务上面进行微调实验。结果如图4所示。
NAACL 2019 | BERT : 深度双向Transformers预训练语言模型_第7张图片
从图4,我们可以看到Bert的base模型在各个任务上面至少有1个点的提升,使用large模型之后,最大提升能到14个点,平均有6.7个点的提升。提升的幅度十分大。在SQuAD1.1上面进行了适配之后,相对之前的SOTA模型提升了1.3个点。

结论

预训练语言模型的提出使得大量的无标注语料可以使用,而这些无标注的语料大幅度提高模型在各个NLP任务上面的得分,特别是低资源的NLP任务。本文所引入的双向结构,可以使得预训练语言模型能用于更加广泛的NLP任务中,大大有利于NLP的发展。


NAACL 2019 | BERT : 深度双向Transformers预训练语言模型_第8张图片
扫码识别关注,获取更多论文解读

你可能感兴趣的:(NAACL 2019 | BERT : 深度双向Transformers预训练语言模型)