BERT:用于语言理解的深度双向 Transformer 预训练

Jacob Devlin    Ming-Wei Chang    Kenton Lee    Kristina Toutanova
Google AI Language
{jacobdevlin,mingweichang,kentonl,kristout}@google.com


摘要

我们引入一个新的语言表示模型 BERT,即 Bidirectional Encoder Representations from Transformers。 与最近的语言表示模型(Peters 等人,2018aRadford 等人,2018)不同,BERT 的设计是通过对所有层中的左右上下文进行联合调节,从未标注的文本中预训练深度双向表示。 因此,只需使用一个额外的输出层就可以对经过预训练的 BERT 模型进行微调,以创建适用于各种任务(例如问题解答和语言推论)的最新模型,而无需大量与特定任务相关的结构改动。

BERT 在概念上很简单,在实际应用中非常强大。 它在 11 种自然语言处理任务上获得了最新的最优结果,包括将 GLUE 得分提高到 80.5%(提升绝对值 7.7%),MultiNLI 准确度达到 86.7%(提升绝对值 4.6%),SQuAD v1.1 问答测试 F1 达到 93.2(提升绝对值 1.5 个点)以及 SQuAD v2.0 测试集 F1 达到 83.1(提升绝对值 5.1 个点)。

1 简介

语言模型预训练已经被证明可以有效地改善许多自然语言处理任务(Dai 和 Le,2015 Peters 等人,2018aRadford 等人,2018Howard 和 Ruder,2018)。 这些任务包括句子级任务和词符级任务;句子级任务如自然语言推理(Bowman 等人,2015Williams 等人,2018)和释义(Dolan 和 Brockett,2005)旨在通过对句子进行整体分析来预测句子之间的关系,词符级任务如命名实体识别和问题回答要求模型在词符级产生细粒度的输出(Tjong Kim Sang 和 De Meulder,2003Rajpurkar 等人,2016)。

有两种现有的策略可以将预先训练好的语言表示应用到下游任务中:基于特征微调 基于特征的方法,如 ELMo(Peters 等人,2018a),使用特定于任务的架构,将预先训练好的表示作为额外的特征。 微调方法,如生成式预训练变换器(OpenAI GPT)(Radford 等人,2018),引入最少的任务相关的参数,通过简单的微调所有 预训练的参数,对下游任务进行训练。 这两种方法在预训练期间具有相同的目标函数,它们使用单​​向语言模型来学习通用语言表示形式。

我们认为,当前的技术限制了预训练表示的能力,特别是对于微调方法。 主要的限制是标准语言模型是单向的,并且这限制了可以在预训练期间使用的结构的选择。 例如,在 OpenAI GPT 中,作者使用从左到右的结构,每个词符只能在 Transformer 的自关注层中关注之前的词符(Vaswani 等人,2017 )。 这种限制对于句子级的任务来说不是最优的,而且在应用基于微调的方法来处理词符级任务如问题回答时可能是非常有害的,因为在这种情况下从两个方向结合上下文至关重要。

在本文中,我们通过提出 BERT 对基于微调的方法进行改进:Bidirectional Encoder Representations from Transformers。 BERT 受 Cloze任务(Taylor,1953)的启发,通过使用 "屏蔽语言模型"(masked language model,MLM)预训练目标,缓解了前面提到的单向性约束。 屏蔽语言模型从输入中随机屏蔽部分词符,目标是仅根据上下文预测屏蔽掉的单词的原始词汇 ID。 与从左到右的语言模型预训练不同,MLM 目标使表示形式能够融合左右上下文,让我们可以预训练深层双向 Transformer。 除了屏蔽语言模型,我们还使用“预测下一个句子”任务来联合预训练文本对的表示。 本文的贡献如下:

2 相关工作

预先训练通用语言表示形式已有很长的历史,本节中我们简要回顾使用最广泛的方法。

2.1 基于特征的无监督方法

几十年来,学习可广泛应用的单词表示方法一直是一个活跃的研究领域,包括非神经网络方法(Brown 等人,1992Ando 和 Zhang,2005Blitzer 等人,2006)和神经网络方法(Mikolov 等人,2013Pennington 等人,2014)。 预训练的词嵌入是现代 NLP 系统不可或缺的一部分,与从零开始学习的嵌入相比有显着改进(Turian 等人,2010)。 为了预训练词嵌入向量,已使用从左到右的语言建模目标(Mnih 和 Hinton,2009),以及在左右上下文中区分正确单词和错误单词的目标(Mikolov 等人,2013)。

这些方法已经推广到更粗粒度,例如句子嵌入(Kiros 等人,2015Logeswaran 和 Lee,2018)或段落嵌入(Le 和 Mikolov,2014)。 为了训练句子表示,以前的工作使用对候选的下一句进行评分排序(Jernite 等人,2017Logeswaran 和 Lee,2018)的目标,给定前一个句子的表示从左到右生成下一个句子的单词(Kiros 等人,2015)或去噪自动编码器派生的目标(Hill 等人,2016)。

PIC

图1:BERT 的总体预训练和微调程序。 除了输出层,在预训练和微调中都使用相同的体系结构。 相同的预训练模型参数用于初始化不同下游任务的模型。 在微调期间,所有参数都将进行微调。 [CLS]是在每个输入示例前添加的特殊符号,而[SEP]是特殊的分隔符(例如,分隔问题/答案)。

ELMo 及其前身(Peters等人,2017,2018a)沿不同维度推广了传统单词嵌入的研究。 他们结合从左到右和从右到左的语言模型提取上下文相关 特征。 每个词符的上下文表示是从左至右和从右至左表示的首尾相连。 当将上下文词嵌入与现有的特定于任务的体系结构集成时,ELMo 改进了几种主要的 NLP 基准的最先进结果(Peters 等人,2018a),包括问题回答(Rajpurkar 等人,2016)、情感分析(Socher 等人,2013)和命名实体识别(Tjong Kim Sang 和 De Meulder,2003)。 Melamud 等人 2016)提出通利用 LSTM 从左右上下文中预测单个单词的任务学习上下文表征。 与 ELMo 相似,它们的模型是基于特征的并且不是深度双向的。 Fedus 等人 2018)表明,cloze 任务可用于提高文本生成模型的鲁棒性。

2.2 无监督微调方法

与基于特征的方法一样,在这个方向上的早期工作只是在未标记的文本上预训练单词的嵌入参数(Collobert 和 Weston,2008)。

最近,产生上下文词符表示的句子或文档编码器已经从未标记的文本中预训练,并针对有监督的下游任务进行微调(Dai 和 Le,2015Howard 和 Ruder,2018Radford 等人,2018)。 这些方法的优点是几乎不需要从头学习参数。 至少部分由于此优势,OpenAI GPT(Radford 等人,2018)在 GLUE 基准测试中许多句子级任务上获得了以前的最先进结果(Wang 等人,2018a)。 从左到右的语言建模和自动编码器目标已被用于预训练此类模型(Howard 和 Ruder,2018Radford 等人,2018Dai 和 Le,2015)。

