【BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 论文略读】

BERT:Pre-training of Deep Bidirectional Transformers... 论文略读

  • INFORMATION
  • Abstract
  • 1 Introduction
  • 2 Related Work
    • 2.1 Unsupervised Feature-based Approaches
    • 2.2 Unsupervised Fine-tuning Approaches
    • 2.3 Transfer Learning from Supervised Data
  • 3 BERT
    • 3.1 Pre-training BERT
    • 3.2 Fine-tuning BERT
  • 4 Experiments
    • 4.1 GLUE
    • 4.2 SQuAD v1.1
    • 4.3 SQuAD v2.0
    • 4.4 SWAG
  • 5 Ablation Studies
    • 5.1 Effect of Pre-training Tasks
    • 5.2 Effect of Model Size
    • 5.3 Feature-based Approach with BERT
  • 6 Conclusion

INFORMATION

标题: BERT:用于语言理解的深度双向变换器的预训练
时间: 2019/5/24 NAACL
作者: Jacob Devlin Ming-Wei Chang Kenton Lee Kristina Toutanova
单位: Google AI Language
链接: https://arxiv.org/pdf/1810.04805.pdf

Abstract

我们引入了一种新的语言表示模型BERT,它代表了来自变压器的双向编码器表示。与最近的语言表征模型不同(Peters等人,2018a;Radford等人,2018),BERT的设计是通过对所有层的左右上下文联合条件作用,从无标签文本预训练深度双向表示。因此,只需增加一个输出层,就可以对预先训练的BERT模型进行微调,从而为广泛的任务(如回答问题和语言推理)创建最先进的模型,而无需对特定于任务的架构进行重大修改。

BERT概念简单,经验却很强大。它在11个自然语言处理任务上获得了最新的结果,包括将GLUE分数提高到80.5%(绝对提高7.7%),将多项语言准确度提高到86.7%(绝对提高4.6%),SQuAD v1.1问答F1到93.2(绝对提升1.5分),SQuAD v2.0测试F1到83.1(绝对提升5.1分)。

1 Introduction

语言模型预训练已经被证明能够有效地改善许多自然语言处理任务(Dai and Le,2015;Peters et al.,2018a;Radford et al.,2018;Howard and Ruder,2018)。 其中包括句子级任务,如自然语言推理(Bowman et al.,2015;Williams et al.,2018)和释义(Dolan and Brockett,2005),其目的是通过整体分析来预测句子之间的关系,以及标记级任务,如命名实体识别和问题回答,其中需要模型在标记级产生细粒度输出(Tjong Kim Sang and de Meulder,2003;Rajpurkar et al.,2016)。

将预先训练的语言表示应用于下游任务有两种现有的策略:基于特征和微调。 基于特征的方法,如Elmo(Peters et al.,2018a),使用特定于任务的架构,其中包括预先训练的表示作为附加特征。 微调方法,如生成式预训练变压器(OpenAI GPT)(Radford et al.,2018),引入了最小的任务特定参数,并通过简单地微调所有预训练参数来对下游任务进行训练。 在预训练过程中,这两种方法共享相同的目标函数,它们使用单向语言模型来学习通用的语言表征。

我们认为,目前的技术限制了预先训练的表征的能力,特别是对于微调方法。 主要的限制是标准语言模型是单向的,这限制了在预训练期间可以使用的体系结构的选择。 例如,在OpenAI GPT中,作者使用了left-toright架构,其中每个令牌只能在变压器的自我关注层中关注以前的令牌(Vaswani et al.,2017)。 这样的限制对于句子级任务来说是次优的,并且在将基于finetuning的方法应用于令牌级任务时可能是非常有害的,比如问题回答,在这些任务中,从两个方向结合上下文是至关重要的。

