BERT(一)--论文翻译:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

转载请注明出处:https://blog.csdn.net/nocml/article/details/124860490

传送门:
BERT(一)–论文翻译:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
BERT(二)–论文理解:BERT 模型结构详解

Transformer系列:
Transformer(一)–论文翻译:Attention Is All You Need 中文版
Transformer(二)–论文理解:transformer 结构详解
Transformer(三)–论文实现:transformer pytorch 代码实现

Abstract
摘要

  我们介绍了一个叫做BERT的模型,BERT是“Bidirectional Encoder Representations from Transformers”首字母的缩写。与最近的语言表征模型不同,BERT通过在每一层中连接左边(上文)和右边(下文)的内容而被设计成一个双向表征的深度预训练模型。这样做的结果是,预训练的BERT表征可以只添加一个输出层来进行微调,从而使很多任务达到SOTA的结果,例如QA,语言推断,无需针对特定任务进行模型结构的修改。

  BERT在概念上理解起来很简单,在实验中的表现也很强大。 它在11种自然语言处理任务上获得了新的SOTA结果,包括将GLUEbench-mark提高到80.4%(提高了7.6%),MultiNLI(多语型自然语言推理)的准确性提高到86.7%(提高了5.6%)。 SQuAD v1.1问题回答测试F1达到93.2(提高了1.5),比人工的表现高2个点。

1 Introduction(简介)

  预训练语言模型对改善许多自然语言处理任务非常有效(Dai and Le, 2015; Peters et al., 2017, 2018; Radford et al., 2018; Howard and Ruder, 2018) 。 这些任务包括句子级任务,例如自然语言推理(Bowman et al., 2015; Williams et al., 2018)和释义(原文:paraphrasing)(Dolan and Brockett, 2005),旨在通过整体分析来预测句子之间的关系,以及token-level的任务,例如命名实体识别(Tjong Kim Sang and De Meulder, 2003)和SQuAD问题解答(Rajpurkar et al., 2016),在这些任务中模型预测粒度比较细,如token级别的输出。

  现有两种将预训练语言表征应用于下游任务的策略:基于特征的方法和基于微调的方法。 基于特征的方法,例如ELMo(Peters等人,2018),使用特定于某个任务的架构,把预训练的向量表征作为特征添加进去。 基于微调(fine-tuning)方法,例如Generative Pre-trained Transformer(OpenAI GPT)(Radford et al., 2018)引入了最小的与任务相关的特定参数,并通在下游任务上对预训练的参数进行微调。 在先前的工作中,这两种方法在预训练期间都具有相同的目标,它们均使用单向语言模型来学习通用语言的表征。

  我们认为,当前的技术严重限制了预训练的表征能力,特别是对于微调方法。 主要的限制是标准语言模型是单向的,这限制了可以在预训练期间使用的体系结构的选择。 例如,在OpenAI GPT中,作者使用从左到右的体系结构,其中每个token只能在Transformer的self-attention中关注到当前步之前的token(Vaswani等人,2017)。 这样的限制对于句子级任务不是最理想的,在对token-level任务采用基于微调的方法(例如SQuAD问题回答)时可能会毁灭性的(Rajpurkar等人,2016)。 在这些任务中,迫切的需要从两个方向整合上下文。

  在本文中,我们通过提出BERT–来自Transformer的双向编码器表征法,来改进了基于微调的方法。 BERT通过提出 受完形填空任务启发的“屏蔽语言模型”(MLM)(Taylor, 1953)这个新的预训练目标 来解决前面提到的单向约束问题。 MLM从输入中随机屏蔽了某些token,目的是仅根据其上下文来预测屏蔽单词的原始词汇ID。 与从左到右的语言模型的预训练不同,MLM允许模型的表征融合左侧和右侧的上下文,这使得我们可以预训练深层的双向Transformer。 除了屏蔽语言模型之外,我们还引入了“下一个句子预测”任务,该任务参与了预训练中文本对(text-pair)表征的训练。

本文的贡献如下:

  • 我们证明了双向预训练对于语言表征的重要性。 与Radford等人不同。(2018),Radford等人使用单向语言模型进行预训练,BERT使用MLM来实现预训练的深度双向表征。 这也与Peters等人相反。 (2018),Peters等人使用的是经过独立训练的从左到右和从右到左的LMs的浅层连接。

  • 我们指出,经过预训练的表征形式 消除了 许多需要对特定任务精心设计体系结构的需求。 BERT是第一个基于fine-tuning 的表征模型,可在一系列sentence-level和token-level任务上得到SOTA的结果,其性能优于具有特定任务架构的许多系统。

  • BERT提高了11项NLP任务的最新SOTA。 我们还报告了BERT的大量消融研究(后文中的第五部分Ablation Studies),表明我们模型的双向性质是唯一最重要的新贡献。 代码和预训练模型将在goo.gl/language/bert.1上提供

2 Related Work(相关工作)

  通用的语言表征 预训练工作已有很长的历史,本节中我们将简要回顾最流行的一些方法。

