这是关于提升transormer 效率的方法. 故而在单头自注意力机制上考虑.
Q , K , V Q,K,V Q,K,V 都是 N × D N \times D N×D 矩阵, Q K T QK^T QKT 的复杂度为 N 2 D N^2D N2D. 令 A:=softmax( Q K T QK^T QKT). A V A V AV 的复杂度为 N 2 D N^2D N2D. 所以 注意力机制的复杂度为 Q ( N 2 ) Q(N^2) Q(N2). 我们之所以关注 N 是因为这关系到输入词汇的长度.
如果换一种想法 e Q K T = ϕ ( Q ) ϕ ( K ) T e^{QK^T}=\phi(Q)\phi(K)^T eQKT=ϕ(Q)ϕ(K)T, 其中 ϕ : R D → R D \phi: \R^D \to \R^D ϕ:RD→RD, ϕ ( Q ) : = ( ϕ ( q 1 ) ⋮ ϕ ( q N ) ) \phi(Q):=\left( \begin{array}{c} \phi(q_1) \\ \vdots \\ \phi(q_N)\\ \end{array} \right) ϕ(Q):=⎝⎜⎛ϕ(q1)⋮ϕ(qN)⎠⎟⎞, 即 逐行向量映射.
对 ϕ ( Q ) ϕ ( K ) T \phi(Q)\phi(K)^T ϕ(Q)ϕ(K)T 正则化
a i , j = ϕ ( q i ) ϕ ( k j ) T ∑ l ϕ ( q i ) ϕ ( k l ) T a_{i,j}= \frac{\phi(q_i)\phi(k_j)^T}{\sum_l\phi(q_i)\phi(k_l)^T} ai,j=∑lϕ(qi)ϕ(kl)Tϕ(qi)ϕ(kj)T
于是 A V AV AV 的 第 i 行 为 z i : = ∑ j a i , j v j z_i:=\sum_j a_{i,j}v_j z