微软统一预训练语言模型UniLM 2.0解读

微软研究院在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的基础上的变化和进步

1   预训练语言模型的分化

预训练语言模型(Pre-trained Language Model)的应用,使得原本无法针对各种语境变化的静态词向量表征,向着真正基于语境的语义特征表示(Contextual Word Representation)演进。而Transformer[1]的出现,无疑让这次演进焕发出了勃勃生机。

Transformer的提出,最早是为了解决循环神经网络RNN在神经机器翻译(Neural Machine Translation \ NMT)中无法有效地并行计算的效率问题。而Transformer的结构,也天然地有着NMT任务中典型的Encoder-Decoder结构。编码器encoder用于生成原始文本的语义表征,而解码器decoder则利用原始文本的语义表征,转写得到目标语言的翻译文本。

图1 Transformer有着典型的NMT任务中的Encoder-Decoder结构

Transformer encoder有将文本序列转为特征表示的天然能力,且编码高效,语义信息的编码不因序列长度而衰减,成为了后续问世的pre-trained LM的标配,比如来自OpenAI的GPT语言模型[2]和Google的BERT语言模型[3],都是基于Transformer encoder名噪一时的语言模型。不过两者在预训练的实现逻辑和原理的差别,也分化出了预训练语言模型的两种典型目标:

  • 适用于NLG任务的自回归(AutoRegressive \ AR)语言模型

  • 适用于NLU任务的自编码(AutoEncoding \ AE)语言模型

1.1 自回归(AR)语言模型

自回归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特征向量:

下图中,attention mask矩阵是一个右上角均为的矩阵,表示任意位置token,都无法接收来自下文的信息。GPT采用的attention mask矩阵就是如此。
图2 attention mask图示
Attention mask并非GPT首创,在Transformer decoder中就有提出,是为了避免在翻译解码的过程中看到后文的翻译结果。有些地方称GPT采用的是Transformer decoder,其实并不严谨。准确来说,GPT是有着decoder特征的encoder,自然地也更适用于NLG类型任务,包括翻译、摘要生成和对话生成等等。

1.2 自编码(AE)语言模型

自编码AE语言模型没有顺序和次序约束,可以一次性获取到序列中的所有信息。可以简单理解AR模型是有顺序的,而AE模型是无序的。BERT就是一个利用Transformer encoder实现的AE模型,它没有去预测「下一个」token,而是预测缺失的token。原始输入序列带有被掩盖(mask)的token,根据上下文的信息去预测masked token,类似于英语考试中的完形填空(cloze task)。BERT的出现使得很多NLU任务的最好成绩都有不小的提升,比如实体识别、答案抽取和文本分类等等。

AE语言模型有着解决NLU任务的天然属性,却也是处理NLG任务的先天不足。而微软提出UniLM统一语言模型,目的就是为了整合这2种不同的语言模型训练目标。

2  UniLM 1.0

UniLM 1.0是微软发表于2019年的文章[4]中提出的模型,从它的名字「统一」(unified) 看出文章实现的是NLU与NLG的统一预训练模型。文章引入了4种不同的训练目标:

  • Left-to-Right LM \ 从左往右单向LM

  • Right-to-Left LM \ 从右往左单向LM

  • Bidirectional LM \ 双向LM

  • Sequence-to-sequence LM \ 序列到序列LM

上述目标的统一训练实现,依靠的就是attention mask。

图3 UniLM 1.0的实现原理