2.1 Feature-based Approaches(基于特征的方法)

  几十年来,学习通用的单词表征法一直是学术界的活跃领域,包括非神经(Brown et al., 1992;Ando and Zhang, 2005; Blitzer et al., 2006)和神经(Collobert and Weston, 2008; Mikolov et al., 2013; Pennington et al., 2014)方法。 经过预训练的词嵌入被认为是现代NLP系统不可或缺的一部分,与从头开始学习的嵌入相比有显著改进(Turian et al., 2010)。

  这些方法已推广到较粗粒度(相对于词嵌入),例如句子嵌入(Kiros等人,2015; Logeswaran和Lee,2018)或段落嵌入(Le和Mikolov,2014)。 与传统的单词嵌入一样,这些学习的表征形式通常也用作下游模型中的特征。

  ELMo从一个不同的角度阐述了传统的词嵌入研究。 他们建议从语言模型中提取上下文相关的功能。 当将上下文词嵌入与现有的特定于任务的体系结构集成时,ELMo改进了几个主要的NLP任务(Peters等,2018)的最新技术,其中包括问题解答(Rajpurkar等,2016)。 在SQuAD上,进行情感分析(Socher等人,2013),和命名实体识别(Tjong Kim Sang和De Meulder,2003)。

2.2 Fine-tuning Approaches (微调方法)

  从语言模型(LMs)进行迁移学习的最新趋势是,在针对监督的下游任务微调相同模型之前,先在LM目标上预先训练一些模型架构(Dai and Le, 2015; Howard and Ruder, 2018; Radford et al., 2018)。 这些方法的优点是几乎不需要从头学习参数。 至少部分是由于这一优势,OpenAI GPT(Radford et al., 2018)在GLUE基准测试中在许多句子级任务上获得了之前的SOTA结果(Wang et al., 2018)。

2.3 Transfer Learning from Supervised Data(在有监督数据上的迁移学习)

  尽管无监督预训练的优势在于几乎可以无限量地使用数据,但也有工作表明可以从具有大型数据集的监督任务中进行有效转移,例如自然语言推理(Conneau et al。,2017)和机器翻译(McCann et al。,2017)。 在NLP之外,计算机视觉研究也证明了从大型预训练模型进行迁移学习的重要性,一个有效的方法是fine-tune在ImageNet上预训练的模型(Deng et al., 2009; Yosinski et al., 2014)。

3 BERT

  我们将在本节中介绍BERT及其详细实现。 我们首先介绍BERT的模型架构和输入信息。 然后,在第3.3节中介绍预训练任务,即本文的核心创新点。 预训练程序和微调程序分别在3.4和3.5节中详细介绍。 最后,在第3.6节中讨论了BERT与OpenAI GPT之间的区别。

3.1 Model Architecture(模型结构)

  BERT的模型架构是多层双向Transformer编码器,其基于Vaswani等人所描述的原始实现。并在tensor2tensor库中发布 (2017)。 2 ^2 2由于最近Transformers的使用可以说是无处不在,并且我们的实现与原始实现完全相同,因此我们将省略对模型结构的详细背景说明,并向读者介绍Vaswani等人。 以及一些出色的指导性文章(2017),例如“The Annotated Transformer” 3 ^3 3

在这里插入图片描述

  在这项工作中,我们将层(即Transformer模块)的数量表示为L,将隐藏层的大小表示为H,并将self-attention heads的数量表示为A。我们统一将前馈网络的大小设置为 4H,即当H = 768为FF的大小为3072,H = 1024时为4096。我们主要报告两种模型尺寸的结果:

  • BERT B A S E _{BASE} BASE: L=12, H=768, A=12, Total Pa- rameters=110M
  • BERT L A R G E _{LARGE} LARGE: L=24, H=1024, A=16, Total Parameters=340M

  为了方便比较,我们把BERT B A S E _{BASE} BASE设置为和GPT相同的大小。但是,BERT的Transformer是双向的self-attention,而GPT中的Transformer使用的self-attention有更多的限制,当前的token只能从它的前文获取信息。在文献中双向Transformer一般被称为“Transformer encoder”,而只能获取前文信息的‘left-context-only’版本的Transformer称为“Transformer decoder”,它可以被用来生成文本。BERT、OpenAI GPT和ELMo的对比在Figure1中给出。

3.2 Input Representation(输入表示)

  我们的输入表征能够清楚的用一个token序列表达一个文本或成对的句子(例如[question , answer]),对于给定的一个token,它的表征由相应的token相加得到,包括分句信息和位置信息。我们在Figure2中给出了图像示例。

在这里插入图片描述

The specifics are:

  • 我们使用WordPiece的词嵌入来做为词的表征,共包含30000个词。我们使用“##”来对词分片。

  • 我们使用了预先学习的位置编码,可以支持512长度的序列。

  • 每个序列的第一个token都是特殊的分类嵌入编码([CLS])。最后一层的隐藏状态(例如Transformer的输出)会与这个token有关,在分类任务中会使用这个token,此时它融合整个序列的信息。对于非分类的任务,这个向量就没用了,可以被忽略。

  • 句子对被封装进一个序列中。我们通过以下两种方法区分句子。一,我们使用一个特殊的token([SEP])来分隔两个句子。二,对应于第一个句子中的每个token,我们向其添加预先学习到的句子向量,这个句子向量的每个token都是A的embedding。同样的,对应于第二个句子中的每个token,我们向其添加预先学习到的句子向量,这个句子向量的每个token都是B的embeding。

  • 对于单个句子的输入,我们只使用包含A的embedding的句子向量。

3.3 Pre-training Tasks(预训练任务)

  与Peters、Radford等人不同,我们没有使用传统的从左到右或者从右到左的语言模型来预训练BERT。相反,我们使用了两个新颖的任务来进行预训练,这两个任务会在本节中描述。

