注意力机制的改进

Multi-Head Attention

在这里插入图片描述
注意力机制的改进_第1张图片
对于Q和K一般先将降维然后在计算注意力,然后将此操作重复多次(h次)最后将结果拼接即为多头注意力。这里假设降维的Q、K维度是 n ∗ ( d / h ) n*(d/h) n(d/h),点积后为 n ∗ n n*n nn,也就是说要用一个 2 ∗ n ∗ ( d / h ) 2*n*(d/h) 2n(d/h)参数量去逼近一个 n 2 n^2 n2的参数量,然而 2 n d / h < < n 2 2nd/h<2nd/h<<n2,尤其h更大时,这种建模存在瓶颈的(低秩瓶颈)。

改进1:增大d(Low-Rank Bottleneck in Multi-head Attention Models)

跟剧上文所说的缺点,直接想法就是增大 2 n d / h 2nd/h 2nd/h,h不能减小(与多头注意力冲突),n与V维度相关,不能变,所以只能增大d,实验表明能增加注意力的表达能力

改进2:混合各head注意力(Talking-Heads Attention)

当前的Multi-Head Attention每个head的运算是相互孤立的,而通过将它们联系(Talking)起来,则可以得到更强的Attention设计
注意力机制的改进_第2张图片
如上图,就是将多头注意力用一个参数矩阵重新融合成多个混合注意力。每个新的得到的混合注意力都融合了原先的各head注意力。
注:
1、这里省略了缩放因子 d k \sqrt d_k d k
2、新生成的多个混合注意力可以多于原先的h

你可能感兴趣的:(注意力机制,深度学习,python,机器学习,算法)