BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding
谷歌AI语言组论文《BERT:语言理解的深度双向变换器预训练》,介绍一种新的语言表征模型BERT——来自变换器的双向编码器表征量。异于最新语言表征模型,BERT基于所有层的左、右语境来预训练深度双向表征量。BERT是首个大批句子层面和词块层面任务中取得当前最优性能的表征模型,性能超越许多使用任务特定架构的系统,刷新11项NLP任务当前最优性能记录,堪称最强NLP预训练模型!未来可能成为新行业基础。本文参考网上各大文章,整理翻译了BERT论文,在自己学习的同时也分享给大家,欢迎交流指教。论文地址:https://arxiv.org/pdf/1810.04805.pdf
摘要
本文介绍一种称之为BERT的新语言表征模型,意为来自变换器的双向编码器表征量(BidirectionalEncoder Representations from Transformers)。不同于最近的语言表征模型(Peters等,2018; Radford等,2018),BERT旨在基于所有层的左、右语境来预训练深度双向表征。因此,预训练的BERT表征可以仅用一个额外的输出层进行微调,进而为很多任务(如问答和语言推理)创建当前最优模型,无需对任务特定架构做出大量修改。
BERT的概念很简单,但实验效果很强大。它刷新了11个NLP任务的当前最优结果,包括将GLUE基准提升至80.4%(7.6%的绝对改进)、将MultiNLI的准确率提高到86.7%(5.6%的绝对改进),以及将SQuADv1.1问答测试F1的得分提高至93.2分(1.5分绝对提高)——比人类性能还高出2.0分。
一、介绍
语言模型预训练已被证明可有效改进许多自然语言处理任务(Dai and Le, 2015;Peters等,2017, 2018; Radford等,2018; Howard and Ruder, 2018)。这些任务包括句子级任务,如自然语言推理inference(Bowman等,2015; Williams等,2018)和释义paraphrasing(Dolan and Brockett, 2005),旨在通过整体分析来预测句子之间的关系;以及词块级任务,如命名实体识别(Tjong Kim Sang andDe Meulder, 2003)和SQuAD问题回答(Rajpurkar等,2016),其中模型需要在词块级别生成细粒度输出。
将预训练语言表征应用于下游任务有两种现有策略:基于特征feature-based和微调fine-tuning。基于特征的方法,例如ELMo(Peters等,2018),使用特定于任务的架构,其包括将预训练表征作为附加特征。微调方法,例如GenerativePre-trained Transformer(OpenAIGPT生成型预训练变换器)(Radford等,2018),引入了最小的任务特定参数,并通过简单地微调预训练参数在下游任务中进行训练。在以前的工作中,两种方法在预训练期间共享相同的目标函数,它们使用单向语言模型来学习通用语言表征。
我们认为,当前技术严重制约了预训练表征的能力,特别是对于微调方法。其主要局限在于标准语言模型是单向的,这限制了可以在预训练期间使用的架构类型。例如,在OpenAI GPT,作者们用一个从左到右的架构,其中每个词块只能注意变换器自注意层中的前验词块(Vaswani等,2017)。这种局限对于句子层面任务而言是次优选择,对于词块级任务的方法,则可能是毁灭性的。在这种任务中应用基于词块级微调法,如SQuAD问答(Rajpurkar等,2016),结合两个方向语境至关重要。
在本论文,我们通过提出BERT模型:来自变换器的双向编码器表征量(Bidirectional Encoder Representations fromTransformers),改进了基于微调的方法。BERT通过提出一个新的预训练目标:“遮蔽语言模型”(maskedlanguage model,MLM),来自Cloze任务(Taylor,1953)的启发,来解决前面提到的单向局限。该遮蔽语言模型随机地从输入中遮蔽一些词块,并且,目标是仅基于该遮蔽词语境语境来预测其原始词汇id。不像从左到右的语言模型预训练,该MLM目标允许表征融合左右两侧语境语境,这允许我们预训练一个深度双向变换器。除了该遮蔽语言模型,我们还引入了一个“下一句预测”(nextsentence prediction)任务,该任务联合预训练文本对表征量。
我们的论文贡献如下:
- 我们证明了双向预训练对语言表征量的重要性。与Radford等人(2018)不同,其使用单向语言模型进行预训练,BERT使用遮蔽语言模型来实现预训练的深度双向表征量。这也与Peters等人(2018)形成对比,其使用由独立训练的从左到右和从右到左LMs(语言模型)的浅层串联。
- 我们展示了预训练表征量能消除许多重型工程任务特定架构的需求。BERT是第一个基于微调的表征模型,它在大量的句子级和词块级任务上实现了最先进的性能,优于许多具有任务特定架构的系统。
- BERT推进了11项NLP任务的最高水平。因此,我们报告了广泛的BERT消融,证明我们模型的双向性质是最重要的新贡献。代码和预训练模型将在goo.gl/language/bert上提供。
二、相关工作
预训练通用语言表征有很长历史,本节我们简要回顾中这些最常用的方法。
2.1 基于特征的方法
广泛采用的单词表征学习,已经是数十年的活跃研究领域,包括非神经(Brown等,1992; Ando and Zhang, 2005; Blitzer等,2006)和神经(Collobert andWeston, 2008; Mikolov等,2013; Pennington等,2014)方法。预训练的单词嵌入被认为是现代NLP系统的组成部分,与从头学习的嵌入相比提供了显着的改进(Turian等,2010)。
这些方法已经被推广到更粗的粒度,如句子嵌入(Kiros等,2015; Logeswaran and Lee, 2018)或段落嵌入(Le and Mikolov, 2014)。与传统词嵌入一样,这些学习到的表征通常用作下游模型中的特征。
ELMo(Peters等,2017)将传统的词嵌入研究概括为不同维度。他们建议从语言模型中提取语境敏感型特征。把语境字词嵌入与现有任务特定架构集成时,ELMo针对一些主要的NLP基准(Peters et al., 2018)提出了最先进的技术,包括关于SQUAD问答(Rajpurkar等,2016),情绪分析(Socher等,2013),以及命名实体识别(Tjong Kim Sang和De Meulder,2003)。
2.2 微调方法
一种源于语言模型(LMs)的迁移学习新趋势,是微调前预训练一些LM目标上的模型架构,该微调是相同型号的一种监督下游任务(Dai and Le, 2015;Howard and Ruder, 2018; Radford等,2018)。这些方法的优点是几乎没有参数需要从头开始学习。至少部分是由于这一优势,OpenAIGPT(Radford等,2018)在许多句子级别任务的GLUE基准(Wang等,2018),取得此前最好测试结果。
2.3 从监督数据转移学习
虽然无监督预训练的优势在于可获得的数据量几乎无限,但也有工作表明从具有大型数据集的监督任务中可有效迁移,例如自然语言推理(Conneau等,2017)和机器翻译(Mc-Cann等,2017)。在NLP之外,计算机视觉研究也证明了从大型预训练模型迁移学习的重要性,其中一个有效的方法是微调在ImageNet上预训练的模型(Deng等,2009; Yosinski等,2014)。
三、BERT变换器双向编码器表征
我们在本节介绍BERT及其详细实现。我们先介绍BERT的模型架构和输入表征。然后,我们将在3.3节中介绍预训练任务,即本文的核心创新。预训练程序和微调程序分别在第3.4节和第3.5节中详述。最后,第3.6节讨论了BERT和OpenAIGPT之间的差异。