Bert变体--Deberta

Deberta

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

基于roberta的三个改进:

  • 解耦注意力机制
  • 增强的mask解码器
  • 新的虚拟对抗训练方法

注意力解耦

在计算注意力分数的时候,将语义信息和位置信息解耦,其中位置信息使用相对位置编码

\[A_{i,j}=\{H_i,P_{i|j}\}*\{H_j,P_{j|i}\}^\top \\ =H_iH_j^\top+H_iP_{i|j}^\top+P_{j|i}H_j^\top+P_{i|j}P_{j|i}^\top \]

具体QKV的计算公式看论文

绝对单词位置的增强型mask解码器

DeBERTa是使用MLM进行预训练的,解耦注意力机制已经考虑了上下文词的内容和相对位置,但没有考虑词语的绝对位置

有两种合并绝对位置的方法

  • BERT模型在输入层中合并了绝对位置
  • 在DeBERTa中,我们在Encoder的所有Transformer层之后将它们合并

DeBERTa将原始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输出向量替换为相应的绝对位置嵌入向量。

posted @ 2023-04-17 23:46  shiiiilong  阅读(316)  评论(0编辑  收藏  举报