2.3 从监督数据迁移学习

也有工作显示了从大数据集监督任务的有效转移,如自然语言推理(Conneau 等人,2017)和机器翻译(McCann 等人,2017)。 计算机视觉研究还证明了从大型预训练模型进行迁移学习的重要性,其中一个有效的方法是微调用 ImageNet 预训练的模型(Deng 等人,2009Yosinski 等人,2014)。

3 BERT

我们将在本节中介绍 BERT 及其详细实现。 我们的框架有两个步骤:预训练微调 在预训练期间,通过不同的预训练任务在未标记的数据上进行模型训练。 对于微调,首先使用预训练的参数初始化 BERT 模型,然后使用下游任务中的标记数据对所有参数进行微调。 每个下游任务都有单独的微调模型,即使它们使用相同的预训练参数进行了初始化。 1 中的问答示例将作为本节的运行示例。

BERT 的一个独有的特征是其跨不同任务的统一结构。 预训练的结构和最终的下游结构之间的差异很小。

模型结构 BERT 的模型结构是一种多层 Transformer 编码器,它基于的原始实现的描述位于 Vaswani 等人 2017)并发布在 tensor2tensor 库中。1 因为 Transformer 的使用已经很普遍以及我们的实现与原始版本几乎相同,我们将省略模型结构的详尽背景说明并请读者参考 Vaswani 等人 2017)以及优秀的指南如“The Annotated Transformer”。2

在这项工作中,我们将网络层(即 Transformer 的网络模块)的数量表示为 L,将隐藏层大小表示为 H,并将自注意头的数量表示为 A3 我们主要报告两种模型大小的结果:BERTBASE (L=12, H=768, A=12, Total Parameters=110M) 和BERTLARGE (L=24, H=1024, A=16, Total Parameters=340M) 。

为了进行比较,选择BERT BASE具有与OpenAI GPT相同的模型大小。 但是,至关重要的是,BERT Transformer 使用双向自关注,而 GPT Transformer 使用受限的自我关注,其中每个词符只能关注其左侧的上下文。4

输入/输出表示 为了使 BERT 处理各种下游任务,我们的输入可以用一个词符序列明确地表示单个句子和一对句子(例如Question, Answer )。 在整个工作中,“句子”可以是连续文本的任意范围,而不是实际的语言句子。 “序列”是指 BERT 的输入词符序列,它可以是一个句子或两个句子封装在一起。

我们使用 WordPiece 嵌入(Wu 等人,2016),具有 30,000 个词符的词汇表。 每个序列的第一个标记始终是特殊分类标记([CLS])。 与此标记对应的最终隐藏状态用作分类任务的聚合序列表示。 句子对封装在一起形成单个序列。 我们通过两种方式区分句子。 首先,我们使用特殊词符([SEP])将它们分开。 其次,我们向每个词符添加一个学习型嵌入,表明它是属于句子 A 还是句子 B 如图 1所示,我们将输入嵌入表示为 E,将特殊的 [CLS] 词符的最终隐藏向量表示为 C H,第 i 个输入词符为的最终隐藏向量为 Ti H

对于给定的词符,其输入表示是通过将相应的词符嵌入、分段嵌入和位置嵌入相加来构造的。 在图 2 中可以看到这种构造的可视化。

PIC

图2:BERT 输入表示。 输入的嵌入是词符嵌入、分段嵌入和位置嵌入的总和。

3.1 预训练 BERT

不同于 Peters 等人 2018a)和 Radford 等人 2018),我们没有使用传统的从左到右或从右到左的语言模型对 BERT 进行预训练。 相反,我们使用本节中描述的两个无监督任务对 BERT 进行预训练。 该步骤显示在图 1 的左侧。

任务#1:屏蔽 LM 直观地讲,我们有理由相信,一个深层的双向模型严格来说比从左到右的模型或从左到右和从右到左的浅层模型连接更强大。 不幸的是,标准的条件语言模型只能从左至右 从右至左进行训练,因为双向条件会让每个词间接地 "看到自己",从而模型在多层上下文中可以十分容易地预测目标词。

为了训练深度双向表示,我们简单地随机屏蔽一定百分比的输入词符,然后预测这些屏蔽的词符。 尽管此过程在文献中通常被称为 Cloze 任务(Taylor,1953),但我们将该过程称为“屏蔽 LM”(MLM)。 这种情况下,和在标准 LM 中一样,与屏蔽词符相对应的最终隐藏向量被送入词汇表上的输出 softmax 中。 在所有实验中,我们随机屏蔽每个序列中所有 WordPiece 词符的 15%。 与去噪自动编码器(Vincent 等人,2008)不同,我们只预测被屏蔽的单词,而不重构整个输入。

尽管这可以使我们获得双向的预训练模型,但缺点是我们在预训练和微调之间造成了不一致,因为 [MASK] 词符不会在微调期间出现。 为了缓解这种情况,实际上我们并不总是用 [MASK] 词符替换“被屏蔽”的单词。 训练数据生成器随机选择词符位置的 15% 进行预测。 如果选择第 i 个词符,我们替换这第 i 个词符为(1)80% 的时间用 [MASK] 词符(2)10% 的时间用随机词符(3)10% 的时间维持第 i 词符不变。 然后,将用 Ti 以交叉熵损失预测原始词符。 我们在附录 C.2 中比较了此过程的各种变体。

任务 #2:下一句预测(NSP) 许多重要的下游任务,例如问答(QA)和自然语言推理(NLI)是是基于理解两个句子之间的关系,而这不是语言建模直接捕获的。 为了训练能够理解句子关系的模型,我们预训练了可以从任何单语语料库很容易生成的二值下一个句子预测 任务。 具体来说,当为每个预训练样本选择句子 AB 时,50% 的时间 B 是紧随其后的实际下一个句子 A(标记为IsNext),50% 的时间是语料库中的随机句子(标记为 NotNext)。 如图 1 所示,C 用于下一句预测(NSP)。5 ,尽管非常简单,我们在 5.1 节中展示此任务的预训练对 QA 和 NLI 都非常有益。 6 NSP 任务与表示学习目标很接近,参见 Jernite 等人 2017)和 Logeswaran 和 Lee2018)。 但是,在之前的工作中,只有句子嵌入被传输到下游任务,而 BERT 传输所有参数以初始化最终任务模型的参数。

预训练数据 预训练过程在很大程度上遵循有关语言模型预训练的现有文献。 对于预训练语料库,我们使用 BooksCorpus(800 万个单词)(Zhu 等人,2015)和英语 Wikipedia(25 亿个单词)。 对于 Wikipedia,我们仅提取文本段落,而忽略列表、表格和标题。 为了提取长的连续序列,使用文档级语料库而不是洗乱的句子级语料库如 Billion Word Benchmark(Chelba 等人,2013)至关重要。

