ERNIE-Gram: Pre-Training with Explicitly N-Gram Masked Language Modeling for Natural ...(2020-10-23)

ERINE系列模型:

ERINE1.0:https://blog.youkuaiyun.com/weixin_49346755/article/details/127257733?spm=1001.2014.3001.5501
ERNIE2.0:https://blog.youkuaiyun.com/weixin_49346755/article/details/127266955?spm=1001.2014.3001.5501
ERNIE3.0:https://blog.youkuaiyun.com/weixin_49346755/article/details/127258228?spm=1001.2014.3001.5501
ERNIE-Doc:https://blog.youkuaiyun.com/weixin_49346755/article/details/127262111?spm=1001.2014.3001.5501
THU-ERNIE:https://blog.youkuaiyun.com/weixin_49346755/article/details/127263266?spm=1001.2014.3001.5501

模型概述

在经典预训练模型BERT中,主要是通过Masked Language Modeling(MLM)预训练任务学习语言知识。在BERT中MLM会随机Masking一些位置的token,然后让模型去预测这些token。这些Masking的token在中文中便是字,在英文中便是sub-word,这样的预测也许不能让模型获取更加直观的语言知识,所以后续又出现了一些模型,比如ERNIE, SpanBERT等,其从Masking单个字转变成了Masking一系列连续的token,例如Masking实体词,Masking短语等,即从细粒度的Masking转向粗粒度的Masking。

ERNIE-Gram指出一种观点:这种连续的粗粒度Masking策略会忽略信息内部的相互依赖以及不同信息之间的关联。因此,基于这种想法进行改进,提出了一种显式建模n-gram词的方法,即直接去预测一个n-gram词,而不是预测一系列连续的token,从而保证n-gram词的语义完整性

另外,ERNIE-Gram在预训练阶段借鉴ELECTRA想法,通过引入一个生成器来显式地对不同n-gram词进行建模。具体来讲,其应用生成器模型去采样合理的n-gram词,并用这些词去mask原始的语句,然后让模型去预测这些位置原始的单词。同时还使用了RTD预训练任务,来识别每个token是否是生成的。

模型改进

ERNIE和N-Gram的融入方式

不同于连续多个token的预测,ERNIE-GRAM采用了一种显式的n-gram方式进行建模。ERNIE和显式的n-gram融合建模的方式(ERNIE-GRAM)主要有两种:Explictly N-gram MLM 和 Comprehensive N-gram Prediction。

先回顾一下经典的连续token的建模方式:Contiguously MLM,然后再正式介绍以上ERNIE-Gram提出的两种方式。

Contiguously MLM

给定一串序列 x = { x 1 , . . . , x ∣ x ∣ } x=\{x_1,...,x_{|x|} \} x={x1,...,xx} 和 n-gram 起始边界序列 b = { b 1 , . . . , b ∣ b ∣ } b=\{b_1,...,b_{|b|} \} b={b1,...,bb}以及由 x x x 转换的 n-gram 序列 z = { z 1 , . . . , z ∣ b ∣ − 1 } , z i = x [ b i , b i + 1 ) z=\{z_1,...,z_{|b|-1}\},z_i=x_{[b_i,b_{i+1})} z={z1,...,zb1},zi=x[bi,bi+1) M M M 表示从起始边界 b b b ​​​中随机选择15%的准备 mask 的 index, z M z_M zM 表示由 M M M ​​选择出的相应的 token 集, z \ M z_{\backslash M} z\M 表示将 x ​ x​ x ​进行 mask 后的序列。

在这里插入图片描述

上图展示了一个Contiguously MLM的例子,给定的序列为 x = { x 1 , x 2 , x 3 , x 4 , x 5 , x 6 } x=\{x_1,x_2,x_3,x_4,x_5,x_6\} x={x1,x2,x3,x4,x5,x6}, 起始边界序列为 b = { 1 , 2 , 3 , 4 , 5 , 6 } b=\{ 1,2,3,4,5,6\} b={1,2,3,4,5,6},假设从起始边界序列 b b b ​​的随机选择的索引为 M = { 2 , 4 } M=\{2,4\} M={2,4},则 z = { x 1 , x [ 2 : 4 ) , x 5 , x 6 } , z M = { x [ 2 : 4 ) , x 5 } , z \ M = { x 1 , [ M ] , [ M ] , x 4 , [ M ] , x 6 } z=\{x_1,x_{[2:4)},x_5,x_6\},z_M=\{x_{[2:4)},x_5\},z_{\backslash M}=\{x_1,[M],[M],x_4,[M],x_6\} z={x1,x[2:4),x5,x6},zM={x[2:4),x5},z\M={x1,[M],[M],x4,[M],x6}