3.3.1 Task 1: Masked LM(任务1:基于遮盖的语言模型)

  从直觉上讲,有理由相信,一个深度双向模型比 从左到右的模型 或者 双向浅层相连的模型要更加强大。不幸的是,标准的语言模型只能从左到右或从右到左训练,因为双向语言模型将允许每个单词在多层上下文中间接“看到自己”。

  为了训练一个深度的双向表征,我们采用了一个简单的方法,随机的屏蔽掉一定百分比的token,然后只预测这部分token。我们称此方法为“掩盖式语言模型(MLM)”,尽管在文献中通常将其称为“完形填空”任务(Taylor,1953)。在这种情况下,就像在标准语言模型中一样,最后的隐层向量中与被屏蔽的token相关的部分会通过softmax反馈到输出中。在我们所有的实验中,我们随机屏蔽了每个序列中的部分token,数量是所有WordPiece token的15%。与去噪自编码器不同(Vincent et al., 2008),我们只预测屏蔽掉的单词而不是预测所有的输入。

  尽管这使我们可以获得一个双向的预训练模型,但这个方法有两个缺点。缺点一,由于[MASK]这个token在fine-tuning过程中是不存在的,会使预训练任务和微调任务不相同。为了缓解这个问题,我们并不会一直使用[MASK]替换被屏蔽的token。相反的,训练数据的生成过程会随机的选择15%的token,例如:在“in the sentence my dog is hairy”这句话中我们随机选择了“hairy”,然后会执行下面的操作:

  • 数据生成器不会始终使用[MASK]来代替选择的单词,它会执行以下操作:
  • 80%的情况下:使用[MASK]替换随机选中的词,例如:my dog is hairy → my dog is [MASK]
  • 10%的情况下:随机选取个单词来替换选中的词,例如:my dog is hairy → my dog is apple
  • 10%的情况下:保持选中的词不变,例如:my dog is hairy → my dog is hairy,这样做的目的是使表征偏向实际观察到的单词。

  Transformer解码器不知道哪个单词会被预测也不知道哪个单词是被随机替换的,所以它强制保留了每个输入token的上下文分布表征。此外,因为随机替换的情况只有所有token的1.5%,这看起来不会损害模型的语言理解能力。

  使用MLM的第二个缺点是,每批次只预测了15%的token,这表明模型收敛可能需要更多的预训练步骤。在第5.3节中,我们证实了MLM的收敛速度比从左到右的模型慢,但是MLM模型的实验提升远远超过了增加的训练成本。

3.3.2 Task 2: Next Sentence Prediction (任务2:下一句预测)

  许多重要的下游任务,例如问答(QA)和自然语言推论(NLI),都是基于对两个文本句子之间关系的理解,而语言建模并不能直接捕获这些关系。为了训练一个能够理解句子关系的模型,我们预训练了一个预测下一个句子的二值化预测任务,这个任务可以使用任何单语语料库。具体而言,为每个预训练样本选择句子A和B时,50%的情况B是A的下一个句子,而50%情况B是来自语料库的随机句子。

举例:
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

  我们完全随机的选择NotNext句子,最终的预训练模型在此任务上达到97%-98%的准确率。 尽管这个任务很简单,但我们在5.1节中证明了完成此任务的预训练对QA和NLI都非常有益。

3.4 Pre-training Procedure(预训练方法)

  预训练过程很大程度上遵循了现有文献中有关语言模型预训练的方法。对于预训练语料库,我们把BooksCorpus(800M字)(Zhu等人,2015)与English Wikipedia(2,500M字)串联起来使用。对于Wikipedia,我们仅提取文本段落,而忽略列表、表格和标题。为了提取长的连续序列,使用文档级语料库至关重要,而不是诸如Billion Word Benchmark(Chelba等人,2013)之类的经过打乱顺序的句子级语料库。

  为了生成训练所需的每个输入序列,我们从语料库中抽取了两个跨度的文本,我们将它们称为“句子”,即使它们通常比单个句子长得多(但也可能更短)。第一个句子接收A嵌入,第二个句子接收B嵌入。50%的情况B确实是A的下一个句子,而50%的情况B是随机的句子,这是为“next sentence prediction”任务准备的。对它们进行采样,以使总长度≤512个token。LM掩蔽操作在WordPiece标记化之后应用,其统一掩蔽率为15%,并且没有对任何部的分单词特别考虑。

  我们以256个序列(256个序列* 512个令牌= 128,000个令牌/批)的批处理大小进行1,000,000步的训练,这大约是33亿个单词语料库的40个纪元。
  我们使用包含256个序列的batch(256 sequences * 512 tokens = 128,000 tokens/batch)训练了1,000,000步,这大约是在33亿个单词语料上训练40次迭代。我们使用Adam优化算法,学习速率为1e-4,β1= 0.9,β2= 0.999,L2权重衰减为0.01,我们对学习速率使用了预热的处理方法,在前10,000步迭代内进行预热,之后进行线性衰减。我们在所有层上使用的dropout probability为0.1。像OpenAI GPT一样,我们使用gelu激活函数(Hendrycks和Gimpel,2016)而不是标准relu激活函数。训练损失是 MLM似然损失的平均值与预测下个句子的似然损失的平均值 的和。

  BERT B A S E _{BASE} BASE模型的训练是在云端TPU上进行的,每个Pod上配置4块TPU(总共使用16块TPU),BERT L A R G E _{LARGE} LARGE的训练也是在云端TPU上进行的,但每个Pod上配置了16块TPU(总共使用64块)。

