论文笔记--XLNet: Generalized Autoregressive Pretraining for Language Understanding

XLNet通过排列语言模型解决了BERT和GPT的局限,结合自编码和自回归模型的优点,捕捉到双向上下文依赖。文章提出了双流自注意力机制,用于在不依赖目标词的情况下编码上下文,并部分预测来减少计算量。XLNet在多项任务上超越了BERT。
摘要由CSDN通过智能技术生成

1. 文章简介

  • 标题:XLNet: Generalized Autoregressive Pretraining for Language Understanding
  • 作者:Zhilin Yang, Zihang Dai, Yiming Yang, Jaime Carbonell, Ruslan Salakhutdinov, Quoc V. Le
  • 日期:2019
  • 期刊:NeurIPS

2. 文章导读

2.1 概括

  BERT[1]和GPT[2]模型均有着各自的优势和劣势:BERT属于自编码(AE)类模型,采用MLM和NSP进行预训练,得到的模型适用于处理上下文依赖的下游任务,如文本相似度分析等,但1) MLM未考虑到多个[MASK]之间的依赖性,从而模型可能会有偏差 2) 下游任务中无[MASK],从而造成预训练和微调任务的差异性;GPT属于自回归/生成式(AR)模型,即依赖上文生成当前token,生成式模型可以避免BERT的上述问题,但模型是单向的,无法考虑到上下文依赖。
  为了解决上述问题,本文提出了XLNET(transformer-XL NETwork),可以将AR和AE类任务的优点结合,在自然语言理解、文本分类、文档排序等任务上均超过了BERT的表现。
  文章整体架构如下
整体架构

2.2 文章重点技术

