【论文阅读笔记】BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translati

BART:去噪序列到序列的预训练自然语言生成、翻译和理解

动力

自监督方法在广泛的NLP任务中取得了显著的成功。最成功的方法是masked language model的变体去噪的自编码器。训练去噪的自编码器需要对被随机屏蔽一个词子集的文本进行重建,最近的工作主要是改进masked token的分布、已预测的masked token的顺序和替换masked token的可获得的上下文显示。这些方法通常专注于特定类型的后端的任务(例如,跨度预测、生成等),限制了它们的适用性。

贡献

本文提出了BART,它预训练了一个结合双向和自回归transformer的模型。预训练有两个阶段:(1)用任意的噪声函数对文本进行破坏,(2)学习序列到序列模型来重建原始文本。BART使用了一个标准的基于transformer的神经机器翻译体系结构。

2、降噪方法:随机打乱原始句子的顺序和使用一种新颖的填充方案(其中任意长度范围(包括0)的文本被单个掩码标记替换)

3、BART还开辟了微调的新思路,提出了一种新的机器翻译方案,其中BART模型被堆叠在几个附加的transformer层之上。这些层经过训练,本质上通过BART传播将外语翻译成带有噪声的英语,从而使用BART作为预训练的目标侧语言模型。

模型

BART是一种去噪的自动编码器,它将损坏的文档映射到原始文档。它是作为一个序列到序列模型实现的,带有一个在损坏文本上的双向编码器和一个从左到右的自回归解码器。预训练时优化原始文档的负对数似然。

架构

BART使用标准seq2seq的Transformer架构,除了遵循GPT将ReLU激活函数修改为GeLUs,并从以0为均值以0.02为方差的正态分布N(0,0.02)。基础模型中编码器和解码器都为6层,大模型每个模型为12层。

BART与BERT有以下不同之处:(1)解码器的每一层额外执行对编码器最终隐藏层的交叉注意(如在变压器序列到序列模型中);(2) BERT在单词预测之前使用了额外的前馈网络,而BART没有。在极端情况下,所有关于源的信息都丢失了,BART就相当于语言模型

预训练

BART是通过破坏文档,然后优化重构损失(decoder的输出和原始文档之间的交叉熵)来训练的。

文件损坏的方式:

token Masking

遵循BERT,随机token被采样并替换为[MASK]元素

Token delect

从输入中删除随机的tokens。与token masking不同,模型必须决定哪些位置缺少输入。

文本填充

采样多个文本span,span长度通过λ = 3的泊松分布获得。每个span用单个[MASK]标记替换。0-length span对应插入[MASK] token。文本填充使模型能够预测一个span中丢失了多少token。

句子排列

一个文档根据句号被分成句子,这些句子被随机打乱顺序。

文档旋转

单个token是均匀随机选择的,并旋转文档使其从该token开始。该任务训练模型识别文档的开头。

精调

序列分类任务

对于序列分类任务,将相同的输入输入到编码器和解码器中,将最终解码器token的最终隐藏状态输入到新的多类别线性分类器中。这种方法与BERT中的【CLS】token相关;这里还在末尾添加了额外的token,以便解码器中token的表示可以从完整的输入加入解码器的状态。

Token 分类任务

对于token分类任务,例如SQuAD的回答端点分类,将完整的文档输入编码器和解码器,并使用解码器的顶部隐藏状态作为每个单词的表示。这种表示方法用于对标记进行分类。在这里编码器的输入是输入序列,解码器自回归生成输出。

序列生成任务

因为BART有一个自回归解码器,它可以直接对序列生成任务进行微调,如生成的问题回答和总结。在这里,编码器的输入是输入序列,解码器自回归生成输出。

机器翻译

使用BART改进机器翻译的decoder翻译成英语时,这篇文章使用整个BART模型(编码器和解码器)作为机器翻译的一个预训练的解码器,通过添加从bitext学习的一组新的编码器参数。即用一个新的随机初始化编码器取代了BART的编码器embdding层。该模型经过端到端训练,训练新的编码器将外来词映射到输入中,以便BART将其降噪为英语。新的编码器可以使用独立于原始BART模型的词汇表。接着用两个步骤训练源编码器,在这两种情况下反向传播bart模型输出的交叉熵损失。第一步中,冻结大部分BART参数,只更新随机初始化的源编码器、BART位置embdding和BART编码器的第一层的自注意输入投影矩阵。在第二步,我们用少量的迭代训练所有的模型参数。

比较预训练目标