3.2 微调 BERT

微调很简单,因为 Transformer 中的自我关注机制允许 BERT 通过交换适当的输入和输出来建模许多下游任务(无论它们涉及单个文本还是文本对)。 对于涉及文本对的应用,常见的模式是在应用双向交叉注意之前对文本对进行独立编码,例如 Parikh 等人 2016); Seo 等人 2017)。 BERT 使用自我注意机制来统一这两个阶段,因为使用自我注意编码连接的文本对行实际上包括了两个句子之间的双向 交叉注意。

对于每个任务,我们只需将特定于任务的输入和输出送入 BERT,并端到端微调所有参数。 在输入处,来自预训练的句子 A 和句子 B 类比于(1)paraphrasing 中的句子对(2)entailment 中的假设-前提对(3)question answering 中使用的 question-passage 对,以及(4)在文本分类或序列标记中使用退化的 ​​text- 对。 在输出处,将词符表示输入到输出层中以进行词符级任务如序列标记或问题回答,将 [CLS] 表示输入到输出层中进行分类如蕴含或情感分析。

与预训练相比,微调代价相对较小。 从完全相同的预训练模型开始,论文中的所有结果都可以复现,在单个 Cloud TPU 上最多 1 个小时,在 GPU 上最多需要几个小时。7 我们在第 4 节的相应小节中描述特定任务的细节。 更多详细信息,请参见附录 A.5

系统MNLI-(m/mm)QQPQNLISST-2CoLASTS-BMRPCRTE平均
  392k363k108k 67k 8.5k 5.7k 3.5k2.5k -










OpenAI 之前的 SOTA   80.6/80.1 66.1 82.3 93.2 35.0 81.0 86.0 61.7 74.0
BiLSTM+ELMo+Attn  76.4/76.1 64.8 79.8 90.4 36.0 73.3 84.9 56.8 71.0
OpenAI GPT 82.1/81.4 70.3 87.4 91.3 45.4 80.0 82.3 56.0 75.1










BERTBASE   84.6/83.4 71.2 90.5 93.5 52.1 85.8 88.9 66.4 79.6
BERTLARGE   86.7/85.9 72.1 92.7 94.9 60.5 86.5 89.3 70.1 82.1
 
