[nlp] 小傻学XLNet

what is XLNet?

XLNet:Generalized Autoregressive Pretraining for Language Understanding
类bert模型,在20 个任务上超过了 BERT 的表现,并在 18 个任务上取得state-of-the-art

why XLNet?

XLNet为优化版bert,先看看bert优缺点
优点:双向,基于encoder,maskLM,可由上下文词来预测当前词
缺点:mask LM(下游任务中并没有进行mask)

再看看常用的GPT模型优缺点:
优点:单向,基于decoder,当前模型:前边词预测后边词
缺点:获取后边词对前边词对影响,单向,没有双向。

bert和gpt形成明显的互补,是否有一个模型,可以进行双向预测,又不引入mask(导致训练和预测不一致)

  1. 引入Transformer-XL(Segment-level Recurrence & Relative Positional Embedding),具备Transformer-xl上述两个优点;
  2. Two-Stream Self-Attention:双流注意力机制
  3. Permutation Language Modeling:采用AR模型替代AE模型,解决mask带来的影响

the architecture of XLNet

AR & AE

AR(Autoregressive LM,GPT)

根据上文内容预测下一个可能的单词,自左向右的语言模型任务(或自右向左,单向),主要任务在于评估预料的概率分布。
缺点:只能利用上文或者下文的信息
优点:可以完成生成类NLP任务
目标函数:
AR目标
s.t.
在这里插入图片描述
在这里插入图片描述
To predict the token, g ( X z < t ; Z t ) g(X_{z<t}; Z_t) g(Xz<t;Zt)should only use the position Z t Z_t Zt and not the content X z t X_{zt} Xzt
to predict the other tokens X z j X{zj} Xzjwith j > t, g ( X z < t ; Z t ) g(X_{z<t}; Z_t) g(Xz<t;Zt)should also encode the
content X z t X_{zt} Xztto provide full contextual information.

Patial prediction在这里插入图片描述
Longer Context
在这里插入图片描述
Modeling Multiple Segments:
[CLS, A, SEP, B, SEP]

AE(Autoencoder LM,BERT)

根据上下文单词来预测这些被Mask掉的单词(噪音)。
优点:双向语言模型,
缺点:预训练阶段和Fine-tuning阶段不一致,fine-tuning阶段没有进行mask,引入误差。

AE目标
m t m_t mt: mask,
XLNet的出发点:融合两者的优点,利用双向,可进行生成任务,不引用mask

Permutation Language Model

一种基于排列组合的输入方法,不再对传统的AR模型的序列的值按顺序进行建模,而是最大化所有可能的序列的因式分解顺序的期望对数似然。
不会改变原始词的顺序。实现是通过Attention的Mask来对应不同的分解方法

目标
如下图:
对序列[1, 2, 3, 4]进行排列组合,若目标为3。
传统AR模型: P ( 3 ) = ∏ t = 1 3 P ( 3 ∣ x < t ) P(3) = \prod_{t=1}^3P(3|x_{<t}) P(3)=t=13P(3x<t)
排列组合:一共有4!= 24 种组合,下图为4种可能的情况:
1. 3左边没有其他值,无需做相应计算;
2. 3左边为2, 4,故P(3) = P(3|2) * P(3|2, 4)后续类似。
这样进行处理,保留来序列上的上下文信息,同时避免引入mask标记位。
在这里插入图片描述

双流自注意力

任务:
预测后面的字符是哪个
预测自己到底是哪个字符
两套表征方式:
Content Stream
Query Stream(只参与Q的计算,不参与K,V的计算)
Transformer 天然和乱序语言模型相契合

在这里插入图片描述
若用标准softmax对下式求对数似然:
在这里插入图片描述
式中 h θ ( x z < t ) ) h_θ(x_{z<t})) hθ(xz<t)为添加mask后的transformer值,其不依赖要预测内容的位置信息。(因为无论预测目标的位置在哪里,因式分解后得到的所有情况都是一样的,并且transformer的权重对于不同的情况是一样的,因此无论目标位置怎么变都能得到相同的分布结果)

为解决上述问题,加入位置作为预测信息实现目标位置感知。
在这里插入图片描述
g θ ( x z < t , z t ) g_θ(x_{z<t}, z_t) gθ(xz<t,zt):将位置信息作为输入后的表达形式。

两种attention的构造(即其两套表征方式)
在这里插入图片描述

训练方法:
数据输入:50%的概率是连续的句子(前后语义相关),有50%的概率是不连续(无关)的句子
排列组合数据随机采样
CLS放在最后,为什么?(可描述整个句子向量的表示,在最后,可有全部的信息)
为了减少计算量,只预测最后1/K个Token
在这里插入图片描述

code

others

与bert比较

XLNet预测部分词是出于性能考虑,而BERT是随机的选择一些词来预测
尽量规避Bert的独立假设:
[ N e w , Y o r k , \color{red}{New, York, } New,York,is, a, city]
在这里插入图片描述
Independence Assumption: BERT factorizes the joint conditional probability based on an independence assumption that all masked tokens are separately reconstructed
Input noise: The input to BERT contains artificial symbols
Context dependency: The AR representation is only conditioned on the tokens to the left

References

  1. 最通俗易懂的XLNET详解
  2. XLNet: Generalized Autoregressive Pretraining for Language Understanding
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值