Advertisement

BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation ...

阅读量:

BART: Denoising Pre-trained Sequence-to-Sequence Models, Mainly Applied to Natural Language Generation, Machine Translation, and Understanding Tasks.

Abstract

本文开发了一种名为 BART (Bidirectional and Auto-Regressive Transformers) 的新模型架构。该架构设计为一个适用于预训练 seq2seq 模型的去噪声自编码器系统。BART 的训练过程涉及:基于 bidirectional 和 auto-regressive 的架构进行有监督预训练;通过多层 attention 机制捕获序列中的双向语义信息;并采用 teacher-student 策略优化生成能力。

  • distorting text with a random noise function
    • training a model to restore the original text.

BART 采用了基于 Transformer 的神经机器翻译模型,并主要基于 BERT(一种双向编码器)与 GPT(一种从左到右的解码器)的基础上,并结合了当前前沿的各种预训练技术进行推广

我们评估了很多 noising approaches, 发现性能最好的两种是:

采用随机的方式对文本序列进行打乱

BART经过微调展现出色,在文本生成方面独树一帜;然而其在阅读理解方面的实力同样不容小觑。研究证实,在GLUE及SQuAD等关键指标测试中与[RoBERTa]不相上下,并在生成对话系统评估中实现了新的最佳成绩(SOTA)。

BART 在机器翻译上的表现也不错。

Introduction

BART 融合了双向Transformer架构和自回归Transformer模型。
值得注意的是,BART 的一个显著优点是其噪声灵活性(noising flexibility),它允许对原始文本进行多种操作,在不改变其核心含义的情况下扩展或收缩内容。

Model

BART 使用基于 Transformer 的序列到序列架构(sequence to sequence),与 GPT 的思路基本一致。在激活函数的选择上有所创新:将传统的 ReLU 换成了 GeLU 函数;此外,在参数初始化方面也进行了优化:通过服从正态分布 \mathcal{N}(0, 0.02) 初始化网络权重参数。

  • decoder 的每一层都多了一个 cross-attention 作用于 encoder 的最终隐层。
  • BERT 在单词预测前引入了额外的前馈神经网络结构,而 BART 则未采取此类措施。
  • 从总体上看,在相同规模下 BART 相较于 BERT 增加了约10%的参数量。
在这里插入图片描述

Pre-training BART

BART 的目标是其生成的解码器输出与原始输入内容之间的交叉熵损失。相较于现有基于去噪机制的自编码器,在最严重的数据破坏情况下,BART赋予了模型更灵活的数据破坏方式,使得在极端情况下,原始文档的信息将完全丢失,从而实现了一个类似于语言建模的任务

我们在实验中测试了各种在输入中加入噪声的变换方式,包括:

  • Token Masking 类似于BERT中的机制 随机选取并替换成[MASK]标记
  • Token Deletion 从输入中随机移除指定数量的token 这种方法要求模型能够推断哪些位置被移除了
  • Text Infilling 是一种通过对文本空白区域进行标记的方式 让模型补充缺失信息 其具体实现是先根据泊松分布λ=3的概率密度值选取空白区域 然后用[MASK]标记代替这些区域 并在长度为零时补充一个[MASK]标记 文本插补的想法源自SpanBert 但其与SpanBert不同之处在于后者采用截断几何分布生成空白区间 并将每个区间替换成相同数量的[MASK]标记 文本插补可以让模型学习填补缺少了多少个词
  • Sentence Permutation 将文档按照标点符号分段后重新排列这些句子 从而增强训练数据的表现力
  • Document Rotation 采用均匀分布随机选择一个token作为起点进行轮转 这一任务旨在训练模型识别文档的新起点位置
在这里插入图片描述

Fine-tuning BART

BART 产生的表示可以以不同的方式用于下游任务。

在这里插入图片描述

Sequence Classification Tasks

在序列分类任务中,相同的输入会被共享地传递给编码器和解码器,在此过程中,其最终隐状态会被引入多标签线性分类层。值得注意的是,在此方案中,在编码阶段末尾添加了一个特殊标记,在此之后通过这种方式,在解码过程中特定标记处可以关注到整个编码过程中的信息。与BERT模型中的[CLS]标记类似这一特性使得该方法具有一定的相似性但又有所创新在于无需依赖外部预定义符号即可完成同类功能

Token Classification Tasks

具体来说是将整个文档依次输入至 encoder 和 decoder,并通过 decoder 的最终时刻状态提取出每个单词对应的向量表示。这些向量可进一步用于识别与相应单词相关的 token 类别。

Sequence Generation Tasks

由于BART具备内置于解码器的自回归机制, 因此可以在序列生成任务中直接施加微调. 其应用范围涵盖生成式问答和文本摘要等任务. 在这种特定的任务环境中,默认的信息来源仅仅是输入数据本身, 并未经过额外的预处理. 这一过程与去噪预训练目标极其相似. 具体来说, 在处理生成性问题时, 编码器会将原始序列作为输入, 而解码器则通过自回归机制逐步构建输出序列.

Machine Translation

我们通过实验结果表明,我们可以将BART及其编码体全部作为一个预训练解码器应用于机器翻译任务。为此目的,在图3-b中展示了所需添加的一个额外编码器。

我们决定将现有BART编码器中的嵌入结构更换为一个全新的随机初始化版本。整个模型采用了完整的端到端训练方案,并通过这一新增组件实现了源语言信息向目标语言输入的有效转换。该新增组件能够借助BART特有的去噪机制完成这一过程,并且其使用的词汇表与BART采用了不同的设计。