表格1:GLUE 测试结果,由评估服务器(https://gluebenchmark.com/leaderboard)评分。 每个任务下方的数字表示训练样本的数量。 “平均”列与官方 GLUE 得分略有不同,因为我们排除了有问题的 WNLI 集。8 BERT 和 OpenAI GPT 是单模型、单任务。 QQP 和 MRPC 报告的是 F1 分数,STS-B 报告的是 Spearman 相关性,其他任务报告的是准确率分数。 我们不包括使用 BERT 作为其组件之一的条目。

8请参见 https://gluebenchmark.com/faq 中的(10)。

4 实验

在本节中,我们介绍了11个NLP任务的BERT微调结果。

4.1 GLUE

通用语言理解评估(GLUE)基准(Wang等人,2018a)是各种自然语言理解任务的集合。 GLUE数据集的详细说明包含在附录B.1中。

为了对 GLUE 进行微调,我们按照第 3 节中的描述表示输入序列(针对单个句子或句子对),并使用对应于第一个输入词符([CLS])的最终的隐藏向量 C H 作为聚合表示。 微调期间引入的唯一新参数是分类层权重W K × H,其中K是标签数。 我们用 CW 计算标准分类损失,即 log(softmax(CWT ))

对于所有 GLUE 任务,我们使用的 batch size 为 32, 在数据上进行 3 个 epoch 的微调。 对于每个任务,我们在开发集上选择最佳的微调学习率(在5e-5、4e-5、3e-5 和 2e-5中)。 另外,对于 BERTLARGE,我们发现微调有时在小型数据集上不稳定,因此我们并在开发集上进行了几次随机重跑,选择最佳模型。 对于随机重跑,我们使用相同的预训练检查点,但执行不同的微调数据洗乱和分类器层初始化。9

结果显示在表 1 中。 BERTBASE 和 BERTLARGE 在所有任务上的性能均优于所有系统,分别比之前的最先进结果提高了 4.5% 和 7.0%。 请注意,除了注意力屏蔽之外,BERTBASE 和 OpenAI GPT 在模型架构方面几乎相同。 对于最大且报告最广的 GLUE 任务 MNLI,BERT 获得 4.6% 的绝对准确度改进。 在官方 GLUE 排行榜10 上,BERTLARGE 得分为 80.5,而截至撰写之日 OpenAI GPT 得分为 72.8 。

我们发现在所有任务中,尤其是训练数据很少的任务,BERTLARGE 明显优于 BERTBASE 5.2部分中更全面地探讨了模型大小的影响。

4.2 SQuAD v1.1

斯坦福问答数据集(SQuAD v1.1)是10万个众包问题/答案对的集合(Rajpurkar等人,2016)。 给定一个问题以及Wikipedia中包含答案的段落,任务是预测段落中的答案文本范围。

如图 1 所示,在问题回答任务中,我们将输入的问题和段落表示封装成单个序列,其中问题使用 A 嵌入,而段落使用 B 嵌入。 在微调期间我们只引入一个开始向量 S H 和一个结束向量 E H 单词 i 是答案范围的开始的概率计算为 TiS 之间的点积,后面是一个段落上单词的 softmax:Pi =   S⋅Ti
∑eeS⋅Tj-
 j 答案范围的结束用类似的公式。 候选范围位置 i 到位置 j 的分值定义为 STi +ETj,分值最大的范围作为预测,其中 ji 训练目标是正确的开始和结束位置的对数似然率的总和。 我们以 3e-5 的学习率和 32 的批处理大小微调 3 个 epoch。

系统
开发集
测试集
EM F1EM F1
顶级排行榜系统(2018年12月10日)
人类 - - 82.391.2
#1 Ensemble - nlnet - - 86.091.7
#2 Ensemble - QANet - - 84.590.5
已发表的结果
BiDAF+ELMo (Single) - 85.6 - 85.8
R.M. Reader (Ensemble) 81.287.982.388.5
我们的结果
BERTBASE (Single) 80.888.5 - -
BERTLARGE (Single) 84.190.9 - -
BERTLARGE (Ensemble) 85.891.8 - -
BERTLARGE (Sgl.+TriviaQA) 84.291.185.191.8
BERTLARGE (Ens.+TriviaQA)86.292.287.493.2
表2: SQuAD 1.1结果。 BERT ensemble 是使用不同的预训练检查点和微调种子的 7 个系统。

系统
开发集
测试集
EM F1EM F1
顶级排行榜系统(2018年12月10日)
人类86.389.086.989.5
#1 Single - MIR-MRC (F-Net) - - 74.878.0
#2 Single - nlnet - - 74.277.1
已发表的结果
unet (Ensemble) - - 71.474.9
SLQA+ (Single) - 71.474.4
我们的结果
BERTLARGE (Single) 78.781.980.083.1
表3: SQuAD 2.0结果。 我们排除使用BERT作为其组件之一的条目。

2 显示顶级排行榜和发表的顶级系统(Seo 等人,2017Clark 和 Gardner,2018Peters 等人,2018aHu 等人,2018)。 SQuAD 排行榜的最高结果没有公开最新系统的描述,11 ,允许使用任何公共数据训练他们的系统。 因此,我们首先在 TriviaQA 上进行微调(Joshi等人,2017),然后在 SQuAD 上进行微调,从而在系统中使用适度的数据增强。

我们表现最好的系统在集成时比排行榜最高的系统高出 +1.5 个 F1 值,在单一系统时高出 +1.3 个 F1 值。 实际上,就 F1 分数而言,我们的单一 BERT 模型优于最好的集成系统。 如果没有 TriviaQA 的微调数据,我们只会损失 0.1-0.4 个 F1 值,仍然远远胜过所有现有系统。12

4.3 SQuAD v2.0

SQuAD 2.0任务通过允许在提供的段落中不存在简短答案的可能性扩展了SQuAD 1.1问题定义,从而使问题更加实际。

我们使用一种简单的方法来扩展SQuAD v1.1 BERT模型以完成此任务。 我们将没有答案的问题视为答案范围的开始和结束都位于 [CLS] 词符。 答案范围开始和结束位置的概率空间扩展为包括 [CLS] 词符的位置。 对于预测,我们比较非答案的范围 snull =SC+EC 和最高的非空范围 si,j = maxjiSTi +ETj 得分。 我们预测非空答案满足 si,j > snull + τ,其中阈值 τ 在开发集上选择以最大化 F1 值。 我们没有为此模型使用TriviaQA数据。 我们微调了 2个 epoch,学习率为 5e-5,批次大小为 48。

与之前的排行榜和已发表的最好工作(Sun 等人,2018Wang 等人,2018b)的比较结果显示在表 3 中,不包括使用 BERT 作为其组件之一的系统。 与之前的最佳系统相比,我们观察到 +1 F1 的改进。

4.4 SWAG

Situations With Adversarial Generations(SWAG)数据集包含 113k 个句子对补全样本,用于评估基础常识推理(Zellers 等人,2018)。 这个任务是在给定一个句子的情况下,在四个选项中选择最合理的选项来延续这个句子。

在SWAG数据集上进行微调时,我们构造了四个输入序列,每个输入序列包含给定句子(句子A)和可能的延续词(句子B)的连接。 引入的唯一特定于任务的参数是一个向量,它与 [CLS] 词符表示 C 的点积表示每个选项的得分,并使用 softmax 层对其进行归一化。

我们对模型进行了 3个 epoch的微调,学习率为 2e-5,批处理大小为 16。 结果显示在表 4 中。 BERTLARGE 比作者的基准 ESIM + ELMo 系统高出 +27.1%,比 OpenAI GPT 高出 8.3%。

系统开发集测试集
ESIM+GloVe 51.952.7
ESIM+ELMo 59.159.2
OpenAI GPT - 78.0
BERTBASE 81.6 -
BERTLARGE 86.686.3
人类(专家) - 85.0
人类(5 个标注) - 88.0
表4:SWAG 开发集和测试集准确率。 在 SWAG 论文的报告中,人类的表现是用 100 个样本测量的。

5 细分研究

在本节中,我们将对 BERT 的多个方面进行细分实验,以更好地了解它们的相对重要性。 其它细分研究可在附录 C 中找到。

5.1 预训练任务的效果

我们通过使用与 BERTBASE 完全相同的预训练数据、微调方案和超参数来评估两个预训练目标,证明了 BERT 深度双向性的重要性。
No NSP:使用 "屏蔽 LM"(MLM)训练的双向模型,但没有 "下一句预测"(NSP)任务。
LTR & No NSP:一个仅有左侧上下文的模型,它是用标准的从左到右(LTR)LM,而不是 MLM 训练。
左约束也应用于微调,因为删除它会引入预训练/微调不匹配,从而降低下游性能。 此外,该模型无需NSP任务即可进行预训练。 这可以直接与OpenAI GPT相提并论,但要使用更大的训练数据集,输入表示形式和微调方案。

开发集
任务MNLI-mQNLIMRPCSST-2SQuAD
(Acc)(Acc)(Acc)(Acc) (F1)
BERTBASE 84.4 88.4 86.7 92.7 88.5
No NSP 83.9 84.9 86.5 92.6 87.9
LTR & No NSP 82.1 84.3 77.5 92.1 77.8
+ BiLSTM 82.1 84.1 75.7 91.6 84.9
表5:使用 BERTBASE 架构细分预训练任务。 “No NSP”使用没有下一个句子预测任务进行训练。 “LTR & No NSP”以从左到右的 LM 训练,没有下一个句子预测,和 OpenAI GPT 一样。 在微调期间,“+ BiLSTM”在“LTR + No NSP”模型的顶部添加一个随机初始化的 BiLSTM。

我们首先研究 NSP 任务带来的影响。 在表 5 中,我们显示删除 NSP 会严重损害 QNLI、MNLI 和 SQuAD 1.1 的性能。 接下来,我们通过比较“No NSP”与“LTR & No NSP”来评估训练双向表示的影响。 在所有任务上,LTR 模型的性能都比 MLM 模型差,而 MRPC 和 SQuAD 的性能下降很大。

对于 SQuAD,直观上很清楚,因为词符级别的隐藏状态没有右侧上下文,所以LTR 模型在词符预测时的性能会很差。 为了使 LTR 系统得到加强,我们在上面添加了一个随机初始化的 BiLSTM。 这确实可以显着改善 SQuAD 上的结果,但结果仍然比预训练的双向模型的结果差很多。 BiLSTM 损害了 GLUE 任务的性能。

我们认识到,也有可能像 ELMo 一样训练单独的 LTR 和 RTL 模型并将每个词符表示为两个模型的连接。 但是:(a)代价是单个双向模型的两倍;(b)对于 QA 这样的任务,这是不直观的,因为 RTL 模型将无法确定问题的答案;(c)这绝对不像深度双向模型那么强大,因为它可以在每一层使用左右上下文。

5.2 模型大小的影响

在本节中,我们探索模型大小对微调任务准确性的影响。 我们训练了许多具有不同层数,隐藏单元和注意头的BERT模型,而其他方面则使用了与之前所述相同的超参数和训练过程。

6中显示了选定的GLUE任务的结果。 在此表中,我们报告了5次随机微调重新启动后的平均Dev Set精度。 我们可以看到较大的模型使得所有四个数据集的准确性提高,即使对于只有 3,600 个带标签的训练样本且与预训练任务大不相同的 MRPC 也是一样。 我们能够在相对于现有文献而言已经相当大的模型的基础上实现如此显着的改进,这也许也令人惊讶。 例如,在 Vaswani 等人 2017)(L = 6、H = 1024、A = 16)参数为 100M 的编码器,我们在文献中找到的最大 Transformer 是(L = 64、H = 512、A = 2)具有 235M 个参数(Al-Rfou 等人,2018)。 相比之下,BERTBASE 包含 110M 参数,而 BERTLARGE 包含 340M 参数。

