Abstract&Introduction&Related Work
- 研究任务
预训练语言模型 - 已有方法和相关工作
BERT等 - 面临挑战
已有的方法依赖下游任务 - 创新思路
- 融合了双向和自回归模型
- 随机打乱原始句子的顺序,并同时使用一种novel的填空方案,文本的span只用一个masked token置换,取得了最好的效果
- 实验结论
在预训练阶段,encoder类似bert,decoder类似gpt,一个双向一个自回归
在fine-tune阶段,未被破坏的文本被同时输入到encoder和decoder,用decoder的最后隐藏层作为表示
这种设置的一个关键优势是去噪的灵活性;可以对原始文本进行任意的转换,包括改变其长度
BART
使用跟transformer一样的结构,区别有两点:
- decoder的每一层都跟最后一层隐藏层做交叉注意力
- 没有像BERT一样在词预测前设置的一个全连接层
- 比同层数BERT多10%的参数
decoder的输出和原文本做交叉熵损失,BART允许所有类型的文本破坏
如图:
text infilling受到spanBERT的启发,但是spanBERT用等长的『MASK』来替换token,而BART只用一个『MASK』来替换连续被mask的token
Fine-tuning BART
文本分类:类似BERT的『CLS』,在decoder最后,将额外的token添加到末尾,以便在decoder中对token的表示可以从完整的输入中注意到decoder的状态
机器翻译:用一个新的随机初始化的encoder取代BART的encoder embdding层
该模型是端到端的训练,它训练新的编码器将外语单词映射成BART可以去噪的输入变成英语
新的编码器可以使用与原始BART模型不同的词汇表。我们分两步训练源编码器,在这两种情况下,都是从BART模型的输出中反向传播交叉熵损失
第一步,我们冻结了大部分BART参数,只更新随机初始化的源编码器、BART位置嵌入以及BART编码器第一层的自我注意输入投影矩阵
第二步,我们对所有模型参数进行少量的迭代训练
token分类:直接将整个文档放入encoder-decoder,用decoder最上层的隐状态作为每个词的表示,用此表示来分类
序列生成:直接输入到encoder然后让decoder输出结果
Experiments
Conclusions
We introduced BART, a pre-training approach that learns to map corrupted documents to the original. BART achieves similar performance to RoBERTa on discriminative tasks, while achieving new state-of-theart results on a number of text generation tasks. Future work should explore new methods for corrupting documents for pre-training, perhaps tailoring them to specific end tasks.
Remark
经典的seq2seq model,对比不同方法体现了破坏-重建对于语言模型的强大潜力