当前位置:   article > 正文

DeBERTa_disentangled matrix

disentangled matrix

DeBERTa

[DeBERTa: Decoding-enhanced BERT with Disentangled Attention](https://arxiv.org/abs/2006.03654)

code:https://github.com/microsoft/DeBERTa
他这论文改过一次,和ICLR2021的不一样

  • GPT2差不多的参数,15亿参数。。。

key

  • Disentangled Attention(分散注意力)

    • 架构和bert类似,主要区别是Attention分数计算额外增加了位置信息
      • BERT:每个输入层token由一个向量表示,向量是单词内容和位置的总和
      • DeBERTa:每个token使用两个向量表示, 然后attention weights由disentangled matrix基于内容和相对位置来计算
        • 相对位置影响attention,比如deep和learning,在近的时候和远的时候就应该不一样。
    • bert中的相对位置只是用了《attention is all you need》中的position embedding,可参见Position信息的处理
  • Enhanced Mask Decoder

    • 用EMD代替原BERT的Softmax层预测遮盖的Token
    • 分散注意力机制只考虑了内容和相对位置,并没有考虑绝对位置,但绝对位置也很重要
      • 比如““a new store opened beside the new mall”中的store和mall,他们局部上下文相似,,但在句子中扮演着不同的角色,这种角色的不同很大程度上决定于绝对位置
      • 因此在decoder的softmax之前将单词的绝对位置嵌入
  • Virtual Adversarial Training

    • 提出了新的虚拟对抗训练模式,来针对PLMs(预训练模型Pre-trained Language Models)在NLP下游任务的fine-tune。

Disentangled Attention

  • 对于序列中的位置i,我们使用两个向量来表示它 { H i } 和 { P i ∣ j } \{H_i\}和\{P_{i|j}\} {Hi}{Pij}分别表示内容表示和对于j的相对位置表示。

  • 则i,j之间的attention score:

    • A i , j = { H i , P i ∣ j } × { H j , P j ∣ i } T = H i H j T + H i P j ∣ i T + P i ∣ j H j T + P i ∣ j P j ∣ i T ( 2 ) A_{i,j}=\{H_i,P_{i|j}\}\times\{H_j,P_{j|i}\}^T\\ =H_iH_j^T+H_iP_{j|i}^T+P_{i|j}H_j^T+P_{i|j}P_{j|i}^T\qquad (2) Ai,j={Hi,Pij}×{Hj,Pji}T=HiHjT+HiPjiT+PijHjT+PijPjiT(2)

    • 即,注意力权重由<内容,内容>,<内容,位置>,<位置,内容>,<位置,位置>组合成

    • 因为这里用的是相对位置embedding,所以<位置,位置>的作用不大,将其在(2)式中移除

使用attention的QKV模式表示

可参见Attention机制学习

以单头为例

  • 标准的self-attention如下

    • Q = H W q , K = H W k , V = H W v , A = Q K T d H o = s o f t m a x ( A ) V H ∈ R R × d : input hidden vectors H o ∈ R R × d : output of self-attention W q , W k , W v ∈ R d × d : 投 影 矩 阵 A ∈ R R × R : attention matrix N , d : 序 列 长 度 , hidden states 维 数 Q=HW_q,K=HW_k,V=HW_v,A=\frac{QK^T}{\sqrt{d}}\\ H_o=softmax(A)V\\ H\in R^{R\times d}:\text{input hidden vectors}\\ H_o\in R^{R\times d}:\text{output of self-attention}\\ W_q,W_k,W_v\in R^{d\times d}:投影矩阵\\ A\in R^{R\times R}:\text{attention matrix}\\ N,d:序列长度,\text{hidden states}维数 Q=HWq,K=HWk,V=HWv,A=d QKTHo=softmax(A)VHRR×dinput hidden vectorsHoRR×doutput of self-attentionWq,Wk,WvRd×dARR×Rattention matrixNdhidden states
  • 定义k为最大相对距离, σ ( i , j ) ∈ [ 0 , 2 k ) \sigma(i,j)\in [0,2k) σ(i,j)[0,2k)为token i到token j的相对距离,文章默认k=512

    • σ ( i , j ) = { 0 i − j ≤ − k 2 k − 1 i − j ≥ k i − j + k o t h e r s \sigma(i,j)= \left\{

      0ijk2k1ijkij+kothers
      \right. σ(i,j)=02k1ij+kijkijkothers

    • 即全部编码到[0,2k-1],自己为k

  • 所以,具有相对位置偏差的disentangled self-attention

    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 A ~ i , j = Q i c K j c ⊤ ⏟ ( a )  content-to-content  + Q i c K δ ( i , j ) r ⊤ ⏟ ( b )  content-to-position  + K j c Q δ ( j , i ) r ⊤ ⏟ ( c )  position-to-content  H o = softmax ⁡ ( A ~ 3 d ) V c P ∈ R 2 k × d : 表 示 所 有 层 之 间 共 享 的 相 对 位 置 e m b e d d i n g Q r , K r : 相 对 位 置 向 量 映 射 后 的 矩 阵 K j c : K c 的 第 j 行 K δ ( i , j ) r : K r 的 第 δ ( i , j ) 行 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}\\ \tilde{A}_{i, j}= \underbrace{Q_{i}^{c} K_{j}^{c \top}}_{(\mathrm{a}) \text { content-to-content }} + \underbrace{Q_{i}^{c} K_{\delta(i, j)}^{r{\top}}}_{(\mathrm{b}) \text { content-to-position }} + \underbrace{K_{j}^{c} Q_{\delta(j, i)}^{r{\top}}}_{(\mathrm{c}) \text { position-to-content }}\\ \boldsymbol{H}_{o}=\operatorname{softmax}\left(\frac{\tilde{\boldsymbol{A}}}{\sqrt{3 d}}\right) \boldsymbol{V}_{c}\\ P\in R^{2k\times d}:表示所有层之间共享的相对位置embedding\\ Q_r,K_r:相对位置向量映射后的矩阵\\ K_{j}^{c}:K_c的第j行\\ K_{\delta(i, j)}^{r}:K_r的第{\delta(i, j)}行 Qc=HWq,c,Kc=HWk,c,Vc=HWv,c,Qr=PWq,r,Kr=PWk,rA~i,j=(a) content-to-content  QicKjc+(b) content-to-position  QicKδ(i,j)r+(c) position-to-content  KjcQδ(j,i)rHo=softmax(3d A~)VcPR2k×dembeddingQr,KrKjcKcjKδ(i,j)rKrδ(i,j)

    • 注意Q那里的 σ \sigma σ ( j , i ) (j,i) (j,i),是因为这里<位置,内容>是j的内容相对于i的位置

在这里插入图片描述

Enhanced Mask Decoder(EMD)

  • 将绝对位置加入有两种方式
    • 一、放在input layer前
    • 二、放在所有transformer层之后,softmax层之前。
  • DeBERTa就用的第二种方式,实验发现第二种方式比第一种方式效果好
    • 作者推测,第一种方式可能会影响相对位置的学习

在这里插入图片描述

另外,EMD可以使其他有用的信息(类似绝对距离那样)在预训练的时候加入。

  • 具体实现的时候,就是使用n个堆叠的EMD,每个EMD输入到下一个EMD。
  • n层layer共享参数来较少参数,绝对位置是第一个EMD,其他的可以放各种信息

Scale-invariant-Fine-Tuning(SiFT)

-这就是他新发明的虚拟对抗训练方式,但说的非常简略

在fine-tunning时,使用layer normalization

  • 先将embedding进行normalize
  • 再将扰动并进normalize之后的embedding
  • 他们发现这样会大大提高fine-tunning的性能,之后会全面研究

除了NLU任务,DeBERTa还能用在NLG任务上,类似UNILM模型(Unified Language Model Pre-training for Natural Language Understanding and Generation),可以参见UNILM

大模型与集成

  • 15亿的参数,首次在superGLUE上超过人类水平
  • 集成后又比15亿多了0.4

实验

  • 效果不多说,目前GLUE榜第一,NLU上基本SOTA
  • 消融实验也做了,主要做的是上面的<位置,内容>,<内容,位置>。。。和有没有EMD,实验证明目前组合最好

attention可视化

在这里插入图片描述

  • RoBERTa

    • 有明显的对角线效果,说明token会关注自己比较明显
    • 竖直条纹主要是因为高频词(“a”,“the”,标点符号这些)引起的
  • DeBERTa

    • 对角线并不明显,主要是EMD起的作用
    • 竖直条纹主要在第一列,说明[CLS]的主导性是可取的,因为[CLS]这个向量经常作为特征载体在下游任务中作为输入序列的上下文表示。([CLS])

评价

  • 文章主要关注点在位置与内容之间,事实也证明这样在句法层面会有很大影响,对后续NLU上的论文启发较大
  • 然后就是SiFT这个点了
  • 其次就是:有钱!
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/721279
推荐阅读
相关标签
  

闽ICP备14008679号