超参数
开发集准确率
#L #H#ALM(ppl)MNLI-mMRPCSST-2
 3 76812 5.84 77.9 79.8 88.4
6 768 3 5.24 80.6 82.2 90.7
6 76812 4.68 81.9 84.8 91.3
12 76812 3.99 84.4 86.7 92.9
12102416 3.54 85.7 86.9 93.3
24102416 3.23 86.6 87.8 93.7
表6: BERT 模型大小的分解。 #L = 层数;#H = 隐藏大小; #A = 注意头的数量。 “ LM(ppl)”是保留的训练数据的屏蔽 LM 困惑度。

众所周知,增加模型大小将导致大规模任务如机器翻译和语言建模的不断改进,表 6 所示的 LM 对持有的训练数据的迷惑性就证明了这一点。 但是,我们认为,这是第一个有说服力的工作,证明只要模型已经过充分的预训练,将模型缩放到极端的模型大小也可以在非常小的规模的任务上带来很大的改进。 Peters 等人 2018b)公开了将预训练的 bi-LM 大小从两层增加到四层在下游任务上的混合结果以及 Melamud 等人 2016)顺便提到了将隐藏大小从 200 增加到 600 有帮助,但进一步增加到 1000 并没有带来进一步的改进。 这两个先前的工作都使用基于特征的方法-我们假设当直接在下游任务上微调模型并且仅使用很少数量的随机初始化的附加参数时,特定于任务的模型可以从较大的模型中受益,即使下游任务数据非常小,也可以提供更具表现力的预训练表示形式。

5.3 基于特征的 BERT 方法

到目前为止,所有提出的 BERT 结果都使用微调方法,即在预训练模型中添加一个简单的分类层,在下游任务上对所有参数进行共同微调。 但是,基于特征的方法,即从预训练的模型中提取固定的特征,也有一定的优势。 首先,并非所有任务都可以由 Transformer 编码器结构轻松表示,因此需要添加特定于任务的模型结构。 其次,预计算一次训练数据的昂贵表示,然后在这个表示之上用更便宜的模型运行许多实验,有很大的计算优势。

在本节中,我们通过将 BERT 应用于 CoNLL-2003 命名实体识别(NER)任务(Tjong Kim Sang 和 De Meulder,2003)来比较这两种方法。 在 BERT 的输入中,我们使用一个大小写保留的 WordPiece 模型,并且最大程度包含数据提供的文档上下文。 按照标准惯例,我们将其公式化为标记任务,但在输出中不使用 CRF 层。 我们使用第一个子词符的表示作为 NER 标签集上词符级分类器的输入。

为了详细分解研究微调方法,我们应用基于特征的方法,在没有 微调 BERT 任何参数的情况下,提取一个或多个层的激活。 这些上下文嵌入用作分类层之前的随机初始化的两层 768 维 BiLSTM 的输入。

结果显示在表 7 中。 BERT LARGE与最先进的方法相比具有竞争力。 表现最好的方法将来自预训练的 Transformer 的顶部四个隐藏层的词符表示连接起来,这仅比微调整个模型低 0.3 F1。 这表明 BERT 对于微调和基于特征的方法均有效。