3.5 Fine-tuning Procedure (微调方法)

  对于序列级别的分类任务,BERT的微调很简单。为了获得一个能把输入序列中的信息集中起来且是固定维度的表征,我们把最后一层的隐藏状态(即Transformer的输出)的第一个token构造成相应的特殊字嵌入[CLS]。并把它做为分类的输入。我们将该向量表示为 C ∈ R H C\in \mathbb{R}^{H} CRH。在微调期间添加的唯一新参数是分类层 W ∈ R K × H W\in\mathbb{R}^{K\times H} WRK×H,其中K是分类器标签的数量。标签概率 P ∈ R K P\in \mathbb{R}^{K} PRK用标准softmax计算, P = s o f t m a x ( C W T ) P=softmax\left ( CW^{T} \right ) P=softmax(CWT)。 BERT的所有参数和W都经过最大化正确标签的对数概率来微调。对于跨度级和token级预测任务,必须根据任务的特定方式稍微修改上述过程。详情见第4节的相应小节。

  对微调来说,模型的超参数除了batch sizelearning rateepochs外,均与预训练中相同。dropout 的丢弃均设为0.1。最佳超参数值是特定于任务的,但我们发现以下一系列可能的值在所有任务中都适用:

  • Batch size: 16, 32
  • Learning rate (Adam): 5e-5, 3e-5, 2e-5
  • Number of epochs: 3, 4

  我们注意到,相对于小的数据集,大的数据集对超参的选择更不敏感。微调通常会很快,因此我们可以在开发集上对上面的所有的参数做一个全局搜索,选择表现最好的模型。

3.6 Comparison of BERT and OpenAI GPT (BERT与GPT的比较)

  现有的模型中最适合与BERT进行对比的是OpenAI的GPT模型,GPT模型在一个很大的文本语料上训练了一个基于Transformer的从左到右的语言模型。实际上,我们有意将BERT中的许多设计、决策 设计的和GPT中的尽量相近,以便可以对两种方法进行最小化差异的比较。这项工作的核心论点是,在第3.3节中介绍的两个新提出的预训练任务对过往任务的提升起了主要做用。但是我们确实注意到,BERT和GPT的训练方法之间还有其他一些区别:

  • GPT使用的训练语料是BooksCorpus(800万字);BERT的训练语料是BooksCorpus (800万字)和维基百科(2500万字)。

  • GPT使用句子分隔符([SEP])和分类token([CLS]),它们仅在微调时引入;BERT在预训练期间学习[SEP],[CLS]和句子A / B的嵌入。

  • GPT训练了1M步,一个batch中有32000字; BERT也训练了1M步,但一个batch包含128,000字。

  • GPT对所有微调实验都使用值为5e-5的学习率; BERT根据不同的任务选择不同的微调学习速率,该速率在开发集上表现最佳。

  为了排除这些差异带来的影响,我们在5.1节中进行了消融实验,该实验表明,大多数改进实际上来自于新的预训练任务。

4 Experiments(实验)

  在本节中,我们将介绍BERT模型在11个NLP任务上的微调结果。
在这里插入图片描述

Figure 3:我们的特定任务模型是通过将BERT与一个附加的输出层合并而形成的,因此只需要从头开始学习最少的参数。 在任务中,(a)和(b)是序列级任务,而(c)和(d)是token级任务。 在图中, E E E表示输入嵌入, T i T_i Ti表示token i _i i的上下文表示,[CLS]是用于分类输出的特殊符号,[SEP]是用于分隔非连续token序列的特殊符号。

4.1 GLUE Datasets(GLUE数据集)

  通用语言理解评估(GLUE)基准(Wang et al., 2018)是一个各种自然语言理解任务的集合。大多数GLUE数据集已经存在了很多年,但是GLUE的目的是(1)使用规范的方法来把数据集划分成Train,Dev和Test ,以及(2)设置评估服务器以缓解评估不一致的问题,以及测试集过拟合的问题。GLUE不会分发测试集的标签,用户必须将其预测结果上传到GLUE服务器以进行评估,但要限制提交的数量。

  GLUE基准测试包括以下列举的数据集,Wang等人对其进行了概述。 (2018):

MNLI (Multi-Genre Natural Language Inference)是一个大规模的、来源众多的、用来做蕴含分类任务的数据集, 目的就是推断两个句子是否是蕴含, 矛盾, 还是无关的。

QQP Quora Question Pairs是一个二元分类任务,目标是确定在Quora上询问的两个问题在语义上是否等效。

QNLI Question Natural Language Inference是Stanford Question Answering数据集(Rajpurkar et al., 2016)的一个版本,该数据集已转换为二分类任务(Wang等,2018)。 正例是(question, sentence)句对,正例句对包含正确的答案,负例是来自同一段落的(question, sentence)句对,不包含答案。

SST-2斯坦福情感树库是一个二分类的单句分类任务,由从电影评论中提取的句子,以及人工标注的情感标签组成。(Socher等人,2013)。

CoLA语言可接受语料库是一个二元单句分类任务,其目标是预测英语句子在语言上是否“可接受”(Warstadt et al., 2018))。

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

MRPC 微软研究院释义语料库由自动从在线新闻资源中提取的句子对组成,并带有说明句子对中的句子在语义上是否等效的人工标注信息(Dolan and Brockett, 2005)。

RTE 识别文本蕴含是一项类似于MNLI的二分类蕴含任务,但是训练数据少得多(Bentivogli et al., 2009)。

