程序地带

ICLR 2021 | 微软DeBERTa:SuperGLUE上的新王者


基本信息

题目: DeBERTa: Decoding-enhanced BERT with Disentangled Attention


机构: 微软研究院


作者: Pengcheng He, Xiaodong Liu, Jianfeng Gao, Weizhu Chen


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


论文代码: https://github.com/microsoft/DeBERTa


简介

Q: 文章要解决的问题是什么?


A: 改善 BERT 和 RoBERTa预训练效率,并提升下游指标


Q: 文章如何解决问题?


A: 提出DeBERTa(Decoding-enhanced BERT with disentangled attention)模型,该模型有2个技术创新点:


(1)注意力解耦机制(disentangled attention mechanism)。每个word的 embedding 由 content embedding 和 和 position embedding 组成。注意,不是BERT那种 content embedding 和 position embedding 直接向量相加。 word之间的注意力权重用word的content和相对位置的解耦矩阵表示。


(2)用增强 mask decoder替换原始输出的 softmax层,以预测模型预训练时候被 mask 掉的token。如此解决BERT的预训练和微调阶段的不一致问题。


Q:最终效果如何?


A:DeBERTa比RoBERTa和BERT更高效,在多数NLP任务上也获取更好的结果。DeBERTa仅用一半预训练数据即可在众多NLP任务中超越RoBERTa-Large。具体表现在:在MNLI上提高了+0.9%(90.2% vs 91.1%),在SQuAD v2.0上提高了+2.3%(88.4% vs 90.7%),在RACE提高了+3.6%(83.2% vs 86.8%)。数字太多,记不住?没关系,让我们一起瞻仰下最新(2021年1月15号)15亿参数量的DeBERTa模型在SuperGLUE上夺冠的高光时刻吧~


在这里插入图片描述


介绍

DeBERTa的关键是2点:


自注意力解耦机制用Enhanced Mask Decoder(EMD)强化预训练输出层
自注意力解耦机制:

用2个向量分别表示content 和 position,即word本身的文本内容和位置。word之间的注意力权重则使用word内容之间和位置之间的解耦矩阵。这是因为word之间的注意力不仅取决于其文本内容,还依赖于两者的相对位置。比如,对于单词"deep" 和 单词"learning",当二者一起出现时,则它们之间的关系依赖性要比在不同的句子中出现时强得多。


给定一个文本序列,对于第i个token分别用
H
i
H_i
Hi​和
P
i

j
P_{i|j}
Pi∣j​表示文本向量和相对
j
j
j位置的位置向量。那么token
i
,
j
i,j
i,j之间的cross attention score可以分解成4个部分:



A
i
,
j
=
{
H
i
,
P
i

j
}
×
{
H
j
,
P
j

i
}

=
H
i
H
j

+
H
i
P
j

i

+
P
i

j
H
j

+
P
i

j
P
j

i

egin{aligned} A_{i, j} &=left{oldsymbol{H}_{i}, oldsymbol{P}_{i mid j} ight} imesleft{oldsymbol{H}_{j}, oldsymbol{P}_{j mid i} ight}^{ op} \ &=oldsymbol{H}_{i} oldsymbol{H}_{j}^{ op}+oldsymbol{H}_{i} oldsymbol{P}_{j mid i}^{ op}+oldsymbol{P}_{i mid j} oldsymbol{H}_{j}^{ op}+oldsymbol{P}_{i mid j} oldsymbol{P}_{j mid i}^{ op} end{aligned}
Ai,j​​={Hi​,Pi∣j​}×{Hj​,Pj∣i​}⊤=Hi​Hj⊤​+Hi​Pj∣i⊤​+Pi∣j​Hj⊤​+Pi∣j​Pj∣i⊤​​


token
i
,
j
i,j
i,j之间的注意力权重可以由内容和位置之间的解耦矩阵组成,解耦的最终结果是4种注意力机制:


content-to-contentcontent-to-positionposition-to-contentposition-to-position

由于token之间注意力权重与token本身的内容和token之间的相对位置有关,那么建模过程content-to-position和position-to-content这两项都不能丢掉。另外,由于使用的是相对位置编码,position-to-position这一项并不能提供更多额外的信息,所以实现过程将这一项丢掉。