系统开发集 F1测试集 F1
ELMo (Peters 等人 2018a 95.7 92.2
CVT (Clark 等人 2018 - 92.6
CSE (Akbik 等人 2018 - 93.1
微调方法
BERTLARGE 96.6 92.8
BERTBASE 96.4 92.4
基于特征的方法 (BERTBASE)
嵌入层 91.0 -
倒数第二个隐藏层 95.6 -
最后的隐藏层 94.9 -
最近四个隐藏层的加权总和 95.9 -
最后四个隐藏层的连接 96.1 -
所有 12 层的加权总和 95.5 -
表7:CoNLL-2003 命名实体识别结果。 超参数的选择使用开发集。 报告的开发集和测试集得分是用这些超参数在 5 次随机重启后的平均值。

6 结论

最近由于语言模型的迁移学习经验所带来的改进表明,丰富的、无监督的预训练是许多语言理解系统中不可或缺的一部分。 尤其是,这些结果使即使是资源很少的任务也可以从深度单向结构中受益。 我们的主要贡献是将这些发现进一步推广到更深的双向 体系结构中,从而使相同的预训练模型能够成功解决各种 NLP 任务。

参考文献

   Alan Akbik, Duncan Blythe, and Roland Vollgraf. 2018. Contextual string embeddings for sequence labeling. In Proceedings of the 27th International Conference on Computational Linguistics, pages 1638–1649.

   Rami Al-Rfou, Dokook Choe, Noah Constant, Mandy Guo, and Llion Jones. 2018. Character-level language modeling with deeper self-attention. arXiv preprint arXiv:1808.04444.

   Rie Kubota Ando and Tong Zhang. 2005. A framework for learning predictive structures from multiple tasks and unlabeled data. Journal of Machine Learning Research, 6(Nov):1817–1853.

   Luisa Bentivogli, Bernardo Magnini, Ido Dagan, Hoa Trang Dang, and Danilo Giampiccolo. 2009. The fifth PASCAL recognizing textual entailment challenge. In TAC. NIST.

   John Blitzer, Ryan McDonald, and Fernando Pereira. 2006. Domain adaptation with structural correspondence learning. In Proceedings of the 2006 conference on empirical methods in natural language processing, pages 120–128. Association for Computational Linguistics.

   Samuel R. Bowman, Gabor Angeli, Christopher Potts, and Christopher D. Manning. 2015. A large annotated corpus for learning natural language inference. In EMNLP. Association for Computational Linguistics.

   Peter F Brown, Peter V Desouza, Robert L Mercer, Vincent J Della Pietra, and Jenifer C Lai. 1992. Class-based n-gram models of natural language. Computational linguistics, 18(4):467–479.

   Daniel Cer, Mona Diab, Eneko Agirre, Inigo Lopez-Gazpio, and Lucia Specia. 2017. Semeval-2017 task 1: Semantic textual similarity multilingual and crosslingual focused evaluation. In Proceedings of the 11th International Workshop on Semantic Evaluation (SemEval-2017), pages 1–14, Vancouver, Canada. Association for Computational Linguistics.

   Ciprian Chelba, Tomas Mikolov, Mike Schuster, Qi Ge, Thorsten Brants, Phillipp Koehn, and Tony Robinson. 2013. One billion word benchmark for measuring progress in statistical language modeling. arXiv preprint arXiv:1312.3005.

   Z. Chen, H. Zhang, X. Zhang, and L. Zhao. 2018. Quora question pairs.

   Christopher Clark and Matt Gardner. 2018. Simple and effective multi-paragraph reading comprehension. In ACL.

   Kevin Clark, Minh-Thang Luong, Christopher D Manning, and Quoc Le. 2018. Semi-supervised sequence modeling with cross-view training. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing, pages 1914–1925.

   Ronan Collobert and Jason Weston. 2008. A unified architecture for natural language processing: Deep neural networks with multitask learning. In Proceedings of the 25th international conference on Machine learning, pages 160–167. ACM.

   Alexis Conneau, Douwe Kiela, Holger Schwenk, Loïc Barrault, and Antoine Bordes. 2017. Supervised learning of universal sentence representations from natural language inference data. In Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing, pages 670–680, Copenhagen, Denmark. Association for Computational Linguistics.

   Andrew M Dai and Quoc V Le. 2015. Semi-supervised sequence learning. In Advances in neural information processing systems, pages 3079–3087.

   J. Deng, W. Dong, R. Socher, L.-J. Li, K. Li, and L. Fei-Fei. 2009. ImageNet: A Large-Scale Hierarchical Image Database. In CVPR09.

   William B Dolan and Chris Brockett. 2005. Automatically constructing a corpus of sentential paraphrases. In Proceedings of the Third International Workshop on Paraphrasing (IWP2005).

   William Fedus, Ian Goodfellow, and Andrew M Dai. 2018. Maskgan: Better text generation via filling in the_. arXiv preprint arXiv:1801.07736.

   Dan Hendrycks and Kevin Gimpel. 2016. Bridging nonlinearities and stochastic regularizers with gaussian error linear units. CoRR, abs/1606.08415.

   Felix Hill, Kyunghyun Cho, and Anna Korhonen. 2016. Learning distributed representations of sentences from unlabelled data. In Proceedings of the 2016 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. Association for Computational Linguistics.

   Jeremy Howard and Sebastian Ruder. 2018. Universal language model fine-tuning for text classification. In ACL. Association for Computational Linguistics.

   Minghao Hu, Yuxing Peng, Zhen Huang, Xipeng Qiu, Furu Wei, and Ming Zhou. 2018. Reinforced mnemonic reader for machine reading comprehension. In IJCAI.

   Yacine Jernite, Samuel R. Bowman, and David Sontag. 2017. Discourse-based objectives for fast unsupervised sentence representation learning. CoRR, abs/1705.00557.

   Mandar Joshi, Eunsol Choi, Daniel S Weld, and Luke Zettlemoyer. 2017. Triviaqa: A large scale distantly supervised challenge dataset for reading comprehension. In ACL.

   Ryan Kiros, Yukun Zhu, Ruslan R Salakhutdinov, Richard Zemel, Raquel Urtasun, Antonio Torralba, and Sanja Fidler. 2015. Skip-thought vectors. In Advances in neural information processing systems, pages 3294–3302.

   Quoc Le and Tomas Mikolov. 2014. Distributed representations of sentences and documents. In International Conference on Machine Learning, pages 1188–1196.

   Hector J Levesque, Ernest Davis, and Leora Morgenstern. 2011. The winograd schema challenge. In Aaai spring symposium: Logical formalizations of commonsense reasoning, volume 46, page 47.

   Lajanugen Logeswaran and Honglak Lee. 2018. An efficient framework for learning sentence representations. In International Conference on Learning Representations.

   Bryan McCann, James Bradbury, Caiming Xiong, and Richard Socher. 2017. Learned in translation: Contextualized word vectors. In NIPS.

   Oren Melamud, Jacob Goldberger, and Ido Dagan. 2016. context2vec: Learning generic context embedding with bidirectional LSTM. In CoNLL.

   Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S Corrado, and Jeff Dean. 2013. Distributed representations of words and phrases and their compositionality. In Advances in Neural Information Processing Systems 26, pages 3111–3119. Curran Associates, Inc.

   Andriy Mnih and Geoffrey E Hinton. 2009. A scalable hierarchical distributed language model. In D. Koller, D. Schuurmans, Y. Bengio, and L. Bottou, editors, Advances in Neural Information Processing Systems 21, pages 1081–1088. Curran Associates, Inc.

   Ankur P Parikh, Oscar Täckström, Dipanjan Das, and Jakob Uszkoreit. 2016. A decomposable attention model for natural language inference. In EMNLP.

   Jeffrey Pennington, Richard Socher, and Christopher D. Manning. 2014. Glove: Global vectors for word representation. In Empirical Methods in Natural Language Processing (EMNLP), pages 1532–1543.

   Matthew Peters, Waleed Ammar, Chandra Bhagavatula, and Russell Power. 2017. Semi-supervised sequence tagging with bidirectional language models. In ACL.

   Matthew Peters, Mark Neumann, Mohit Iyyer, Matt Gardner, Christopher Clark, Kenton Lee, and Luke Zettlemoyer. 2018a. Deep contextualized word representations. In NAACL.

    Matthew Peters, Mark Neumann, Luke Zettlemoyer, and Wen-tau Yih. 2018b. Dissecting contextual word embeddings: Architecture and representation. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing, pages 1499–1509.

   Alec Radford, Karthik Narasimhan, Tim Salimans, and Ilya Sutskever. 2018. Improving language understanding with unsupervised learning. Technical report, OpenAI.

   Pranav Rajpurkar, Jian Zhang, Konstantin Lopyrev, and Percy Liang. 2016. Squad: 100,000+ questions for machine comprehension of text. In Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing, pages 2383–2392.

   Minjoon Seo, Aniruddha Kembhavi, Ali Farhadi, and Hannaneh Hajishirzi. 2017. Bidirectional attention flow for machine comprehension. In ICLR.

   Richard Socher, Alex Perelygin, Jean Wu, Jason Chuang, Christopher D Manning, Andrew Ng, and Christopher Potts. 2013. Recursive deep models for semantic compositionality over a sentiment treebank. In Proceedings of the 2013 conference on empirical methods in natural language processing, pages 1631–1642.

   Fu Sun, Linyang Li, Xipeng Qiu, and Yang Liu. 2018. U-net: Machine reading comprehension with unanswerable questions. arXiv preprint arXiv:1810.06638.

   Wilson L Taylor. 1953. “Cloze procedure”: A new tool for measuring readability. Journalism Bulletin, 30(4):415–433.

   Erik F Tjong Kim Sang and Fien De Meulder. 2003. Introduction to the conll-2003 shared task: Language-independent named entity recognition. In CoNLL.

   Joseph Turian, Lev Ratinov, and Yoshua Bengio. 2010. Word representations: A simple and general method for semi-supervised learning. In Proceedings of the 48th Annual Meeting of the Association for Computational Linguistics, ACL ’10, pages 384–394.

   Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Lukasz Kaiser, and Illia Polosukhin. 2017. Attention is all you need. In Advances in Neural Information Processing Systems, pages 6000–6010.

   Pascal Vincent, Hugo Larochelle, Yoshua Bengio, and Pierre-Antoine Manzagol. 2008. Extracting and composing robust features with denoising autoencoders. In Proceedings of the 25th international conference on Machine learning, pages 1096–1103. ACM.

   Alex Wang, Amanpreet Singh, Julian Michael, Felix Hill, Omer Levy, and Samuel Bowman. 2018a。 Glue: A multi-task benchmark and analysis platform for natural language understanding. In Proceedings of the 2018 EMNLP Workshop BlackboxNLP: Analyzing and Interpreting Neural Networks for NLP, pages 353–355.

   Wei Wang, Ming Yan, and Chen Wu. 2018b. Multi-granularity hierarchical attention fusion networks for reading comprehension and question answering. In Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). Association for Computational Linguistics.

   Alex Warstadt, Amanpreet Singh, and Samuel R Bowman. 2018. Neural network acceptability judgments. arXiv preprint arXiv:1805.12471.

   Adina Williams, Nikita Nangia, and Samuel R Bowman. 2018. A broad-coverage challenge corpus for sentence understanding through inference. In NAACL.

   Yonghui Wu, Mike Schuster, Zhifeng Chen, Quoc V Le, Mohammad Norouzi, Wolfgang Macherey, Maxim Krikun, Yuan Cao, Qin Gao, Klaus Macherey, et al. 2016. Google’s neural machine translation system: Bridging the gap between human and machine translation. arXiv preprint arXiv:1609.08144.

   Jason Yosinski, Jeff Clune, Yoshua Bengio, and Hod Lipson. 2014. How transferable are features in deep neural networks? In Advances in neural information processing systems, pages 3320–3328.

   Adams Wei Yu, David Dohan, Minh-Thang Luong, Rui Zhao, Kai Chen, Mohammad Norouzi, and Quoc V Le. 2018. QANet: Combining local convolution with global self-attention for reading comprehension. In ICLR.

   Rowan Zellers, Yonatan Bisk, Roy Schwartz, and Yejin Choi. 2018. Swag: A large-scale adversarial dataset for grounded commonsense inference. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing (EMNLP).

   Yukun Zhu, Ryan Kiros, Rich Zemel, Ruslan Salakhutdinov, Raquel Urtasun, Antonio Torralba, and Sanja Fidler. 2015. Aligning books and movies: Towards story-like visual explanations by watching movies and reading books. In Proceedings of the IEEE international conference on computer vision, pages 19–27.

“BERT:用于语言理解的深度双向 Transformer 预训练”的附录

我们将附录分为三个部分:

A BERT 的其它详细信息

PIC

图3:预训练模型结构的差异。 BERT 使用双向 Transformer。 OpenAI GPT使用从左到右的Transformer。 ELMo 连接独立训练的从左到右和从右到左的 LSTM 来生成用于下游任务的特征。 在这三者中,只有 BERT 表示是在所有层中左右上下文共同调节。 除了结构差异之外,BERT 和 OpenAI GPT 是微调方法,而 ELMo 是基于特征的方法。

A.1 预训练任务详解

我们在下面提供预训练任务的示例。

屏蔽 LM 和屏蔽过程 假设未标记的句子是 my dog is hairy,在随机屏蔽过程中我们选择了第 4 个词符(对应于 hairy),我们的屏蔽过程可以进一步说明为

此过程的优势在于,Transformer 编码器不知道将要求预测哪个单词,或者哪个单词已被随机单词替换,因此被迫保留每个 输入词符的上下文分布表示。 此外,由于随机替换仅发生在所有词符的 1.5%(即 15% 的 10%)中,因此这似乎并不损害模型的语言理解能力。 C.2 部分,我们评估了此过程的影响。

与标准语言模型训练相比,屏蔽 LM 仅对每批次中的 15% 词符进行预测,这表明模型可能需要更多的预训练步骤才能收敛。 在第 C.1 节中,我们展示了 MLM 的收敛速度比从左到右模型(预测每个词符)慢一些,但是 MLM 模型的实际改进效果远远超过增加的训练成本。

下一个句子预测下一个句子预测任务可以在以下示例中说明。

Input = [CLS] the man went to [MASK] store [SEP]
he bought a gallon [MASK] milk [SEP]
Label = IsNext
Input = [CLS] the man [MASK] to the store [SEP]
penguin [MASK] are flight ##less birds [SEP]
Label = NotNext

A.2 预训练过程

为了生成每个训练输入序列,我们从语料库中抽取两个范围的文本,我们将它们称为“句子”,即使它们通常比单个句子长得多(但也可以更短)。 第一句接收 A 嵌入,第二句接收 B 嵌入。 50% 的时间 B 是紧随 A 的实际下一个句子,而 50% 的时间是随机句子,这是为“下一句预测”完成的任务。 对它们进行采样以使得合并后的长度为 512 个词符。 LM 屏蔽在 WordPiece 词符化之后应用,屏蔽率统一为 15%,对不完整的单词没有特别考虑。

我们以批次大小为 256 个序列(256 个序列 * 512 个词符 = 128,000 个词符/批次)训练 1,000,000 步,在 33 亿个单词的语料库上大约是 40 个周期。 我们采用Adam,学习率为 1e-4, β1 = 0.9, β2 = 0.999, L2 权重衰减为 0.01,学习率在前 10000 步预热,学习率线性衰减。 我们在所有层上使用 0.1 的丢弃率。 我们依照 OpenAI GPT 使用 gelu 激活(Hendrycks 和 Gimpel,2016)而不是标准的 relu 训练损失是平均屏蔽 LM 似然性和平均下一个句子预测似然性之和。

BERTBASE 的训练在 4 个 Cloud TPU 上进行(总共 16 个 TPU 芯片)。13 BERTLARGE 的训练在 16 个 Cloud TPU 上进行(总共 64 个 TPU 芯片)。 每次预训练需要 4 天完成。

因为注意力与序列长度的平方成正比,较长的序列与代价不成比例。 为了加快实验的预处理速度,我们用 90% 的步骤对序列长度为 128 的模型进行预训练。 然后,我们用剩余的 10% 步骤训练长度为 512 的序列以学习位置嵌入。

A.3 微调过程

对于微调,大多数模型超参数与预训练中的相同,批次大小、学习率和训练周期数除外。 丢弃率始终保持在 0.1。 最佳超参数值是特定于任务的,但是我们发现以下可能的值范围对所有任务都适用:

我们还观察到,大型数据集(例如,带有100k +标记的训练示例)对超参数选择的敏感性远小于小型数据集。 微调通常非常快,因此简单地对上述参数进行详尽搜索并选择在开发集上表现最佳的模型是合理的。

A.4 BERT、ELMo 和 OpenAI GPT 的比较

这里我们研究最近流行的表示学习模型(包括 ELMo、OpenAI GPT 和 BERT)的差异。 3 直观地显示了模型结构之间的比较。 请注意,除了结构差异之外,BERT 和 OpenAI GPT 是微调方法,而 ELMo 是基于特征的方法。

现有的与BERT最可比的预训练方法是OpenAI GPT,它可以在大型文本语料库上训练从左到右的Transformer LM。 实际上,BERT 中的许多设计决策都是有意做出的,以使其尽可能接近 GPT,以便可以对两种方法进行最小化比较。 这项工作的核心论点是 3.1 中介绍的双向性和两个预训练任务是大多数实际改进的原因,但是我们确实注意到关于 BERT 和 GPT 如何训练还有其它一些区别:

为了分离这些差异的影响,我们在 5.1 节中进行分离实验,证明大部分的改进实际上是来自于这两个预训练任务和它们所实现的双向性。

A.5 不同任务上微调的图解

在图 4 中可以看到在不同任务上对 BERT 进行微调的详解。 我们的特定任务模型是通过将 BERT 与一个额外的输出层合并而形成的,因此需要从头开始学习最少的参数。 在任务中,(a)和(b)是序列级任务,而(c)和(d)是词符级任务。 在图中,E 表示输入嵌入,Ti 表示词符 i[CLS] 是用于分类输出的特殊符号,而 [SEP] 是用于分隔非连续词符序列的特殊符号。

PIC

图4:不同任务上对 BERT 进行微调的图解。

B 实验的详细设置

B.1 GLUE基准实验的详细说明。

1中的GLUE结果是从https://gluebenchmark.com/leaderboardhttps://blog.openai.com/language-unsupervised GLUE基准测试包括以下数据集,其描述最初归纳于以下内容: Wang 等人 2018a):

MNLI 多体裁自然语言推理是一个大规模、众包式的蕴含分类任务(Williams 等人,2018)。 给定一对句子,目标是预测第二个句子相对于第一个句子是蕴涵矛盾 还是中性

QQP Quora问题对是一种二元分类任务,其目的是确定在Quora上询问的两个问题在语义上是否等效(Chen等,2018)。

QNLI 问题自然语言推理是斯坦福问题回答数据集的一个版本(Rajpurkar 等人,2016)已转换为二元分类任务(Wang 等人,2018a)。 正样本是包含正确答案的 (question, sentence) 对,负样本是相同段落中没有包含答案的 (question, sentence) 对。

SST-2 Stanford Sentiment Treebank 是一个二元单句分类任务,由从电影评论中提取的句子组成,带有人工标注的情感(Socher 等人,2013)。

CoLA The Corpus of Linguistic Acceptability 是一个二元的单句分类任务,目的是预测英语句子在语言上是否“可接受” (Warstadt 等人,2018)。

STS-B 语义文本相似性基准是从新闻标题和其它来源提取的句子对的集合(Cer 等人,2017)。 它们用 1 到 5 分打分,表示这两个句子在语义上的相似程度。

MRPC Microsoft Research Paraphrase语料库由自动从在线新闻源中提取的句子对组成,并带有人工注释,说明句子中的句子在语义上是否等效(Dolan和Brockett,2005)。

RTE 识别文本蕴含是类似于 MNLI 的二元蕴含任务,但是训练数据少得多(Bentivogli 等人,2009年)。14

WNLI Winograd NLI是一个小的自然语言推理数据集(Levesque等,2011)。 GLUE 网页指出,此数据集 15 的构建存在问题,每个已提交给 GLUE 的系统预测准确率性能均低于 65.1 基线。 因此,我们排除此数据集对 OpenAI GPT 是公平的。 对于我们提交的 GLUE,我们总是预测到大多数的类。

C 其它细分研究

C.1 训练步骤数的影响

5 显示从预训练 k 步的检查点进行微调后的 MNLI 开发集精度。 这使我们能够回答以下问题:

PIC

图5:训练步数的细分研究。 这张图显示微调后的 MNLI 精度,从预先经过 k 步训练的模型参数开始。 x 轴是 k 的值。
1.
问:BERT 真的需要大量的预训练(128,000个单词/批次 * 1,000,000步)来实现很高的微调精度吗?
答案:是的,在 MNLI 上训练 1M 步比训练 500k 步的准确率几乎提升 1.0%。
2.
问题:MLM 预训练的收敛速度是否比 LTR 慢,因为在每个批次中仅预测 15% 的单词而不是所有单词?
答案:MLM 模型的收敛速度确实比 LTR 模型慢。
但是,就绝对精度而言,MLM 模型几乎立即开始胜过 LTR 模型。

C.2 不同屏蔽过程的细分研究

3.1 节中,我们提到 BERT 在使用屏蔽语言模型(MLM)目标进行预训练时使用混合策略来屏蔽目标词符。 以下是细分研究,以评估不同屏蔽策略的效果。

请注意,屏蔽策略的目的是减少预训练和微调之间的不匹配,因为 [MASK] 符号在微调阶段不会出现。 我们报告了 MNLI 和 NER 的开发集结果。 对于 NER,我们同时报告了微调方法和基于特征的方法,因为我们期望基于特征的方法的不一致会被放大,因为模型将没有机会调整表示形式。

屏蔽率
开发集结果
MaskSame Rnd MNLI
NER
微调微调基于特征
80% 10% 10% 84.2 95.4 94.9
100% 0% 0% 84.3 94.9 94.0
80% 0% 20% 84.1 95.2 94.6
80% 20% 0% 84.4 95.2 94.7
0% 20% 80% 83.7 94.8 94.6
0% 0%100% 83.6 94.9 94.6
表8: 不同屏蔽策略的分解。

结果显示在表 8 中。 在表中, Mask 表示我们将 MLM 的目标词符替换为 [MASK] 符号; Same 表示我们保持目标词符不变; Rnd 表示我们将目标词符替换为另一个随机词符。

表格左侧的数字表示在 MLM 预训练期间使用的特定策略的概率(BERT 使用80%、10%、10%)。 右侧部分代表开发集的结果。 对于基于特征的方法,我们将 BERT 的最后 4 层相连接为特征,这在 5.3 节中被证明是最好的方法。

从表中可以看出,微调对于不同的屏蔽策略具有惊人的鲁棒性。 但是,正如预期的那样,仅使用 Mask 策略在将基于特征的方法应用到 NER 时存在问题。 有趣的是,仅使用 Rnd 策略的效果也比我们的策略差很多。