BERT:用于语言理解的深度双向变形的预训练外文翻译资料

 2023-09-01 10:29:39

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

作者:Jacob Devlin Ming-Wei Chang Kenton Lee Kristina Toutanova

国籍:美国

出处:Google AI Language

中文译文:

摘要

本文介绍了一种新的语言表示模型BERT,它是基于Transformer 的双向编码表征器的缩写。与最近的语言表示模型不同,BERT被设计为在所有层中对左-上下文和右-上下文进行联合训练进行深度双向表示的预训练。因此,经过预先训练的BERT表示可以通过仅仅一个额外的输出层进行微调,从而为广泛的任务(如问答和语言推理)创建最先进的模型,而无需对特定任务的体系结构进行实质性的修改。

Bert概念简单,经验丰富。它在11个自然语言处理任务中取得了新的研究成果,其中GLUE基准值达到80.5%(绝对提高7.7%),MultiNLI准确度达到86.7%(绝对提高4.6%),SQuAD v1.1问答测试F1达到83.1%(绝对提高5.1分)。

1.引言

语言模型训练已经被证明是改善许多自然语言处理任务的有效方法。这些任务包括句子层面的任务,如自然语言推理和释义,旨在通过全面分析预测句子之间的关系,以及象征层面的任务,如命名实体识别和 SQuAD问题解答,这几个模型需要产生输入符号级别(字或词)的细粒度输出。

现有的将预先训练好的语言表示应用到下游任务的策略有两种:基于特征的和微调的。基于特征的方法,如ELMo,使用特定于任务的体系结构,包括预先训练的表示作为附加特征。微调方法,如生成式预训练Transformer (OpenAIGPT),引入了最小特定任务参数,并通过简单的预训练参数微调来训练下游任务。在以往的研究中,两种方法在前期训练中都使用了相同的目标函数,即使用单向语言模型来学习通用的语言表述。

我们认为当前的技术严重限制了预训练表示的能力,特别是对于微调方法。其局限性在于标准的语言模型是单向的,这就限制了预训练可以使用的体系结构的选择。例如,在OpenAIGPT中,作者使用一种从左到右的架构,其中每个令牌只能处理Transformer中自注意层中的先前令牌。这种限制对于句子层面的任务来说不是最好的,并且当应用基于微调的方法来处理输入符号级别的任务时可能是毁灭性的,比如SQuAD问答,这对于从两个方向切入或分析上下文是至关重要的。

在本文中,我们通过提出BERT:基于Transformer 的双向编码器表示来改进基于微调的方法。 BERT通过提出一个新的预训练目标来解决前面提到的单向约束:“遮罩语言模型”,受到完形任务的启发。 遮罩语言模型在输入中随机地掩盖一些标记,目标是仅基于其上下文来预测被掩盖位置的原始词汇id。 与从左到右的语言模型预训练不同,MLM目标允许嵌入表示融合左右的上下文,这允许我们预训练深度的双向Transformer。 除了遮罩语言模型,我们也引入“下一句预测”任务,用于联合预训练句子对的嵌入表示。

本文的贡献如下:

我们证明了双向预训练对语言表征的重要性。不同于Radford等人,使用单向语言模型进行预训练,BERT使用语言模型来支持预先训练的深度双向表示。这也与Peters等人形成对比,后者使用了独立训练的从左到右和从右到左的LMs的浅层连接。。

我们表明,经过预先训练的表示方法消除了许多重度设计的特定于任务的体系结构的需求。Bert是第一个基于微调的表示模型,它可以在大型的sentence-level和token-level任务上实现最先进的性能,在任务特定的架构上超越了许多系统。

BERT推动了11项NLP任务的发展。 可以在https://github.com/ google-research / bert上找到代码和经过预先训练的模型。

2相关工作

预训练通用语言表达方式有着悠久的历史,我们在这一部分简要回顾一下最流行的方式。

2.1基于特征的方法

几十年来,学习广泛适用的单词表示一直是研究的活跃领域,包括非神经方法和神经方法。 预训练的单词嵌入是现代NLP系统不可或缺的一部分,与从头开始学习的嵌入相比,具有明显的改进。 为了预训练单词嵌入向量,已使用从左到右的语言建模目标,以及在左右上下文中区分正确单词和错误单词的目标。

这些方法已推广到更粗粒度,例如句子嵌入或段落嵌入。为了训练句子表示,现有工作已使用目标对候选下一个句子进行排名,给定前一个句子的表示从左到右生成下一个句子单词或对自动编码器得出的目标进行降噪。ELMo及其前身将传统的词嵌入研究沿不同的维度进行了概括。他们从左到右和从右到左的语言模型中提取上下文相关的特征。每个标记的上下文表示形式是从左至右和从右至左表示的串联。当将上下文词嵌入与现有的特定于任务的体系结构集成时,ELMo促进了几种主要的NLP基准的最新技术,包括问题回答,情感分析和命名实体识别。 Melamud等人通过使用LSTM从左和右上下文预测单个单词的任务,提出了学习上下文表示的建议。与ELMo相似,它们的模型是基于特征的,并且不是深层双向的。 Fedus等人表明,Cloze任务可以用来提高文本生成模型的鲁棒性。

2.2微调方法

与基于特征的方法一样,第一个方法只能在此方向上仅使用来自未标记文本的预训练词嵌入参数。最近,产生上下文标记表示的句子或文档编码器已经从未标记的文本中进行了预训练,并针对有监督的下游任务进行了微调。 这些方法的优点是几乎不需要从头学习参数。 至少部分地由于此优势,OpenAI GPT在GLUE基准测试中的许多句子级任务上取得了以前的最新结果。 左右语言建模和自动编码器目标已用于预训练此类模型。

