[文献阅读]——ERNIE-Gram: Pre-Training with Explicitly N-Gram Masked Language Modeling for NLU(TBC)

前言

百度的ERNIE做了三件事

  • 掩膜Entity
  • 掩膜Phrase
  • 加入了

引言

BERT的缺点:

  • BERT的MLM关注细粒度文本单元的表示(word\subword\characters),而很少考虑粗粒度的语言学上的信息(命名实体\短语\中文的单词)

前人进一步的工作:

  • 独立地掩膜、预测连续的n-grams(命名实体、短语、text spans)

本文的观点:

  • 前人关于n-grams的工作忽略了n-grams内部的依赖
  • 特别的,给定一个被掩膜的n-grams w={ x 1 , x 2 , . . . x n x_1,x_2,...x_n x1,x2,...xn}, x ∈ V F x∈V_F xVF,模型需要最大化 p ( w ) = ∏ i = 1 n p ( x i ∣ C ) p(w)=\prod_{i=1}^{n}p(x_i | C) p(w)=i=1np(xiC),预测空间为 ∣ V F ∣ n |V_F|^n VFn。(其中, V F V_F VF表示词表,C表示上下文的向量表示)。该空间过于稀疏。

本文工作:

  • [Explicitly N-gram MLM] 用单个[MASK]掩膜整个n-grams,预测空间为 ∣ V N ∣ |V_N| VN。所以要先构建一个n-grams的词表,大小为 V N V_N VN(远大于 V F V_F VF,但又远小于 ∣ V F ∣ n |V_F|^n VFn)
  • [Comprehensive N-gram MLM] 同时预测n-grams中的token和n-grams
  • [Enhanced n-gram relation modeling] 使用一个生成模型生成看似可信的(plausible)n-grams,掩膜之,用模型恢复之

相关工作

