微软研究院在2月底发布的UniLM 2.0(Unified Language Model \ 统一语言模型)文章,相比于19年上半年发布的UniLM 1.0,更加有效地整合了自然语言理解(NLU)与自然语言生成(NLG)这两种不同目标下的训练任务。无论是两种训练目标结合的统一性,还是在测评数据集上表现的性能,UniLM 2.0都在前一代的基础上有较大的改进。
本文将就近年来基于Transformer的预训练语言模型在NLU与NLG两种不同训练目标上的分化做简单介绍,再研究UniLM 1.0如何有机地结合这两种训练目标,进而介绍UniLM 2.0在1.0的基础上的变化和进步
预训练语言模型(Pre-trained Language Model)的应用,使得原本无法针对各种语境变化的静态词向量表征,向着真正基于语境的语义特征表示(Contextual Word Representation)演进。而Transformer[1]的出现,无疑让这次演进焕发出了勃勃生机。
Transformer的提出,最早是为了解决循环神经网络RNN在神经机器翻译(Neural Machine Translation \ NMT)中无法有效地并行计算的效率问题。而Transformer的结构,也天然地有着NMT任务中典型的Encoder-Decoder结构。编码器encoder用于生成原始文本的语义表征,而解码器decoder则利用原始文本的语义表征,转写得到目标语言的翻译文本。
Transformer encoder有将文本序列转为特征表示的天然能力,且编码高效,语义信息的编码不因序列长度而衰减,成为了后续问世的pre-trained LM的标配,比如来自OpenAI的GPT语言模型[2]和Google的BERT语言模型[3],都是基于Transformer encoder名噪一时的语言模型。不过两者在预训练的实现逻辑和原理的差别,也分化出了预训练语言模型的两种典型目标:
自回归AR语言模型是一种有着先后解码顺序的语言模型。比如从左往右,根据前文预测当前token(字符)的概率 。这一点非常契合按照时间步对序列进行编码的RNN网络,基于2个单向LSTM的语言模型ELMo也属于这类。GPT沿袭AR语言模型的做法,从左往右编码,不过使用的是Transformer encoder作为编码器。值得注意的是,Transformer利用self-attention的机制,使得每个位置的token,都有机会attend(注意)到任意位置的token。那么GPT又是如何做到避免下文信息泄露的呢?答案在于attention mask。
Attention mask矩阵经过配置,可以让 屏蔽来自 的注意力,只需要把矩阵对应位置元素 设置为 。注意力权重加上 后经过softmax规整后对应权重 为0,从而避免 指向 的信息泄露。下面的公式[4]中,M代表attention mask,Q/K/V分别代表了self-attention中的输入序列在l层的query/key/value特征向量:
自编码AE语言模型没有顺序和次序约束,可以一次性获取到序列中的所有信息。可以简单理解AR模型是有顺序的,而AE模型是无序的。BERT就是一个利用Transformer encoder实现的AE模型,它没有去预测「下一个」token,而是预测缺失的token。原始输入序列带有被掩盖(mask)的token,根据上下文的信息去预测masked token,类似于英语考试中的完形填空(cloze task)。BERT的出现使得很多NLU任务的最好成绩都有不小的提升,比如实体识别、答案抽取和文本分类等等。
AE语言模型有着解决NLU任务的天然属性,却也是处理NLG任务的先天不足。而微软提出UniLM统一语言模型,目的就是为了整合这2种不同的语言模型训练目标。
UniLM 1.0是微软发表于2019年的文章[4]中提出的模型,从它的名字「统一」(unified) 看出文章实现的是NLU与NLG的统一预训练模型。文章引入了4种不同的训练目标:
上述目标的统一训练实现,依靠的就是attention mask。
上图中3路不同走向的具体解释:
Seq-to-Seq LM的设计,是将S1看作source,S2看作target,其中target与source可能是引申、推导等关系。因此在S1上做NLU式的双向完整的理解,S2则是NLG式的单向的生成,符合Seq-to-Seq的应用需求。
4种目标的训练可以在一套模型参数上同时进行,只需要调整不同的attention mask即可。文章总结了Unified 1.0的3点优势:
在Unified 1.0中,Seq-to-Seq LM展示了该团队用统一的encoder来同时编码AE和AR模型的尝试。而2019年语言模型领域的更新变化,也让微软的这支团队看到了更优的解决方案的可能性。
在微软发表UniLM 1.0之后没多久,由Google Brain和CMU联合研制的XLNet[5]发布。XLNet利用不同的factorization order,使目标token下文的token得以先被编码,从而实现了一种能够attend到全序列信息的自回归AR语言模型。具体的实现也是通过设计包含次序信息的attention mask来达到的。
Factorization order直译为因式分解顺序,此处译为解析顺序或者预测顺序更为贴切。它描述的是序列中token被预测的先后顺序,这个顺序可以和序列本身的sequence order完全不同。虽然常见的NLG任务遵循从左往右的序列顺序依次解码,但这并不意味着训练编码的顺序也要求从左往右。XLNet就成功实现了下文token提前编码的自回归预训练,且达到了不错的效果。这里要介绍的UniLM 2.0[6]也利用了这一点。
UniLM 2.0相比于1.0的主要改进,在于它支持更多样的factorization order且无需重复构建训练实体。这一目标的实现,主要是借助文章提出的伪掩码语言模型(Pseudo-Masked Language Models \ PMLM),参考下图。
图中的例子是一个factorization order为{4,5 -> 2}的输入序列:
将上述流程按2个阶段展开:
AE \ AutoEncoding \ 自编码
PAR \ Partially AutoRegressive \ 部分自回归
这里再解释一下引入[P]伪掩码的作用。
[P]其实和[M]的作用一致,只是作用的阶段不同。AE阶段预测[M]的内容,PAR阶段预测[P]的内容,这是文章为了让2个不同的训练目标可以在一次输入的情况下完成而设计的一种策略。如果这里还是按照UniLM 1.0,AR阶段的训练是从左往右单向的,那么只用[M]就足够。UniLM 2.0为了实现不同的factorization order,允许下文的token先被预测,且不需要每步预测后再重新构建输入序列,故引入[P]掩码。
在构建好输入序列之后,为了避免信息泄露,这里也是通过独特设计的attention mask矩阵来保证的。文章的例子{4,5->2}所用的attention mask如下图,大家可自行对照,这里不做展开。
虽然UniLM 2.0以一种不太直观的形式准备了预训练的输入序列,但它却向我们展示了在不同的factorization order的条件下,AR和AE训练目标在一个单一encoder中的统一实现。而与此同时,又有一些预训练LM开始回归最初的Encoder-Decoder的结构,比如谷歌的T5和微软的MASS,也让我们看到了预训练语言模型的更多的可能性。新的预训练语言模型不断涌现,我们也会持续跟进,为大家带来更多新颖模型的解读。
Transformer \ Attention Is All You Need (2017)
[2]GPT \ Improving Language Understanding by Generative Pre-Training (2018)
[3]BERT \ BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (2018)
[4]UniLM 1.0 \ Unified Language Model Pre-training for Natural Language Understanding and Generation (2019)
[5]XLNet \ Generalized Autoregressive Pretraining for Language Understanding (2019)
[6]UniLM 2.0 \ UNILMv2: Pseudo-Masked Language Models for Unified Language Model Pre-Training (2020)
推荐阅读
From Word Embeddings To Document Distances 阅读笔记
模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法
可解释性论文阅读笔记1-Tree Regularization
关于AINLP
AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP君微信(id:AINLP2),备注工作/研究方向+加群目的。