WNLI Winograd NLI是一个小型自然语言推理数据集,源自(Levesque et al., 2011)。 GLUE网页指出,此数据集的构建存在问题 7 ^7 7,已提交给GLUE的每个受过训练的系统的效果都比预测多数类的65.1基线准确性差。 因此,出于对OpenAI GPT不公平的考虑,我们将其排除在外。 对于我们的GLUE提交,我们始终会预测多数类。

4.1.1 GLUE Results(GLUE数据集上的结果)

在这里插入图片描述
  为了在GLUE上进行微调,我们按照第3节中描述的方法来表示输入序列或序列对,并使用与第一个输入标记([CLS])对应的最终隐藏向量 C ∈ R H C\in\mathbb{R}^{H} CRH对应作为聚合表征。这在图3(a)和(b)中得到了普遍的证明。在微调过程中引入的唯一新参数是分类层 W ∈ R K × H W\in\mathbb{R}^{K\times H} WRK×H,其中K是标签的数目。我们用C和W计算标准分类损失,即 l o g ( s o f t m a x ( C W T ) ) log(softmax(CW^T)) log(softmax(CWT))

  我们使用32和3个阶段的批处理大小覆盖所有粘合任务的数据。对于每一个任务,我们都进行了精细的调整,学习率分别为5e-5、4e-5、3e-5和2e-5,并选择了在开发集上表现最好的一个。另外,对于BERT L A R G E _{LARGE} LARGE,我们发现微调在小数据集上有时是不稳定的(即,某些运行会产生退化的结果),因此我们运行了几个随机重新启动,并选择了在开发集上表现最好的模型。对于随机重启,我们使用相同的预训练检查点,但执行不同的微调数据洗牌和分类器层初始化。我们注意到GLUE数据集分布不包括测试标签,并且我们只为每个BERT B A S E {BASE} BASE和BERT L A R G E {LARGE} LARGE提交了一个GLUE评估服务器。
  我们在GLUE数据集上的所有任务使用的batch size为32,epoch为3。我们对每一个任务都进行了微调,使用的学习速率分别为5e-5, 4e-5, 3e-5和 2e-5,并选择了在开发集上表现最好的模型。此外,对BERT L A R G E _{LARGE} LARGE模型来说,我们发现微调在小数据集上有时候是不稳定的(即,微调有时会产生更差的结果),所以我们进行了几次的随机重启操作,并选择在开发集上表现最好的模型。对于随机重启,我们使用相同的预训练检查点,但是我们对微调数据执行不同的数据打乱和分类层的初始化。我们注意到GLUE发布的数据集不包括测试集的标签,所以我们只能把BERT B A S E _{BASE} BASE和BERT L A R G E _{LARGE} LARGE的结果提交到GLUE的评估服务器。

  实验结果显示在table1中,BERT B A S E _{BASE} BASE和BERT L A R G E _{LARGE} LARGE在所有任务上的表现均优于所有现有系统,与SOTA结果相比,平均精度分别提高了4.4%和6.7%。 请注意,就注意力掩蔽之外的模型架构而言,BERT B A S E _{BASE} BASE和OpenAI GPT几乎是相同的。 对于最大且报告最广的GLUE任务MNLI,BERT比最先进的技术提高了4.7%的绝对精度。 在官方的GLUE排行榜上, 8 ^8 8BERT L A R G E _{LARGE} LARGE的得分为80.4,而OpenAI GPT的得分为72.8。

  我们发现,在所有任务中,尤其是训练数据很少的任务,BERT L A R G E _{LARGE} LARGE的性能明显优于BERT B A S E _{BASE} BASE。 模型大小的影响将在5.2节中更全面地探讨。

4.2 SQuAD v1.1 (SQuAD数据集)

  斯坦福大学问答数据集(SQuAD v1.1)收集了10万个众包问题/答案对(Rajpurkar et al., 2016)。 给定一个问题以及Wikipedia中包含答案的段落,任务是预测段落中包含答案的文本范围。举例:

  • Input Question:
    Where do water droplets collide with ice
    crystals to form precipitation?
  • Input Paragraph:
    … Precipitation forms as smaller droplets
    coalesce via collision with other rain drops
    or ice crystals within a cloud. …
  • Output Answer:
    within a cloud

  这种预测span的任务与GLUE的序列分类任务有很大的不同,但是我们能够使BERT以一个简单的方式在SQuAD数据上运行。像使用GLUE数据集一样,我们将输入的问题和段落封装进一个序列来表征,问题使用A嵌入,而段落使用B嵌入。在fine-tun阶段唯一需要学习的是一个起始向量 S ∈ R H S\in\mathbb{R}^H SRH和一个结束向量 E ∈ R H E\in\mathbb{R}^H ERH,我们把与第 i i i个输入字符相对应的BERT的最后一个隐层的向量定义为 T i ∈ R H T_i\in\mathbb{R}^H TiRH。相关的可视化信息,请看Figure 3的c图。然后, T i T_i Ti S S S的点积,通过 S o f t m a x Softmax Softmax(softmax的计算范围为当前段落内所有的字)后的值为第 i i i个词是answer span开始位置的概率。

P i = e S ⋅ T i Σ j e S ⋅ T j P_i = \frac{e^{S·T_i}}{\Sigma_{j}{e^{S·T_j}}} Pi=ΣjeSTjeSTi