使用基本尺寸的模型(6个编码器和6个解码器层,hidden size为768)比较了一系列选项,评估了完整大规模实验的任务的一个代表性子集。

比较目标

1、语言模型Language Model

类似于GPT,本文训练了一个从左到右的Transformer语言模型。这个模型相当于没有交叉注意的BART的decoder。

2、交换语言模型Permuted Language Model

基于XLNet,我们对1/6的token进行抽样,并以随机顺序自回归的方式生成它们。为了与其他模型保持一致,我们没有实现相对位置embdding或XLNet中的跨段attention。

3、掩码语言模型Masked Language Model

参照BERT,我们将15%的token替换为[MASK]符号,并训练模型独立预测原始token。

4、多任务掩码语言模型Multitask Masked Language Model

在UniLM (Dong et al., 2019)中,我们训练了一个添加self-attention masks的Masked Language Model。self-attention masks按这五个比例随机选择:1/6从左到右,1/6从右到左,1/3未mask,1/3前50%的token未mask,其余为从左到右的mask。

5、Masked Seq-to-Seq

受MUSS的启发,本文mask了包含50%token的span,并训练序列到序列模型来预测被mask的token。

对于置换LM、掩码LM和多任务掩码LM,这篇文章使用双流注意有效地计算序列输出部分的可能性(在输出上使用对角自self-attention mask来预测从左到右的单词)。

本篇文章的实验

1、 将任务作为一个标准的seq2eq问题,将source输入至encoder,并从decoder的输出获得target

2、 添加source作为decoder中target的前缀,loss只在序列的target部分

前者更适用于BART模型,后者更适用于其他模型

SQuAD

一个关于维基百科段落的抽取性提问回答任务。答案是从给定的文档上下文中提取的文本范围。与BERT 类似,本文使用串联问题和上下文作为巴特编码器的输入,并将它们额外传递给解码器。该模型包括分类器来预测每个令牌的开始和结束索引。

MNLI

一个文本分类任务,用来预测一个句子是否包含另一个句子。经过微调的模型将两个句子与附加的EOS token连接起来,并将它们传递给BART编码器和解码器。与BERT相反,EOS token的表示被用来分类句子关系。

ELI5

一个长形式的抽象问题回答数据集。模型根据问题和支持文档的连接生成答案。

XSum

包含高度抽象摘要的新闻摘要数据集。

ConvAI2

一个基于上下文和人物角色的对话反应生成任务。

CNN/DM

一个新闻摘要数据集。这里的摘要通常与源句密切相关。

结果

1预训练方法的表现因任务的不同而有显著差异

2Token masking至关重要

3从左到右的预训练提高了生成能力

4双向encoder对SQuAD至关重要

5纯语言模型在ELI5上表现最好

大规模预训练实验

为了测试BART在这个系统中的表现如何,并为下游的任务创建一个有用的模型,我们使用与RoBERTa模型相同的规模来训练BART。

实验装置

预先训练了一个大模型,每个编码器和解码器都有12层,hidden size为1024。跟随RoBERTa使用8000batch size,并训练模型50万步。文档被标记为与GPT-2相同的字节对编码。基于第四节的结果,使用了文本填充和句子排列的组合。本文屏蔽每个文档中30%的token,并排列所有的句子。为了帮助模型更好地拟合数据,我们禁用了最后10%的训练步骤的dropout。

判别式任务

SQuAD和GLUE任务中,最直接可比较的baseline是RoBERTa,它使用相同的资源进行预训练,但目标不同。总的来说,BART的表现是相似的,在大多数任务上模型之间只有很小的差异。

生成任务

我们还实验了几个文本生成任务。从输入文本到输出文本,BART作为标准序列到序列模型进行了微调。在微调过程中,我们使用标签平滑交叉熵损失,平滑参数设为0.1。在生成过程中,我们设置beam size为5,去除beam search中重复的trigrams,并在验证集上使用min-len, max-len,长度惩罚对模型进行了调整。

摘要

为了与最先进的摘要进行比较,我们给出了两个具有不同属性的摘要数据集CNN/DailyMail和XSum的结果。BART比所有现有的工作都要出色。相比之下,XSum是高度抽象的,而抽取模型的性能很差。BART在所有ROUGE指标上的表现比之前最好的工作(BERT)高出大约6.0点,在这个问题上的性能有显著的进步。在质量上,样品质量高(见6)。

对话

我在《CONVAI2》中评估了对话反应生成,在该机制中,主体必须基于之前的情境和文本指定的人物产生反应。BART在两个自动化指标上优于之前的工作。

