multihead attention增强表达能力,解决“低秩瓶颈”

增大模型的key_size

第一个结果来自文章《Low-Rank Bottleneck in Multi-head Attention Models》,它明确地指出了Multi-Head Attention里边的表达能力瓶颈,并提出通过增大key_size的方法来缓解这个瓶颈。

它能增加Attention的表达能力,并且不改变模型整体的hidden_size,计算量上也只是稍微增加了一点

通常Q,K,V分别是对输入矩阵X进行不同W矩阵投影,
multihead,是将原始的d维投影到d/h维,然后在进行Attention运算,输出也是d/h维,最后把h个d/h维的结果拼接起来,得到一个d维的输出。这里的d/h我们通常称为head_size。

当我们用投影矩阵将Q,K,V都投影到低维时,前面都是将它们投影到d/h维,但其实它们的维度不一定要相等,而是只需要保证Q,K的维度相等就行了(因为要做内积),为了区别,我们通常称Q,K的维度为key_size,V的维度才叫head_size,改变key_size的大小而不改变head_size的话,也不影响模型的hidden_size

补充说明:
事实上原论文考虑的是同时增大key_size和head_size、然后Multi-Head Attention的输出拼接之后再用一个变换矩阵降维,但笔者认为由于拼接降维这一步只是一个线性变换,所以本质上的提升还是来源于增大key_size,所以本文只强调了增大key_size这一步。
此外,如果同时增大key_size和head_size,那么会导致计算量和显存消耗都明显增加,而只增大key_size的话,增加的资源消耗就小很多了。

** 将多个head联合起来 **

对Multi-Head Attention改进的第二个结果来自论文《Talking-Heads Attention》,这篇论文虽然没有显式地指出它跟前一篇论文的联系,但笔者认为它们事实上在解决同一个问题,只不过思路不一样:它指出当前的Multi-Head Attention每个head的运算是相互孤立的,而通过将它们联系(Talking)起来,则可以得到更强的Attention设计,即标题的“Talking-Heads Attention”。

从单一分布到混合分布
在前一篇论文里边,我们提到了低秩瓶颈,也就是由于key_size太小所以QK表达能力不足,因此softmax之后无法很好地建议完整的二元分布。为了缓解这个问题,这篇论文使用的混合分布思路。

所谓混合分布,就是多个简单分布的叠加(比如加权平均),它能极大地增强原分布的表达能力。典型的例子是高斯混合模型:我们知道高斯分布只是一个常见的简单分布,但多个高斯分布叠加而成的高斯混合分布(也叫高斯混合模型,GMM)就是一个更强的分布,理论上来说,只要叠加的高斯分布足够多,高斯混合分布能逼近任意概率分布。这个例子告诉我们,想要增加Attention中分布的表达能力,又不想增加key_size,那么可以考虑叠加多个低秩分布。

那么“多个”低秩分布哪里来呢?不是有Multi-Head嘛,每个head都带有一个低秩分布,就直接用它们叠加就行了,这就是Talking-Heads Attention了。
具体来说,它的形式是:
在这里插入图片描述

写起来很复杂,事实上很简单,就是在“QK⊤之后、softmax之前”用一个参数矩阵λ将各个QK⊤的结果叠加一下而已。这样就把原本是孤立的各个Attention Head联系了起来,即做了一个简单的Talking。

对上述公式,做两点补充说明:
1、简单起见,上述公式中笔者省去了缩放因子dk‾‾√,如果有需要,读者自行补充上去即可;
2、更一般的Talking-Heads Attention允许可以在J=λĴ 这一步进行升维,即叠加出多于h个混合分布,然后再用另一个参数矩阵降维,但这并不是特别重要的改进,所以不在主要篇幅介绍。

摘抄自:突破瓶颈,打造更强大的Transformer

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值