2.3监督数据的迁移学习

也有工作显示了从监督任务到大型数据集的有效迁移,例如自然语言推理和机器翻译。 计算机视觉研究还证明了从大型预训练模型进行迁移学习的重要性,其中有效的方法是对通过ImageNet预训练的模型进行微调。

3 BERT

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

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

BERT的一个显着特征是其跨不同任务的统一体系结构。 预训练的体系结构与最终的下游体系结构之间的差异很小。

模型架构

BERT的模型架构是多层双向Transformer编码器,基于Vaswani等人描述的原始实现,并在tensor2tensor库中发布。由于已经普遍使用了Transformers,并且我们的实现几乎与原始实现相同,因此,我们将省略对模型体系结构的详尽背景说明,并向读者介绍Vaswani等人以及出色的阐明,例如“The Annotated Transformer”。

在这项工作中,我们表示的数量层(即,Transformer 块)为L,隐藏的大小为H,和自我注意头的数量为A。我们主要报告两种型号的测试结果:BERT-BASE(L=12, H=768, A=12, Total Parameters=110M)和BERT-LARGE(L=24, H=1024, A=16, Total Parameters=340M)

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

输入/输出表示

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

我们使用具有30000个标记词汇表的词嵌入。每个序列的第一个标记始终是一个特殊的分类标记([CLS])。与该标记相对应的最终隐藏状态用作分类任务的聚合序列表示。句子对打包在一起形成单个序列。我们通过两种方式区分句子。首先,我们使用特殊标记([SEP])将它们分开。其次,我们向每个标记添加可学习的嵌入,以指示它是属于句子A还是句子B。如图1所示,我们将输入嵌入表示为E,将特殊[CLS]标记的最终隐藏向量表示为,并且 输入标记机的最终隐藏向量为。

对于给定的标记,其输入表示形式是通过将相应的标记,段和位置嵌入相加而构造的。这种结构的可视化效果如图2所示。

图2:BERT输入表示。 输入的嵌入是标记嵌入,分段嵌入和位置嵌入的总和。

3.1 预训练任务

不像Peters等人和Radford等人,我们不使用传统的从左到右或从右到左的语言模型来预先训练BERT。相反,我们使用两个新颖的非监督预测任务对BERT进行预训练,此步骤显示在图1的左侧。

任务1:遮罩语言模型

直观地说,有理由相信深度双向模型比左向右模型或左向右和右向左模型的浅连接更强大。遗憾的是,标准的条件语言模型只能进行从左到右或从右到左的训练,因为双向映射将允许每个单词在多层的上下文里间接地'看到自己',,并且该模型可以在多层结构中简单地预测目标单词上下文。

为了训练深度双向表示,我们采用直接的方法随机遮罩一定比例的输入标记,然后仅预测那些被遮罩的标记。 在这里我们将这个过程称为“遮罩LM”(MLM),尽管它在文献中通常被称为完形填空任务。 在这种情况下,像在标准LM中一样,对应于遮罩令牌的最终隐藏向量被送到词汇表上的softmax输出。 在我们的所有实验中,我们随机地遮罩每个序列中所有WordPiece标记的15%。 与去噪自动编码器相反,我们只预测掩蔽的单词而不是重建整个输入。

虽然这允许我们获得双向预训练模型,但缺点是我们在预训练和微调之间创建了不匹配,因为在微调期间不会出现[mask]标记。为了缓解这种情况,我们并不总是用实际的[mask]标记替换“masked”词。训练数据生成器随机选择15%的标记位置进行预测。如果选择第i个标记,我们将第i个标记替换为(1) the [MASK] token 80% of the time (2) a random token 10% of the time (3) the unchanged i-th token 10% of the time。然后,利用 来预测具有交叉熵损失的原始标记。我们在附录C.2中比较了该程序的不同之处。

任务2:下句预测

许多重要的下游任务,如问答(QA)和自然语言推理(NLI),都是基于对两个文本句子之间关系的理解,而语言建模没有直接捕捉到这一点。为了训练一个能够理解句子关系的模型,我们预先训练了一个可以从任何单语料库中轻而易举地实现的双语下一步预测任务。具体来说,在为每个预训练示例选择句子A和B时,50%的时间B是A后面的实际下一个句子(标记为is next),50%的时间B是来自语料库的随机句子(标记为notnext)。如图1所示,C用于下一句预测(NSP)。尽管它很简单,但我们在第5.1节中演示了针对此任务的预培训对QA和NLI都非常有益。

NSP任务与Jernite等人以及Logeswaran和Lee所使用的表示学习目标密切相关。 但是,在先验工作中,只有句子嵌入被传输到下游任务,其中BERT传输所有参数以初始化最终任务模型参数。

预训练过程很大程度上遵循了有关语言模型预训练的现有文献。 对于预训练语料库,我们使用BooksCorpus(800M个单词)和English Wikipedia(25亿个单词)。对于Wikipedia,我们仅提取文本段落,而忽略列表,表格和标题。 为了提取长的连续序列,使用文档级语料库而不是像BillionWord Benchmark这样的经过改组的句子级语料库是至关重要的。

3.2微调任务

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

对于每个任务,我们只需将特定于任务的输入和输出插入BERT,

剩余内容已隐藏,支付完成后下载完整资料


英语原文共 16 页,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[596533],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。