answer span的结束位置的概率也使用相同的公式。得分最高的span做为预测的结果。训练目标是正确开始和结束位置的对数似然函数。

  我们使用5e-5的学习率,32的batch size训练了5轮。在推理时,由于结果位置的预测不是以开始位置为条件的,所以我们添加了结束必须在开始之后的约束,但没有使用其它的启发式的方法。处理过的已标记span会对齐到原始的为处理的输出上,以用来评估。

  结果在Table 2中展示。SQuAD使用非常严格的测试流程,提交者必须手动联系SQuAD组织者以在隐藏的测试集上运行他们的系统,因此我们仅提交了最佳的测试系统。 表格中显示的结果是我们向SQuAD提交的第一个也是唯一的测试。 我们注意到,来自SQuAD排行榜排名最高的结果没有可用的最新开源系统的描述,但可以在训练他们的系统时使用任何公共数据。 因此,通过联合在SQuAD和TriviaQA上进行训练,我们在提交的系统中使用了非常适度的数据扩增(Joshi等人,2017)。

  我们表现最好的系统在整体上比排名靠前的系统F1值高出1.5个百分点,BERT做为单一系统时,它的性能比排名靠前的系统的F1高出1.3个点。事实上,我们的单BERT模型在F1成绩方面优于顶级的集成系统。如果我们只在SQuAD语料上进行微调(不使用TriviaQA),我们的F1将损失0.1-0.4个点,但相比于现有系统,仍有很大的优势。

4.3 Named Entity Recognition (命名实体识别)

  为了评估token标注任务的表现,我们在CoNLL 2003 Named Entity Recognition (NER) 数据集上微调了BERT模型。这个数据集的训练集包含200000个词,这些词被标注为人名(Person)机构(Organization)地点(Location)混合类型(missaellaneous)Other(非命名实体)

  为了进行微调,我们把最后一层隐层向量的每个token( $T_i \in\mathbb{R}^H $) 输入到一个可以映射到NER标签集合的分类layer上。预测结果之间条件独立(即,非自回归,没有CRF)。为了与WordPiece相兼容,我们把CoNLL语料中已经tokenize过的数据再次输入到WordPiece中做tokenize,然后使用第一个子标记相对应的隐藏状态作为分类器的输入,例如:

Jim Hen ##son was a puppet ##eer I-PER I-PER X O O O X

X X X不会被预测。在训练和测试过程中,WordPiece处理后的边界对于输入来说是已知部分。 在图3(d)中也给出了可视化的展示。 区分大小写的WordPiece模型用于NER,而没有区分大小写的模型用于其他任务。
在这里插入图片描述

  结果如表3所示。在CoNLL-2003 NER测试集上,BERTLARGE在多任务的交叉可视训练上,表现优于现有的SOTA结果0.2个点。(Clark et al.,2018)。

在这里插入图片描述

4.4 SWAG(常识推理)

  SWAG 数据集包含11.3万句对,这些句对评估了基于常识的推理(Zellers等人,2018)。

  给定视频字幕数据集中的句子,任务是在四个备选答案中选择最合理的下文。 例如:

A girl is going across a set of monkey bars. She
(i) jumps up across the monkey bars.
(ii) struggles onto the bars to grab her head.
(iii) gets to the end stands on a wooden plank.
(iv) jumps up and does a back flip.

BERT在SWAG数据集上的修改与在GLUE数据集上时类似,举例,我们构造了4个输入序列,每个序列包含了给定的上文A,以及可能的下文B。只有一个向量 V ∈ R H V\in \mathbb{R^H} VRH 是任务特有的,它的点积 C i ∈ R H C_i \in\mathbb{R^H} CiRH是最终的聚合表征,代表了每个选项 i i i的得分。概率分布是基于这4个选项得分的softmax, 如下:
P i = e V ⋅ C i Σ j = 1 4 e V ⋅ C j P_i = \frac{e^{V·C_i}}{\Sigma_{j=1}^{4}{e^{V·C_j}}} Pi=Σj=14eVCjeVCi

我们使用lr = 2e-5batch size = 16epochs = 3 的参数对模型进行了微调。结果在表4中展示。 B E R T L A R G E BERT_{LARGE} BERTLARGE 的表现比 E S I M + E L M o ESIM+ELMo ESIM+ELMo的baseline高27.1个百分点。
在这里插入图片描述

5 Ablation Studies(消融实验)

  尽管我们展示了非常有实验基础的结果,但到目前为止,还没有独立的表明 B E R T BERT BERT框架的各个部分到底都有哪些特殊的贡献。在本章节中,我们通过 B E R T BERT BERT模型各部分的消融实验,来更好的了解它们的相对重要性。

5.1 Effect of Pre-training Tasks(预训练任务的影响)

  我们的核心观点之一是,与以前的工作相比,BERT中基于掩盖方式的、深度双向的语言模型的预训练实现,是BERT的最重要的改进。为了证明这个观点,我们评估了两个新模型,它们使用与 B E R T B A S E BERT_{BASE} BERTBASE完全相同的预训练数据,微调方案和Transformer超参数:

  1. No NSP(不使用NSP任务):

    A model which is trained using the “masked LM” (MLM) but without the “next sentence prediction” (NSP) task.
    模型只使用“Masked LM”进行训练,没用使用NSP任务。

  2. LTR & No NSP(LTR 及不使用NSP任务):

    使用从左到右(LTR)LM而不是MLM训练的模型。 在这种情况下,我们会预测每个输入的单词,并且不会应用任何屏蔽。 微调时也使用左侧约束,因为我们发现预训练时使用左侧约束,而微调时使用下上文两侧约束的结果总是很差。 此外,该模型的训练没有使用NSP任务。 这可以直接与OpenAI GPT相提并论,但要使用我们的更大的训练数据集,输入表示形式和微调方案。

  结果显示在表5中。我们首先检查NSP任务带来的影响。 我们可以看到,删除NSP任务会严重降低QNLI,MNLI和SQuAD任务上的表现。 这些结果表明,我们的NSP预训练方法对于获得前文提到的有力的实验结果至关重要。
