Bert变体--Deberta
Deberta
论文地址:https://arxiv.org/pdf/2006.03654.pdf
基于roberta的三个改进:
- 解耦注意力机制
- 增强的mask解码器
- 新的虚拟对抗训练方法
注意力解耦
在计算注意力分数的时候,将语义信息和位置信息解耦,其中位置信息使用相对位置编码
具体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输出向量替换为相应的绝对位置嵌入向量。