全文翻译下载,移步至 GitHub BERT_Paper_Chinese_Translationhtml
Jacob Devlin;Ming-Wei Chang;Kenton Lee;Kristina Toutanova Google AI Language {jacobdevlin,mingweichang,kentonl,kristout}@google.comgit
咱们提出了一种新的称为 BERT 的语言表示模型,BERT 表明来自 Transformer 的双向编码器表示(Bidirectional Encoder Representations from Transformers)。不一样于最近的语言表示模型(Peters et al., 2018,Radford et al., 2018), BERT 旨在经过联合调节全部层中的左右上下文来预训练深度双向表示。所以,只须要一个额外的输出层,就能够对预训练的 BERT 表示进行微调,从而为普遍的任务(好比回答问题和语言推断任务)建立最早进的模型,而无需对特定于任务进行大量模型结构的修改。github
BERT 的概念很简单,但实验效果很强大。它刷新了 11 个 NLP 任务的当前最优结果,包括将 GLUE 基准提高至 80.4%(7.6% 的绝对改进)、将 MultiNLI 的准确率提升到 86.7%(5.6% 的绝对改进),以及将 SQuAD v1.1 的问答测试 F1 得分提升至 93.2 分(提升 1.5 分)——比人类表现还高出 2 分。web
语言模型预训练能够显著提升许多天然语言处理任务的效果(Dai and Le, 2015;Peters et al., 2018;Radford et al., 2018;Howard and Ruder, 2018)。这些任务包括句子级任务,如天然语言推理(Bow-man et al., 2015;Williams et al., 2018)和释义(Dolan and Brockett, 2005),目的是经过对句子的总体分析来预测句子之间的关系,以及标记级任务,如命名实体识别(Tjong Kim Sang and De Meulder, 2003)和 SQuAD 问答(Rajpurkar et al., 2016),模型须要在标记级生成细粒度的输出。算法
现有的两种方法能够将预训练好的语言模型表示应用到下游任务中:基于特征的和微调。基于特征的方法,如 ELMo (Peters et al., 2018),使用特定于任务的模型结构,其中包含预训练的表示做为附加特特征。微调方法,如生成预训练 Transformer (OpenAI GPT) (Radford et al., 2018)模型,而后引入最小的特定于任务的参数,并经过简单地微调预训练模型的参数对下游任务进行训练。在以前的工做中,两种方法在预训练任务中都具备相同的目标函数,即便用单向的语言模型来学习通用的语言表达。spring
咱们认为,当前的技术严重地限制了预训练表示的效果,特别是对于微调方法。主要的局限性是标准语言模型是单向的,这就限制了能够在预训练期间可使用的模型结构的选择。例如,在 OpenAI GPT 中,做者使用了从左到右的模型结构,其中每一个标记只能关注 Transformer 的自注意层中该标记前面的标记(Williams et al., 2018)。这些限制对于句子级别的任务来讲是次优的(还能够接受),但当把基于微调的方法用来处理标记级别的任务(如 SQuAD 问答)时可能会形成不良的影响(Rajpurkar et al., 2016),由于在标记级别的任务下,从两个方向分析上下文是相当重要的。服务器
在本文中,咱们经过提出 BERT 改进了基于微调的方法:来自 Transformer 的双向编码器表示。受完形填空任务的启发,BERT 经过提出一个新的预训练任务来解决前面提到的单向约束:“遮蔽语言模型”(MLM masked language model)(Tay-lor, 1953)。遮蔽语言模型从输入中随机遮蔽一些标记,目的是仅根据被遮蔽标记的上下文来预测它对应的原始词汇的 id。与从左到右的语言模型预训练不一样,MLM 目标容许表示融合左右上下文,这容许咱们预训练一个深层双向 Transformer。除了遮蔽语言模型以外,咱们还提出了一个联合预训练文本对来进行“下一个句子预测”的任务。网络
本文的贡献以下:架构
预训练通用语言表示有很长的历史,咱们将在本节简要回顾最流行的方法。app
几十年来,学习普遍适用的词语表示一直是一个活跃的研究领域,包括非神经网络学领域(Brown et al., 1992;;Blitzer et al., 2006)和神经网络领域(Collobert and Weston, 2008;Mikolov et al., 2013;Pennington et al., 2014)方法。通过预训练的词嵌入被认为是现代 NLP 系统的一个不可分割的部分,词嵌入提供了比从头开始学习的显著改进(Turian et al., 2010)。
这些方法已被推广到更粗的粒度,如句子嵌入(Kiros et al., 2015;Logeswaran and Lee, 2018)或段落嵌入(Le and Mikolov, 2014)。与传统的单词嵌入同样,这些学习到的表示一般也用做下游模型的输入特征。
ELMo(Peters et al., 2017)从不一样的维度对传统的词嵌入研究进行了归纳。他们建议从语言模型中提取上下文敏感的特征。在将上下文嵌入与特定于任务的架构集成时,ELMo 为几个主要的 NLP 标准提供了最早进的技术(Peters et al., 2018),包括在 SQuAD 上的问答(Rajpurkar et al., 2016),情感分析(Socher et al., 2013),和命名实体识别(jong Kim Sang and De Meul-der, 2003)。
语言模型迁移学习(LMs)的一个最新趋势是,在对受监督的下游任务的模型进行微调以前,先对 LM 目标上的一些模型构造进行预训练(Dai and Le, 2015;Howard and Ruder, 2018;Radford et al., 2018)。这些方法的优势是只有不多的参数须要从头开始学习。至少部分得益于这一优点,OpenAI GPT (Radford et al., 2018)在 GLUE 基准测试的许多句子级任务上取得了此前最早进的结果(Wang et al.(2018))。
虽然无监督预训练的优势是可用的数据量几乎是无限的,但也有研究代表,从具备大数据集的监督任务中能够进行有效的迁移,如天然语言推理(Con-neau et al., 2017)和机器翻译(McCann et al., 2017)。在NLP以外,计算机视觉研究也证实了从大型预训练模型中进行迁移学习的重要性,有一个有效的方法能够微调在 ImageNet 上预训练的模型(Deng et al., 2009;Yosinski et al., 2014)
本节将介绍 BERT 及其具体实现。首先介绍了 BERT 模型结构和输入表示。而后咱们在 3.3 节介绍本文的核心创新——预训练任务。在 3.4 和 3.5 节中分别详细介绍了预训练过程和微调模型过程。最后,在 3.6 节中讨论了 BERT 和 OpenAI GPT 之间的区别。
BERT 的模型结构是一个基于 Vaswani et al.(2017) 描述的原始实现的多层双向 Transformer 编码器,而且 Transformer 编码器发布在 tensor2tensor 代码库中。因为最近 Transformer 的使用已经很是广泛,并且咱们的实现与最初的实现其实是相同的,因此咱们将省略对模型结构的详尽的背景描述,并向读者推荐 Vaswani et al.(2017) 以及优秀的指南,如“带注释的 Transformer”。
在这项工做中,咱们表示层的数量(即,Transformer 块)为 ,隐藏尺寸为
,自注意头的个数为
。在全部例子中,咱们将前馈/过滤器的大小设置为
,即当
时是
;当
是
。咱们主要分析两个模型大小的结果:
为了方便比较, 选择了与 OpenAI GPT 同样的模型大小。然而,重要的是,BERT Transformer 使用的是双向的自注意力,而 GPT Transformer 使用的是受限的自注意力,每一个标记只能关注其左边的语境。咱们注意到,在文献中,双向 Transformer 一般被称为“Transformer 编码器”,而只有标记左侧语境的版本因为能够用于文本生成而被从新定义为“Transformer 解码器”。BERT、OpenAI GPT 和 ELMo 之间的比较如图 1 所示。
图 1:预训练模型结构的不一样。BERT 使用双向 Transformer。OpenAI GPT 使用 从左到右的 Transformer。ELMo 使用独立训练的从左到右和从右到左的 LSTM 的链接来为下游任务生成特征。其中,只有 BERT 表示在全部层中同时受到左右语境的制约。
咱们的输入表示可以在一个标记序列中清楚地表示单个文本句子或一对文本句子(例如,[Question, Answer])。(注释:在整个工做中,“句子”能够是连续的任意跨度的文本,而不是实际语言意义上的句子。“序列”是指输入到 BERT 的标记序列,它能够是单个句子,也能够是两个句子组合在一块儿。)经过把给定标记对应的标记嵌入、句子嵌入和位置嵌入求和来构造其输入表示。图 2 给出了输入表示的可视化表示。 细节是:
图 2:BERT 的输入表示。输入嵌入是标记嵌入(词嵌入)、句子嵌入和位置嵌入的总和。
直觉上,咱们有理由相信,深度双向模型严格来讲比从左到右模型或从左到右模型结合从右到左模型的浅层链接更强大。不幸的是,标准条件语言模型只能从左到右或从右到左进行训练,由于双向条件做用将容许每一个单词在多层上下文中间接地“看到本身”。
为了训练深度双向表示,咱们采用了一种简单的方法,即随机遮蔽必定比例的输入标记,而后仅预测那些被遮蔽的标记。咱们将这个过程称为“遮蔽语言模型”(MLM),尽管在文献中它一般被称为完形填词任务(Taylor, 1953)。在这种状况下,就像在标准语言模型中同样,与遮蔽标记相对应的最终隐藏向量被输入到与词汇表对应的输出 softmax 中(也就是要把被遮蔽的标记对应为词汇表中的一个词语)。在咱们全部的实验中,咱们在每一个序列中随机遮蔽 15% 的标记。与去噪的自动编码器(Vincent et al., 2008)不一样的是,咱们只是让模型预测被遮蔽的标记,而不是要求模型重建整个输入。
虽然这确实容许咱们得到一个双向预训练模型,但这种方法有两个缺点。第一个缺点是,咱们在预训练和微调之间形成了不匹配,由于 [MASK] 标记在微调期间从未出现过。为了缓和这种状况,咱们并不老是用真的用 [MASK] 标记替换被选择的单词。而是,训练数据生成器随机选择 15% 的标记,例如,在my dog is hairy 这句话中,它选择 hairy。而后执行如下步骤:
Transformer 编码器不知道它将被要求预测哪些单词,或者哪些单词已经被随机单词替换,所以它被迫保持每一个输入标记的分布的上下文表示。另外,由于随机替换只发生在 1.5% 的标记(即,15% 的 10%)这彷佛不会损害模型的语言理解能力。
第二个缺点是,使用 Transformer 的每批次数据中只有 15% 的标记被预测,这意味着模型可能须要更多的预训练步骤来收敛。在 5.3 节中,咱们证实了 Transformer 确实比从左到右的模型(预测每一个标记)稍微慢一点,可是 Transformer 模型的实验效果远远超过了它增长的预训练模型的成本。
许多重要的下游任务,如问题回答(QA)和天然语言推理(NLI),都是创建在理解两个文本句子之间的关系的基础上的,而这并非语言建模直接捕捉到的。为了训练一个理解句子关系的模型,咱们预训练了一个下一句预测的二元分类任务,这个任务能够从任何单语语料库中简单地概括出来。具体来讲,在为每一个训练前的例子选择句子 A 和 B 时,50% 的状况下 B 是真的在 A 后面的下一个句子,50% 的状况下是来自语料库的随机句子。好比说:
咱们彻底随机选择不是下一句的句子,最终的预训练模型在这个任务中达到了 97%-98% 的准确率。尽管这个任务很简单,可是咱们在 5.1 节中展现了针对此任务的预训练对 QA 和 NLI 都很是有益。
预训练过程大致上遵循以往文献中语言模型预训练过程。对于预训练语料库,咱们使用 BooksCorpus(800M 单词)(Zhu et al., 2015)和英语维基百科(2,500M 单词)。对于维基百科,咱们只提取文本段落,而忽略列表、表格和标题。为了提取长的连续序列,使用文档级别的语料库,而不是使用像 Billion Word Benchmark (Chelba et al., 2013)那样使用打乱顺序的句子级别语料库是相当重要的。
为了生成每一个训练输入序列,咱们从语料库中采样两段文本,咱们将其称为“句子”,尽管它们一般比单个句子长得多(但也能够短一些)。第一个句子添加 A 嵌入,第二个句子添加 B 嵌入。50% 的状况下 B 确实是 A 后面的实际下一句,50% 的状况下它是随机选取的一个的句子,这是为“下一句预测”任务所作的。两句话合起来的长度要小于等于 512 个标记。语言模型遮蔽过程是在使用 WordPiece 序列化句子后,以均匀的 15% 的几率遮蔽标记,不考虑部分词片的影响(那些含有被 WordPiece 拆分,以##为前缀的标记)。
咱们使用 256 个序列(256 个序列 * 512 个标记= 128,000 个标记/批次)的批大小进行 1,000,000 步的训练,这大约是在 33 亿词的语料库中训练 40 个周期。咱们用Adam 优化算法并设置其学习率为 ,
,
的权重衰减是 0.01,而且在前 10000 步学习率热身(learning rate warmup),而后学习率开始线性衰减。咱们在全部层上使用 0.1 几率的 dropout。像 OpenAI GPT 同样,咱们使用 gelu 激活(Hendrycks and Gimpel, 2016)而不是标准 relu。训练损失是遮蔽语言模型似然值与下一句预测似然值的平均值。
在 4 块 Cloud TPU(共含有 16 块 TPU)上训练 。在 16 块 Cloud TPU(共含有 64 块 TPU)训练
。每次训练前须要 4 天的时间。
对于序列级别的分类任务,BERT 微调很是简单。为了得到输入序列的固定维度的表示,咱们取特殊标记([CLS])构造相关的嵌入对应的最终的隐藏状态(即,为 Transformer 的输出)的池化后输出。咱们把这个向量表示为 ,在微调期间惟一须要的新增长的参数是分类层的参数矩阵
,其中
是要分类标签的数量。分类标签的几率
由一个标准的 softmax 来计算,
。对 BERT 的参数矩阵
的全部参数进行了联合微调,使正确标签的对数几率最大化。对于区间级和标记级预测任务,必须以特定于任务的方式稍微修改上述过程。具体过程见第 4 节的相关内容。
对于微调,除了批量大小、学习率和训练次数外,大多数模型超参数与预训练期间相同。Dropout 几率老是使用 0.1。最优超参数值是特定于任务的,但咱们发现如下可能值的范围能够很好地在全部任务中工做:
咱们还观察到大数据集(例如 100k+ 标记的训练集)对超参数选择的敏感性远远低于小数据集。微调一般很是快,所以只需对上述参数进行彻底搜索,并选择在验证集上性能最好的模型便可。
在现有预训练方法中,与 BERT 最类似的是 OpenAI GPT,它在一个大的文本语料库中训练从左到右的 Transformer 语言模型。事实上,BERT 中的许多设计决策都是有意选择尽量接近 GPT 的,这样两种方法就能够更加直接地进行比较。咱们工做的核心论点是,在 3.3 节中提出的两项新的预训练语言模型任务占了实验效果改进的大部分,可是咱们注意到 BERT 和 GPT 在如何训练方面还有其余几个不一样之处:
为了分清楚这些差别的带来的影响,咱们在 5.1 节中的进行每一种差别的消融实验代表,大多数的实验效果的改善实际上来自新的预训练任务(遮蔽语言模型和下一句预测任务)。
图 3:咱们具体于特定任务的模型是经过给 BERT 加一个额外的输出层构成,因此仅须要从头学习最小数量的参数。其中(a)和(b)是序列级任务,(c)和(d)是标记级任务。图中
表示嵌入的输入,
表示第
个标记的上下文表示,[CLS] 是分类输出的特殊符号,[SEP] 是分离非连续标记(分离两个句子)序列的特殊符号。
在这一节,咱们将展现 BERT 在 11 项天然语言处理任务中的微调结果。
通用语言理解评价 (GLUE General Language Understanding Evaluation) 基准(Wang et al.(2018))是对多种天然语言理解任务的集合。大多数 GLUE 数据集已经存在多年,但 GLUE 的用途是(1)以分离的训练集、验证集和测试集的标准形式发布这些数据集;而且(2)创建一个评估服务器来缓解评估不一致和过分拟合测试集的问题。GLUE 不发布测试集的标签,用户必须将他们的预测上传到 GLUE 服务器进行评估,并对提交的数量进行限制。
GLUE 基准包括如下数据集,其描述最初在 Wang et al.(2018)中总结:
MNLI 多类型的天然语言推理(Multi-Genre Natural Language Inference)是一项大规模的、众包的蕴含分类任务(Williams et al., 2018)。给定一对句子,目的是预测第二个句子相对于第一个句子是暗含的、矛盾的仍是中立的关系。
QQP Quora问题对(Quora Question Pairs)是一个二元分类任务,目的是肯定两个问题在Quora上问的语义是否相等 (Chen et al., 2018)。
QNLI 问题天然语言推理(Question Natural Language Inference)是斯坦福问题回答数据集(Rajpurkar et al., 2016)已经转换为二进制分类任务的一个版本 Wang et al.(2018)。正类的例子是(问题,句子)对,句子中包含正确的答案,和负类的例子是来自同一段的(问题,句子)对,句子中不包含正确的答案。
SST-2 斯坦福情感语义树(Stanford Sentiment Treebank)数据集是一个二元单句分类任务,数据由电影评论中提取的句子组成,并对由人工对这些句子进行标注(Socher et al., 2013)。
CoLA 语言可接受性单句二元分类任务语料库(Corpus of Linguistic Acceptability),它的目的是预测一个英语句子在语言学上是否 “可接受”(Warstadt et al., 2018)。
STS-B 文本语义类似度基准(Semantic Textual Similarity Bench-mark )是重新闻标题中和其它来源里提取的句子对的集合(Cer et al., 2017)。他们用从 1 到 5 的分数标注,表示这两个句子在语义上是多么类似。
MRPC 微软研究释义语料库(Microsoft Research Paraphrase Corpus)从在线新闻中自动提取的句子对组成,并用人工注解来讲明这两个句子在语义上是否相等(Dolan and Brockett, 2005.)。
RTE 识别文本蕴含(Recognizing Textual Entailment)是一个与 MNLI 类似的二元蕴含任务,只是 RTE 的训练数据更少 Bentivogli et al., 2009。
WNLI 威诺格拉德天然语言推理(Winograd NLI)是一个来自(Levesque et al., 2011) )的小型天然语言推理数据集。GLUE网页提示到这个数据集的构造存在问题,每个被提交给 GLUE 的通过训练的系统在预测多数类时都低于 65.1 这个基线准确度。所以,出于对 OpenAI GPT 的公平考虑,咱们排除了这一数据集。对于咱们的 GLUE 提交,咱们老是预测多数类。
为了在 GLUE 上微调模型,咱们按照本文第 3 节中描述的那样表示输入的句子或者句子对,而且使用最后一层的隐藏向量 中的第一个输入标记([CLS])做为句子总的表示。如图3 (a)和(b)所示。在微调期间惟一引入的新的参数是一个分类层参数矩阵
,其中
是要分类的数量。咱们用
和
计算一个标准的分类损失,换句话说是
。
咱们在 GLUE 全部的任务中使用 32 的批次大小和 3 个周期。对于每一个任务咱们使用 的学习率来微调,而后在验证集中选择表现最好的学习率。此外,对于
咱们发现它有时在小数据集上微调时不稳定(换句话说是,有时运行时会使结果更差),所以,咱们进行了几回随机重启,并选择了在验证集上表现最好的模型。对于随机重启,咱们使用相同的预训练检查点,但执行不一样的数据打乱和分类器层初始化来微调模型。咱们注意到,GLUE 发布的数据集不包括测试的标签,因此咱们分别将
和
向 GLUE 评估服务器提交结果。
结果如表 1 所示。在全部的任务上, 和
都比现有的系统更加出色 ,与先进水平相比,分别取得 4.4% 及 6.7% 的平均改善。请注意,除了
含有注意力屏蔽(attention masking),
和 OpenAI GPT 的模型结构方面几乎是相同的。对于最大和最普遍使用的 GLUE 任务 MNLI,BERT 比当前最优模型得到了 4.7% 的绝对提高。在 GLUE 官方的排行榜上,
得到了 80.4 的分数,与原榜首的 OpenAI GPT 相比截止本文写做时只得到了 72.8 分。
有趣的是, 在全部任务中都显著优于
,即便是在那些只有不多训练数据的任务上。BERT 模型大小的影响在本文 5.2 节有更深刻的探讨。
表 1:GLUE 测试结果,由 GLUE 评估服务器评分。每一个任务下面的数字表示训练示例的数量。“Average”列与官方 GLUE 评分略有不一样,由于咱们排除了有问题的 WNLI 数据集。OpenAI GPT = (L=12, H=768, A=12); BERTBASE = (L=12, H=768, A=12); BERTLARGE = (L=24, H=1024, A=16)。BERT 和 OpenAI GPT 都是单模型,单任务。全部结果能够从 gluebenchmark.com/leaderboard 和 blog.openai.com/language-un… 得到。
斯坦福问答数据集(SQuAD Standford Question Answering Dataset)是一个由 100k 个众包的问题/答案对组成的集合(Rajpurkar et al., 2016)。给出一个问题和一段来自维基百科包含这个问题答案的段落,咱们的任务是预测这段答案文字的区间。例如:
这种区间预测任务与 GLUE 的序列分类任务有很大的区别,可是咱们可以让 BERT 以一种直接的方式在 SQuAD 上运行。就像在 GLUE 中,咱们将输入问题和段落表示为一个单一打包序列(packed sequence),其中问题使用 A 嵌入,段落使用 B 嵌入。在微调模型期间惟一须要学习的新参数是区间开始向量 和区间结束向量
。让 BERT 模型最后一层的隐藏向量的第
输入标记被表示为
。如图 3(c)可视化的表示。而后,计算单词
做为答案区间开始的几率,它是
和
之间的点积并除以该段落全部单词的结果以后再 softmax:
一样的式子用来计算单词做为答案区间的结束的几率,并采用得分最高的区间做为预测结果。训练目标是正确的开始和结束位置的对数可能性。
咱们使用 的学习率,32 的批次大小训练模型 3 个周期。在模型推断期间,由于结束位置与开始位置没有条件关系,咱们增长告终束位置必须在开始位置以后的条件,但没有使用其余启发式。为了方便评估,把序列化后的标记区间对齐回原始未序列化的输入。
结果如表 2 中描述那样。SQuAD 使用一个高度严格的测试过程,其中提交者必须手动联系小组组织人员,而后在一个隐藏的测试集上运行他们的系统,因此咱们只提交了最好的模型来测试。表中显示的结果是咱们提交给小组的第一个也是惟一一个测试。咱们注意到上面的结果在小组排行榜上没有最新的公共模型描述,并被容许在训练他们的模型时使用任何的公共数据。所以,咱们在提交的模型中使用很是有限的数据加强,经过在 SQuAD 和 TriviaQA(Joshi et al., 2017) 联合训练。
咱们表现最好的模型在集成模型排名中上比排名第一模型高出 1.5 个 F1 值,在一个单模型排行榜中比排名第一的模型高出 1.7(译者注:原文是 1.3) 个 F1 值。实际上,咱们的单模型 BERT 就比最优的集成模型表现更优。即便只在 SQuAD 数据集上(不用 TriviaQA 数据集)咱们只损失 0.1-0.4 个 F1 值,并且咱们的模型输出结果仍然比现有模型的表现好不少。
表 2:SQuAD 结果。Ensemble BERT 是使用不一样的预训练模型检查点和微调种子的 7x 模型。
为了评估标记任务的性能,咱们在 CoNLL 2003 命名实体识别数据集(NER Named Entity Recognition)上微调 BERT 模型。该数据集由 200k 个训练单词组成,这些训练词被标注为人员、组织、地点、杂项或其余(无命名实体)。
为了微调,咱们将最后一层每一个单词的隐藏表示 送入一个在 NER 标签集合的分类层。每一个单词的分类不以周围预测为条件(换句话说,没有自回归和没有 CRF)。为了与词块(WordPiece)序列化相适应,咱们把 CoNLI-序列化的(CoNLL-tokenized)的输入词输入咱们的 WordPiece 序列化器,而后使用这些隐藏状态相对应的第一个块而不用预测标记为 X的块。例如:
因为单词块序列化边界是输入中已知的一部分,所以对训练和测试都要这样作。 结果如表 3 所示。 优于现存的最优模型,使用多任务学习的交叉视野训练 (Clark et al., 2018),CoNLL-2003 命名实体识别测试集上高 0.2 F1 值。
表 3:CoNLL-2003 命名实体识别。模型超参数使用验证集进行选择,报告的验证集和测试分数使用这些超参数进行随机五次以上的实验而后取实验的平均结果。
Adversarial Generations(SWAG)数据集由 113k 个句子对组合而成,用于评估基于常识的推理 (Zellers et al., 2018)。
给出一个来自视频字幕数据集的句子,任务是在四个选项中选择最合理的延续。例如:
为 SWAG 数据集调整 BERT 模型的方式与为 GLUE 数据集调整的方式类似。对于每一个例子,咱们构造四个输入序列,每个都链接给定的句子(句子A)和一个可能的延续(句子B)。惟一的特定于任务的参数是咱们引入向量 ,而后它点乘最后层的句子总表示
为每个选择
产生一个分数。几率分布为 softmax 这四个选择:
咱们使用 的学习率,16 的批次大小训练模型 3 个周期。结果如表 4 所示。
优于做者的 ESIM+ELMo 的基线标准模型的 27.1% 。
表 4:SWAG 验证集和测试集准确率。测试结果由 SWAG 做者对隐藏的标签进行评分。人类的表现是用 100 个样原本衡量的,正如 SWAG 论文中描述的那样。
虽然咱们已经证实了很是强有力的实证结果,但到目前为止提出的结果并无提现出 BERT 框架的每一个部分具体的贡献。在本节中,咱们对 BERT 的许多方面进行了消融实验,以便更好地理解每一个部分的相对重要性。
咱们的核心观点之一是,与以前的工做相比,BERT 的深层双向性(经过遮蔽语言模型预训练)是最重要的改进。为了证实这一观点,咱们评估了两个新模型,它们使用与 彻底相同的预训练数据、微调方案和 Transformer 超参数:
结果如表 5 所示。咱们首先分析了 NSP 任务所带来的影响。咱们能够看到去除 NSP 对 QNLI、MNLI 和 SQuAD 的表现形成了显著的伤害。这些结果代表,咱们的预训练方法对于得到先前提出的强有力的实证结果是相当重要的。
接着咱们经过对比 “No NSP” 与 “LTR & No NSP” 来评估训练双向表示的影响。LTR 模型在全部任务上的表现都比 MLM 模型差,在 MRPC 和 SQuAD 上的降低特别大。对于SQuAD来讲,很明显 LTR 模型在区间和标记预测方面表现不好,由于标记级别的隐藏状态没有右侧上下文。由于 MRPC 不清楚性能差是因为小的数据大小仍是任务的性质,可是咱们发现这种性能差是在一个彻底超参数扫描和许屡次随机重启之间保持一致的。
为了加强 LTR 系统,咱们尝试在其上添加一个随机初始化的 BiLSTM 来进行微调。这确实大大提升了 SQuAD 的成绩,可是结果仍然比预训练的双向模型表现差得多。它还会损害全部四个 GLUE 任务的性能。
咱们注意到,也能够培训单独的 LTR 和 RTL 模型,并将每一个标记表示为两个模型表示的链接,就像 ELMo 所作的那样。可是:(a)这是单个双向模型参数的两倍大小;(b)这对于像 QA 这样的任务来讲是不直观的,由于 RTL 模型没法以问题为条件肯定答案;(c)这比深层双向模型的功能要弱得多,由于深层双向模型能够选择使用左上下文或右上下文。
表 5:在预训练任务中使用
模型进行消融实验。“No NSP”表示不进行下一句预测任务来训练模型。“LTR & No NSP”表示就像 OpenAI GPT 同样,使用从左到右的语言模型不进行下一句预测任务来训练模型。“+ BiLSTM”表示在“LTR & No NSP”模型微调时添加一个随机初始化的 BiLSTM 层。
在本节中,咱们将探讨模型大小对微调任务准确度的影响。咱们用不一样的层数、隐藏单位和注意力头个数训练了许多 BERT 模型,同时使用了与前面描述的相同的超参数和训练过程。
选定 GLUE 任务的结果如表 6 所示。在这个表中,咱们报告了 5 次在验证集上的微调的随机重启的平均模型准确度。咱们能够看到,更大的模型在所选 4 个数据集上都带来了明显的准确率上升,甚至对于只有 3600 个训练数据的 MRPC 来讲也是如此,而且与预训练任务有很大的不一样。也许使人惊讶的是,相对于现有文献,咱们可以在现有的模型基础上实现如此显著的改进。例如,Vaswani et al.(2017) 研究的最大 Transformer 为(L=6, H=1024, A=16),编码器参数为 100M,咱们所知的文献中的最大 Transformer 为(L=64, H=512, A=2),参数为235M(Al-Rfou et al., 2018)。相比之下, 含有 110M 参数而
含有 340M 参数。
多年来人们都知道,增长模型的大小将持续提高在大型任务(如机器转换和语言建模)上的的表现,表 6 所示的由留存训练数据(held-out traing data)计算的语言模型的困惑度(perplexity)。然而,咱们相信,这是第一次证实,若是模型获得了足够的预训练,那么将模型扩展到极端的规模也能够在很是小的任务中带来巨大的改进。
表 6:调整 BERT 的模型大小。#L = 层数;#H = 隐藏维度大小;#A = 注意力头的个数。“LM (ppl)”表示遮蔽语言模型在预留训练数据上的困惑度。
图 4 显示了通过 K 步预训练模型的检查点再模型微调以后在 MNLI 验证集上的准确率。这让咱们可以回答下列问题:
图 4:调整模型的训练步数。图中展现了已经预训练了 k 步后的模型参数在 MNLI 数据集上的再通过微调后的准确率。x 轴的值就是 k。
到目前为止,全部的 BERT 结果都使用了微调方法,将一个简单的分类层添加到预训练的模型中,并在一个下行任务中对全部参数进行联合微调。然而,基于特征的方法,即从预训练模型中提取固定的特征,具备必定的优点。首先,并非全部 NLP 任务均可以经过 Transformer 编码器体系结构轻松地表示,所以须要添加特定于任务的模型体系结构。其次,可以一次性耗费大量计算预先计算训练数据的表示,而后在这种表示的基础上使用更节省计算的模型进行许多实验,这有很大的计算优点。
在本节中,咱们经过在 CoNLL-2003 命名实体识别任务上生成相似于 elmo 的预训练的上下文表示来评估基于特征的方法中的 BERT 表现有多好。为此,咱们使用与第 4.3 节相同的输入表示,可是使用来自一个或多个层的激活输出,而不须要对BERT的任何参数进行微调。在分类层以前,这些上下文嵌入被用做对一个初始化的两层 768 维 Bi-LSTM 的输入。
结果如表 7 所示。最佳的执行方法是从预训练的转换器的前 4 个隐藏层串联符号表示,这只比整个模型的微调落后 0.3 F1 值。这说明 BERT 对于微调和基于特征的方法都是有效的。
表 7:在 CoNLL-2003 命名实体识别上使用基于特征的方法,并调整 BERT 层数。来自指定层的激活输出被组合起来,并被送到一个两层的 BiLSTM 中,而不须要反向传播到 BERT。
最近,因为使用语言模型进行迁移学习而取得的实验提高代表,丰富的、无监督的预训练是许多语言理解系统不可或缺的组成部分。特别是,这些结果使得即便是低资源(少许标签的数据集)的任务也能从很是深的单向结构模型中受益。咱们的主要贡献是将这些发现进一步推广到深层的双向结构,使一样的预训练模型可以成功地普遍地处理 NLP 任务。
虽然这些实证结果颇有说服力,在某些状况下甚至超过了人类的表现,但将来重要的工做是研究 BERT 可能捕捉到的或不捕捉到的语言现象。
全部参考文献按论文各小节中引用顺序排列,屡次引用会屡次出如今下面的列表中。
Abstract 摘要中的参考文献
BERT 文中简写 | 原始标论文标题 | 其它 |
---|---|---|
Peters et al., 2018 | Deep contextualized word representations | ELMo |
Radford et al., 2018 | Improving Language Understanding with Unsupervised Learning | OpenAI GPT |
1. Introduction 介绍中的参考文献
2. Related Work 相关工做中的参考文献
BERT 文中简写 | 原始标论文标题 | 其它 |
---|---|---|
Brown et al., 1992 | Class-based n-gram models of natural language | Peter F Brown, Peter V Desouza, Robert L Mercer, Vincent J Della Pietra, and Jenifer C Lai. 1992. |
Ando and Zhang, 2005 | A Framework for Learning Predictive Structures from Multiple Tasks and Unlabeled Data | Rie Kubota Ando and Tong Zhang. 2005. |
Blitzer et al., 2006 | Domain adaptation with structural correspondence learning | John Blitzer, Ryan McDonald, and Fernando Pereira.2006. |
Collobert and Weston, 2008 | A Unified Architecture for Natural Language Processing | Ronan Collobert and Jason Weston. 2008. |
Mikolov et al., 2013 | Distributed Representations of Words and Phrases and their Compositionality | CBOW Model;Skip-gram Model |
Pennington et al., 2014 | GloVe: Global Vectors for Word Representation | GloVe |
Turian et al., 2010 | Word Representations: A Simple and General Method for Semi-Supervised Learning | Joseph Turian, Lev Ratinov, and Yoshua Bengio. 2010. |
Kiros et al., 2015 | Skip-Thought Vectors | Skip-Thought Vectors |
Logeswaran and Lee, 2018 | An efficient framework for learning sentence representations | Lajanugen Logeswaran and Honglak Lee. 2018. |
Le and Mikolov, 2014 | Distributed Representations of Sentences and Documents | Quoc Le and Tomas Mikolov. 2014. |
Peters et al., 2017 | Semi-supervised sequence tagging with bidirectional language models | Matthew Peters, Waleed Ammar, Chandra Bhagavatula, and Russell Power. 2017. |
Peters et al., 2018 | Deep contextualized word representations | ELMo |
Rajpurkar et al., 2016 | SQuAD: 100,000+ Questions for Machine Comprehension of Text | SQuAD |
Socher et al., 2013 | Deeply Moving: Deep Learning for Sentiment Analysis | SST-2 |
Tjong Kim Sang and De Meulder, 2003 | Introduction to the CoNLL-2003 Shared Task: Language-Independent Named Entity Recognition | Erik F Tjong Kim Sang and Fien De Meulder. 2003. |
Dai and Le, 2015 | Semi-supervised sequence learning. In Advances in neural information processing systems, pages 3079–3087 | AndrewMDai and Quoc V Le. 2015 |
Howard and Ruder, 2018 | Universal Language Model Fine-tuning for Text Classification | ULMFiT;Jeremy Howard and Sebastian Ruder. |
Radford et al., 2018 | Improving Language Understanding with Unsupervised Learning | OpenAI GPT |
Wang et al.(2018) | GLUE: A Multi-Task Benchmark and Analysis Platform for Natural Language Understanding | GLUE |
Con-neau et al., 2017 | Supervised Learning of Universal Sentence Representations from Natural Language Inference Data | Alexis Conneau, Douwe Kiela, Holger Schwenk, Loic Barrault, and Antoine Bordes. 2017. |
McCann et al., 2017 | Learned in Translation: Contextualized Word Vectors | Bryan McCann, James Bradbury, Caiming Xiong, and Richard Socher. 2017. |
Deng et al. | ImageNet: A large-scale hierarchical image database | J. Deng,W. Dong, R. Socher, L.-J. Li, K. Li, and L. FeiFei. 2009. |
Yosinski et al., 2014 | How transferable are features in deep neural networks? | Jason Yosinski, Jeff Clune, Yoshua Bengio, and Hod Lipson. 2014. |
3. BERT 中的参考文献
BERT 文中简写 | 原始标论文标题 | 其它 |
---|---|---|
Vaswani et al. (2017) | Attention Is All You Need | Transformer |
Wu et al., 2016 | Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation | WordPiece |
Taylor, 1953 | "Cloze Procedure": A New Tool For Measuring Readability | Wilson L Taylor. 1953. |
Vincent et al., 2008 | Extracting and composing robust features with denoising autoencoders | denoising auto-encoders |
Zhu et al., 2015 | Aligning Books and Movies: Towards Story-like Visual Explanations by Watching Movies and Reading Books | BooksCorpus (800M words) |
Chelba et al., 2013 | One Billion Word Benchmark for Measuring Progress in Statistical Language Modeling | Billion Word Benchmark corpus |
Hendrycks and Gimpel, 2016 | Gaussian Error Linear Units (GELUs) | GELUs |
4. Experiments 实验中的参考文献
5. Ablation Studies 消融研究中的参考文献
BERT 文中简写 | 原始标论文标题 | 其它 |
---|---|---|
Vaswani et al. (2017) | Attention Is All You Need | Transformer |
Al-Rfou et al., 2018 | Character-Level Language Modeling with Deeper Self-Attention |