2.2.1 排列语言模型 Permutation Language Modeling

  为了充分结合AR和AE的优点,文章提出了Permutation Language Modeling(PLM)目标,从而令生成式模型可以捕捉到双向上下文依赖。具体来说,给定长度为 T T T的序列 x = ( x 1 , … , x T ) x=(x_1, \dots, x_T) x=(x1,,xT),令 Z T = 1 到 T 的所有排列组合 Z_T = {1到T的所有排列组合} ZT=1T的所有排列组合表示序列 x x x的可能的下标顺序,则对任意 z ⃗ = ( z 1 , … , z T ) ∈ Z T \vec{z} =(z_1, \dots, z_T)\in Z_T z =(z1,,zT)ZT,令 Z ⃗ < t = ( z t , … , z t − 1 ) \vec{Z}_{<t} =(z_t, \dots, z_{t-1}) Z <t=(zt,,zt1) 表示 t t t时刻前的下标序列。文章提出的PLM目标为 max ⁡ θ E z ⃗ ∈ Z T [ ∑ t = 1 T log ⁡ p θ ( x z t ∣ x z ⃗ < t ) ] \max_{\theta} \mathbb{E}_{\vec{z}\in Z_T} \left[\sum_{t=1}^T \log p_{\theta} (x_{z_t}|x_{\vec{z}_{<t}})\right] θmaxEz ZT[t=1Tlogpθ(xztxz <t)],即考虑所有不同的下标顺序的期望最大值,每个顺序下对应的目标函数即GPT的生成式目标函数:给定 t t t时刻之前的下标,令当前 t t t时刻的输出概率最大化。
  特别注意,这里的目标函数仅随机打乱了下标的顺序,而非序列的位置。在处理时,我们对每个原始序列的元素进行位置编码,无论该元素在哪个下标组合下,其位置编码仍是原始的位置编码。在微调阶段,我们只需保持原始的顺序即可。
  例如,当原始句子为 y = ( I , l o v e , p l a y i n g , t h e , p i a n o ) y=(I, love, playing, the, piano) y=(I,love,playing,the,piano)时, Z T = 1 , 2 , 3 , 4 , 5 的所有排列 Z_T={1,2,3,4,5的所有排列} ZT=1,2,3,4,5的所有排列,对 z ⃗ = ( 1 , 3 , 2 , 5 , 4 ) ∈ Z T \vec{z}=(1,3,2,5,4)\in Z_T z =(1,3,2,5,4)ZT,我们有

  • t = 1 t=1 t=1时,最大化 p θ ( x z 1 = y z 1 ) = p θ ( x 1 = ’I’ ) p_{\theta}(x_{z_1}=y_{z_1}) = p_{\theta}(x_1=\text{'I'}) pθ(xz1=yz1)=pθ(x1=’I’)
  • t = 2 t=2 t=2时,最大化 p θ ( x z 2 = y z 2 ) = p θ ( x 3 = ’playing’ ∣ x 1 = ’I’ ) p_{\theta}(x_{z_2}=y_{z_2}) = p_{\theta}(x_3=\text{'playing'}|x_1=\text{'I'}) pθ(xz2=yz2)=pθ(x3=’playing’x1=’I’)
  • t = 3 t=3 t=3时,最大化 p θ ( x z 3 = y z 3 ) = p θ ( x 2 = ’love’ ∣ x 1 = ’I’ , x 3 = ’playing’ ) p_{\theta}(x_{z_3}=y_{z_3}) = p_{\theta}(x_2=\text{'love'}|x_1=\text{'I'},x_3=\text{'playing'}) pθ(xz3=yz3)=pθ(x2=’love’x1=’I’,x3=’playing’)
  • t = 4 t=4 t=4时,最大化 p θ ( x z 4 = y z 4 ) = p θ ( x 5 = ’piano’ ∣ x 1 = ’I’ , x 3 = ’playing’ , x 2 = ’love’ ) p_{\theta}(x_{z_4}=y_{z_4}) = p_{\theta}(x_5=\text{'piano'}|x_1=\text{'I'},x_3=\text{'playing'},x_2=\text{'love'}) pθ(xz4=yz4)=pθ(x5=’piano’x1=’I’,x3=’playing’,x2=’love’)
  • t = 5 t=5 t=5时,最大化 p θ ( x z 5 = y z 5 ) = p θ ( x 4 = ’the’ ∣ x 1 = ’I’ , x 3 = ’playing’ , x 2 = ’love’ , x 5 = ’piano’ ) p_{\theta}(x_{z_5}=y_{z_5}) = p_{\theta}(x_4=\text{'the'}|x_1=\text{'I'},x_3=\text{'playing'},x_2=\text{'love'},x_5=\text{'piano'}) pθ(xz5=yz5)=pθ(x4=’the’x1=’I’,x3=’playing’,x2=’love’,x5=’piano’)
    可以看到,上述过程中在预测 x 2 x_2 x2的时候用到了其上下文信息。
      但上述的目前函数使用标准SoftMax之后为 p θ ( X z t = x ∣ x z ⃗ < t ) = exp ⁡ ( e ( x ) T h θ ( x z ⃗ < t ) ) ∑ x ′ exp ⁡ ( e ( x ′ ) T h θ ( x z ⃗ < t ′ ) ) p_\theta(X_{z_t}=x|x_{\vec{z}_{<t}})=\frac{\exp(e(x)^Th_\theta(x_{\vec{z}_{<t}}))}{\sum_{x'}\exp(e(x')^Th_\theta(x'_{\vec{z}_{<t}}))} pθ(Xzt=xxz <t)=xexp(e(x)Thθ(xz <t))exp(e(x)Thθ(xz <t)),其中 e ( x ) e(x) e(x)表示 x x x的词嵌入, h θ ( x ) h_\theta(x) hθ(x)表示 x x x经过Transformer的隐藏层输出。但注意到上式的 h θ ( x z ⃗ < t ) h_\theta(x_{\vec{z}_{<t}}) hθ(xz <t)与其预测的位置无关,即对任意的 z ⃗ \vec{z} z ,只要当前时刻前的 z ⃗ < t \vec{z}_{<t} z <t相同,当前位置为任意下标预测每个token得到的概率均相同。为此,文章提出将target position也放入到目标函数中,即重写目标函数中的条件概率为 p θ ( X z t = x ∣ x z ⃗ < t ) = exp ⁡ ( e ( x ) T g θ ( x z ⃗ < t , z t ) ) ∑ x ′ exp ⁡ ( e ( x ′ ) T g θ ( x z ⃗ < t ′ , z t ) ) p_\theta(X_{z_t}=x|x_{\vec{z}_{<t}})=\frac{\exp(e(x)^Tg_\theta(x_{\vec{z}_{<t}}, z_t))}{\sum_{x'}\exp(e(x')^Tg_\theta(x'_{\vec{z}_{<t}}, z_t))} pθ(Xzt=xxz <t)=xexp(e(x)Tgθ(xz <t,zt))exp(e(x)Tgθ(xz <t,zt)),其中 g θ ( x , z t ) g_\theta(x,z_t) gθ(x,zt)为以 x , z t x,z_t x,zt为自变量的函数。

