背景

题目:MASS: Masked Sequence to Sequence Pre-training for Language Generation 机构:微软亚洲研究院 作者:Kaitao Song、Xu Tan 收录会议:ICML 2019 面向任务:自然语言理解任务(NLU)的学习表示 论文地址:https://arxiv.org/pdf/1905.02450.pdf 成果:WMT19 机器翻译比赛中,MASS在中-英、英-立陶宛两个语言中取得了第一名的成绩 论文代码:https://github.com/microsoft/MASS

摘要

受到BERT的预训练和fine tuning的启发,本文提出MAsked Sequence to Sequence pre-training (MASS)以用encoder-decoder方式进行文本生成。MASS采用encoder-decoder框架以重建一个句子片段:其encoders输入的句子被随机掩盖掉连续数个tokens,其decoder尝试预测该掩盖掉的片段。【这个其实与BERT很像,完形填空的方式,只是这里遮蔽掉的是连续的数个tokens,而BERT只遮蔽一个token】通过这种方式MASS能够联合训练encoder和decoder以提升表征提取的能力和语言建模的能力。再在一系列的零样本或者少样本的生成任务(包括神经机器翻译、文本摘要和对话回答生成这3个任务,具体来说包含了8个数据集)中进行fine tuning,最终MASS获得的结果远超于各个baselines。这些数据集的baselines要么是没有预训练,要么是采用其他的预训练方法。特别地,在BLUE得分中以37.5的accuracy刷新了记录。在无监督的英-法翻译中,甚至超过了早期基于注意力的监督模型(Bahdanau et al., 2015b)。

介绍

BERT 在自然语言理解(比如情感分类、自然语言推理、命名实体识别、SQuAD 阅读理解等)任务中取得了很好的结果,受到了越来越多的关注。然而,在自然语言处理领域,除了自然语言理解任务,还有很多序列到序列的自然语言生成任务,比如机器翻译、文本摘要生成、对话生成等。自然语言生成任务所需要的数据量是巨大的,但是一般情况下的上述自然语言生成任务很多是零样本或是少样本训练集。直接在这些自然语言生成任务上使用BERT是不合适的,这是由于BERT的设计初衷是用于自然语言理解。如此设计,使其一般只有encoder或者decoder。因此,如何为自然语言生成任务(这些任务常常使用encoder-decoder的序列到序列框架)设计预训练模型是极具潜力且至关重要的。

不像BERT或者其他预训练的语言模型,仅仅使用encoder或者decoder,MASS的预训练阶段是联合了encoder和decoder。第一步:在encoder端遮蔽掉连续的数个tokens,预测这些被遮蔽掉的tokens。MASS能够强制encoder理解这些未被遮蔽的tokens,以在decoder端预测这些被遮蔽的tokens。第二步:在decoder端遮蔽掉在source端对应的未被遮蔽的部分,如此在进行下一个token预测的时候,MASS能够强制decoder依赖于source的特征表示,而非target端前之前预测的tokens。这样能够更好地促进encoder和decoder之间的联合训练。

MASS仅仅需要预训练一个模型,然后再下游的多种任务中进行微调即可。本文使用transformer作为序列到序列的基本model,在WMT的单一语言语料上进行预训练,之后在下游的3个语言生成任务:机器神经翻译(NMT)、文本摘要和对话回答生成 中进行微调。考虑到下游任务中有跨语言任务NMT,MASS在预训练过程中使用多种语言。本文尝试在3个任务中使用low-resource setting(即使用较少的数据量),同时也在NMT任务上尝试零训练样本(zero-resource setting)的无监督学习。对于NMT任务是采用WMT14中的英-法数据集、WMT16中的英-德和WMT16的英语-罗马数据集。对于无监督的NMT,直接将预训练后的模型作用于单语种数据集,并设置back-translation loss(而不用采用additional denoising auto-encoder loss)。至于low-resource的NMT,直接在给定的少量训练集上对预训练的模型进行微调。对于另外2个任务,我们采用以下的方式:(1)文本摘要任务上采用Gigaword 语料(2)在会话式答案生成任务上采用Cornell Movie Dialog语料。MASS能够在所有这些任务上(包括零样本和少样本)获得性能上的提升,从而证明了本文模型在一系列的生成任务上的有效性和通用性。

本文的贡献如下: (1)提出MASS, 一个面向语言生成任务的屏蔽序列到序列预训练模型 (2)将MASS应用到一系列的语言生成任务上,包括NMT、文本摘要生成和对话回答生成,并取得显著了性能提升,从而证明了本文方法的有效性。特别是,在2个无监督NMT数据集:English-French 和English-German上取得了SOTA得分(在BLEU得分上)。该BLEU score分别超出此前最优得分4个百分点(English-French)和1个百分点(French-English)。此外,该模型还击败了早期带注意力机制的有监督NMT模型(Bahdanau et al., 2015b)。

实验及其结果

MASS的预训练

  • 模型配置: 以Transformer为基本的模型结构,Transformer是由4层encoder+4层decoder+512 embedding/hidden size + 2048 feed-forward filter size。文本摘要和对话生成是单语种任务,NMT涉及多语言,所以除了英语之外,还需要预训练一个多语种模型。本文考虑了English, German, French 和 Romanian,其中英语在所有的下游任务中都会被用到,其他语种只会在NMT任务中用到。此外,为了区分不同的语种,在输入的句子中增加了一个language embedding。

  • 预训练的细节: 对于被屏蔽掉的token用以特定字符取代,其他的处理与BERT的一样(80%的随机替换,10%的随机其他token,10%的未屏蔽)。此外本文还研究了不同的屏蔽长度k对accuracy的影响,这点后面补充结果。为了降低内存占用和计算时长,本文设计去掉decoder端的padding,但是保持unmasked tokens的positional embedding(即,如果前2个token被屏蔽,第3个token的positional embedding仍然是2,而不是0)。这种方式可以在维持accuracy不变的前提下,在decoder端降低大约50%的计算量。本文采用的优化器是Adam,其学习率是,训练的机器设备是4张 NVIDIA P100 GPU,每个mini-batch有32*4 个句子。