<论文>通过解耦注意力来增强Bert
一、摘要
本文介绍的是来自微软团队的论文《DeBERTa: Decoding-enhanced BERT with Disentangled Attention》,翻译过来是“使用解耦注意力机制的解码增强型Bert”,看词就知道又是一篇炼丹大作。
译文:
预训练神经语言模型的最新进展显著提高了许多自然语言处理(NLP)任务的性能。在本文中,我们提出了一种新的模型架构 DeBERTa(具有解耦注意力的解码增强型 BERT),它使用两种新技术改进了 BERT 和 RoBERTa 模型。第一种是解耦注意力机制,其中每个单词分别用两个向量表示其内容和位置,单词之间的注意力权重分别使用基于其内容和相对位置的解耦矩阵计算。其次,使用增强的掩码解码器在解码层中合并绝对位置,以在模型预训练中预测被掩码的标记。此外,一种新的虚拟对抗训练方法用于微调,以提高模型的泛化能力。我们表明,这些技术显著提高了模型预训练的效率以及自然语言理解(NLU)和自然语言生成(NLG)下游任务的性能。与 RoBERTa - Large 相比,在一半训练数据上训练的 DeBERTa 模型在广泛的 NLP 任务上始终表现更好,在 MNLI 上提高了 +0.9%(90.2% 对 91.1%),在 SQuAD v2.0 上提高了 +2.3%(88.4% 对 90.7%),在 RACE 上提高了 +3.6%(83.2% 对 86.8%)。值得注意的是,我们通过训练一个由 48 个 Transformer 层和 15 亿参数组成的更大版本来扩展 DeBERTa。显著的性能提升使得单个 DeBERTa 模型在 SuperGLUE 基准测试中的宏平均得分方面首次超过人类表现(89.9 对 89.8),并且截至 2021 年 1 月 6 日,集成的 DeBERTa 模型在 SuperGLUE 排行榜上名列前茅,远远超过人类基线(90.3 对 89.8)。
二、核心创新点
1、解耦注意力机制
对于序列中处于位置 i 的一个Token,作者选择使用两个向量来表示这个Token,分别是代表内容的向量和代表当前Token和处于位置 j 的Token之间相对位置的向量。这样一来,可以通过四个部分来表示第 i 个Token和第 j 个Token之间的交叉注意力分数:
也就是说,一对词对的注意力权重可以通过对其内容和位置使用解耦矩阵计算为四个注意力分数的总和,分别是内容对内容、内容对位置、位置对内容、位置对位置。在实际的实现中,作者评估了个注意力分数并最终去除了位置对位置项。这样的分解能够包含更多的建模信息,从而实现更全面地考虑单词间的依赖关系,提高模型性能。
2、增强的掩码解码器(EMD)
Deberta使用MLM进行的预训练,而解耦注意力机制在这个过程中已经考虑了上下文单词的内容和相对位置,作者还认为绝对位置对于模型训练也至关重要,因此需要考虑绝对位置信息的学习并举了一个例子:
给定一个句子“a new store opened beside the new mall”,其中“store”和“mall”被Mask掉。仅使用局部上下文对于模型来说不足以在这个句子中区分“store”和“mall”,这是因为两者都在“new”这个词后面,具有相同的相对位置。为了解决这个问题,作者认为模型需要考虑绝对位置,例如,句子的主语是“store”而不是“mall”。
这里作者的设计是 DeBERTa 在所有 Transformer 层之后、最后一层softmax 层之前引入绝对位置信息来预测被Mask掉的词,并称之为Enhanced Mask Decoder(EMD)。实验表明,这种方式能更好地捕捉相对位置信息,并在解码时利用绝对位置作为补充信息,从而提高模型在下游任务中的表现。
3、虚拟对抗训练方法(SiFT)
在模型微调的过程中,作者还引入了一种虚拟对抗训练的方法——尺度不变微调(Scale-invariant-Fine-Tuning,SiFT),它通过提高模型对对抗样本的鲁棒性来提高模型的泛化能力。其中,对抗样本是通过对输入进行微小的扰动来创建的。
另外,作者认为在NLP任务中,扰动应该应用于Word Embedding而不是原始的输入文本序列。具体来说,当将Deberta微调至下游的NLP任务时,SiFT首先将词嵌入向量归一化为随机向量,然后对归一化的嵌入向量应用扰动,这样可以避免不同单词和模型的词向量值范围(范数)不同所导致的对抗训练不稳定问题。
4、模型扩展与性能提升
同样地,这篇论文也免不了堆参数和对数据。DeBERTa 模型的参数量达到了15亿,模型足足有48层。模型在 SuperGLUE 基准测试中取得了优异成绩,单模型首次在宏平均得分上超过人类表现。另外,相比同时期或者更早发布的其他参数更多的模型(如 110 亿参数的 T5),DeBERTa 在训练和维护上更节能高效,也更易于压缩和部署(毕竟参数量比上不足比下有余)。