英语原文共 14 页
BERT: 用于语言解读的深度双向Transformer的预训练
摘要
我们引入了一种新型的语言表示模型BERT,即对Transformer(译注:Google提出的一种算法模型)的双向编码器表示。与Peters及Radford等人分别于2018年提出的模型不同,通过对所有层前后文语境的共同调节,BERT被用与预训练深度双向表示。结果表示,通过预训练的BERT模型,仅在后面包裹一层输出层,就能够在构建广泛应用于各领域的最先进的模型上作很好的调节,例如在没有经过实质性的特定的结构修改下进行问题解答和语言推理。
BERT概念简单功能强大。它涵盖了十一种自然语言处理的最新成果,包括将GLUE的基准提升至80.4%(净提升7.6%),MultiNLI的准确率提升至86.7%(净提升5.6%)以及SQuAD v1.1在F1测试的准确率提升至93.2%(净提升1.5%),比人类的表现高出2个百分点。
1 引言
语言模型预训练已被证明对改善多种自然语言处理任务是有效的(Dai和Le,2015;Peters等,2017,2018;Radford等,2018;Howard和Ruder,2018)。这些任务包括句子层次的任务,例如旨在通过整体分析来预测句子之间关系的自然语言推理(Dolan和Brockett,2005);以及单词层次的任务,例如命名实体识别(Tjong Kim Sang和De Meulder,2003)以及SQuAD问题解答(Rajpurkar等,2016),这些任务需要在单词层次模型生成细粒度的输出。
目前将经过预训练的语言表示应用于顺流任务存在基于特征和微调两种策略。基于特征的方法使用特异性结构,将经过预训练的表示作为额外的特性,例如ELMo(Peters等,2018)。微调方法则引入最小特异性参数,在进行顺流任务的训练时仅需微调预训练参数,例如生成预训练Transformer(OpenAI GPT)(Radford等,2018)。在此前的研究中,这两种方法在预训练过程中使用相同的目标函数,并且使用单向的语言模型来研究普遍的语言表示。
我们认为当前的技术严重的约束了预训练表示的能力,尤其是对于微调方式的约束。主要的限制在于标准语言模型是单向的,这限制了用于预训练的结构的选择。例如,在OpenAI GPT中,团队使用了从左向右的结构,在这种结构下每个单词只能处理先前的Transformer中自注意力层的单词(Vaswani等,2017)。这些限制对于句子层次的任务是差强人意的,对单词层次任务应用基于微调方式的方法式,可能造成破坏,例如在SQuAD的问题解答(Rajpurkar等,2016)中,从两个方向结合语境是至关重要的。
在这篇论文中,我们改进了基于微调的方法并提出BERT:对Transformer的双向编码器表示。BERT通过提出新的预训练目标:受完形填空任务(Taylor,1953)启发的MLM(遮蔽语言模型),来处理前面提到的单向约束问题。遮蔽语言模型随机遮蔽输入中的一部分单词,而目标则是通过语境预测出被遮蔽部分的原始词汇。与从左到右的语言模型的预训练不同,MLM目标让表示融合两个方向的语境,从而使我们完成深度双向Transformer的预训练。除了遮蔽语言模型意外,我们还将引入“下文预测”对文本对的表示进行预训练。
本文的贡献包括以下几点:
bull; 我们阐释了双向预训练对语言表示的重要性。与使用单向语言模型进行预训练的Radford等人(2018)不同,BERT使用遮蔽语言模型来确保深度双向表示预训练的进行。这也与将从左到右或从右到左的语言模型简单串联起来的Peters等人(2018)相异。
我们已经证明经过预训练的表示消除了对很多高度工程化且特异的结构的需求。BERT是第一个基于微调方法并在大量句子层次和单词层次的任务做出最佳表现的表示模型,它的表现优于许多具有特异结构的系统。
bull; BERT推动了11种NLP任务的发展水平。我们也对BERT做了进一步剥离,阐释了我们的模型的双向性是最重要的新贡献。代码和预训练模型可以在goo.gl/language/bert上进行访问。
2 相关工作
普遍的语言表示的预训练由来已久,我们仅仅回顾其中最热门的几种方式。
2.1 基于特征的方式
几十年来学习广泛适用的词汇表示一直是一个活跃的研究领域,包括非神经途径(Brown等,1992;Ando和Zhang,2005;Blitzer等,2006)和神经途径(Collobert和Weston, 2008; Mikolov等, 2013; Pennington等, 2014)。预训练过的单词的嵌入被视为现代NLP系统的关键部分,并为其他从零开始的嵌入提供了显著的改进(Turian等,2010)。这些方式在粗粒度条件下已经很普遍,例如句子嵌入(Kiros等, 2015; Logeswaran和Lee, 2018)或文章嵌入(Le和Mikolov, 2014)。
至于传统的词汇嵌入,这些表示通常也在顺流模型充当特性的角色。ELMo (Peters等, 2017)在不同的维度推广了传统的词汇嵌入。他们提议从一种语言模型中提取出语境敏感的特性。当在现有特异结构下结合语境中的的单词时,ELMo推动了一些主要的NLP基准的技术发展水平(Peters等, 2018),包括SQuAD上的问题解答(Rajpurkar等,2016),情绪分析(Socher等,2013),以及命名实体识别(Tjong Kim Sang和De Meulder, 2003)。
2.2基于微调的方式
语言模型(LMs)的迁移学习最近的趋势是在微调微调之前,在语言模型目标上预训练一些模型结构,同样的模型也适用于受监督的顺流任务(Dai和Le, 2015; Howard和Ruder, 2018;Radford等, 2018)。这些方式的优点在于不需要从零开始学习任何参数。至少在一定程度上是基于这个优势OpenAI GPT (Radford等, 2018)在GLUE基准(Wang等,2018)的许多句子层次的任务上取得了先进的成果。
2.3有监管数据的迁移学习
虽然无监管预训练的优势在于可靠数据几乎是无限的,但是具有大量数据组的有监管任务也可以进行有效的迁移,例如自然语言推理(Conneau等,2017)以及机器翻译(McCann等,2017)。在NLP之外,计算机视觉研究也阐释了大型预训练模型的迁移学习的重要性,其中一个有效的方法师微调在ImageNet上预训练的模型(Deng等,2009;Yosinski等,2014)。
3 BERT
我们将在这个部分介绍BERT及其细节化执行。首先遮蔽BERT的模型结构及输入表示,随后在3.3节引入预训练任务——这篇论文的核心创新。预训练进程以及微调进程将在3.4节和3.5节分别详细介绍。最后将在3.6节讨论BERT和OpenAI GPT的差异。
3.1模型结构
BERT的模型结构基于Vaswani等人于2017年提出的初始执行,是一种多层双向Transformer编码器,并在tensor2tensor库中发布。由于Transformer的使用近年来十分普遍并且我们的执行与初始完全相同,我们将省略对模型结构冗长的背景介绍,读者可以参考Vasawani等人在2017年提出的理论,例如“带注释的Transformer”等都是非常好的指南。在这次工作中,我们将层(即Transformer块)的个数记为L,隐藏尺寸记为H,自注意力数量记为A。我们一律将前馈/滤波器的大小设为4H,即当H=768时为3072,H=1024时为4096.我们主要给出上述两种模型尺寸下的运行结果:
bull; BERTBASE: L=12, H=768, A=12, 总参数=110M
bull; BERTLARGE: L=24, H=1024, A=16, 总参数=340M
BERTBASE与OpenAI GPT具有相同的尺寸,可以用于比较。然而BERT Transformer使用的自注意是双向的,GPT Transformer使用的自注意却是受限的,每个单词只能处理左侧的语境。我们注意到在文献中双向Transformer指的是Transformer编码器,然而仅限于左侧语境的Transformer指的是Transformer解码器,因为它可以用于文本生成。BERT,OpenAI GPT和ELMo的比较在图1中列出。
3.2 输入表示
我们的输入表示能够在一种单词序列下明确的表示单个乃至多个文本句子(例如[问题,解答])。对于给定的单词,它的输入表示是通过对相应的单词、段和位置嵌入进行求和来构造的。图2给出了输入表示的可视化表示形式。
具体内容如下:
bull; 我们利用WordPiance嵌入(Wu等人,2016),并使用了3万个单词词汇表。我们用##表示分词。
bull; 我们利用经过学习的位置嵌入,所支持的序列长度最多可达512个单词。
bull; 每个序列的第一个单词总是特殊的分类嵌入(CLS)。与此单词对应的最终隐藏状态(即Transformer的输出)被用作分类任务的聚合序列表示。对于非分类任务,这个向量将被忽略。
bull; 句子对被打包成一个序列。我们区分这些句子有两种方式。首先,我们用一种特殊的单词(SEP)。然后,我们将学习语句A和B分别添加嵌入到第一句和第二句的每个单词中。
bull; 对于单句输入我们仅需要使用语句A嵌入。
3.3预训练任务
不同于Peters等人(2018年)和Radford等人(2018年),我们不使用传统的从左到右或从右到左的语言模型去预训练BERT。相反,我们使用两个新的无监督预测任务对BERT进行预训练,在本节中将对其进行描述。
3.3.1 任务#1:遮蔽语言模型
从直觉来看,有理由相信深度双向模型比左到右模型或左向右和右向左模型的简单串联强得多。不幸的是,标准的条件语言模型只能从左到右或从右到左训练,因为双向训练会使每个词在多个语境中间接地“看到自己”。为了训练深度双向表示,我们采取一种直接的方式来随机遮蔽一定百分比的输入符号,然后仅仅预测那些被遮蔽的单词。我们将这种处理称为“遮蔽语言模型”(MLM),尽管它在文献中经常被称为完形任务(Taylor,18953)。在这种情况下,对应于遮蔽单词的最终隐藏向量被词库里输出softmax函数吸收,就像在标准语言模型中一样。在我们所有的实验中,我们在每个序列中随机掩蔽了15%的WordPiess单词。与降低自动编码器的干扰(Vincent等人,2008年)相反,我们只预测被遮蔽的词汇,而不是重建整个输入。
虽然这确实允许我们获得一个双向的预先训练的模型,但是这种方法有两个缺点。第一,我们在预训练和微调之间产生了不匹配, 因为[MASK]令牌在微调过程中从未出现过。为了减轻这一点,我们并不总是用实际的[MASK]单词替换“被掩盖的”字。相反,训练数据生成器随机选择15%的单词,例如,在句子中,我的狗是多毛的,它选择多毛的。然后执行以下步骤:
bull; 数据生成器不会总是用[MASK]来替换所选的单词,而是会做以下工作:
bull; 80%的时间:用[MASK]单词代替单词,例如,我的狗是多毛的→我的狗是[MASK]
bull; 10%的时间:用一个随机词代替这个词,例如,我的狗是多毛的→我的狗是苹果
bull; 10%的时间:保持单词不变,例如,我的狗是多毛的→我的狗是多毛的。这样做的目的是使表示偏向于实际观察到的词。
Transformer编码器不知道它要预测哪些词,或者哪些词被随机词所取代,所以它不得不保持每一个输入单词的分布式语境表示。初次以外,由于随机替换只发生在所有单词的1.5%(即15%的10%),这似乎没有损害模型的语言理解能力。
使用MLM的第二个缺点是每批只预测15%的单词,这意味着模型可能需要更多的预训练步骤才能收敛。在5.3节中我们证明MLM的边际收敛确实比从左到右的模型稍微慢一些(该模型预测每一个单词),但是MLM模型的经验改进远远超过了增加的培训成本。
3.3.2 任务#2: 下句预测
许多重要的顺流任务,如问答(QA)和自然语言推理(NLI),都是基于理解两个文本句子之间的关系,即没有被语言建模直接捕获。为了训练一个能够理解句子间关系的模型,我们预训练了一个二值化的下句预测任务,可以从任何单一语料库中随意地生成。特别在在为每个预训练示例选择句子A和B时,50%的时间B是A的下一句,而50%的时间这是语料库中的一个随机句子。例如:
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预训练过程
预训练过程主要遵循现有的关于语言模型预培训的文献。对于预训练的语料库,我们结合了BooksCorpus(800百万字)(Zhu等,2015)和English Wikipedia(2500百万字)。对于维基百科,我们只提取文本段落,忽略列表、表格和标题。为了提取较长的连续序列,使用文档级的语料库而不是混乱的句子级语料库是至关重要的,例如Billion W
资料编号:[3604]
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。