论文笔记|Unified Language Model Pre-training for Natural Language Understanding and Generation

任@燕山大学
前言
预训练语言模型提高了NLP任务的技术水平。
对不同类型的语言模型进行预训练时,使用了不同的预测任务和训练目标,如下表所示。

ELMo:学习两个单向LM,正向LM从左到右读取文本,反向LM从右到左编码文本。
GPT:使用从左到右的Transformer逐字预测文本序列。
BERT:采用双向Transformer编码器,结合左右上下文来预测掩码。
BERT显著提高了许多NLP任务的性能,但由于其双向性,注重于对文档的理解,却难以应用于自然语言生成任务。

针对上表三种无监督语言建模目标,该文提出了统一语言模型UniLM(Unified pre-trained Language Model),基于Transformer,可同时应用于自然语言理解(NLU)和自然语言生成(NLG)任务。
模型结构

UniLM的模型结构与BERT相同,主要在MASK上下功夫,所有的语言模型,本质都是在训练时能获取到什么信息,在实现层面其实就是如何对输入进行MASK。生成式任务是一个seq2seq问题,通过MASK将seq2seq整合进BERT中。
输入表示
输入x是一个单词序列,它要么是单向LM的文本段,要么是打包在一起用于双向LM和序列到序列LM的一对片段。
在输入的开始添加一个[SOS]标记,在每个分段的结束添加一个[EOS]标记。[EOS]不仅在NLU任务中标记句子边界,还用于模型学习在NLG任务中何时终止解码过程。输入表示如下图,与BERT相同。

文本由WordPiece标记为子词单位。对于每个输入标记,其向量表示由相应的标记嵌入、位置嵌入和段嵌入相加。UniLM使用多个LM任务进行训练,分段嵌入也起到了LM标识符的作用,因为不同的LM目标使用了不同的分段嵌入。
训练目标
- Unbidirectional LM:使用从左到右和从右到左的LM目标。以从左到右的LM为例。每个标记的表示形式只对左上下文标记及其本身进行编码。例如,要预测“x_1x_2[MASK]x_4”的[MASK],只能使用令牌x1、x2和它本身而不能使用x4。使用一个三角矩阵实现,其中自注意掩码的上三角形部分设置为−∞,其他元素设置为0,如模型图右半中部所示。类似地,从右到左的LM类似。
- Bidirectional LM:一个双向LM允许所有token在预测中相互访问。它从两个方向对上下文信息进行编码,产生比单向文本更好的上下文表示。如模型图右半上部,自注意掩码为零矩阵,允许每个token关注输入序列的所有位置。
- Sequence-to-Sequence LM:如模型图右半下部所示,源段双向访问所有字符,目标段的字符只能访问目标端左方字符和所有源段标记。例如,给定源段t_1t_2和目标段t_3t_4t_5,将“[SOS] t_1t_2[EOS] t_3t_4t_5[EOS]”输入到模型中。t1和t2都可以访问前四个令牌,包括[SOS]和[EOS],而t4只能访问前六个令牌,不能访问后边的t5和[EOS]。
- Next Sentence Prediction:与BERT相同的NSP任务,针对双向LM。
微调
对于NLU任务,将UniLM作为双向Transformer编码器进行微调,和BERT相同。
对于NLG任务,我们以Seq2seq任务为例。设S1和S2分别表示源序列和目标序列,只mask S2中的字符,而且S2的[SEP]也会被随机mask,从而让模型学会如何停止。
实验
在NLU任务(即GLUE基准测试和抽取式问题回答)和NLG任务(即生成式摘要、问题生成、生成式问题回答和对话回答生成)上分别进行了实验。
抽取式摘要

问答
问题生成

回复生成

GLUE基准

总结
本文提出了统一预训练语言模型UniLM,该模型针对具有共享参数的双向、单向和seq2seq的LM目标进行联合优化,可以通过微调应用于NLU和NLG的下游任务。
实验结果表明,在GLUE基准测试和两个问答数据集上,UniLM优于BERT。此外,UNILM在5个NLG数据集上的性能优于之前的先进模型。