在这里插入图片描述

  接下来,我们通过“不使用NSP任务”和“从左到右(LTR)训练及不使用NSP任务”来评估双向训练的影响。在所有的任务上,LTR的表现都比MLM差。尤其是在MRPCSQuAD两个任务上,表现下降的很大。对于SQuAD,直观上很清楚,由于令token级别的隐藏状态没有右侧的下文,因此LTR模型在跨度和token预测上的性能将非常差。对于MRPC来说,不清楚性能差是由于数据量小还是任务性质引起的,但是我们发现这种表现差在多次随机重启的完整超参数扫描中是一致的。为了得到真实的结果,我们尝试加强LTR系统,我们尝试在其上添加随机初始化的BiLSTM以进行微调。 这确实可以显著改善SQuAD上的结果,但结果仍然比预训练的双向模型差得多。 这也会降低所有四个GLUE任务的性能表现。

  我们认识到,像ELMo一样,也有可能训练单独的LTR和RTL模型并将每个token表示为两个模型的串联。 但是:(a)这个模型的代价是单个双向模型的两倍; (b)对于QA这样的任务,这是不直观的,因为RTL模型将无法确定问题的答案; (c)由于深度双向模型可以选择使用左上文或右下文,因此它从比较严谨的定义上讲不如深度双向模型强大。

5.2 Effect of Model Size(模型大小的影响)

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

  表6中显示了选定的GLUE任务的结果。在此表中,我们展示了在开发数据集上,5次随机初始化微调的平均准确性。我们可以看到,较大的模型在4个数据集上都有明确的提升,即使在与上游的预训练任务有较大区别的MRPC任务且样本量只有3600的训练集上也是如此。也许令人惊讶的是,我们能够在相对于现有文献而言已经足够大的模型的基础上实现如此重大的改进。例如,在Vaswani等人中探索的最大的Transformer模型。 (2017)是(L = 6,H = 1024,A = 16),编码器的参数为100M,而我们在文献中发现的最大的Transformer结构是(L = 64,H = 512,A = 2)并有235M参数(Al-Rfou et al。,2018)。相比之下, B E R T B A S E BERT_{BASE} BERTBASE包含110M参数,而 B E R T L A R G E BERT_{LARGE} BERTLARGE包含340M参数。
在这里插入图片描述

  多年以来,众所周知,增加模型大小可以持续的提高机器翻译和语言建模等大型任务的效果,表6中列出的在训练集上的语言模型困惑度也给出了相应证明。但是,我们认为这是第一个证明了对模型大小的极端缩放也可以在非常小规模的任务上带来很大的改进的工作,前提是模型已经过充分的预训练。

5.3 Effect of Number of Training Steps(训练步数的影响)

  图4展示了使用一个预训练了K次的模型进行微调后在MNLI任务上的开发准确度。这能为我们回答以下问题:

  1. 问题: B E R T BERT BERT真的需要如此大的预训练(128,000 words/batch * 1,000,000 steps) 来达到高微调准确度吗?
    回答:是的, B E R T L A R G E BERT_{LARGE} BERTLARGE 使用1M迭代比500k次迭代的准确度提高了1%。

  2. 问题:相比于LTR的每个batch预测所有字,MLM每个batch只有15%的数据会被预测,所以MLM 预训练的收敛速度是否比 LTR 预训练收敛速度慢?
    回答:MLM模型的收敛速度确实比LTR模型稍慢。 然而,就绝对精度而言,MLM模型几乎在训练一开始就优于LTR模型。

    在这里插入图片描述

5.4 Feature-based Approach with BERT(BERT中基于特征的方法)

  到目前为止,我们展示出的 B E R T BERT BERT的结果都是基于微调这个方法的。微调时会向模型添加一个用于分类的layer,所有的参数都会参与下游的微调任务。但是,从预训练模型中提取固定特征的方法是具有某些优势的。 首先,并非所有的NLP任务都可以通过Transformer编码器体系结构轻松表征,因此需要添加特定于任务的模型体系结构。 其次,使用高昂的代价在训练数据上预训练,得到训练集的表征,然后在此表征之上使用较低的成本运行许多模型实验,这具有重大的计算优势。

  在本节中,我们通过在 CoNLL-2003 NER 任务上生成类似 ELMo 的预训练上下文表征来评估BERT在基于特征的方法中的表现。 为此,我们使用与第 4.3 节中相同的输入表示,使用一个或多个layer激活,而无需微调BERT的任何参数。 这些上下文embedding用作分类层之前BiLSTM的输入,BiLSTM共有二层,均随机初始化。

  结果如表 7 所示。性能最好的方法是连接来自预训练Transformer的前四个隐藏层的token表征,基F1只比微调整个模型的的F1低0.3。 这表明 BERT 对于微调和基于特征的方法都是有效的。

在这里插入图片描述

