标题:谷歌|BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding(BERT:用于语言理解的深度双向变换器的预训练模型)
简介:我们引入了一种新的语言表示形式,双向编码器表示变换器,称为BERT的模型。与最近的语言表示模型不同,BERT旨在融合处理所有层中的左右上下文,以从无标签文本中预训练深度双向表示。结果表明,预训练的BERT模型可以在仅需增加一个输出层的条件下,即可微调得到广泛任务的最佳模型,例如问题解答和语言推理,无需大量的任务特定的体系结构修改。BERT在概念上简单易懂且在应用上效果强大。它取得了十一种自然语言处理结果任务上的新纪录,包括将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%提升)。
介绍
语言模型预训练已显示出有效地改善许多自然语言处理任务(Dai和Le,2015; Peters等,2018a; Radford等人,2018;霍华德和鲁德,2018)。这些包括句子级任务,例如自然语言推理(Bowman等人,2015;Williams et al.,2018)和释义(Dolan和布罗基特,2005),其目的是预测通过分析句子之间的整体关系;以及符号级任务,例如命名实体识别和问题解答,需要模型来生成细粒度的局部符号级别的输出(Tjong Kim Sang和De Meulder,2003年; Rajpurkar等人,2016年)。
现有两种策略-将经过预训练语言表示应用到下游任务:特征导向和微调导向。基于特征的方法,例如ELMo(Peters等人2018a),使用了特定于任务的架构将经过预训练的表示形式添加为附加内容特征。微调方法,例如生成式预训练变换器(OpenAI GPT)(Radford et al.,2018)特定于任务的参数,并在只需对所有前置任务进行微调,即可完成下游任务训练调整。两种方法共享在预训练期间相同的目标函数,其中他们使用单向语言模型来学习一般语言表示形式。
我们认为目前的技术限制了预训练表示的能力,特别是对于微调方法。主要限制是标准语言模型是单向的,这限制了可以在预训练期间使用的架构。例如,在OpenAI GPT中,作者使用从左到右的架构,在变换器结构中每个符号只能在自注意层中与先前的标记进行计算(Vaswani等人,2017)。这样的限制对于句子级任务,限制条件不是最佳选择,并且在使用精细阶段时可能会对基于调整的方法来处理符号级任务非常有害,例如作为问题回答任务,包含双向上下文至关重要。
在本文中,我们改进并提出BERT的方法:基于变换器的双向编码器表示。受完型填空任务启发(泰勒,1953年),BERT通过使用“遮盖语言模型”(MLM)的预训练目标减轻了前面提到的单向限制。这掩盖的语言模型随机掩盖了某些来自输入的符号,目标是仅根据上下文来预测被屏蔽单词的原始词汇编码。与从左到右的语言模型预训练不同,MLM目标使表示形式能够融合左右上下文,这使我们能够预训练深层双向Transformer。 除了屏蔽语言模型外,我们还使用“下一个句子预测”任务来联合预训练文本对表示。我们的论文贡献如下:
- 我们证明了双向语言表示的预训练的重要性。与拉德福(Radford等人. 2018)不同,它使用单向预训练语言模型,BERT使用屏蔽语言模型来使得深度双向表示变得可能。这与Peters等人(2018a)的观点也相反,他们使用了浅层连接训练了从左到右和从右到左的语言模型。
- 我们证明了预训练表示会减少需要许多精心设计的具体任务的架构的需求。 BERT是第一个基于微调表示模型且在许多句子级和符号级任务的中取得领先效果,超过了许多任务专用的体系结构。
- BERT推动了11个NLP任务的最新发展。
相关工作
预训练通用语言表示的历史悠久,我们简要回顾一下最广泛使用的方法。
无监督的基于特征的方法
学习广泛适用的单词表示一直是数十年来活跃的研究领域,包括非神经网络(Brown等,1992;安藤和张,2005年。 Blitzer et al.,2006)和神经网络(Mikolov等,2013; Pennington等,2014)方法。预训练词嵌入是现代NLP系统不可或缺的一部分,极大地改善了从头开始学习的嵌入(Turian等,2010)。要预先训练词嵌入向量,从左到右的语言建模目标已被使用(Mnih和欣顿2009),以及从左边和右边的上下文中单词中判别正误(Mikolov等,2013)。
这些方法已经推广到较粗粒度,例如句子嵌入(Kiros et al.,2015; Logeswaran and Lee,2018)或段落嵌入(Le和Mikolov,2014)。为了训练句子表示,先验工作已使用目标对下一位候选人进行句子排名(Jernite et al.,2017; Logeswaran and Lee,2018),给定表示前一个句子表示,从左到右的生成下一句的词(Kiros et al.,2015),或去噪自动编码器得出目标(Hill等人,2016)。
ELMo及其前身(Peters等,2017,2018a)推广传统词嵌入技术沿着不同的维度进行搜索。他们提取从左到右和从右到左的语言模型。上下文表示的每个符号拼接了从左到右和从右到左的表示形式。整合上下文词嵌入时与现有特定于任务的体系结构,ELMo推动了几个主要NLP的发展基准(Peters et al.,2018a),包括问题回答(Rajpurkar et al.,2016),情感分析(Socher等人,2013),并命名实体识别(Tjong Kim Sang和De Meulder,2003)。Melamud等 (2016)建议,在从左右上下文中预测一个单词任务,使用LSTM学习上下文表示。与ELMo相似,他们的模型是基于功能且不是双向的。Fedus等人(2018)显示可以使用完型填空任务提高文本生成模块的健壮性。
无监督微调方法
与基于特征的方法一样,第一种朝这个方向工作仅在从未标记文本中预训练单词嵌入参数(Collobert和Weston,2008年)。最近,从未标记的文本中,进行了句子或文档预训练编码器产生上下文符号表示,并且针对有监督的下游任务进行了微调(Dai何Le,2015年;霍华德和鲁德,2018年;雷德福等人,2018),这些方法的优点是需要学习的参数很少。至少部分由于这种优势,在GLUE基准测试中的高级任务(Wang等人,2018a)中,OpenAI GPT(Radford et al.,2018)达到了以前在许多句子任务上达到最新的结果。对预训练此类模型,从左到右的语言建模和自动编码器目标已被使用(霍华德和鲁德,2018; Radford等人,2018; 戴和乐,2015)。
从监督数据迁移学习
也有工作显示出来自具有大型数据集的受监督任务是有效的,例如作为自然语言推论(Conneau等,2017)和机器翻译(McCann等,2017)。 计算机视觉研究证明强调了从大型的预训练模型中迁移学习的重要性,有效的方法是对经过ImageNet预训练模型进行微调(Deng等,2009; Yosinski等,2014)。
BERT
本节中我们介绍说明BERT及其详细的实现。我们有两个步骤框架:预训练和微调。
在预训练阶段,对模型进行未标记的训练通过不同的预训练任务获得数据。在微调阶段时,首先使用初始化BERT模型预先训练的参数以及所有参数使用来自下游任务。每个下游任务都有单独的对经过微调的模型进行评估,即使它们是具有相同的预训练模型参数。这图1中的问答任务示例将作为本节运行示例。
图1
BERT的一大特色是其统一跨不同任务的架构,预训练架构以及最终的下游架构之间有很小的差异。
模型架构 BERT的模型架构是多层双向变换器,编码器基于原始实现在Vaswani等人 (2017)中描述,并在tensor2tensor库。因为使用变换器已变得司空见惯,与原始几乎相同我们将省略详尽的背景说明模型架构的说明,并向读者介绍Vaswani等 (2017年)以及优秀指南例如“带注释的变换器”。在这项工作中,我们表示层数(即,变换器块)为L,隐藏大小为H,而注意力集中的头数为A。 我们主要报告两种模型尺寸的结果:BERT-BASE(L = 12,H = 768,A = 12,总参数= 110M)和BERT-LARGE(L = 24,H = 1024,A = 16,总参数= 340M)。
选择了BERT-BASE以具有相同的模型大小作为OpenAI GPT进行比较。但是,至关重要的是,BERT变换器使用双向自注意力,而GPT使用受限的自注意力,其中每个符号只能关注其左侧的上下文。
输入/输出表示
使得BERT处理各种下游任务,在一个符号序列表示中,我们的输入表示能够明确表示既是一个句子又是一对句子(例如⟨问题,答案⟩)。在整个工作中,“句子”可以是任意的连续文本的段范围,而不是实际的语言句子。“序列”是指放入BERT的符号序列,这可能是一个单独句子或两个句子包装在一起。我们使用WordPiece符号分割方法(Wu等,2016),词汇量为30,000个。首先每个序列的标记始终是一个特殊类别符号([CLS])。最终的隐藏状态与此符号相对应的标记用作聚合序列表示法进行分类任务。句子对打包在一起形成单符号序列。我们区分句子中的两种方式。首先,我们用分割符号([SEP])将句子分开。其次,我们添加了一个学习的嵌入表示,指示每个符号是否属于到句子A或句子B。如图1所示,我们将输入嵌入表示为E,最后隐藏特殊[CLS]符号的向量为C∈R,以及第i个输入标记的最终隐藏向量为Ti∈R。
对于给定的符号,其输入表示为通过集合相应的符号、段和位置嵌入来构造的。可视化这种结构的原理可以在图2中看到。