在本文中,我们改进了基于微调的方法,提出了BERT:来自变压器的双向编码器表示。 受完形填空任务(Taylor,1953)的启发,Bert使用了一个“蒙蔽语言模型”(MLM)的预训练目标来缓解前面提到的单向性限制。 掩码语言模型随机地从输入中掩码一些标记,目标是只根据掩码词的上下文来预测其原始词汇ID。 与Left-Toright语言模型预训练不同,MLM目标使表示能够融合左和右上下文,这允许我们预训练一个深度双向转换器。 除了掩蔽语言模型之外,我们还使用了一个“下一个句子预测”任务,它联合对文本对表示进行预训练。 本文的贡献如下:

  • 我们论证了双向预训练对语言表征的重要性。 不像拉德福德等人。 (2018)使用单向语言模型进行预训练,Bert使用屏蔽语言模型来实现预训练的深度双向表示。 这也与彼得斯等人形成对比。 (2018a),它使用独立训练的从左到右和从右到左LMS的浅级联。
  • 我们表明,预先训练的表示减少了对许多经过大量设计的特定于任务的体系结构的需求。 Bert是第一个基于Finetuning的表示模型,它在大量句子级和令牌级任务上实现了最先进的性能,优于许多特定于任务的体系结构。
  • 伯特提出了11个NLP任务的最新技术。 代码和预先训练的模型可以在https://github.com/google-research/bert上找到。

2 Related Work

一般语言表征的预训练有很长的历史,我们在本节中简要回顾最广泛使用的方法。

2.1 Unsupervised Feature-based Approaches

几十年来,学习广泛适用的词的表征一直是一个活跃的研究领域,包括非神经方法(Brown et al.,1992;Ando and Zhang,2005;Blitzer et al.,2006)和神经方法(Mikolov et al.,2013;Pennington et al.,2014)。 预训练的词嵌入是现代NLP系统的一个组成部分,与从头开始学习的嵌入相比有很大的改进(Turian et al.,2010)。 为了预先训练单词嵌入向量,使用了从左到右的语言建模目标(Mnih and Hinton,2009),以及在左右上下文中区分正确和不正确单词的目标(Mikolov et al.,2013)。

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

Elmo及其前身(Peters et al.,2017,2018a)将传统的词嵌入研究沿着不同的维度进行了概括。 它们从一个从左到右和从右到左的语言模型中提取上下文敏感的特性。 每个令牌的上下文表示是从左到右和从右到左表示的串联。 当将上下文词嵌入与现有的特定于任务的架构集成时,Elmo推进了几个主要NLP基准的技术现状(Peters et al.,2018a),包括问题回答(Rajpurkar et al.,2016)、情感分析(Socher et al.,2013)和命名实体识别(Tjong Kim Sang and de Meulder,2003)。 梅拉穆德等人。 (2016)提出通过使用LSTMS从左右上下文预测单个单词的任务来学习上下文表征。 与Elmo相似,他们的模型是基于特征的,不是双向的。 费杜斯等人。 (2018)表明完形填空任务可以用来提高文本生成模型的鲁棒性。

2.2 Unsupervised Fine-tuning Approaches

与基于特征的方法一样,第一种方法在这个方向上只从未标记的文本中预先训练单词嵌入参数(Collobert and Weston,2008)。

最近,生成上下文令牌表示的句子或文档编码器已经从未标记的文本中预先训练,并针对有监督的下游任务进行微调(Dai and Le,2015;Howard and Ruder,2018;Radford et al.,2018)。 这些方法的优点是很少参数需要从头开始学习。 至少部分由于这一优势,OpenAI GPT(Radford et al.,2018)在Glue Benchmark(Wang et al.,2018a)的许多SentenseVel任务上取得了以前最先进的结果。 从左到右的语言模型ING和自动编码器目标已经被用于这类模型的预训练(Howard and Ruder,2018;Radford et al.,2018;Dai and Le,2015)。

2.3 Transfer Learning from Supervised Data

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

3 BERT

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

【BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 论文略读】_第1张图片
图1:BERT的总体预培训和微调程序。 除了输出层之外,在预训练和微调中都使用相同的体系结构。 相同的预训练模型参数被用来为不同的下游任务初始化模型。 在微调期间,所有参数都被微调。 [CLS]是添加在每个输入示例前面的特殊符号,[SEP]是一个特殊的分隔符标记(例如,分隔问题/答案)。

Bert的一个显著特征是跨不同任务的统一架构。 在预先训练的体系结构和最终的下游体系结构之间有微小的差异。

模型架构 Bert的模型架构是基于Vaswani等人描述的原始实现的多层双向变压器编码器。 (2017)并在Tensor2Tensor Library.1中发布,因为变形金刚的使用已经变得很普遍,而且我们的实现与原始的几乎完全相同,所以我们将省略对模型架构的详尽背景描述,并将读者推荐给Vaswani等人。 (2017)以及《注释的变压器》等优秀指南。2

在本工作中,我们将层数(即变压器块)表示为L,隐藏大小表示为H,自注意头数表示为A.3。我们主要报告了两种模型大小:BertBase(L=12,H=768,A=12,总参数=110m)和BertLarge(L=24,H=1024,A=16,总参数=340m)的结果。

为了进行比较,BertBase被选择具有与OpenAI GPT相同的模型大小。 然而,关键的是,Bert转换器使用双向自注意力,而GPT转换器使用约束自注意力,其中每个令牌只能关注其左侧的上下文。 4

1https://github.com/tensorflow/tensor2tensor
2http://nlp.seas.harvard.edu/2018/04/03/attention.html
3In all cases we set the feed-forward/filter size to be 4H, i.e., 3072 for the H = 768 and 4096 for the H = 1024.
4We note that in the literature the bidirectional Trans-former is often referred to as a “Transformer encoder” while
the left-context-only version is referred to as a “Transformer decoder” since it can be used for text generation.

输入/输出表示 为了使Bert处理各种下游任务,我们的输入表示能够在一个令牌序列中毫不含糊地表示单个句子和一对句子(例如,可能的问题,答案)。 在这部著作中,一个“句子”可以是一个连续的文本的任意跨度,而不是一个实际的语言句子。 一个“序列”指的是对Bert的输入令牌序列,可以是单个句子,也可以是打包在一起的两个句子。

我们使用WordPiece Embeddings(Wu et al.,2016年),有30,000个令牌词汇表。 每个序列的第一个令牌总是一个特殊的分类令牌([CLS])。 与此令牌对应的最终隐藏状态被用作分类任务的聚合序列表示。 句子对被打包成一个单独的序列。 我们用两种方法区分这些句子。 首先,我们用一个特殊的令牌([SEP])将它们分开。 其次,我们在每个令牌上添加一个学习嵌入,表示它是属于语句A还是语句B。如图1所示,我们将输入嵌入表示为E,将特殊[CLS]令牌的最终隐藏向量表示为C∈RH,将第i个输入令牌的最终隐藏向量表示为TI∈RH。

对于给定的令牌,它的输入表示是通过对相应的令牌、段和位置嵌入求和来构造的。 这个结构的可视化可以在图2中看到。
【BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 论文略读】_第2张图片
图2:BERT输入表示。输入嵌入是令牌嵌入、分割嵌入和位置嵌入的总和。

3.1 Pre-training BERT

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

任务1:蒙面LM 从直观上来说,我们有理由相信一个深层次的双向模型严格来说比一个从左到右的模型或者一个从左到右和一个从右到左的模型的浅层串联更强大。不幸的是,标准的条件语言模型只能从左到右或从右到左训练,因为双向条件会让每个词间接地“看到自己”,而模型可以在多层语境中简单地预测目标词。

