自监督方法在自然语言处理(NLP)任务中取得了显著成功,例如谷歌的BERT(来自transformer的双向编码器表示)从两个方向捕获表示,而Open AI的GPT-2则显示了自回归特性。这两种基于transformer的模型都有各自的特点,BERT能够判别任务(discriminative tasks )但不能生成任务(generative tasks),GPT由于其自回归特性可以生成任务但不可以判别任务。去年,Facebook AI提出了BART,这是一个新的预训练模型,结合了双向transformer和自回归transformer ,可用于文本生成和理解。
介绍
BART是一种采用序列到序列模型构建的降噪自编码器,适用于各种最终任务。它使用基于标准transformer的神经机器翻译架构。BART的预训练包括:
1)使用噪声函数破坏文本;
2)学习序列到序列模型以重建原始文本。
这些预训练步骤的主要优势在于:该模型可以灵活处理原始输入文本,并学会有效地重建文本。
当为文本生成进行微调(fine-tuned)时,BART提供了健壮的性能,并且在理解任务中也能很好地工作。
模型
BART是一种降噪自编码器,可将损坏的文档映射到原始文档。它被实现为序列到序列模型,该模型具有在受损文本上的双向编码器和从左至右的自回归解码器。
架构
BART架构由两个主要组件组成:编码器和解码器。他们使用BERT的编码器组件,该组件用于从两个方向对输入语句进行编码,以获得更多上下文信息。
双向编码器:用掩码替换随机Tokens,文档双向编码。丢失的Tokens是独立预测的。
BART使用了来自GPT的解码器组件,该解码器组件用于重构噪声输入。然而,单词只能在leftward上下文使用,所以它不能学习双向互动。
自回归解码器:自回归预测的Tokens,这意味着GPT可以用于生成文本。
除了解码器部分使用GeLU激活函数而非ReLU外,BART使用标准的序列到序列transformer架构,参数的初始化是从N(0.0, 0.02)开始的。BART有两种变体,基本模型在编码器和解码器中使用6层,而大型模型则每个使用12层。
BART:此处文档已被替换为带有mask符号的文本,从而损坏了文档。使用双向模型对损坏的文档(左)进行编码,然后使用自回归解码器计算原始文档(右)的可能性。
Pre-Training BART
BART的训练方法是先破坏文档,然后使用交叉熵损失(解码器的输出与原始文档之间的交叉熵)通过解码器恢复它们。
有几个技巧可以用来破坏文档。
Token屏蔽:像BERT一样,对随机tokens进行采样并替换为[MASK] token。Token删除:从输入中删除随机tokens。与token屏蔽不同,该模型必须确定哪些位置缺少输入。文本填充:对几个文本范围进行采样,并用一个[MASK] token替换(可以是0长度)。句子排列:根据句号将文档分为句子。这些句子会随机排列。文档Rotation:随机选择一个token,然后对文档进行转换,使其以该token开头。此任务训练模型以识别文档的开始。
Transformations用于对试验的输入进行Fine-Tuning BART
1.序列分类任务:就像BERT中的[CLS] token出现在编码器的开头一样,BART的[CLS] token位于最后一个解码器的最后一层。
2. Token分类任务:将相同的输入馈送到编码器和解码器,并使用来自解码器的最终隐藏表示对tokens进行分类。
3. 序列生成任务:由于BART具有自回归解码器,因此可以直接对它进行微调,以处理诸如抽象问题解答和摘要之类的序列生成任务。在这两个任务中,信息都是从输入中复制出来的,但经过了处理,这与降噪预训练目标密切相关。在此,编码器输入是输入序列,而解码器自动生成输出。