Contiguously MLM 可通过如下方式进行优化:

− log ⁡ p θ ( z M ∣ z \ M ) = − ∑ z ∈ z M ∑ x ∈ z log ⁡ p θ ( x ∣ z \ M ) -\log p_{\theta}(z_M|z_{\backslash M})=-\displaystyle\sum_{z \in z_M}\sum_{x \in z} \log p_{\theta}(x|z_{\backslash M}) logpθ(zMz\M)=zzMxzlogpθ(xz\M)

Explicitly N-gram MLM

在连续token预测中, 需要预测多次,每次预测一个token,直到完成这一段连续token的所有预测,才表示完成了一个实体词或者短语。不同于连续token预测, 显式的N-gram预测直接去预测一个n-gram词,即站在一种粗粒度的角度上进行预测。

在这里插入图片描述
如上图所示,假设 y = { y 1 , y 3 , . . . , y ∣ b ∣ − 1 } y=\{y_1,y_3,...,y_{|b|-1}\} y={y1,y3,...,yb1} 为显式的n-gram序列, y M = { y 2 , y 4 } y_M=\{y_2,y_4\} yM={y2,y4} 为随机选择的mask token,则 mask 后的完整序列为 z \ M = { x 1 , [ M ] , x 4 , [ M ] , x 6 } z_{\backslash M}=\{x_1,[M],x_4,[M],x_6\} z\M={x1,[M],x4,[M],x6}

Explicitly N-gram MLM可通过如下方式进行优化:

− log ⁡ p θ ( y M ∣ z ‾ \ M ) = − ∑ y ∈ y M log ⁡ p θ ( y ∣ z ‾ \ M ) - \log p_{\theta}(y_M| \overline z_{\backslash M})=-\displaystyle\sum_{y \in y_M} \log p_{\theta}(y|\overline z_{\backslash M}) logpθ(yMz\M)=yyMlogpθ(yz\M)

Comprehensive N-gram MLM

通过以上讨论可知,Contiguously MLM是从细粒度角度进行预测连续token, Explicitly N-gram MLM是从粗粒度角度进行预测n-gram token, Comprehensive N-gram是一种融合细粒度和粗粒度的预测方式,其将更加全面地进行建模。

在这里插入图片描述

其优化的目标函数为以上两种方式的融合,这里需要注意这两种方式是基于统一的上下文 z ‾ \ M \overline z_{\backslash M} z\M 进行预测:

− log ⁡ p θ ( y M , z M ∣ z ‾ \ M ) = − ∑ y ∈ y M log ⁡ p θ ( y ∣ z ‾ \ M ) − ∑ z ∈ z M ∑ x ∈ z log ⁡ p θ ( x ∣ z ‾ \ M ) - \log p_{\theta}(y_M,z_M|\overline z_{\backslash M})=-\displaystyle\sum_{y \in y_M} \log p_{\theta}(y|\overline z_{\backslash M})-\displaystyle\sum_{z \in z_M}\sum_{x \in z} \log p_{\theta}(x|\overline z_{\backslash M}) logpθ(yM,zMz\M)=yyMlogpθ(yz\M)zzMxzlogpθ(xz\M)

图a展示了细粒度和粗粒度预测的详细融合方式,其将细粒度的预测位置直接拼接到了序列的末尾,图中以虚线分割。其中虚线以左是Explictly N-gram的粗粒度预测,虚线以右是Contiguously MLM的细粒度预测。以 y 2 y_2 y2​​位置为例,由于其包含两个token,所以细粒度预测需要预测2次(论文中这两个位置使用了 M 1 M1 M1​​和 M 2 ​ M2​ M2​​​这两个不同的token进行mask)。