2.2.2 双流自注意力机制Two-Stream Self-Attention

  为了给出上述 g θ g_\theta gθ的合适表达,我们需要考虑其满足的特性:1)要预测当前的 x z t x_{z_t} xzt g θ g_\theta gθ不能依赖 x z t x_{z_t} xzt,而只能依赖 x z ⃗ < t x_{\vec{z}_{<t}} xz <t和位置 z t z_t zt,否则问题会变成平凡的问题 2)为了预测 t t t时刻之后的状态, g θ g_\theta gθ要依赖当前的 x z t x_{z_t} xzt。这样则产生了矛盾。为了解决上述矛盾,文章提出采用两种隐藏层

  • 内容表征(content representation, CR) h θ ( x z ⃗ < t ) : = h z t h_\theta(x_{\vec{z}_{<t}}):=h_{z_t} hθ(xz <t):=hzt,和Transformer中隐藏层一致,为了编码上下文和 x z t x_{z_t} xzt。CR初始化为 h i ( 0 ) = e ( x i ) h_i^{(0)} = e(x_i) hi(0)=e(xi)即每个单词的嵌入,对 j > 0 j>0 j>0,将上一层的 h i ( j − 1 ) h_i^{(j-1)} hi(j1)作为注意力机制的输入得到新的 h i ( j ) h_i^{(j)} hi(j)
  • 请求表征(query representation, QR) g θ ( x z ⃗ < t , z t ) : = g z t g_\theta(x_{\vec{z}<t}, z_t):=g_{z_t} gθ(xz <t,zt):=gzt,无 x z t x_{z_t} xzt的信息,仅获取到当前时刻的上文内容(下标意义的)和当前时刻的位置。 g i ( 0 ) g_i^{(0)} gi(0)初始化为 ω \omega ω,一个可学习的向量,对 j > 0 j>0 j>0,将上一层的 g i ( j − 1 ) g_i^{(j-1)} gi(j1)作为注意力机制的输入得到新的 g i ( j ) g_i^{(j)} gi(j)
    整体的训练方法参照文初的架构图。

2.2.3 Partial Prediction

  为了减少计算量,文章提出将 z ⃗ \vec{z} z 分成两部分 z ⃗ < = c \vec{z}_{<=c} z <=c z ⃗ > c \vec{z}_{>c} z >c,前者作为条件,而后者中的元素可作为target进行预测。为了控制预测的占比,给定超参数 K K K,保证大约 1 / K 1/K 1/K分词作为target被预测。

3. 文章亮点

  文章提出了XLNET,结合了BERT和GPT的优势,在生成式模型的基础上通过不同的下标顺序融入了上下文信息。XLNET在包括SQuAD,RACE等多个下游任务上表现超越了BERT,预示着XLNET这种“排列式AR”获取可作为大模型训练的一个潜在方向。

4. 原文传送门

XLNet: Generalized Autoregressive Pretraining for Language Understanding

5. References

[1] 论文笔记–BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
[2] 论文笔记–Improving Language Understanding by Generative Pre-Training

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值