我们采用两个阶段的训练过程来训练新型编码器,并且这两个阶段均采用BART模型输出的交叉熵损失反向传播过程:

  • 固定大部分BART参数,并仅更新新编码器;此外还包括BART的位置编码参数以及编码器首层自注意输入映射矩阵。
  • 通过少量迭代轮次训练所有模型参数,并优化整体性能指标。

Comparing Pre-training Objectives

基于该架构,在经过精心选择的任务子集上展开测试

Comparing Objective

我们最近重新实现了若干个效果较为先进的预训练模型,其主要目的在于最大限度地减少与预训练目标无关的因素的影响。然而,在优化模型性能方面,我们仅对学习率和层归一化等技术进行了小幅调整。为了便于与其他研究结果进行对比,我们将我们的实现版本与BERT官方发表的研究成果进行比较。具体而言,我们将对比以下几种不同的预训练方法:

  • Language Model 类似于 GPT 的从左到右 Transformer 语言模型,等价于 BART 中的 decoder(去掉 cross-attention)
  • Permuted Language 基于 XLNet, 采样 1/6 的 token, 以随机的顺序自回归的生成这些 token. 为了和其他模型保持一致,我们没有实现 XLNet 中的相对位置编码以及 attention across segments.
  • Masked Language 按照 BERT 的方法,将 15% 的 token 替换为 [MASK] 符号,训练模型独立预测每个原始 token.
  • Multitask Masked Language Model 像 UniLM 中那样,我们训练一个添加了额外 self-attention masks 的 Masked Language Model. Self-attention masks 是随机选择的,比例为:1/6 从左到右,1/6 从右到左,1/3 unmasked, 1/3 中前 50% unmasked, 其余使用 left-to-right mask.
  • Masked Seq-to-Seq 受到 MASS 的其他,我们屏蔽包含 50% token 的 span, 然后训练一个 sequence to sequence 模型来预测这些被屏蔽的 token.

我们采用了双流自注意力机制,应用于三种变体LM模型——Permutated LM、Masked LM和Multitask Masked LM——以有效推断其输出概率分布。(通过在输出上应用对角线位置限制并按顺序预测单词序列)。

我们用两种方式进行实验:

  • 将任务视为一种典型的 sequence to sequence 问题,并使编码器接收源序列后生成相应的解码结果。
  • 在解码器中将源序列作为目标序列的前缀,并使损失函数仅专注于目标序列的部分。
  • 第一种方法在 BART 模型上表现更为突出,而第二种方法则在其他类型的模型中取得了更好的效果。
在这里插入图片描述

Tasks

  • SQuAD
  • MNLI
  • ELI5
  • XSum
  • ConvAI2
  • CNN/DM

Results

从 表1 可以看出:

  • 各种预训练策略在各类 downstream tasks之间展现出显著差距。
    • Token mask机制对于性能而言具有至关重要的作用。
    • 采用从左到右的预训练策略能够显著提升生成任务的表现。
    • 双向编码架构对于SQuAD任务而言具有至关重要的作用。
    • 预训练目标并非唯一决定性能的因素;其他因素同样会对性能产生显著影响。
    • 纯粹的语言模型在ELI5上展现了最优的表现。
    • 除了ELI5之外,BART展现了优异的整体性能。

Large-scale Pre-training Experiments

近期的研究成果基于XLNet框架以及RoBERTa架构(XLNetRoBERTa)进行开发,并通过大规模的数据集进行了实证分析

Experiment Setup

采用了一个由12层编码器和解码器组成的架构;模型内部的隐藏层大小设定为1,967(d_{model}=1,967);每批次处理8,673个token序列;经过连续5百万次迭代训练;采用了与BERT相同的预训练语言模型架构;进行了文本填充和句子顺序调整;通过遮蔽每个文档中3.5%的token并重新排列所有句子

Discriminative Tasks

在这里插入图片描述

BART 在判别式任务上的表现相当与 RoBERTa 相仿,并非为了放弃判别能力而提升生成能力

Generation Tasks

基于典型的序列到序列模型 re-trained。采用平滑标签交叉熵损失作为损失函数。

Summarization

在这里插入图片描述
  • 针对 CNN/DailyMail 摘要任务,研究者观察到摘要结果往往与原文高度相似。其中一种抽取式的架构在该场景中表现出色,并且即使采用基础级的抽取前三句策略也能维持较好的效果。无论如何对比而言其性能均超越了现有所有方法。
  • 针对高度抽象性质的任务 XSum 抽取式模型在此场景下效果欠佳。值得注意的是该方法在评估指标上实现了显著超越具体而言其性能以惊人的6 ROUGE点优势超过了基于BERT的传统基准模型。

Dialogue

在这里插入图片描述

Abstractive QA

在这里插入图片描述

Translation

本文采用6层Transformer层结构来编码源语言(Romanian),生成BART能处理的表示。该模型利用去噪机制将编码结果映射为目标语言(English)。

在这里插入图片描述

Qualitative Analysis

在这里插入图片描述

Conclusion

  • 在判别式任务中,BART 的性能与 RoBERTa 的表现相当。
  • 在多种生成式任务中,BART 达到了新的 SOTA 成绩。

Referenced By

Mastering summarization techniques based on human feedback

全部评论 (0)

还没有任何评论哟~