XLNet 第一作者杨植麟:为什么预处理模型XLNet比BERT、RoBERTa更加优越

在2020年2月11日下午的“智源论坛Live | 青年科学家线上报告会”中, 智源青年科学家、循环智能(Recurrent AI)联合创始人杨植麟做了题为《Latest Advances of Neural Language Models》的主题演讲

杨植麟,2019年博士毕业于卡内基梅隆大学,师从苹果AI负责人Ruslan Salakhutdinov,他曾与图灵奖得主Youshua Bengio、Yann LeCun合作发表论文,本科毕业于清华大学,导师为智源学者唐杰教授。杨植麟在自然语言理解、半监督学习等30多个数据集上取得历史最好结果(State-of-the-Art,SOTA)。

在本次演讲中,杨植麟系统解析了他的最新代表作品——XLNet。XLNet是由CMU和Google Brain Team携手提出的自然语言处理预训练框架,杨植麟作为核心研究成员,以第一作者的身份在NIPS 2019上发表了关于XLNet的论文[1]。XLNet 如今已经是NLP领域近年来最被关注的模型之一,它在18 项NLP任务中拿到最优成绩(SOTA),包括机器问答、自然语言推断、情感分析和文档排序等。

在演讲中,杨植麟抽丝剥茧般回顾了他设计XLNet时一步步的思考历程,从融合自回归语言模型,到纳入降噪自编码模型的优点,再到引进双流自注意力机制等,这些创新最终使得XLNet和Google BERT[2]、Facebook RoBERTa [3]模型的对比实验中取得了优异的成绩。此外,杨植麟还展望了对AI数据模型的趋势性看法,见解独到,相信会给大家带来很多启迪。

下面是杨植麟演讲的精彩要点。

一、NLP预训练模型近年来的发展

在进入XLNet设计框架之前,杨植麟首先介绍一些相关的前置知识,简介了NLP预训练模型近年来的发展。在NLP领域,可以将训练数据分为两类:一类是有标注数据,即每条数据的类别都经过了人工标注;另一类为无标注数据,也就是无预先人工标注的原始数据。有标注数据因为增加了人工预处理流程,一般会取得比较好的表现,但缺陷是成本比较高,这便导致现存的训练数据一般是由大量无标注数据和少量有标注数据构成。在这样的背景下,NLP学者们便开始提出先无监督预训练、后有监督微调的模型训练范式。

率先出现的是词嵌入模型,典型代表如2013年Mikolov等人提出的Word2Vec[4]、2014年Pennington等人提出的GloVe[5]等,它们可谓是无监督预训练模型的雏形。但词嵌入模型的问题在于一个单词只能对应一个词向量,即在不同的上下文中,同一个词的编码是相同的,这使得语言的一词多义问题无法得到解决。于是学术界开始着力探索基于上下文的预训练模型,尤其是2018年下半年至2019年上八年间涌现了一批代表,包括:Peters等人提出的ELMo[6]、Radford等人提出的GPT系列[7,8],Devlin等人提出的BERT等。值得一提的是,这些预训练模型的内部组件也在不断改进中:ELMo由循环神经网络LSTM组成,GPT系列、BERT则由基于自注意力机制的Transformer[9]组成,而Tansformer的改进模型——Tansformer-XL[10],也是杨植麟本人核心参与的代表性作品。

二、预处理模型XLNet 的特性

 XLNet 特性之一:自回归和降噪自编码的融合

下面,我们开始介绍XLNet的设计思想,它继承了近年来主流无监督预训练模型的相关特征、优势,并尝试解决了其中的一些缺陷。杨植麟发现,这些模型主要可以分为两类:

第一类是自回归语言模型,以ELMo为代表,其训练目标为:

举例:在处理句子“New York is a city”时,首先以“New”为前提预测“York”;然后以“New York”为前提,预测“is”,并以此类推;最终,以“New York is a city”为前提,预测句子终止符。它的优点在于预训练过程完全切合人类从前到后、依次阅读和书写的语言使用习惯,因此对单词的相对位置有较强的建模能力;但缺点在于无法同时对上文和下文进行双向建模,某一个单词的预测无法同时使用双向的上下文信息。此外,由于它必须严格按照单词顺序依次进行单词预测,其并行性较差。