自监督预训练模型:

  • GPT:LM
  • BERT:MLM(entensions:RoBERTa\UNILM\ALBERT
  • XLNET:permutation LM(PLM)来建模被预测tokens之间的依赖
  • ELECTRA:replaced token detection(PTD)

粗粒度的语言学信息:

  • 隐式地整合(作为辅助的训练任务)
    • ERNIE:掩膜命名实体、短语
    • BERT-wwm:掩膜整个中文单词
    • SpanBERT:掩膜连续的spans
  • 显式地插入
    • ZEN&AMBERT:使用额外的transformer encoders和计算,来得到额外的n-gram表示。 pre-training和fine-tuning都会用到(存在的问题:n-gram的稀疏性和OOV问题)
    • ERNIE-Gram:只是在pre-training阶段使用额外的n-gram分类器和embedding权重

模型

背景介绍——Contiguously MLM(掩膜token)

与MLM不同,Contiguously MLM的符号表示为:

  • x = { x 1 , . . . x ∣ x ∣ } x=\{x_1,...x_{|x|}\} x={ x1,...xx},输入序列
  • b = { b 1 , . . . b ∣ b ∣ } b=\{b_1,...b_{|b|}\} b={ b1,...bb},n-grams的开始边界集
  • z = { z 1 , . . . z ∣ b ∣ − 1 } z=\{z_1,...z_{|b|-1}\} z={ z1,...zb1},n-grams序列集
  • M M M:随机选择的开始边界集
  • z M z_M zM: M M M对应的n-grams序列集
  • z / M z_{/M} z/M:掩膜了 z M z_M zM之后的序列

举例(如图1):

  • x = { 1 , 2 , 3 , 4 , 5 , 6 } x=\{1,2,3,4,5,6\} x={ 1,2,3,4,5,6}
  • b = { 1 , 2 , 4 , 5 , 6 , 7 } b=\{1,2,4,5,6,7\} b={ 1,2,4,5,6,7}(7应该是代表结束)
  • z = { x 1 , x [ 2 : 4 ) , x 4 , x 5 , x 6 } z=\{x_1,x_{[2:4)},x_4,x_5,x_6\} z={ x1,x[2:4),x4,x5,x6}

做法:

  • M = { 2 , 4 } M=\{2,4\} M={ 2,4},从b中随机挑选15%个开始边界,2代表b中第2个(2),4代表b中第4个(5)
  • z M = { x [ 2 : 4 ) , X 5 } z_M=\{x_{[2:4),X_5}\} zM={ x[2:4),X5},进一步确定对应的n-grams序列集,用 z / M = { x 1 , [ M ] , [ M ] , x 4 , [ M ] , x 6 } z_{/M}=\{x_1,[M],[M],x_4,[M],x_6\} z/M={ x1,[M],[M],x4,[M],x6}来表示掩膜之后的原序列

在这里插入图片描述

图1. Contiguously MLM

训练目标:
− l o g p θ ( z M ∣ z / M ) = − ∑ z ∈ z M ∑ x ∈ z l o g p θ ( x ∣ z / M ) -logp_θ(z_M|z_{/M}) = -\sum_{z∈{z_M}}\sum_{x∈z}logp_θ(x|z_{/M}) logpθ(zMz/M)=zzMxzlogpθ(xz/M)

Explicitly N-gram MLM(掩膜N-gram)

以n-grams代替原来的token,当然,n=1的gram也就是token

符号表示:

  • y = { y 1 , . . . , y ∣ b ∣ − 1 } y = \{y_1,...,y_{|b|-1}\} y={ y1,...,yb1},n-grams集
  • y M y_M yM,随机选择的n-grams集
  • z / M z_{/M} z/M,掩膜过后的原序列

举例(如图2)

  • y = { y 1 ( n = 1 ) , y 2 ( n = 2 ) , y 3 ( n = 1 ) , y 4 ( n = 1 ) , y 5 ( n = 2 ) } y=\{y_1(n=1),y_2(n=2),y_3(n=1),y_4(n=1),y_5(n=2)\} y={ y1(n=1),y2(n=2),y3(n=1),y4(n=1),y5(n=2)}

做法:

  • y M = { y 2 , y 4 } y_M=\{y_2,y_4\} yM={ y2,y4},选择掩膜掉的n-grams集
  • z / M = { x 1 , [ M ] , x 4 , [ M ] , x 6 } z_{/M} = \{x_1,[M],x_4,[M],x_6\} z/M={ x1,[M],x4,[M],x6},直接将n-grams当作token进行掩膜

在这里插入图片描述

图2. Explicity N-gram MLM

训练目标:
− l o g p θ ( y M ∣ z / M ) = − ∑ y ∈ y M l o g p θ ( y ∣ z / M ) -logp_θ(y_M|z_{/M}) = -\sum_{y∈y_M}logp_θ(y|z_{/M}) logpθ(yMz/M)=yyMlogpθ(yz/M)

Comprehensive N-gram MLM

就是想把token的MLM也加入到训练目标来,但Explicitly N-gram MLM中可以看到,已经把n-grams压缩成了一个MASK。所以主要是解决三个问题1. 如何恢复n-grams中token的表示 2.预测token需要依赖哪些信息 3.损失函数的表示

[第一个问题] 如何恢复n-grams中token的表示:
[答] 假设 y i = { x i 1 , x i 2 , . . . , x i k } ∈ y M y_i = \{x_{i1},x_{i2},...,x_{ik}\}∈y_M yi={ xi1,xi2,...,xik}yM是第i个被掩膜掉的n-grams,其包含k个token。则,显式地引入 { [ M 1 ] , [ M 2 ] , . . . . , [ M k ] } \{[M_1],[M_2],....,[M_k]\} { [M1],[M2],....,[Mk]}来表示k个token对应的掩膜符号。
[举例] y 2 = { x 2 , x 3 } , y 4 = { x 5 } y_2 = \{x_{2}, x_{3}\}, y_4=\{x_{5}\} y2={ x2,x3},y4={ x5},则分别引入 { [ M 1 ] , [ M 2 ] } 和 { [ M 1 ] } \{[M_1],[M_2]\}和\{[M_1]\} { [M1],[M2]}{ [M1]}作为两个token序列的掩膜符号,显式地拼在原来输入序列的后面

在这里插入图片描述

图3. 如何恢复n-grams中token的表示

[第二个问题]

  • 2.1 预测原来的n-grams时需要(能看到)哪些信息
  • 2.2 预测n-grams中的token时需要(能看到)哪些信息

[答]

  • 2.1 Q: n − g r a m s i {n-grams}_i ngramsi, K,V: z / M z_{/M} z/M, 其中, z / M z_{/M} z/M包含了 n − g r a m s i {n-grams}_i ngramsi本身
  • 2.2 Q: x i x_i xi,K,V: z / M z_{/M} z/M + x i x_i xi, 因为 x i x_i xi的表示已经被消除了,所以需要显式地加上

[举例]

在这里插入图片描述

图4. Q-K\V

(上面的表述中,需要预测的部分就是transformer中的Q,能看到的信息来自于K和V,具体来说,Q通过与K进行scaled dot-product attention来决定weight("看"的方式),再使用weight来对V进行加权求和(“看”的具体步骤))

另外值得注意的一点是,上面的操作中,每一个n-grams只知道整个句子的上下文,每一个token只知道整个句子的上下文+本身,n-grams的长度信息被隐藏了,这是因为:

We argue that the length information of n-grams is detrimental to the representation learning,because it will arbitrarily prune a number of semantically related n-grams with different lengths during predicting. 这句话不是很懂。

[第三个问题]
− l o g p θ ( y M , z M ∣ z / M 1 ) -log_{p_{θ}}(y_M,z_M|z^1_{/M}) logpθ(yM,zMz/M1)

Enhanced N-gram Relation Modeling

复杂
三部分:1. 一个explicitly n-gram MLM 用于预测[MASK]所对应的真实n-gram 2.一个comprehensive n-gram MLM 用于预测[special MASK]所对应的真实n-gram以及其中的token,为何special?——因为这里的mask用的是1中预测出来的向量 3.一个replaced token detection objective(RTD) model,用于判别[special mask]部分到底是不是真实n-gram。

具体地:

  1. Transformer Encoder θ ′ θ^{'} θ,也就是一个explicity n-gram MLM。损失函数如下:
    l o s s 1 = − log ⁡ p θ ′ ( y M ∣ z / M − ) loss_{1} = -\log_{p_{θ^{'}}}(y_M|z^-_{/M}) loss1=logpθ(yMz/M)
    其中, y M = { y 2 , y 4 } y_M = \{y_2, y_4\} yM={ y2,y4}, z / M − = { x 1 , [ M ] , x 4 , [ M ] , x 6 } z^-_{/M}=\{x_1,[M],x_4,[M],x_6\} z/M={ x1,[M],x4,[M],x6},并且,设预测出来的结果为 y M ′ = { y 2 ′ , y 4 ′ } y^{'}_{M}=\{y^{'}_2,y^{'}_4\} yM={ y2,y4}

在这里插入图片描述

图5. explicity n-gram MLM
  1. Transformer Encoder θ,一个特殊的comprehensive n-gram MLM。损失函数如下:
    l o s s 2 = − l o g p θ ( y M , z M ∣ z / M ′ ) loss_2 = -log_{p_{θ}}(y_M,z_M|z^{'}_{/M}) loss2=logpθ(yM,zMz/M)
    其中, z / M ′ z^{'}_{/M} z/M是把 y M ′ y^{'}_{M} yM作为掩膜后的原序列。

在这里插入图片描述

图6. special comprehensive n-gram MLM
  1. Transformer Encoder θ,完成replaced token detection objective(RTD)

在这里插入图片描述

图7. RTD
损失函数如下:

在这里插入图片描述
其中, z / M c a r e t z^{caret}_{/M} z/Mcaret z M z_M zM本质上是一个东西,只是 z / M c a r e t = { x 1 , y 2 , x 4 , y 4 , x 6 } z^{caret}_{/M}=\{x_1,y_2,x_4,y_4,x_6\} z/Mcaret={ x1,y2,x4,y4,x6},而 z M = { x 1 , x 2 , x 3 , x 4 , x 5 , x 6 } z_M=\{x_1,x_2,x_3,x_4,x_5,x_6\} zM={ x1,x2,x3,x4,x5,x6}

总的来说,1使用上下文信息预测n-gram,捕捉了n-gram和上下文的联系;2使用1中预测出来的结果掩膜过后的序列,去预测n-gram,捕捉了n-gram和n-gram之间的联系(理解为,true n-gram和false n-gram再像,我也要把你识别出来) 3.一方面更加显式地完成了2,另一方面,反过来使用n-gram信息预测上下文的token,加强了联系。(个人理解)

N-gram Extraction

两个问题 1. 如何确定所有的n-grams,即 V N V_N VN 2. 如何确定每一个句子的 b = { b 1 , . . . b ∣ b ∣ } b=\{b_1,...b_{|b|}\} b={ b1,...bb}(开始边界集),用于后续15%的采样。

[第一个问题] 算法如下:

在这里插入图片描述

图8. 所有n-grams的采样

目标为:不同长度的gram(l>=2)按照各自的分数各采集 k l k_l kl个,组成最后的 V N V_N VN。对于l长度的gram集合 l g r a m s l_{grams} lgrams中的一个 l g r a m l_{gram} lgram来讲,它的分数公式为:
s = ( p ( w ) − p ′ ( w ) ) / ( σ 2 / N t ) s=(p(w)-p^{'}(w))/(\sqrt {σ^2/N_t}) s=(p(w)p(w))/(σ2/Nt )
其中:

  • p ( w ) = C o u n t ( w ) / N l p(w) = Count(w) / N_l p(w)=Count(w)/Nl,代表w这个l长度的序列在整个 l g r a m s l_{grams} lgrams中出现的频率
  • p ′ ( w ) = ∏ i = 1 n p ( x i ) p^{'}(w)=\prod_{i=1}^{n}p(x_i) p(w)=i=1np(xi),代表w这个l长度的序列中,每一个单词在整个词表中出现的频率的累乘。用于表示不是语义完整的概率。
  • σ = p ( w ) ( 1 − p ( w ) ) σ=p(w)(1-p(w)) σ=p(w)(1p(w))

[第二个问题] 首先利用"最大匹配算法?"得到所有边界集合,然后选择最短的边界。

ERNIE-GRAM

ERNIE = Explicitly n-gram MLM + Comprehensive n-gram MLM + Enhanced N-gram Relation Modeling

消融实验

Effect of Explicity N-gram MLM

结果表明Explicity N-gram MLM要比普通的Contiguously MLM得到的困惑度更低,关于困惑度,发现一篇好文

文中说到,一个句子的困惑度的计算公式为:
P P ( W ) = P ( w 1 , w 2 , . . . w N ) − 1 / N ( 公 式 1 ) PP(W)=P(w_1,w_2,...w_N)^{-1/N}(公式1) PP(W)=P(w1,w2,...wN)1/N(1)
其中
P ( w 1 , w 2 , . . . w N ) = p ( w 1 ) p ( w 2 ∣ w 1 ) . . . . p ( w N ∣ w 1 , w 2 , . . . . , w N − 1 ) P(w_1,w_2,...w_N)=p(w_1)p(w_2|w_1)....p(w_N|w_1,w_2,....,w_{N-1}) P(w1,w2,...wN)=p(w1)p(w2w1)....p(wNw1,w2,....,wN1)
此概率的计算在uni-gram、bi-gram和tri-gram的LM中表示有所不同,比如uni-gram中就为
P ( w 1 , w 2 , . . . w N ) = p ( w 1 ) ∗ p ( w 2 ) . . . p ( w N ) P(w_1,w_2,...w_N)=p(w_1)*p(w_2)...p(w_N) P(w1,w2,...wN)=p(w1)p(w2)...p(wN)

主要有四种模型:

  • 统计语言模型:上面的概率都通过count得到
  • 主题模型(LDA):待补充
  • 半“neural”的统计语言模型:显式地将当前单词的向量表示与之前信息的向量表示结合(理解为以之前信息为条件),然后MLP+softmax得到概率
  • 基于循环神经网络(RNN)的深度学习模型:隐式建模

另外,深度学习中的困惑度使用交叉熵来计算,其实和上面公式一样,具体推导如下:

J = 1 / T ∑ t = 1 T J ( t ) ( θ ) = − 1 / T ∑ t = 1 T ∑ j = 1 ∣ V ∣ y t , j × l o g ( y t , j p r e d ) J = 1/T\sum_{t=1}^{T}J^{(t)}(θ)=-1/T\sum_{t=1}^T\sum_{j=1}^{|V|}y_{t,j}×log(y^{pred}_{t,j}) J=1/Tt=1TJ(t)(θ)=1/Tt=1Tj=1Vyt,j×log(yt,jpred)
由于对于第t个单词而言,词表中只有1个单词是正确答案(记 y t , i y_{t,i} yt,i),所以:
J = 1 / T ∑ t = 1 T J ( t ) ( θ ) = − 1 / T ∑ t = 1 T l o g ( y t , i p r e d ) J = 1/T\sum_{t=1}^{T}J^{(t)}(θ)=-1/T\sum_{t=1}^Tlog(y^{pred}_{t,i}) J=1/Tt=1TJ(t)(θ)=1/Tt=1Tlog(yt,ipred)
y t , i p r e d y_{t,i}^{pred} yt,ipred P ( w t ∣ w t − 1 , . . . ) P(w_t|w_{t-1},...) P(wtwt1,...),得:
J = 1 / T ∑ t = 1 T J ( t ) ( θ ) = − 1 / T ∑ t = 1 T l o g ( P ( w t ∣ w t − 1 , . . . ) ) J = 1/T\sum_{t=1}^{T}J^{(t)}(θ)=-1/T\sum_{t=1}^Tlog(P(w_t|w_{t-1},...)) J=1/Tt=1TJ(t)(θ)=1/Tt=1Tlog(P(wtwt1,...))
最后,以2为底(交叉熵中,log也默认以2为底,表示比特),得困惑度:
P P ( V ) = P ( w 1 , w 2 , . . . w T ) − 1 / T , V 代 表 整 个 语 料 库 PP(V)=P(w_1,w_2,...w_T)^{-1/T},V代表整个语料库 PP(V)=P(w1,w2,...wT)1/T,V

另外,上式是直接在整个语料上进行困惑度的计算,也可以完全按照公式1的方式,即计算好所有句子的困惑度,然后取平均:
P P ( V ) = ( ∏ i = 1 k P P L ( W k ) ) 1 / k PP(V)=(\prod_{i=1}^kPPL(W_k))^{1/k} PP(V)=(i=1kPPL(Wk))1/k

Size of N-gram Lexicon

结果表明:explicitily > continuously,随着size增大,性能先上升后下降。

Effect of Comprehensive N-gram Prediction(CNP) and Enhanced N-gram Relation Modeling(ENRM)

在这里插入图片描述

图9. 去掉部分模型组件的结果+其它模型结果
个人感觉这部分放入其它模型的结果意义不大,相反,上上个消融实验部分,难道不应该比较Explicitily n-gram MLM和continuously n-gram MLM+其它模型的结果吗,毕竟explicitily才是和之前token mask模型的最大不同之处(看图9的话,其实提升并不明显...)。

Case study

通过不同长度的NER任务的性能,以及attention patterns的可视化,说明explicitily具有更强的n-gram语义建模能力。

疑问

[1] relative position bias 和 position embeddings有何区别?(作用还挺大)

参考资料

[1] 困惑度(perplexity)的基本概念及比较多种模型下的计算(N-gram, 主题模型/LDA, 神经网络/RNN)

猜你喜欢

转载自blog.csdn.net/jokerxsy/article/details/116482035
今日推荐