Multi-Head Attention


对于Q和K一般先将降维然后在计算注意力,然后将此操作重复多次(h次)最后将结果拼接即为多头注意力。这里假设降维的Q、K维度是n∗(d/h)n*(d/h)n∗(d/h),点积后为n∗nn*nn∗n,也就是说要用一个2∗n∗(d/h)2*n*(d/h)2∗n∗(d/h)参数量去逼近一个n2n^2n2的参数量,然而2nd/h<<n22nd/h<<n^22nd/h<<n2,尤其h更大时,这种建模存在瓶颈的(低秩瓶颈)。
改进1:增大d(Low-Rank Bottleneck in Multi-head Attention Models)
跟剧上文所说的缺点,直接想法就是增大2nd/h2nd/h2nd/h,h不能减小(与多头注意力冲突),n与V维度相关,不能变,所以只能增大d,实验表明能增加注意力的表达能力
改进2:混合各head注意力(Talking-Heads Attention)
当前的Multi-Head Attention每个head的运算是相互孤立的,而通过将它们联系(Talking)起来,则可以得到更强的Attention设计

如上图,就是将多头注意力用一个参数矩阵重新融合成多个混合注意力。每个新的得到的混合注意力都融合了原先的各head注意力。
注:
1、这里省略了缩放因子dk\sqrt d_kdk
2、新生成的多个混合注意力可以多于原先的h

2万+

被折叠的 条评论
为什么被折叠?