预训练BERT
与彼得斯等人 (2018a)和Radford等人(2018)不同,我们不使用传统的从左到右或从右到左的语言模型对BERT进行预训练。相反,我们使用两个无监督任务,在本节中介绍。这一步
如图1的左侧所示。
任务1:屏蔽的语言模型
凭直觉,有理由相信深度双向模型是比左到右模型或从左到右和和从右到左的浅层级联模型更为强大。遗憾的是,标准条件语言模型只能是自从左到右或从右到左受过训练传统条件允许每个单词输入-直接“看到自己”,而模型可以轻松地在多层上下文中预测目标单词。为了训练深层的双向表示位置,我们只是掩盖了一定比例的输入随机符号,然后预测被掩盖的符号。我们将此程序称为“掩盖的语言模型”(MLM),尽管它通常被称为文献中的完形填空任务(Taylor,1953年)。在这个情况下,最终隐藏向量对应于掩码符号被馈送到输出softmax词汇,如标准LM。在我们所有实验中,我们将所有WordPiece的15%屏蔽为在每个序列中随机排列。与去噪自动编码器(Vincent et al.,2008)相反,我们只预测被掩盖的单词,而不是重新预测构建整个输入。
尽管这使我们可以获得双向预训练模型,缺点是,由于[MASK]符号并未出现在微调中,我们在预训练和微调任务制造间隙。为了减轻这种情况,我们做了并非总是用真正的[MASK]符号来替换“掩盖”的单词。在训练数据生成器中随机位置选择15%进行符号位置预测。如果选择了第i个符号,我们将替换第(i)个符号,其中(1)替换[MASK]符号的80%时间(2)10%替换随机符号(3)的10%使用第i个符号保持不变。然后,Ti将用于预测原始符号并计算交叉熵损失。我们比较这种变化见附录C.2中的步骤。
任务2:下一句预测(NSP)
许多重要的下游任务,例如问题回答(QA)和自然语言推断(NLI)是基于对相关性的理解,两个句子之间的关系由语言建模正确捕获。为了训练一个能理解句子相关性的模型,我们会预训练二元化的下一个可能很容易产生的时间预测任务来自任何单语语料库。具体来说,在为每个前置词选择句子A和B时训练示例中,50%的时间B是实际的A之后的下一个句子(标记为IsNext),而且有50%的时间是来自语料库(标记为NotNext)。正如我们所展示的在图1中,C用于下一句谓词-(NSP)。尽管它很简单,但我们还是展示了在第5.1节中表明,对此进行了预训练这项任务对质量检查和NLI都是非常有益的。
Jernite等人(2017) 和Logeswaran和Lee(2018)研究表明,NSP任务与表示使用的学习目标紧密相关。但是,在以前作品,只有句子嵌入被迁移到下游任务,其中BERT传输所有参数表初始化最终任务模型参数。
预训练数据 预训练程序很大程度上遵循现有的语言文献模型预训练。对于预训练语料,我们使用BooksCorpus(8亿字)(Zhu等,2015年)和英文维基百科(25亿个字)。对于Wikipedia,我们仅提取文本段落并忽略列表,表和标题。这很重要,使用文档级语料库,而不是随机句子级语料库,例如“十亿词测评”(Chelba et al.,2013),以便提取长连续序列。
微调BERT
微调很简单,因为变换器中的自注意力机制允许BERT对许多下游任务进行建模的能力,不论它们是单个文本还是文本对,通过换出适当的输入和输出。对于涉及文本对的应用程序,常见的模式是在以下情况下对文本对进行独立编码:预先进行双向交叉注意,例如如Parikh等(2016);徐等(2017)。而BERT是使用自注意力机制来统一这两个阶段,如编码串联文本与自我关注配对有效地包括两个句子之间的正向交叉注意。
对于每个任务,我们只需插入任务特定的输入和输出到BERT中,并端到端调整所有参数。在输入端,句子A和句子B来自预训练类似于(1)段落句子对,(2)包含假设前提对,(3)问题解答中的问题段落对,以及(4)文本分类中的简并文本-∅对或序列标记。在输出中,符号代表被馈送到符号的输出层,对于字符级任务,例如序列标记或问题回答,并提供[CLS]表示进入用于分类的输出层,例如蕴含分析或情绪分析。与预训练相比,微调相对而言非常便宜。从完全相同的预训练模型,所有结果都最多1个小时即可复现,只需一个Cloud TPU,或在GPU上运行几个小时。在对应的内容中标出特定于任务的详细信息请参阅第4节的小节。更多细节可在附录A.5中找到。
消融研究
在本节中,我们执行消融实验在BERT的多个方面进行改进了解他们的相对重要性。 其他消融研究可在附录C中找到。
预训练任务的效果
我们证明了深层双向网络的重要性-通过评估两个使用完全相同的预训练目标和训练数据,微调方案和作为BERT-BASE的超参数;
无NSP:经过训练的双向模型使用“遮罩的LM”(MLM),但不使用“下一句预测”(NSP)任务。
LTR和无NSP:仅在左上下文中使用的模型使用标准的从左到右(LTR)进行训练LM,而不是MLM。仅左约束也用于微调,因为删除它引入了预训练/微调失配下游性能下降。此外,该模型在没有NSP任务的情况下进行了预训练。这可以直接与OpenAI GPT相提并论,但是使用我们更大的训练数据集,我们的输入代表意见,以及我们的微调方案。
表5
我们首先研究NSP带来的影响任务。在表5中,我们显示了删除NSP严重损害了QNLI,MNLI,和SQuAD 1.1。接下来,我们评估影响训练双向表示将“无NSP”解析为“ LTR和无NSP”。轻模型在所有方面的表现都比MLM模型差,在MRPC和SQuAD上有很大的下降。对于SQuAD,直觉上很清楚LTR模型在符号预测中的表现会很差,由于符号级隐藏状态没有权利侧面环境。为了诚实信用,试图加强轻轨系统,我们补充说顶部是随机初始化的BiLSTM。这确实大大改善了SQuAD的结果,但是结果仍然比之前的结果差很多训练有素的双向模型。 BiLSTM令人痛心在GLUE任务上的表现。
我们认识到也有可能训练单独的LTR和RTL模型并表示每个符号作为两个模型的串联,就像ELMo一样。但是:(a)是作为单个双向模型很昂贵; (b)这个对于RQ这样的任务而言,这是不直观的,因为RTL模型将无法确定答案在这个问题上; (c)这绝对不那么强大而不是深度双向模型,因为它可以使用每一层的左右上下文。
型号尺寸的影响
在本节中,我们探讨模型尺寸的影响调整任务的准确性。我们训练了一些具有不同层数的BERT模型隐藏的单元和关注头,否则使用相同的超参数和训练程序如前所述。
表6
所选GLUE任务的结果显示在表6.在此表中,我们报告平均Dev通过5次随机微调重新启动来设置精度。我们可以看到,较大的型号会导致严格的跨所有四个数据集的准确性提高,甚至对于只有3,600个标签训练集的MRPC,例子,并且与预训练任务。这也许也是惊喜我们有能力取得如此重大的成就在模型的基础上进行了改进相对于现有文献而言已经足够大了。例如,在Vaswani等(2017)是(L = 6,H = 1024,A = 16)编码器的参数为100M,并且我们在文献中发现的最大的变换器是(L = 64,H = 512,A = 2)和235M参数(Al-Rfou et al.,2018)。相比之下,BERT-BASE包含110M参数和BERT-LARGE拥有340M参数。
早就知道增加模型尺寸将导致持续改进处理大型任务,例如机器翻译和语言建模,这已得到证明保持训练数据的LM困惑度如表6所示。但是,我们认为这是第一篇论文令人信服地展示了放大到极限模型尺寸在小尺度任务上带来了很大的进步任务,只要模型经过足够预训练。彼得斯等(2018b)对以下方面的下游任务影响提出了混合结果将预训练的双向语言模型大小从两层增加到四层,Melamud等(2016)顺便说一句,增加隐藏的维度大小从200增加到600改善了效果,但进一步增加到1,000并没有带来进一步的改善。这些先前的文章都使用了基于特征方法,我们假设模型直接在下游进行微调任务并仅使用极少量其他的随机初始化参数,任务特定模型可以受益于更大,更多富有表现力的预训练表示,即使下游任务数据非常小。
BERT的基于特征的方法
到目前为止提供的所有BERT结果均已使用微调方法,其中简单的分类-Softmax层被添加到预训练模型中,并且所有参数均在下流任务。但是,基于功能的方法从预先提取的固定特征训练有素的模型,具有一定的优势。首先,不是所有任务都可以轻松地由输出中的前一个编码器层。 我们使用的表示第一个子符号作为符号级别的输入NER标签集上的分类器。
为了消除这种微调方法的影响,我们采用了基于特征的方法,通过提取激活层的一层或多层的微调而无需微调BERT的任何参数。 这些上下文嵌入用作随机初始化的输入,之前的两层768维BiLSTM分类层,结果列于表7,与最先进的方法相比具有竞争力。 效果最好的方法是将变换器前四个隐藏层的符号表示合并,仅比完整模型少0.3的F1。 这证明BERT对于微调和基于特征两种情况都有效。
表7
结论
最近的改进经验表明,语言模型迁移学习已证明丰富的语料无监督的预训练是必不可少的,是许多语言理解系统的一部分。 尤其是,这些结果甚至使资源匮乏受益于深层单向架构的任务。 我们的主要贡献是进一步将这些发现转化为深层次的双向架构,允许相同的预训练模型成功适当地解决了一系列NLP任务。
代码:https://github.com/google-research/bert
论文链接:https://arxiv.org/pdf/1810.04805v2.pdf
内容中包含的图片若涉及版权问题,请及时与我们联系删除
评论
沙发等你来抢