SOFT: Softmax-free Transformer with Linear Complexity

论文地址:

参考资料:

整体思路以及计算方式

首先加Attention Matrix的计算方式改写为(忽略常数):

Sij=exp(qikj2)S_{ij}= \exp \left(-\|q_i-k_j \|^2\right)

记为:

S=exp(QK)S=\exp (Q \ominus K)

由于时间复杂度没有降低,其实并无意义,后续的操作是降低时间复杂度。

作者首先假设Q=KQ=K,那么SS变成对称矩阵,将其表示为:

S=[ABBC]Rn×nS=\left[\begin{array}{cc} A & B \\ B^{\top} & C \end{array}\right] \in \mathbb{R}^{n \times n}

根据对称性,可以利用Nystrom分解进行计算:

S^=[AB]A[AB]=PAP,P=[AB]ARm×m,BRm×(nm),CR(nm)×(nm),mn\hat{S}=\left[\begin{array}{c} A \\ B^{\top} \end{array}\right] A^{\dagger}\left[\begin{array}{ll} A & B \end{array}\right]=P^{\top} A^{\dagger} P,P=\left[\begin{array}{ll} A & B \end{array}\right]\\ A\in \mathbb R^{m\times m}, B\in \mathbb R^{m\times (n-m)}, C\in \mathbb R^{(n-m)\times (n-m)}, m \ll n

其中AA^{\dagger}AA的Moore-Penrose逆矩阵。

后续的做法是,通过采样的方式得到Q~,K~\tilde Q,\tilde K(降维),然后计算

A=exp(Q~K~),P=exp(Q~K)A=\exp (\tilde{Q} \ominus \tilde{K}), \quad P=\exp (\tilde{Q} \ominus K)

最后可得:

S^=exp(QK~)(exp(Q~K~))exp(Q~K)\hat{S}=\exp (Q \ominus \tilde{K})(\exp (\tilde{Q} \ominus \tilde{K}))^{\dagger} \exp (\tilde{Q} \ominus K)

伪逆可以利用现成的方法计算。

时间复杂度

O(mnd)O(mnd),如果mm较小,可视为线性。

训练以及loss

不变。

代码

实验以及适用场景

主要实验是CV相关,感觉该方法也可以使用到NLP中。

细节

暂无。

简评

该论文提供了一个视角,QQ是否可以和KK相同,在self attention中,似乎对性能不会有损失,这也是后续可以研究的点。

Last updated