为了训练深度双向表示,我们只是随机地屏蔽了某些百分比的输入令牌,然后预测这些屏蔽令牌。我们将这个过程称为“蒙面LM”(MLM),尽管在文献中它经常被称为完形填空任务(Taylor, 1953)。在这种情况下,与掩码标记相对应的最终隐藏向量被输入到词汇表上的输出softmax中,就像在标准LM中一样。在我们所有的实验中,我们随机屏蔽了每个序列中15%的WordPiece标记。与去噪自动编码器相比(Vincent et al., 2008),我们只预测被屏蔽的单词,而不是重建整个输入。

尽管这允许我们获得一个双向的预训练模型,但缺点是我们正在创建预训练和微调之间的不匹配,因为[MASK]令牌在微调期间不会出现。为了减轻这个问题,我们并不总是用实际的[MASK]令牌来替换“被屏蔽”的单词。训练数据生成器随机选择令牌位置的15%进行预测。如果第i个令牌被选中,我们将第i个令牌替换为(1)80%的时间内的[MASK]令牌(2)10%的时间内的随机令牌(3)10%的时间内不变的第i个令牌。然后,利用Ti对具有交叉熵损失的原始令牌进行预测。我们在附录C.2中比较了这一程序的变化。

任务2:下一句预测(NSP) 许多重要的下游任务,如问答(Question answer, QA)和自然语言推理(Natural Language Inference, NLI),都是基于理解两个句子之间的关系,而这是语言建模无法直接捕捉到的。为了训练一个理解句子关系的模型,我们预先训练一个二值化的下一个句子预测任务,该任务可以从任何单语语料库中生成。具体来说,当为每个训练前的例子选择句子A和B时,50%的时间B是A后面的实际下一个句子(标记为IsNext), 50%的时间B是语料库中的随机句子(标记为NotNext)。如图1所示,C被用于下一个句子预测(NSP)尽管很简单,但我们在5.1节中证明了,针对该任务的预培训对QA和NLI都非常有益。6

5最终模型对NSP的精度达到97%-98%。
6向量C在没有微调的情况下不是一个有意义的句子表示,因为它是用NSP训练的。

NSP任务与Jernite等人(2017)和Logeswaran和Lee(2018)使用的表征学习目标密切相关。而在之前的工作中,只有句子嵌入被转移到下游任务中,在下游任务中,BERT将所有参数转移到初始化末端任务模型参数。

预训练数据 预训练程序在很大程度上遵循现有的语言模型预训练的文献。 对于预训练语料库,我们使用Bookscorpus(800m单词)(Zhu et al.,2015)和英语Wikipedia(2500m单词)。 对于Wikipedia,我们只提取文本段落,忽略列表、表和标题。 为了提取长的连续序列,使用文档级语料库而不是洗牌过的句子级语料库是至关重要的,比如十亿字基准(Chelba et al.,2013)。

3.2 Fine-tuning BERT

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

对于每个任务,我们只需将特定于TaskSpecific的输入和输出插入到Bert中,并对所有参数进行端到端的优化。 在输入端,预训练后的句子A和句子B类似于(1)释义中的句子对,(2)蕴涵中的假设-前提对,(3)问答中的问题-段落对,(4)文本分类或序列标注中的退化文本对。 在输出端,令牌表示被馈送到输出层用于令牌级任务,如序列标记或问题回答,而[CLS]表示被馈送到输出层用于分类,如蕴涵或情感分析。

与预训练相比,微调相对便宜。 从完全相同的预先训练的模型开始,在单个云TPU上最多可在1小时内复制论文中的所有结果,或在GPU上最多可在几小时内复制。7我们在第4节的相应小节中描述了特定于任务的细节。 更多详情见附录A.5。

4 Experiments

在本节中,我们给出11个NLP任务的Bert微调结果。

4.1 GLUE

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

为了对Glue进行微调,我们如第3节所述表示输入序列(对于单个句子或句子对),并使用对应于第一个输入令牌([CLS])的最终隐藏向量C∈RH作为聚合表示。 在微调过程中引入的唯一新参数是分类层权值w∈Rk×h,其中k是标签的数量。 我们用C和W计算一个标准的分类损失,即log(softmax(CWT))。