上图中3路不同走向的具体解释:

  • Bidirectional LM的attention mask矩阵全是白色方格,表示任何位置的token可以相互attend,与BERT训练目标一致

  • Left-to-Right LM的attention mask矩阵右上角为灰(对应为,表示每个token只能attend到该token左侧的token,与GPT训练目标一致

  • Seq-to-Seq LM是上述2种目标的组合,参考下图4

    • 左上角蓝框内矩阵为全白格,与双向的情况一致,表示Segment1 (S1) 内的token可以相互attend

    • 右下角粉框内矩阵为上三角阵,与从左往右的单向情况一致,表示Segment2 (S2) 的token只能attend到其自身左侧的token信息

图4 Seq-to-Seq情况下的attention mask

Seq-to-Seq LM的设计,是将S1看作source,S2看作target,其中target与source可能是引申、推导等关系。因此在S1上做NLU式的双向完整的理解,S2则是NLG式的单向的生成,符合Seq-to-Seq的应用需求

4种目标的训练可以在一套模型参数上同时进行,只需要调整不同的attention mask即可。文章总结了Unified 1.0的3点优势:

  • 一个Transformer模型结构和参数可以适用于不同的训练目标

  • 不同的训练目标下的参数共享,可以得到更具普适性的文本表征

  • Seq-to-Seq目标的训练,可以很好地适用于NLG的任务

在Unified 1.0中,Seq-to-Seq LM展示了该团队用统一的encoder来同时编码AE和AR模型的尝试。而2019年语言模型领域的更新变化,也让微软的这支团队看到了更优的解决方案的可能性。

3  UniLM 2.0

在微软发表UniLM 1.0之后没多久,由Google Brain和CMU联合研制的XLNet[5]发布。XLNet利用不同的factorization order,使目标token下文的token得以先被编码,从而实现了一种能够attend到全序列信息的自回归AR语言模型。具体的实现也是通过设计包含次序信息的attention mask来达到的。

图5 XLNet中,factorization order(3-2-4-1)可能和输入的sequence order(1-2-3-4)完全不同,前者代表的是预测顺序,通过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),参考下图。

图6 原始输入序列为 ,其中均被掩盖,图中展示2种不同的流程用来预测这3个掩码的内容

中的例子是一个factorization order为{4,5 -> 2}的输入序列:

将上述流程按2个阶段展开:

AE \ AutoEncoding \ 自编码

  • 图中左半部分,仅使用前一半输入序列

  • 序列的任意token间可以互相attend,[M]代表mask掩码,训练目标是一次给出序列中所有[M]的预测概率,与BERT训练一致

  • 具体的预测流程:

PAR \ Partially AutoRegressive \ 部分自回归

  • 图中右半部分,使用全部输入序列

  • 使用[P]代表pseudo mask,直译为伪掩码,目的是为了与前一步骤中的[M]区别开。先同时预测,再在已有, 的基础上预测

  • 具体的预测流程:

 

说明

  • partially AR之所以是「部分」,是因为模型支持一次预测出连续的掩码。之前需要{4->5->2},现在支持{4,5->2},由token级别改进为span级别,是AR模型的一种拓展;

  • 选用{4,5 -> 2}这样的预测顺序只是其中一种factorization order,亦可选用{2 -> 4,5}这样的顺序;

  • 引入伪掩码[P]是为了避免重复构建训练实体,否则上面PAR步骤中的2步流程需要2次构建不同的样本才能分别实现;

  • 一个token在输入序列中的真实位置并不重要,只要2个token有着相同的position embedding,模型会认为它们在文本中的位置一样

这里再解释一下引入[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如下图,大家可自行对照,这里不做展开。

图7 Factorization order为{4,5->2}的attention mask矩阵。注意:这里的灰色块代表允许attend,白色块代表不允许attend,与UniLM 1.0的表示正好相反。

虽然UniLM 2.0以一种不太直观的形式准备了预训练的输入序列,但它却向我们展示了在不同的factorization order的条件下,AR和AE训练目标在一个单一encoder中的统一实现。而与此同时,又有一些预训练LM开始回归最初的Encoder-Decoder的结构,比如谷歌的T5和微软的MASS,也让我们看到了预训练语言模型的更多的可能性。新的预训练语言模型不断涌现,我们也会持续跟进,为大家带来更多新颖模型的解读。

参考资料

[1]

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.0UNILMv2: Pseudo-Masked Language Models for Unified Language Model Pre-Training (2020)

往期精彩回顾




适合初学者入门人工智能的路线及资料下载机器学习在线手册深度学习在线手册AI基础下载(pdf更新到25集)本站qq群1003271085,加入微信群请回复“加群”获取一折本站知识星球优惠券,请回复“知识星球”喜欢文章,点个在看
发布了164 篇原创文章 · 获赞 24 · 访问量 3万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览