第二类是降噪自编码模型,以BERT为代表,其训练目标为:

举例:在处理句子“New York is a city”时,用[mask]符号替换掉New和York,向模型输入“[mask] [mask] is a city”,预测“New York”。它的优点在于可以同时使用双向的上下文信息;但缺点在于,一方面由于[mask]符号的特性,被预测词之间相互独立,无法建模单词的位置信息,另一方面在模型微调阶段,[mask]符号不会出现,这导致预训练阶段和微调阶段之间存在一定的分歧。

于是为了融合这两类模型的优点,摒弃各自的缺点,杨植麟等人先提出了一个排序语言模型,其训练目标为:

这个模型的特点是:

首先,该模型对输入单词序列不做任何改变,这解决了降噪自编码模型中,预训练阶段与微调阶段之间有分歧的缺陷。

其次,该模型在内部对单词的位置进行重排列,实际处理单词的顺序是重排列后单词的排列顺序。在预训练阶段,对所有排列方式进行随机采样,用少数的排列顺序进行训练,解决了自回归语言模型中,无法同时使用双向的上下文信息的缺陷。

最后,该模型在重排列的基础上,使用自注意力掩膜机制(Self-Attention Mask)使得预测遵循自回归语言模型的准则,即由上文已知单词预测下一个未知单词,因此该模型本质上还是属于自回归语言模型。同时,自注意力掩膜机制的矩阵运算使得模型有较好的并行性,这解决了自回归语言模型中,并行性较差的缺陷。

下面通过实例说明这个过程:

图1:排序语言模型示意图

排序语言模型的机理如图1所示。首先,把原始句子“New York is a city”输入模型中。然后,在模型内部对单词进行重排列,得到新的排列顺序“city a is New York”。接下来遵循自回归语言模型的准则,用每一个位置的上文单词预测此位置的单词。自注意力掩膜机制的矩阵运算使得所有单词的预测是并行的。

XLNet 特性之二:双流自注意力机制

但上述的排序语言模型看似完美地融合了自回归语言模型和降噪自编码模型的优点,然而还存在一定的问题。仔细观察图1可以发现,排序语言模型在预测每个单词时,只会用到上文单词的内容信息,因此预测结果可以形式化为

其中, 是重排列后第t个单词对应的隐状态向量,使用了第1 ~ t-1个单词的内容信息xz<t。传统的自回归语言模型中,模型只会对原始的单词排列顺序进行自回归拟合。即使没有显式使用单词在原始句子中的位置信息,传统自回归语言模型仍然会感知到这些位置信息。虽然这里的排序语言模型符合自回归语言模型的预测准则,但是模型内部增加了位置重排列机制后,重排列的随机性使得模型感知不到单词在原始句子中的位置信息,因此本质上已经退化为一个词袋模型。举例说明,假设原始句子是“New York is a city”。若重排列后为“York New is city a”,则预测重排列中第3个单词的过程是计算

其中,zt为重排列中第t个单词在原始句子中的位置。若重排列后为“York New city ais”,则预测重排列中第3个单词的过程是计算

然而,基于现有的排序语言模型,不同重排列中第3个单词是“is”的概率是相同的,即为

其中,e(x)是单词x的词嵌入向量。这显然是不合理的,从语法和语义的角度来说,已知原句中前2个单词是“New York”,第3个单词是“is”的概率应该大于第5个单词为“is”的概率。

为了使排序语言模型能对单词在原始句子中的位置信息进行建模,每个单词的预测不仅要使用上文已知单词的内容信息,还要显式使用待预测单词的位置信息。因此,杨植麟等人对原始排序语言模型进行再参数化,预测结果的形式化表达式为:

其中, 是重排列后第t个单词对应的隐状态向量,使用了第1 ~ t-1个单词的内容信息xz<t和第t个单词的位置信息zt。 中包含了位置信息zt,从而约束模型必须以位置zt为前提预测重排列中第t个词。继续上面的例子,排序语言模型再参数化后,2个原先相等的概率就不再相等。具体地,变为如下的形式

然而,特征向量 的计算过程会出现下面的矛盾:假设处理句子“x1 x2 x3 x4”,原始句子重排列后为“x3 x2 x4 x1”,如图2所示,用单词“x3”预测单词“x2”时,g2(1)不应该包含“x2”的内容信息,否则会造成内容信息泄露,这个预测任务会变得极其简单,无法学习到期望的特征。如图3所示,用单词“x3x2”预测单词“x4”时,g2(1)应该包含“x2”的内容信息,这样才符合用已知上文单词预测当前单词的准则。总的来说,在不同场景下,对于同一个隐状态g2(1),再参数化后的预测任务有着完全相反的要求。

由此看来,1套隐状态已经无法满足新任务的要求。因此,杨植麟等人提出了双流自注意力机制的解决方案,采用2套隐状态。

图2:单流自注意力机制预测单词x2   

图3:单流自注意力机制预测单词x4

简单来说,双流自注意力机制会把传统单流自注意力机制的每1个隐状态ht(j)由2个隐状态ht(j)、gt(j)代替。所有的ht(j)组成了内容流(Content Stream),所有的gt(j)组成了查询流(Query Stream)。2个流共享1套自注意力机制的参数,因此不会造成参数的增加。继续上述的例子,如果把传统单流自注意力机制改为双流自注意力机制,单词“x2”对应的隐状态更新和单词预测的算法流程如图4、5所示,单词“x4”对应的隐状态更新和单词预测的算法流程如图6、7所示。其中,第0层的内容隐状态ht(0)用单词嵌入向量e(xt)初始化,第0层的查询隐状态gt(0)用一个可训练的向量w初始化。如图5所示,预测单词“x2”时,并没有用到“x2”的内容信息。如图4所示,h2(1)中已包含单词“x2”的内容信息。如图7所示,预测单词“x4”时,使用了h2(1),从而使用了上文单词“x2”的内容信息,但是并没有使用单词“x4”的内容信息。至此,排序语言模型再参数化造成的矛盾已经解决。

图4:双流自注意力机制预测单词x2(内容流更新)

图5:双流自注意力机制预测单词x2(查询流更新) 

图6:双流自注意力机制预测单词x4(内容流更新) 

图7:双流自注意力机制预测单词x4(查询流更新)

以上便是XLNet的整体框架。到这里,我们总结一下杨植麟关于XLNet的整个思想历程(如下图8所示):刚开始为了解决BERT中单词之间的独立性假设、预训练和微调分歧这两个问题,杨植麟先是提出了一个由自回归语言模型和降噪自编码模型结合而成的排序语言模型。但这样又出现了两个新的问题:首先,基于传统参数形式的排序语言模型会退化成词袋模型,这便需要用单词在原始句子中的位置信息对模型进行再参数化;其次,出现了某个单词的隐状态在预测自身和预测其他单词之间存在的矛盾,对此,杨植麟则引入了双流自注意力机制。就这样,近年来NLP领域备受关注的学术成果XLNet便诞生了。 

图8:XLNet的思想历程

三、XLNet 的相关实验:超越BERT 、RoBERTa

下面,我们来看一下XLNet的两个实验表现。

第一个实验是XLNet与BERT的对比实验。为了保证实验的公平性,杨植麟和他的同事们严格控制超参数与原始设置保持一致,不做参数调整。同时,每一个任务都用3种BERT进行测试,分别是原始BERT、BERT加Whole Word Masking、BERT去掉Next Sentence Prediction,取最优的结果作为BERT在相应任务上的测试结果。为了保证实验的可信度,实验基于GLUE[11]任务集,涵盖了自然语言推理、文本相似度评估、情感分析等各方面任务,例如MNLI要求推断文本之间的蕴含关系,QNLI要求判断问题、答案对是否匹配等。实验结果如图9所示,在所有被考虑的任务上,XLNet的表现均优于BERT。

