Low-Rank Bottleneck in Multi-head Attention Models
在multi-head attention中,
Q
K
T
QK^T
QKT得到score, 用score将
V
V
V线性缩放得到最终表征.
Q
K
V
QKV
QKV的尺寸设定为
d
/
h
d/h
d/h, 其中d是hidden-size, h是multi-head的数量, 因此h个head的
Q
K
V
QKV
QKV尺寸就是$h×d/h=d维, $与hidde-size尺寸一致, 不会发生信息丢失.
但在每个head中,
Q
K
V
QKV
QKV的任务是繁重的, n个单词要互相计算各自的
q
k
T
qk^T
qkT, 就有
n
2
n^2
n2个参数, 但
Q
和
K
Q和K
Q和K的参数加一起只有
2
n
d
/
h
2nd/h
2nd/h个, 这些个参数要负责接下来
n
2
n^2
n2个参数的分布表达, 确实强人所难.
所以需要增加参数量. n是固定的, d可以变大, h可以变小. 缩小h相当于缩减模型表达的能力, 所以取变大d的方法.
这里的增大d指的是增大key-size, 即让映射矩阵W变大, 以增大
Q
和
K
Q和K
Q和K的尺寸. 结果确实得到了约0.5%的提高.
论文还同时让
V
V
V的尺寸也变大了, 不过
V
V
V只是原d维向量的一部分映射, 不像
Q
V
QV
QV有那么重的任务, 所以感觉不需要.
Talking-Heads Attention
如标题所说, 作者希望attention的head们能talking起来.
具体来说, 在
s
c
o
r
e
=
Q
K
T
score=QK^T
score=QKT时, 只是一个head的中间结果, 它存在因参数较少导致的信息缺失. 所以用一
n
×
n
n×n
n×n矩阵让n个n维score交换一下信息.
感觉这么做越来越乱了.
定义multi-head就是为了让不同特征归到不同head里, 加个talking又让它们互相混合有违初衷, 而且增加网络复杂度怎么说也会高一点吧, 实在难以说明talking的优越性.