以单个head为例,标准的自注意力如下表示:



Q
=
H
W
q
,
K
=
H
W
k
,
V
=
H
W
v
,
A
=
Q
K

d
H
o
=
softmax

(
A
)
V
egin{aligned} Q=H W_{q}, K &=H W_{k}, V=H W_{v}, A=frac{Q K^{ op}}{sqrt{d}} \ H_{o} &=operatorname{softmax}(A) V end{aligned}
Q=HWq​,KHo​​=HWk​,V=HWv​,A=d
​QK⊤​=softmax(A)V​


其中
H

R
N
×
d
oldsymbol{H} in R^{N imes d}
H∈RN×d表示输入的隐向量,
H
o

R
N
×
d
oldsymbol{H_o} in R^{N imes d}
Ho​∈RN×d表示自注意力的输出,
W
q
,
W
k
,
W
v

R
d
×
d
oldsymbol{W}_{oldsymbol{q}}, oldsymbol{W}_{oldsymbol{k}}, oldsymbol{W}_{oldsymbol{v}} in R^{d imes {d}}
Wq​,Wk​,Wv​∈Rd×d表示对应的投射矩阵,
A

R
N
×
N
oldsymbol{A} in R^{N imes N}
A∈RN×N是注意力矩阵,N是输入序列长度,d是隐状态的维度。


当最大相对位置为
k
k
k,那么 token
i
i
i、
j
j
j之间的相对位置,或者说从
i
i
i到
j
j
j的的相对位置
δ
(
i
,
j
)
delta(i, j)
δ(i,j)定义如下:



δ
(
i
,
j
)
=
{
0
 for 
i

j


k
2
k

1
 for 
i

j

k
i

j
+
k
 others 
delta(i, j)=left{egin{array}{rll} 0 & ext { for } & i-j leqslant-k \ 2 k-1 & ext { for } & i-j geqslant k \ i-j+k & ext { others } end{array} ight.
δ(i,j)=⎩⎨⎧​02k−1i−j+k​ for  for  others ​i−j⩽−ki−j⩾k​


带有相位位置的解耦自注意力如下公式所示:



Q
c
=
H
W
q
,
c
,
K
c
=
H
W
k
,
c
,
V
c
=
H
W
v
,
c
,
Q
r
=
P
W
q
,
r
,
K
r
=
P
W
k
,
r
Q_{c}=H W_{q, c}, K_{c}=H W_{k, c}, V_{c}=H W_{v, c}, Q_{r}=P W_{q, r}, K_{r}=P W_{k, r}
Qc​=HWq,c​,Kc​=HWk,c​,Vc​=HWv,c​,Qr​=PWq,r​,Kr​=PWk,r​


在这里插入图片描述



H
o
=
softmax

(
A
~
3
d
)
V
c
oldsymbol{H}_{oldsymbol{o}}=operatorname{softmax}left(frac{ ilde{oldsymbol{A}}}{sqrt{3 d}} ight) oldsymbol{V}_{oldsymbol{c}}
Ho​=softmax(3d
​A~​)Vc​


其中
Q
c
Q_c
Qc​、
K
c
K_c
Kc​和
V
c
V_c
Vc​分别是使用投影矩阵
W
q
,
c
W_{q,c}
Wq,c​ ,
W
k
,
c
W_{k,c}
Wk,c​,
W
v
,
c

R
d
×
d
W_{v,c} in R^{d imes d}
Wv,c​∈Rd×d生成的投影内容向量;
P

R
2
k
×
d
Pin R^{2k imes d}
P∈R2k×d表示跨所有层共享的相对位置嵌入向量(即在正向传播期间保持不变);
Q
r
Q_r
Qr​和
K
r
K_r
Kr​分别是使用投影矩阵
W
q
,
r

W
k
,
r

R
d
×
d
W_{q,r},W_{k,r} in R^{d imes d}
Wq,r​,Wk,r​∈Rd×d生成的投影相对位置向量。



A
~
i
,
j
ilde{A}_{i, j}
A~i,j​是注意力矩阵
A
~
ilde{A}
A~中的元素,表示token i到 token j之间的注意力,
Q
i
c
Q_{i}^c
Qic​表示
Q
c
Q_{c}
Qc​的第
i
i
i行,
K
j
c
K_{j}^c
Kjc​表示
K
c
K_{c}
Kc​的第
j
j
j行。
K
δ
(
i
,
j
)
r
oldsymbol{K}_{delta(i, j)}^{r}
Kδ(i,j)r​表示
K
r
K_{r}
Kr​的第
δ
(
i
,
j
)
delta(i, j)
δ(i,j)行,
Q
δ
(
i
,
j
)
r
oldsymbol{Q}_{delta(i, j)}^{r}
Qδ(i,j)r​表示
Q
r
Q_{r}
Qr​第
δ
(
j
,
i
)
delta(j,i)
δ(j,i)行。需要注意的是,这里使用
δ
(
j
,
i
)
delta(j, i)
δ(j,i)行,而不是
δ
(
i
,
j
)
delta(i,j)
δ(i,j)行。这是因为给定位置
i
i
i,position-to-content计算的是key中j位置的内容相对于query中i位置的注意力权值,因此相对距离为:
δ
(
j
,
i
)
delta(j, i)
δ(j,i)。position-to-content项的计算为:
K
j
c
Q
δ
(
j
,
i
)
r
oldsymbol{K}_{j}^{c} oldsymbol{Q}_{delta(j, i)}^{r}
Kjc​Qδ(j,i)r​。content-to-position项的计算类似。最后,
A
~
ilde{A}
A~还除以一个缩放系数
3
sqrt3
3
​,以稳定模型的训练过程。


EMD

众所周知,原始的BERT存在预训练和微调不一致问题。预训练阶段,隐层最终的输出输入到softmax预测被mask掉的token,而微调阶段则是将隐层最终输出输入到特定任务的decoder。这个decoder根据具体任务不同可能是一个或多个特定的decoder,如果输出是概率,那么还需要加上一个softmax层。为消除这种不一致性,DeBERTa将MLM与其他下游任务同等对待,并将原始BERT中输出层的softmax替换为增强后的mask decoder(EMD),EMD包含一个或多个Transformer层和一个softmax输出层。至此,结合了BERT和EMD的DeBERTa成为了一个encoder-decoder模型。


在设计DeBERTa的时候需要注意以下几点:


encoder应该比decoder深得多,因为微调阶段主要针对前者。由于想要encoder-decoder的参数量与BERT近似,以使得两者预训练代价相同。DeBERTa预训练的encoder应该类似于BERT,如此两者在下游任务上的微调成本和性能方才有可比较性。

实验过程的baseline是12层的BERT。DeBERTa的encoder由11层 Transformer组成,decoder由2层参数共享的Transformer和一个Softmax输出层组成。因此,DeBERTa与BERT-base的参数量近似。在对DeBERTa模型进行预训练后,对11层encoder和1层decoder进行叠加,以恢复出标准的BERT-base结构进行微调。


此外,文章还做了一个看似微小但重要的改进。在encoder输出向量输入EMD进行 MLM 预训练时,原始的BERT并没有用 [MASK] token替换掉所有被mask掉的token,而是10%保持不变。因为在下游任务的输入中从来没有出现过 [MASK] token,这一设计的初衷是为了缓解预训练和微调之间的不一致性。但是这种方法导致了信息泄漏,即预测以token本身为条件的mask token。DeBERTa在将这些被mask但未改变的token(即那10%被泄露信息的token)输入decoder进行预测之前,将它们encoder输出向量替换为相应的绝对位置嵌入向量。


实验
实验结果-Large版

DeBARTa-Large版和其他先进模型在GLUE上的对比结果如 Table 1所示:


在这里插入图片描述


DeBERTa的参数量是390M,其他先进模型的差不多是350M。RoBERTa 和 XLNet 的训练数据是160G,而 DeBERTa的训练数据是78G。RoBERTa 和 XLNet训练了500K个step,一个step有8K个样本,整体上超过40亿次的训练样本。而DeBERTa只有100万个step的训练,每一step只有2k个样本,整体有20亿次的训练样本,这只有RoBERTa 或 XLNet 的一半。所以,DeBERTa整体比较高效。从Table 1的结果可以看出,在所有任务中DeBERTa始终优于BERT和RoBERTa。同时在八项任务中有六项DeBERTa优于XLNet。特别是MRPC(超过XLNet有1.7个百分点,高出RoBERTa 1.6个百分点)、RTE(超过XLNet 2.2%,超过RoBERTa 1.5%)和 CoLA(超过XLNet 0.5%,超过RoBERTa 1.5%)的提升效果非常显著。


另外,由于MNLI常用作一项评测预训练进展的指示性任务,所以也使用该数据集评测DeBERTa。实验结果表明DeBERTa在MNLI上显著优于所有同参数量的模型,并刷新了记录。文章还使用额外的一些基准评估DeBERTa:


问答:SQuAD v1.1、SQuAD v2.0、RACE、ReCoRD 和 SWAG;自然语言推理:MNLI;NER:CoNLL-2003;

为了进行公平的比较,将 Megatron分为三种不同的尺寸:Megatron 336M、Megatron 1.3B 和 Megatron 3.9B,它们使用与 RoBERTa相同的数据集进行训练。值得注意的是,Megatron 336M 模型参数量与上述其他模型近似。各个模型的对比结果如 Table 2 所示:


在这里插入图片描述


从Table 2 中可以看出,与之前各种先进模型(BERT、RoBERTa、XLNet和Megatron336M)相比,DeBERTa 在这7项任务中发挥稳定,一如既往地优秀!以RACE为例,DeBERTa的性能显著优于之前的冠军模型XLNet,高出1.4%(86.8% vs 85.4%)。纵使Megatron1.3B的参数量是DeBERTa的3倍大,DeBERTa在四个基准任务中的三个仍然可以超过Megatron1.3B。


综上,在不同的下游任务中DeBERTa所展现得优异性能始终稳如狗。


实验结果-Base版

DeBERTa base版和其他同参数量级先进模型的对比结果如Table 3所示。在三项评测任务中,DeBERTa的表现都优于RoBERTa和XLNet,且相比于Large版的超越幅度更大。例如,在MNLI-in-domain 设置(MNLI-m)中,DeBERTa-base 比 RoBERTa-base高出 1.2%(88.8% vs 87.6%),比 XLNet-base高出2%(88.8% vs 86.8%)。


在这里插入图片描述


模型分析
消融研究

为量化不同部分在 DeBERTa 中的贡献程度,文章进行了消融研究。文章设计了三种DeBERTa变体:


EMD:没有 EMD 的 DeBERTa 模型。C2P:没有content-to-position这一项的 DeBERTa 模型。P2C:没有position-to-content这一项的 DeBERTa 模型。 由于 XLNet 也使用相对位置,所以该模型近似等同于XLNet+EMD。

与此同时,从头开始训练 RoBERTa baseline模型,记为重新训练的RoBERTa-ReImp。DeBERTa在4个基准任务上的消融研究结果如 Table 4所示。


在这里插入图片描述


从实验结果可以得出以下结论:


RoBERTa 和 RoBERTa-ReImp base,在所有四个基准数据集上的表现相似。因此,RoBERTa-ReImp 作为一个坚实的baseline是可靠的。缺失DeBERTa中的任何一个部分,在所有基准测试的性能都会下降。比如,去掉 EMD(即-EMD),那么将带来以下的性能下降:RACE下降1.4% (71.7% vs 70.3%)、SQuAD v1.1下降 0.3% (92.1% vs 91.8%)、SQuAD v2.0下降1.2%(82.5% vs 81.3%)、MNLI-m/mm分别下降0.2% (86.3% vs 86.1%)和0.1% (86.2% vs 86.1%)。类似地,删除content-to-position 或position-to-content都会导致在所有基准任务下的性能下降。正如预期的那样,同时去掉content-to-position 和position-to-content则会导致更严重的性能退化。
注意力模式

为进一步了解DeBERTa和RoBERTa之间的性能差异的原因,在Figure 1展示了两者最后一层自注意力层的注意力模式。同时也将DeBERTa的三种变体纳入一起比较。


在这里插入图片描述


从实验结果发现2点不同:


RoBERTa有明显的对角线,表示token attend到自己的注意力。但是,DeBERTa没有这种明显的对角线。这是因为DeBERTa使用了EMD,使得被mask掉(广义上的mask操作)但是保持不变的那部分token用其对应的位置embedding来替代。通过观察DeBERTa-EMD的注意力模式得到证实,可以看出DeBERTa-EMD的对角线效应比原来的DeBERTa更亮。

RoBERTa的注意力模式中有垂直条带,这主要是由高频出现的功能性词汇如“a”、“the”或标点符号等造成的。而在DeBERTa中垂直条带只出现在第一列,其对应的是[CLS] 这个特殊token。因为[CLS] token的向量经常被用作下游任务中整个输入序列的上下文表征,所以可以合理推测一个良好的预训练模型,其对应的[CLS] token 就应该是要更亮的。此外,垂直条带效应在三种DeBERTa变种也很明显。


预训练效率

为研究模型预训练的收敛性,绘制了预训练step数和微调后下游任务的性能的关系图,如Figure 2所示。对于RoBERTa-ReImp base模型和DeBERTa base模型,每100K个预训练step dump 一个检查点,然后在两个下游任务(MNLI和SQuAD v2.0)上微调检查点,并分别报告准确性和F1分数。复制原始RoBERTa base 模型和XLNet base模型的最终模型性能作为参考,将它们绘制为平面点线。结果表明,在预训练的训练过程中,DeBERTa的表现一直优于RoBERTa-ReImp,并且收敛速度更快。


在这里插入图片描述


总结

文章提出了两种改进BERT预训练的方法:第一种是注意解耦机制,该机制将一个单词的表征由单词的内容和位置编码组成,并使用解耦矩阵计算单词之间在内容和相对位置上的注意力权重;第二种是引入一个增强的掩码解码器(EMD),它取代原有输出的Softmax来预测用于MLM预训练的被mask掉的token。使用这两种技术,新的预训练语言模型DeBERTa在许多下游NLP任务上的表现都优于RoBERTa和BERT。DeBERTa这项工作展示了探索自注意的词表征解耦以及使用任务特定解码器改进预训练语言模型的潜力。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ljp1919/article/details/112689524

随机推荐

博达网站群的基本使用2020-12-13

博达网站群的基本使用创建网站的基本过程利用博达网站群创建网站的流程分为4个步骤:模版页面制作、栏目建立、资料源建立、资料来源设置模版页面制作1.在本地的编辑器中制作模版页面(...

十姐 阅读(476)

ElasticSearch的索引管理

ElasticSearch的索引管理这里借助Kibana工具(也可以使用Postman,但是Kibana因为有提示,会相对方便一些)࿰...

sprogFall 阅读(530)

js算法之经典排序

1.冒泡排序(可以自己画图进行相邻之间比较更清晰)functionbubble(arr){//外层循环i控制比较的轮数//数组长度-1是因为每个数只要跟其他数相比就可以了,不用跟自己比较,for(va...

尼克1601044331 阅读(970)

差分、前缀和数组(C语言)

差分、前缀和数组差分数组作用:加快区间修改的速度一般要将数组的[i,j]区间元素都加上或减去一个数,需要从i遍历到j,但是使用差分数组,只需要修...

不太聪明的样子 阅读(934)

深浅拷贝

浅拷贝:藕断丝连深拷贝:再无瓜葛 浅拷贝:在C++中,将对象中的值采用基本类型值复制的方式拷贝过来,{如果对象管理...

team39 阅读(983)

信息系统项目管理

信息系统项目管理信息系统项目管理信息化和信息系统信息的特征信息系统项目管理信息化和信息系统现代科学的“三论”:信息论控制论系统论信息就是能够用来消除不确定性的东西。信息的特征客观性&#x...

一代小雄 阅读(807)

React ——优雅的管理状态之“状态提升”

状态提升通常,多个组件需要反映相同的变化数据,这时我们建议将共享状态提升到最近的共同父组件中区,让我们看看它是如何运作的。在本节中,我们将穿件一...

__zRainy__ 阅读(227)

Ubuntu 安装与配置问题

Ubuntu安装与配置问题问题一:installubuntu之后就黑屏没反应了老板给我们安排了一批新的电脑,装有3070,一时兴奋,然后就安装U...

cucurbitaceaer 阅读(735)