赞
踩
自然语言处理领域在各个子任务上都有相应的榜单和标杆数据集,但由于GLUE benchmark数据规范,体量庞大,同时集合了多个子任务,全方位考验模型的能力。几乎所有近年来的大型预训练模型都以在 GLUE 上实现 SOTA 为目标,
DeBERTa仅用一半预训练数据即可在众多NLP任务中超越RoBERTa-Large,并且超过了SuperGLUE的人类baseline2021年1月在SuperGLUE上夺冠。
一、背景
1.1transformer
deberta是一个基于transformer的神经语言模型。
transformer结构是由输入模块、encoder模块、decoder模块和输出模块组成。
Transformer 的 Decoder的输入与Encoder的输出处理方法步骤是一样地,一个接受source数据,一个接受target数据.只是在有target数据时也就是在进行有监督训练时才会接受Outputs Embedding,进行预测时则不会接收。
1.1.1输入部分首先将词转化为embdding,再添加相应的位置编码,输入到后续的encoder模块中,因为encoder模块中的attention机制不能识别单词的位置信息,将一句话中的词全部打乱,得到的注意力权重是同样的,因此需要在输入模块添加单词的位置信息也就是positional embdding。
位置embdding:
每个词语的词向量的偶数位置添加sin变量,奇数位置添加cos变量
pos是词在输入句子中的位置,i是维度:
举例,d_model=128 ,pos=3,则positional表示为
使用sin编码和cos编码的原因是可以得到词语之间的相对位置
即由sin(pos+k)可以得到通过线性变换获取后续词语相对当前词语的位置关系.
1.1.2encoder block
Encoder block是由6个encoder堆叠而成,一个encoder由Multi-Head Attention 和 全连接神经网络Feed Forward Network构成。
1.1.3decoder block
decoder block是由6个decoder堆叠而成
一个decoder由Masked Multi-Head Attention,Multi-Head Attention 和 全连接神经网络FNN构成
1.2self-attention
其中 ,N*d维的矩阵H表示输入的隐藏向量,N*d维的矩阵Ho表示自注意力机制的输出。
d*d维的矩阵Wq,Wk,Wv表示映射矩阵。N*N维的A表示注意力矩阵,N是输入序列的长度,d是隐藏状态的维度。
1.3masked language modeling
随机mask句子中15%的token(用标记[MASK]代替token),然后将[MASK]位置最后输出的隐藏向量送入softmax,来预测masked token。
输入:今天天气真好-》今天天[MASK]真好
输出:气
二、创新点
1、Disentangled attention
在BERT中,输入层中的每个单词都是用一个向量表示的,这个向量是单词内容embdding+位置embdding,而在DeBERTa中,每个单词都是用两个向量表示的,分别对内容和位置进行编码,根据单词的内容和相对位置,利用解耦矩阵计算单词之间的attention score。
一对词的attention weight不仅取决于词的内容,还取决于它们的相对位置。例如,deep和learning两个词相邻时,它们的依赖性比它们分别出现时要强的多。
1.1.1相对位置计算
1.1.2注意力机制计算
一个在序列中位置为i的token,使用{Hi}来表示它的内容,使用{Pi,j}来表示它和在序列中位置为j的token的相对位置。计算 在token i和token j之间的交叉注意力得分可以分解为4个部分:
单词对的注意权重等于四个注意分数的和,使用内容到内容、内容到位置、位置到内容、位置到位置的解耦矩阵。
现有的相对位置编码方法使用单独的嵌入矩阵来计算注意力权重中的相对位置偏差。相当于只使用上述公式中的前两项来计算注意力权重。文章认为位置到内容这一项也很重要。由于我们使用了相对位置embdding,位置对位置项没有提供太多额外的信息,因此删除第四项。
1.1.3解耦注意力机制计算
1.1.4伪代码
2、Enhanced mask decoder(EMD)
motivation
解耦注意机制已经考虑了上下文词的内容和相对位置,但没有考虑这些词的绝对位置,
DeBERTa在softmax层之前引入了绝对单词位置embdding,在softmax层中,模型将内容embedding和位置embedding求和得到的上下文embdding来对被mask的单词进行解码。合并绝对位置的方法有两种,BERT模型在输入层合并绝对位置。在实证研究中,作者比较了这两种结合绝对位置的方法,发现EMD的效果更好。推测BERT中过早合并绝对位置可能妨碍模型从相对位置中学习充足的信息。
B图为EMD层的结构
H是上一层transformer的隐藏状态,I是用于解码的任意信息(如H、绝对位置编码、来自前EMD的输出)。
n表示n个堆叠的EMD,其中每个EMD的输出会作为I输入到下一个EMD层。
n个层之间可以共享权重,为了减少参数,本文设置n=2,即两层EMD层共享权重,并使用绝对位置编码作为I输入到第一层EMD中。当n=1且I=H时,EMD退化为transformer的decoder层。
3、Scale invariant fine-tuning 尺度不变微调
motivation:
虚拟对抗训练是一种提高模型泛化能力的正则化方法。通过对输入的样本增加小扰动生成对抗样本,添加对抗样本进行训练。对于自然语言处理任务,在word embedding上做扰动而不是原词序列。但在不同的词和模型中,embedding向量的取值范围是不同的。在最近的模型中通常对word embedding进行归一化。
当DeBERTa对下游的NLP任务进行微调时,这种尺度不变性微调首先将word embedding向量归一化,然后对归一化后的embedding向量进行扰动。但实验中,作者只将SiFT应用于SuperGLUE任务的DeBERTa1.5B。
三、实验
3.1 large模型性能
作者按照BERT_large的模型结构设置训练了以上几个模型的large版本,RoBERTa、XLNet和ELECTRA是在160G训练数据上进行预训练的,而DeBERTa是在78G训练数据上进行预训练的。比较了这几个模型的在GLUE的8个nlu任务的开发集上的效果。上图显示,与BERT和RoBERTa相比,DeBERTa在所有任务中始终表现得更好。同时,DeBERTa在8个任务中有6个优于XLNet。
3.2其他下游任务模型性能
除了GLUE之外,DeBERTa还通过三个类别的NLUbaseline进行评估:(1)Question answering:SQuAD v1.1 、SQuAD v2.0、RACE、ReCoRD 和SWAG;(2)自然语言推理:MNLI ;和(3)NER: CoNLL-2003。为了比较,我们包括ALBERT_xxlarge 和 Megatron,它们有三种不同的模型大小,分别表示为Megatron336M、Megatron1.3B和Megatron3.9B,使用与RoBERTa相同的数据集进行训练。请注意,Megatron336M与上面提到的其他型号有相似的模型尺寸。与这些规模大小类似的SOTA plm相比,DeBERTa在所有7个任务中的得分都很高。虽然Megatron1.3B是DeBERTa的三倍大,但DeBERTa在四个基准测试中有三个都超过了它。(斜杠-代表缺失)
3.3base模型性能
论文还比较了base模型的性能,对上述模型结构的设置也参照了bert_base模型的设置,同样使用78G数据集训练DeBERTa,使用160G文本数据训练XLnet和roberta进行对比,也是得到了更高的性能。
3.4消融实验
为了比较不同部分的改进对deberta模型整体效果的影响,作者做了消融实现进行对比,-EMD表示模型去除了增强的mask 的decoder,-c2p表示模型去除了解耦矩阵计算中内容到位置的项,-p2c表示模型去除了位置到内容的项。上表可以看到, 删除每一处改进都会导致模型性能的降低,其中,删除解耦矩阵计算的两项会导致性能降低得更多。
3.5deberta_1.5B版本模型性能
更大的模型具有更好的性能,作者构建了一个具有15亿参数的deberta模型
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。