7例如,Bert Squad模型可以在一个云TPU上训练大约30分钟,以获得91.0%的DEV F1得分。
8见https://gluebenchmark.com/faq中的(10)。

我们使用一个批大小为32和微调3个时代的所有胶水任务的数据。 对于每个任务,我们在DEV集上选择最佳的微调学习率(在5e-5、4e-5、3e-5和2e-5中)。 此外,对于BertLarge,我们发现在小型数据集上Finetuning有时是不稳定的,所以我们运行了几次随机重启,并在开发集上选择了最好的模型。 对于随机重启,我们使用相同的预先训练的检查点,但执行不同的微调数据洗牌和分类器层初始化。9

结果见表1。 BertBase和BertLarge在所有任务上都比所有系统表现得更好,比现有技术分别获得4.5%和7.0%的平均精度提高。 请注意,BertBase和OpenAI GPT在模型架构方面几乎是相同的,除了注意力屏蔽之外。 对于规模最大、报道最广泛的胶水任务MNLI,BERT获得了4.6%的绝对精确度改进。 在官方Glue LeaderBoard10上,BertLarge获得了80.5分,而OpenAI GPT在撰写本文时获得了72.8分。

【BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 论文略读】_第3张图片
表1:胶水测试结果,由评估服务器(https://gluebenchmark.com/leaderboard)评分。 每个任务下面的数字表示训练示例的数量。 “平均”列与官方的Glue得分略有不同,因为我们排除了有问题的WNLI集。8 Bert和OpenAI GPT是单模单任务的。 在QQP和MRPC中报告F1评分,在STS-B中报告Spearman相关,在其他任务中报告准确性评分。 我们排除使用Bert作为组件之一的条目。

我们发现BertLarge在所有任务中都明显优于BertBase,尤其是那些训练数据很少的任务。 模型尺寸的影响在5.2节中有更深入的探讨。

4.2 SQuAD v1.1

斯坦福问答数据集(Squad V1.1)是10万个众包问题/答案对的集合(Rajpurkar et al.,2016)。 给定一个问题和维基百科中包含答案的段落,任务是预测段落中答案的文本跨度。

如图1所示,在问答任务中,我们将输入的问题和段落表示为单个打包序列,问题使用A嵌入,段落使用B嵌入。 在微调过程中,我们只引入一个开始向量S∈RH和一个结束向量E∈RH。 单词i是答案跨度开始的概率计算为ti和s之间的点积,然后是段落中所有单词的softmax:pi=es·ti j es·tj。 答案跨度的结束使用了类似的公式。 从位置I到位置J的一个候选跨度的得分定义为S·Ti+E·TJ,以J≥I的最大得分跨度作为预测。 训练目标是正确开始和结束位置的对数似然之和。 我们微调了3个周期,学习速率为5e-5,批量为32。

表2显示了顶级排行榜条目以及顶级发布系统的结果(Seo et al.,2017;Clark and Gardner,2018;Peters et al.,2018a;Hu et al.,2018)。 小组排行榜的最高结果没有最新的公共系统描述,11并且允许在训练他们的系统时使用任何公共数据。 因此,我们通过对Triviaqa(Joshi et al.,2017)BEFOR对Squad进行微调,在我们的系统中使用适度的数据增强。

我们最好的表现系统优于顶级排行榜系统+1.5F1,作为一个单一系统+1.3F1。 事实上,我们的单一伯特模型在F1评分方面胜过顶级集成系统。 如果没有TriviaQA微调数据,我们只损失0.1-0.4F1,仍然远远超过所有现有系统。12

9GLUE数据集分布不包括测试标签,我们只为BertBase和BertLarge中的每一个提交了一个GLUE评估服务器。 10https://gluebenchmark.com/leaderboard
11QANET在Yu等人中有描述。 (2018年),但该制度在公布后有了实质性改善。

4.3 SQuAD v2.0

Squad2.0任务扩展了Squad1.1问题定义,允许在提供的段落中不存在简短答案的可能性,使问题更加现实。

我们使用一种简单的方法来扩展Squad V1.1 Bert模型来完成此任务。 我们将没有答案的问题视为在[cls]标记处有一个开始和结束的答案跨度。 开始和结束应答跨度位置的概率空间被扩展为包括[CLS]令牌的位置。 为了进行预测,我们将无答案跨度的得分:Snull=S·C+E·C与最佳非零跨度的得分Si,J=maxj≥is·ti+E·tj进行了比较。 当si,j>snull+τ时,我们预测一个非空答案,其中在DEV集上选择阈值τ以最大化f1。 我们没有为这个模型使用TriviaQA数据。 我们微调了2个pepch,学习速率为5e-5,批量为48。

与以前的排行榜条目和顶级出版作品(Sun et al.,2018;Wang et al.,2018b)相比较的结果显示在表3中,不包括使用Bert作为其组成部分之一的系统。 我们观察到+5.1F1比以前最好的系统改进。

4.4 SWAG

对抗世代情境(SWAG)数据集包含113K句子对完成示例,用于评估基于常识的推理(Zellers et al.,2018)。 给定一个句子,任务是在四个选项中选择最可信的续句。

对抗世代情境(SWAG)数据集包含113K句子对完成示例,用于评估基于常识的推理(Zellers et al.,2018)。 给定一个句子,任务是在四个选项中选择最可信的续句。

我们对模型进行了3个周期的微调,学习速率为2e-5,批量为16。 结果见表4。 BertLarge比作者的基线eSIM+ELMO系统高出+27.1%,比OpenAI GPT高出8.3%。

【BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 论文略读】_第4张图片
【BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 论文略读】_第5张图片
【BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 论文略读】_第6张图片

5 Ablation Studies

在本节中,我们在BERT的许多方面进行烧蚀实验,以便更好地理解它们的相对重要性。 附加的消融研究可以在附录C中找到。

5.1 Effect of Pre-training Tasks

我们通过使用与BERTBASE完全相同的预训练数据、微调方案和超参数来评估两个预训练目标,从而证明了BERT深度双向性的重要性:

无NSP:一个双向模型,使用“掩蔽LM”(MLM)训练,但没有“下一句预测”(NSP)任务。

LTR&NO NSP:只使用左上下文的模型,它使用标准的从左到右(LTR)LM而不是MLM进行训练。 仅左约束也应用于微调,因为删除它会引入预训练/微调不匹配,从而降低下游性能。 此外,该模型是在没有NSP任务的情况下进行预训练的。 这直接与OpenAI GPT相媲美,但使用了我们更大的训练数据集、输入表示和微调方案。

我们首先考察NSP任务带来的影响。 在表5中,我们显示删除NSP会显著损害QNLI、MNLI和Squad1.1上的性能。 接下来,我们通过比较“无NSP”和“LTR&无NSP”来评估训练双向表征的影响。 LTR模型在所有任务上都比MLM模型表现更差,在MRPC和Squad上有很大的下降。

对于SQUAD来说,直觉上很清楚LTR模型在令牌预测方面的表现很差,因为令牌级隐藏状态没有右侧上下文。 为了加强LTR系统,我们在上面添加了一个随机初始化的BILSTM。 这确实显著地改善了小队的结果,但结果仍然比预训练的双向模型差得多。 BILSTM会损害胶水任务的性能。

我们认识到,也可以像ELMO那样,训练单独的LTR和RTL模型,并将每个令牌表示为两个模型的串联。 但是:(a)这比单一双向型号贵一倍; (b)这对于像QA这样的任务来说是不直观的,因为RTL模型不能对问题的答案进行条件化; ©严格来说,它不如深度双向模型强大,因为它可以在每一层使用左右上下文。

5.2 Effect of Model Size

在本节中,我们探讨模型大小对微调任务精度的影响。 我们用不同数量的层、隐藏单元和注意力头训练了许多Bert模型,同时使用了与前面描述的相同的超参数和训练过程。

选定胶水任务的结果如表6所示。 在此表中,我们报告了5次随机重新启动微调的平均DEV集精度。 我们可以看到,更大的模型会在所有四个数据集上带来严格的精度提高,即使对于只有3600个标记训练示例的MRPC来说,也是如此,并且与预训练任务有本质上的不同。 同样令人惊讶的是,我们能够在相对于现有文献而言已经相当大的模型之上实现如此重大的改进。 例如,瓦斯瓦尼等人探索的最大的变压器。 (2017)是(l=6,h=1024,a=16),编码器的参数为100m,我们在文献中发现的最大的变压器是(l=64,h=512,a=2),参数为235m(Al-RFou et al.,2018)。 相比之下,BertBase包含110M个参数,BertLarge包含340M个参数。

众所周知,增加模型大小将导致大规模任务的持续改进,如机器翻译和语言建模,表6所示的延迟训练数据的LM困惑就证明了这一点。 然而,我们认为,这是第一个令人信服地证明扩展到极端模型大小也会在非常小的规模任务上导致大的改进的工作,前提是模型已经得到充分的预先训练。 彼得斯等人。 (2018b)对将预训练的BI-LM尺寸从2层增加到4层的下游任务影响提出了混合结果,Melamud et al. (2016)顺便提到,将隐藏维度大小从200增加到600有所帮助,但进一步增加到1000并没有带来进一步的改善。 这两个先前的工作都使用了基于特征的方法–我们假设,当模型直接对下游任务进行微调,并且只使用非常少的随机初始化的附加参数时,即使下游任务数据非常少,任务特定的模型也可以从更大、更有表现力的预训练表示中受益。

5.3 Feature-based Approach with BERT

到目前为止,所有的BERT结果都使用了微调方法,其中一个简单的分类层被添加到预先训练的模型中,所有的参数在下游任务中联合微调。 而基于特征的方法,即从预先训练的模型中提取固定的特征,具有一定的优势。 首先,并不是所有的任务都可以很容易地用Transformer编码器体系结构来表示,因此需要添加特定于任务的模型体系结构。 其次,对训练数据的一个昂贵的表示进行一次预先计算,然后在这个表示的基础上用更便宜的模型运行许多实验,这在计算上有很大的好处。

【BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 论文略读】_第7张图片
【BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 论文略读】_第8张图片

在本节中,我们将Bert应用于CONLL-2003命名实体识别(NER)任务(Tjong Kim Sang and de Meulder,2003)来比较这两种方法。 在对BERT的输入中,我们使用了一个保留大小写的WordPiece模型,并且我们包含了数据提供的最大文档上下文。 按照标准做法,我们将其作为一个标记任务,但不在输出中使用CRF层。 我们使用第一个子令牌的表示作为NER标签集上令牌级分类器的输入。

为了消除微调方法,我们应用了基于特征的方法,通过从一个或多个层中提取激活,而不需要微调任何BERT参数。 这些上下文嵌入被用作在分类层之前随机初始化的两层768维BILSTM的输入。

结果见表7。 BertLarge使用最先进的方法进行竞争。 性能最好的方法是将预训练变压器前四个隐藏层的令牌表示连接起来,仅比微调整个模型落后0.3F1。 这证明了Bert对于Finetuning和基于特征的方法都是有效的。

6 Conclusion

语言模型迁移学习的最新经验改进表明,丰富的、无监督的预训练是许多语言理解系统的一个组成部分。 特别是,这些结果使即使是低资源任务也能从深层单向体系结构中受益。 我们的主要贡献是将这些发现进一步推广到深层双向体系结构,允许相同的预训练模型成功地处理一组广泛的NLP任务。

你可能感兴趣的:(nlp论文,bert,深度学习,人工智能)