在这里插入图片描述

此时,整个文本序列为: [ x 1 , [ M ] , x 4 , [ M ] , x 6 , [ M 1 ] , [ M 2 ] , [ M 1 ] ] [x_1,[M],x_4,[M],x_6,[M1],[M2],[M1]] [x1,[M],x4,[M],x6,[M1],[M2],[M1]], 为了在Self-Attention时不造成信息的混乱,ERNIE-Gram约定:

  • 虚线以左的 Explicitly N-gram MLM 粗粒度预测,即在预测 y 2 y_2 y2 y 4 y_4 y4 ​时,只能看见虚线以左的token。

  • 虚线以后的Contiguously MLM细粒度预测,即在预测 x 2 , x 3 x_2,x_3 x2,x3 x 5 x_5 x5​​时,只能看见自己以及虚线以左的token。

图b展示了其计算时的Attention矩阵,其中红色点表示相互能够看见,在Self-Attention计算时,相互的信息需要融入。

增强N-gram关系建模

为了更加显式地建模不同n-gram之间的关系,在预训练阶段,ERNIE-Gram借鉴了Electra的思路,使用一个生成器去生成一个位置的n-gram词,并且用这个n-gram词去mask该位置的n-gram token。

在这里插入图片描述

如图所示,Transformer Encoder θ′​​​​​便是生成器,图b展示了使用生成的n-gram token去mask原始句子token的一个样例,ERNIE-Gram根据数据Masking位置的词分布采样了public official和completely去替换了原始语句词,即:

  • 原始语句:the prime minister proposed nothing less than a overhaul of the tax system.
  • Masking语句:the public official proposed completely a overhaul of the tax system.

然后将mask语句传入Transformer Encoder θ​中进行训练。

假设 y M ′ = { y 2 ′ , y 4 ′ } , z ‾ \ M ′ = { x 1 , y 2 ′ , x 4 , y 4 ′ , x 6 } y'_M=\{y'_2,y'_4\},\overline z'_{\backslash M}=\{x_1,y'_2,x_4,y'_4,x_6\} yM={y2,y4},z\M={x1,y2,x4,y4,x6},表示用生成n-gram项Masking后的序列,则联合的预训练目标函数为:

− log ⁡ p θ ′ ( y M ∣ z ‾ \ M ) − log ⁡ p θ ( y M , z M ∣ z ‾ \ M ′ ) -\log p_{\theta '}(y_M|\overline z_{\backslash M})-\log p_{\theta}(y_M,z_M|\overline z'_{\backslash M}) logpθ(yMz\M)logpθ(yM,zMz\M)

另外,ERNIE-Gram融入了the replaced token detection (RTD)任务,用于识别这些token是否是被生成器替换的token。假设 z ^ \ M = { x 1 , y 2 , x 4 , y 4 , x 6 } \hat z_{\backslash M}=\{ x_1,y_2,x_4,y_4,x_6\} z^\M={x1,y2,x4,y4,x6},为真实目标n-gram词替换后的序列,则RTD的目标函数为:

− log ⁡ p θ ( 1 ( z ‾ \ M ′ = z ^ \ M ) ∣ z ‾ \ M ′ ) = − ∑ t = 1 ∣ z ^ \ M ∣ log ⁡ p θ ( 1 ( z ‾ \ M , t ′ = z ^ \ M , t ) ∣ z ^ \ M , t ′ ) -\log p_{\theta}(1(\overline z'_{\backslash M}=\hat z_{\backslash M})|\overline z'_{\backslash M})=- \displaystyle\sum^{|\hat z_{\backslash M}|}_{t=1} \log p_{\theta}(1(\overline z'_{\backslash M,t}=\hat z_{\backslash M,t})|\hat z'_{\backslash M,t}) logpθ(1(z\M=z^\M)z\M)=t=1z^\Mlogpθ(1(z\M,t=z^\M,t)z^\M,t)

模型参考

论文地址:https://arxiv.org/abs/2010.12148

代码地址:https://github.com/PaddlePaddle/PaddleNLP/blob/develop/paddlenlp/transformers/ernie_gram/modeling.py

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不负韶华ღ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值