第二个实验是XLNet与RoBERTa的对比实验。鉴于RoBERTa本质上是在BERT的基础上,增大训练数据量、增大超参数后得到的模型,因此在这个实验里,杨植麟和他的同事们使用略小于RoBERTa的训练数据量和与RoBERTa相同的超参数训练了一个更大的XLNet。实验基于GLUE任务集,结果如图10所示,在所有被考虑的任务上,XLNet的表现同样均优于RoBERTa。

图 9:XLNet与BERT的对比实验

图 10:XLNet与RoBERTa的对比实验

四、数据模型的发展趋势:“先做大”,“再做小”

最后,杨植麟还和大家分享了他对AI数学模型的趋势性看法,他指出纵观AI的发展历史,数学模型的发展趋势往往是“先做大、后做小”。“先做大”指用“大算力、大模型、大数据”提升模型在特定任务上的表现,目前的NLP领域正处于“先做大”的阶段。具体来说,以Transformer为基本模块搭建“更大的模型”,随后再用“更大的算力”和“更大的数据”来训练,似乎已成为提升模型在特定任务中效果的通用范式。例如,在Google推出BERT之后,Facebook用10倍于BERT的数据训练模型,推出了表现更优的RoBERTa。

而当“先做大”阶段已经有了足够多的积累了之后,则需要把重点放在“后做小”。“后做小”是指在已有工作的基础上,用“小模型”、“小算力”、“小数据”在特定任务上实现比较好的表现,比如用蒸馏法进行模型压缩,使之可以在移动端运行。

杨植麟表示其正处于“后做小”阶段,因此XLNet未来研究的一个关键目标,就是当目标任务是小样本数据时,提升模型微调的效率。此外在行业应用方面,XLNet目前已被集成到了RecurrentAI平台上。这个平台是杨植麟的创业项目,定位是“基于对话数据的AI销售中台”。杨植麟认为鉴于XLNet具有较高的通用性,使得Recurrent AI平台可以为所有自然语言理解任务提供底层服务,具体的应用包括:客户画像抽取,销售话术分析,客服问题挖掘,智能质检,产品推荐,线索评分等。

杨植麟的这场报告,清晰地向我们展现了XLNet的思想脉络,令人印象深刻的地方在于他敏锐的问题意识,其思想进阶的每一个脚步,无不立足于去“发现”所研究领域正亟待解决的问题,并在探索解决方案的道路中不断实验、优化、构建等,这种将理论素养深刻融入解决真实问题的研究作风,相信会给大家带来很多启迪。

参考文献

[1]    Zhilin Yang et al. XLNet:Generalized Autoregressive Pretraining for Language Understanding. NIPS. 2019.

[2]    Jacob Devlin et al. BERT: Pre-trainingof Deep Bidirectional Transformers for Language Understanding. NAACL. 2019.

[3]    Yinhan Liu et al. RoBERTa: ARobustly Optimized BERT Pretraining Approach. arXiv:1907.11692. 2019

[4]    Tomas Mikolov et al. Efficient Estimation of Word Representations in Vector Space. arXiv:1301.3781.2013.

[5]    Jeffrey Pennington.GloVe: Global Vectors for Word Representation. EMNLP. 2014.

[6]    Matthew E. Peters et al. Deep contextualized word representations. NAACL. 2018.

[7]    Alec Radford et al. Improving Language Understanding by Generative Pre-Training. 2018.

[8]    Alec Radford et al. Language Models are Unsupervised Multitask Learners. 2019.

[9]    Ashish Vaswani et al. Attention Is All You Need. NIPS. 2017.

[10]  Zihang Dai et al.Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context. ACL.2019

[11]  Alex Wang et al. GLUE: A Multi-Task Benchmark and Analysis Platform for Natural Language Understanding. ICLR. 2019

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章