摘要式问答

我们使用最近提出的ELI5数据集来测试模型生成长的自由形式答案的能力。我们发现BART比之前最好的工作高出1.2 ROUGE-L,但数据集仍然是一个挑战,因为答案只是由问题微弱地指定。

翻译

我们还评估了WMT16罗马尼亚语-英语的表现,并使用了反向翻译数据。我们使用6层变压器源编码器将罗马尼亚语映射成BART能够去噪的英语表示,遵循3.4中介绍的方法。实验结果见表6。我们将我们的结果与基线Transformer架构(Vaswani等人,2017)进行了比较,Transformer-大设置(基线行)。我们在固定BART行和调整BART行中展示了模型的两个步骤的性能。对于每一行,我们都在原始的WMT16罗马尼亚-英语中添加了反向翻译数据。我们采用束宽为5,长度惩罚为α = 1。初步结果表明,在没有反向翻译数据的情况下,我们的方法效果较差,而且容易过度拟合,未来的工作应探索额外的正则化技术。

定性分析

BART在总结指标上有很大的改进,比之前的先进技术提高了6点。为了了解BART超越自动化指标的表现,我们定性地分析了它的生成质量。表7显示了BART生成的示例摘要。示例取自WikiNews文章,这些文章在训练前语料库创建后发布,以消除模型训练数据中出现所描述事件的可能性。继Narayan et al.(2018)之后,我们在对文章进行总结之前,先删除了文章的第一句话,因此没有对文章进行简单的摘录总结。不出所料,模型输出的是流利和语法的英语。然而,模型输出也是高度抽象的,很少从输入中复制短语。输出通常也是事实准确的,并将来自整个输入文档的支持证据与背景知识(例如,正确地填写姓名,或推断PG&E在加州运行)整合在一起。在第一个例子中,推断鱼类保护珊瑚礁免受全球变暖的影响,需要从文本中做出重要的推断。然而,这项研究发表在《科学》杂志上的说法并没有得到消息来源的支持。这些样本表明,BART的预训练已经学会了自然语言理解和生成的强大结合。

相关工作

早期的预训练方法是基于语言模型的。GPT (Radford et al., 2018)只模拟左向上下文,这对于某些任务来说是有问题的。ELMo (Peters et al., 2018)连接了仅左和仅右表示,但没有预先训练这些特征之间的相互作用。Radford等人(2019)证明了非常大的语言模型可以作为无监督多任务模型。BERT (Devlin et al., 2019)引入了掩码语言建模,允许预先训练来学习左右上下文单词之间的交互。最近的研究表明,通过更长时间的训练(Liu et al., 2019)、跨层绑定参数(Lan et al., 2019)和掩蔽跨度而不是单词(Joshi et al., 2019),可以获得非常强的性能。预测不是自动回归的,这降低了BERT在生成任务中的有效性。UniLM (Dong et al., 2019)用一系列面具对BERT进行微调,其中一些面具只允许左向上下文。像BART一样,这使得UniLM既可以用于生成性任务,也可以用于区别性任务。区别在于联合利华的预测是有条件独立的,而BART的预测是自回归的。BART减少了预训练和分类任务之间的不匹配,因为解码器总是在未损坏的环境中训练。MASS (Song et al., 2019)可能是与BART最相似的模型。一个连续的令牌覆盖的输入序列被映射到一个由缺失的令牌组成的序列。MASS对于鉴别任务的有效性较低,因为不相交的令牌集被输入到编码器和解码器中。XL-Net (Yang et al., 2019)通过以排列顺序自动回归预测掩码令牌,扩展了BERT。这个目标允许预测左右两方面的情况。相反,BART解码器在训练前从左到右工作,在生成时匹配设置。

有几篇论文探讨了使用预先训练过的表示来改进机器翻译。最大的改进来自对源语言和目标语言的预训练(Song et al., 2019;Lample,Conneau, 2019),但这需要对所有感兴趣的语言进行预先培训。其他工作表明,可以使用预先训练的表示来改进编码器(Edunov等人,2019),但解码器的收益更有限。我们将展示如何使用BART来改进机器翻译译码器。

总结

我们引入了BART,这是一种预训练的方法,学习将损坏的文件映射到原始文件。BART在区分任务上取得了与RoBERTa相似的性能,同时在许多文本生成任务上取得了新的最先进的结果。未来的工作应该探索在培训前篡改文件的新方法,也许可以根据具体的最终任务调整它们。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值