6 Conclusion(结束语)

  最近,通过使用语言模型进行迁移学习,相关实验都得到了提升。证明,丰富的、无监督的预训练是许多语言理解系统不可或缺的一部分。 特别是,这些结果会使一些低资源的任务也能从深度单向架构中受益。 我们的主要贡献是将这些发现进一步推广到深度双向体系结构中,使相同的预训练模型能够成功处理一系列广泛的NLP任务。

  虽然实验结果很强,在某些情况下超过了人类的表现,但未来重要的工作是探索能被BERT捕获或不被捕获的语言现象

References

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

  2. 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.

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

  4. John Blitzer, Ryan McDonald, and Fernando Pereira. 2006. Domain adaptation with structural correspon- dence learning. In Proceedings of the 2006 confer- ence on empirical methods in natural language pro- cessing, pages 120–128. Association for Computa- tional Linguistics.

  5. Samuel R. Bowman, Gabor Angeli, Christopher Potts, and Christopher D. Manning. 2015. A large anno- tated corpus for learning natural language inference. In EMNLP. Association for Computational Linguis- tics.

  6. 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.

  7. Daniel Cer, Mona Diab, Eneko Agirre, Inigo Lopez- Gazpio, and Lucia Specia. 2017. Semeval-2017 task 1: Semantic textual similarity-multilingual and cross-lingual focused evaluation. arXiv preprint arXiv:1708.00055.

  8. Ciprian Chelba, Tomas Mikolov, Mike Schuster, Qi Ge, Thorsten Brants, Phillipp Koehn, and Tony Robin- son. 2013. One billion word benchmark for measur-ing progress in statistical language modeling. arXiv preprint arXiv:1312.3005.

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

  10. Kevin Clark, Minh-Thang Luong, Christopher D Man- ning, and Quoc V Le. 2018. Semi-supervised se- quence modeling with cross-view training. arXiv preprint arXiv:1809.08370.

  11. Ronan Collobert and Jason Weston. 2008. A unified architecture for natural language processing: Deep neural networks with multitask learning. In Pro- ceedings of the 25th International Conference on Machine Learning, ICML ’08.

  12. 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 Nat- ural Language Processing, pages 670–680, Copen- hagen, Denmark. Association for Computational Linguistics.

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

  14. 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.

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

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

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

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

  19. 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.

  20. Quoc Le and Tomas Mikolov. 2014. Distributed rep- resentations of sentences and documents. In Inter- national Conference on Machine Learning, pages 1188–1196.

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

  22. Lajanugen Logeswaran and Honglak Lee. 2018. An efficient framework for learning sentence represen- tations. In International Conference on Learning Representations.

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

  24. Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S Cor- rado, and Jeff Dean. 2013. Distributed representa- tions of words and phrases and their compositional- ity. In Advances in Neural Information Processing Systems 26, pages 3111–3119. Curran Associates, Inc.

  25. Jeffrey Pennington, Richard Socher, and Christo- pher D. Manning. 2014. Glove: Global vectors for word representation. In Empirical Methods in Nat- ural Language Processing (EMNLP), pages 1532– 1543.

  26. Matthew Peters, Waleed Ammar, Chandra Bhagavat- ula, and Russell Power. 2017. Semi-supervised se- quence tagging with bidirectional language models. In ACL.

  27. Matthew Peters, Mark Neumann, Mohit Iyyer, Matt Gardner, Christopher Clark, Kenton Lee, and Luke Zettlemoyer. 2018. Deep contextualized word rep- resentations. In NAACL.

  28. Alec Radford, Karthik Narasimhan, Tim Salimans, and Ilya Sutskever. 2018. Improving language under- standing with unsupervised learning. Technical re- port, OpenAI.

  29. Pranav Rajpurkar, Jian Zhang, Konstantin Lopyrev, and Percy Liang. 2016. Squad: 100,000+ questions for machine comprehension of text. arXiv preprint arXiv:1606.05250.

  30. 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 tree- bank. In Proceedings of the 2013 conference on empirical methods in natural language processing, pages 1631–1642.

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

  32. Erik F Tjong Kim Sang and Fien De Meulder. 2003. Introduction to the conll-2003 shared task: Language-independent named entity recognition. In Proceedings of the seventh conference on Natural language learning at HLT-NAACL 2003-Volume 4, pages 142–147. Association for Computational Lin- guistics.

  33. 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 Compu- tational Linguistics, ACL ’10, pages 384–394.

  34. 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 Pro- cessing Systems, pages 6000–6010.

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

  36. Alex Wang, Amapreet Singh, Julian Michael, Felix Hill, Omer Levy, and Samuel R Bowman. 2018. Glue: A multi-task benchmark and analysis platform for natural language understanding. arXiv preprint arXiv:1804.07461.

  37. A. Warstadt, A. Singh, and S. R. Bowman. 2018. Cor- pus of linguistic acceptability.

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

  39. 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 ma- chine translation system: Bridging the gap between
    human and machine translation. arXiv:1609.08144.
    arXiv preprint

  40. Jason Yosinski, Jeff Clune, Yoshua Bengio, and Hod Lipson. 2014. How transferable are features in deep neuralnetworks? InAdvancesinneuralinformation processing systems, pages 3320–3328.

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

  42. Yukun Zhu, Ryan Kiros, Rich Zemel, Ruslan Salakhut- dinov, 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.

需要pdf的小伙伴可以留下邮箱,有时间我会发给你!

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值