预训练模型(6)---- MASS

MASS: Masked Sequence to Sequence Pre-training for Language Generation

    • 摘要
    • 引言
    • 模型结构
    • 统一的预训练框架(包含GPT和Bert)
    • 实验结果

这是微软亚洲研究院在ICML2019的一篇文章,在NLP任务上超越了Bert、XLNet、XLM。不仅适用于有监督任务,还适用于无监督任务。而且框架结构非常灵活,可以根据自己的喜好随意调整,真的是太强大了。

文章链接:

MASS: Masked Sequence to Sequence Pre-training for Language Generation

代码链接:

https://github.com/microsoft/MASS

摘要

通过将知识从资源丰富的预训练任务转移到资源低/零资源的下游任务,预训练和微调(例如BERT)已在语言理解方面取得了巨大成功。受BERT成功的启发,我们提出了MAsked序列到序列预训练(MASS),用于基于编码器-解码器的语言生成。MASS采用编码器-解码器框架,根据句子的剩余部分来重构一个句子片段:它的编码器以一个带有随机屏蔽片段(几个连续的单词)的句子作为输入,它的解码器试图预测这个屏蔽片段。通过这种方式,MASS可以联合训练编码器和解码器来开发表示抽取和语言建模的能力。通过进一步微调各种零/低资源的语言生成任务,包括神经机器翻译、文本摘要和会话响应生成(3个任务和总共8个数据集),MASS在没有预训练或使用其他前训练方法的情况下相对于基线方法有了显著改进。特别地,我们在无监督的英法翻译上达到了最先进的准确性(BLEU分数为37.5),甚至超过了早期基于注意力的监督模型。

引言

BERT在自然语言理解(比如情感分类、自然语言推理、命名实体识别、SQuAD阅读理解等)任务中取得了很好的结果,受到了越来越多的关注。然而,在自然语言处理领域,除了自然语言理解任务,还有很多序列到序列的自然语言生成任务,比如机器翻译、文本摘要生成、对话生成、问答、文本风格转换等。在这类任务中,目前主流的方法是编码器-注意力-解码器框架。

编码器(Encoder)将源序列文本X编码成隐藏向量序列,然后解码器(Decoder)通过注意力机制(Attention)抽取编码的隐藏向量序列信息,自回归地生成目标序列文本Y。

模型结构

MASS专门针对序列到序列的自然语言生成任务。

MASS对句子随机屏蔽一个长度为k的连续片段,然后通过编码器-注意力-解码器模型预测生成该片段。 模型结构如下:

预训练模型(6)---- MASS_第1张图片
如上图所示,编码器端的第3-6个词被屏蔽掉,然后解码器端只预测这几个连续的词,而屏蔽掉其它词,图中“_”代表被屏蔽的词。

MASS预训练有以下几大优势:

  1. 解码器端其它词(在编码器端未被屏蔽掉的词)都被屏蔽掉,以鼓励解码器从编码器端提取信息来帮助连续片段的预测,这样能促进编码器-注意力-解码器结构的联合训练;
  2. 为了给解码器提供更有用的信息,编码器被强制去抽取未被屏蔽掉词的语义,以提升编码器理解源序列文本的能力。
  3. 让解码器预测连续的序列片段,以提升解码器的语言建模能力。

统一的预训练框架(包含GPT和Bert)

这部分是MASS的强大之处。

MASS有一个重要的超参数k(屏蔽的连续片段长度),通过调整k的大小,MASS能包含BERT中的屏蔽语言模型训练方法以及GPT中标准的语言模型预训练方法,使MASS成为一个通用的预训练框架。

当k=1时,根据MASS的设定,编码器端屏蔽一个单词,解码器端预测一个单词,如下图所示。这时我们应该会想到Bert只使用了Transformer的编码器模块,此时MASS解码器端没有任何输入信息,就相当于只用到了编码器模块,那么这时MASS和BERT中的屏蔽语言模型的预训练方法等价
预训练模型(6)---- MASS_第2张图片
当k=m(m为序列长度)时,根据MASS的设定,编码器屏蔽所有的单词,解码器预测所有单词,如下图所示。这时我们又想到GPT只使用了Transformer的解码器模块, 此时由于MASS编码器端所有词都被屏蔽掉,解码器的注意力机制相当于没有获取到信息,在这种情况下MASS等价于GPT中的标准语言模型

预训练模型(6)---- MASS_第3张图片
可以看到,当K=1或者m时,MASS的概率形式分别和BERT中的屏蔽语言模型以及GPT中的标准语言模型一致。

预训练模型(6)---- MASS_第4张图片

实验结果

MASS只需要无监督的单语数据(比如WMT News Crawl Data、Wikipedia Data等)进行预训练。MASS支持跨语言的序列到序列生成(比如机器翻译),也支持单语言的序列到序列生成(比如文本摘要生成、对话生成)。当预训练MASS支持跨语言任务时(比如英语-法语机器翻译),我们在一个模型里同时进行英语到英语以及法语到法语的预训练。需要单独给每个语言加上相应的语言嵌入向量,用来区分不同的语言。我们选取了无监督机器翻译、低资源机器翻译、文本摘要生成以及对话生成四个任务,将MASS预训练模型针对各个任务进行精调,以验证MASS的效果。

无监督机器翻译

依然是通过回译的方法来进行微调。

在无监督翻译任务上,我们和以前的工作做对比,其中包括在无监督机器翻译表现很好的 Facebook XLM(XLM用BERT中的屏蔽预训练模型,以及标准语言模型来分别预训练编码器和解码器),对比结果如下表所示。
预训练模型(6)---- MASS_第5张图片
MASS竟然在XLM的基础上提高了那么多,确实厉害。

文本摘要生成

在文本摘要生成(Gigaword Corpus)任务上,我们将MASS同BERT+LM(编码器用BERT预训练,解码器用标准语言模型LM预训练)以及DAE(去噪自编码器)进行了比较。从下表可以看到,MASS的效果明显优于BERT+LM以及DAE。
预训练模型(6)---- MASS_第6张图片
在不同的序列到序列自然语言生成任务中,MASS均取得了非常不错的效果。接下来,我们还将测试MASS在自然语言理解任务上的性能,并为该模型增加支持监督数据预训练的功能,以期望在更多自然语言任务中取得提升。未来,我们还希望将MASS的应用领域扩展到包含语音、视频等其它序列到序列的生成任务中。

你可能感兴趣的:(自然语言处理,预训练模型,NLP,自然语言处理,预训练模型)