XLNet:语言理解的生成自回归预训练模型一

       看了XLNET的语言模型的论文,基于自身的理解,编写了这篇文章,有写的不对的地方希望大家能够指出,在此希望能和大家一起学习。


       传统意义上的自回归语言模型不具有构建双向上下文信息模型的能力,而类似于bert的自编码器的语言模型可以解决这个问题,但是他是依赖于【mask】掩码去实现双向构建模型,所以忽略了mask位置之间的依赖关系,并存在预训练语义微调的差异,为了同时获取自回归语言模型考虑上下文信息和bert模型双向构建的优点,开始构建了xlnet模型。

        先介绍在上游环节中xlnet的无监督学习,在上游环节的无监督学习中,AR语言模型设置文本序列X=(x1,x2,x3...,xT),求前项序列的最大似然估计 或者后项序列的最大似然估计 AR语言模型只能够进行单向的训练文本,不能有效地建模深度双向上下文,但是在下游任务中通常是需要获取上下文信息,这导致了AR语言建模和有效的预训练之间的差距。

        而AE模型例如BERT,通过重建特殊的标记[Mask],可以双向的预测掩码的数值,但由于预测的令牌在输入中是被屏蔽的,他独立于其他的文本内容,所以他不能像在AR语言建模中那样使用乘积规则来建模联合概率,而是通过非mask掩码的内容去预测mask掩码的内容,Bert在预训练中使用的Mask标记的数据在实际中是缺失的,导致训练前微调的差异。

      而xlnet通过列表的形式,因式分解构建了所有可能的排序,在预期中,每个位置学习利用来自所有位置的上下文信息,即捕捉双向上下文。另外,xlnet不依赖于数据损坏(不需要mask掩码),因此,他不会存在训练前微调的差异,仍然使用了成绩规则来分解预测token的联合概率,消除了Bert中的独立假设。

     xlnet继承了transformer-XL的段递推机制和相关编码方案,能够更好的去解决长文本序列的任务,将Transformer(-XL)体系结构应用于基于排列的语言建模是行不通的,因为分解顺序是任意的,目标是不明确的。作为一种解决方案,我们建议重新参数化Transformer(-XL)网络,以消除歧义。

       以前的模型是无顺序的,而XLNet本质上是基于位置编码的顺序感知的。这对语言理解很重要,因为一个无序的模型会退化为一大堆单词,缺乏基本的表达能力。上述差异源于动机上的根本差异——以前的模型旨在通过在模型中加入“无序”的归纳偏差来改进密度估计,而XLNet的动机则是让增强现实语言模型学习双向上下文。

       传统的AR语言模型使用过前向自回归因式分解去计算的:

        hθ(x1:t-1)指的是由神经模型(如RNNs或Transformers)产生的上下文表示,e(x)代表x的词向量

        bert计算mask掩码的公式为:

      mt=1 这个xt的是标记为mask的,则是将长度为t的文本序列x映射到隐藏向量序列中  Hθ(x) = [Hθ(x)1, Hθ(x)2, · · · , Hθ(x)T ]

      差异性:

       独立性假设:BERT基于所有掩码¯x分别重构的独立假设,对联合条件概率p(¯x |ˆx)进行因式分解,相比之下,AR语言建模目标(1)使用乘积法则对pθ(x)进行因式分解,而没有这样的独立假设。

       输入噪音:

       因为bert的mask掩码在下游任务中不会出现,所以在上游预训练中,mask信息被当做了掩码信息用于训练,存在了训练前微调的差异。

        上下文距离:

        因为AR语言模型是单向的,只能够获取到上文或者下文的信息,而BERT模型是双向网络结构,所以能够更好的获取到上下文的文本信息。

 

      排列的语言建模

      

       上图是说明在语言排序建模下,对输入的相同语言序列下,根据不同的因式分解排序去预测x3的结果,借用无序序列NADE的项目,我们猜测语言排序建模不仅保留AR模型的优点,并且同时保留了抓取双向上下文信息的功能,如果模型参数在所有的分解顺序中共享,在预期中,模型将学习从两边的所有位置收集信息。

       为了形式化这一思想,设ZT是长度- t索引序列[1,2,. . . .T]所有可能排列的集合我们用zt和z<t来表示一个z∈zt排列的第t个元素和第一个t-1元素。那么,我们提出的排列语言建模目标可以表示为:

        本质上,对于文本序列x,我们每次采样分解顺序z,并根据分解顺序分解似然的pθ(x)。相同的模型参数在因式分解过程中共享,同时进行训练,xt已经看到序列中所有可能的元素xi 不等于 xt,因此能够捕获双向上下文,由于这一目标符合AR框架,它自然避免了独立假设。

       我们保持原序列的顺序,使用与原序列对应的位置编码,并依靠transformer中适当的注意掩码来实现因式分解顺序的排列。注意,这个选择是必要的,因为模型在微调过程中只会遇到具有自然顺序的文本序列。

 

体系结构:目标感知表示的双流自我注意

上图a中,对于文本流的注意力类似于经典的自注意机制,上图b中,查询流注意力,没有访问xzt本身的内容,上图c中,概述排列语言建模训练的双流注意。

排列语言建模的目标具有预期的特性,假设我们将下一个令牌分布参数化,使用经典的softmax公式

,在这其中代表由适当屏蔽后的共享transformer网络产生。现在,hθ(xz<t)的表达式并不取决于它所预测的位置,因此,无论目标位置如何,预测的都是相同的分布,这就无法学习到有用的表示,为了规避这一问题,我们建议重新参数化下一个令牌的分布,使其对目标位置敏感:

这里面增加了一个位置信息Zt,表示一种新的表示形式,另外以目标位置zt作为输入。先写到这里吧,具体内容,后续文章中再进行近一步的解读吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值