SOFT: Softmax-free Transformer with Linear Complexity
论文地址:
参考资料:
整体思路以及计算方式
首先加Attention Matrix的计算方式改写为(忽略常数):
Sij=exp(−∥qi−kj∥2) 记为:
S=exp(Q⊖K) 由于时间复杂度没有降低,其实并无意义,后续的操作是降低时间复杂度。
作者首先假设Q=K,那么S变成对称矩阵,将其表示为:
S=[AB⊤BC]∈Rn×n 根据对称性,可以利用Nystrom分解进行计算:
S^=[AB⊤]A†[AB]=P⊤A†P,P=[AB]A∈Rm×m,B∈Rm×(n−m),C∈R(n−m)×(n−m),m≪n 其中A†是A的Moore-Penrose逆矩阵。
后续的做法是,通过采样的方式得到Q~,K~(降维),然后计算
A=exp(Q~⊖K~),P=exp(Q~⊖K) 最后可得:
S^=exp(Q⊖K~)(exp(Q~⊖K~))†exp(Q~⊖K) 伪逆可以利用现成的方法计算。
时间复杂度
O(mnd),如果m较小,可视为线性。
训练以及loss
不变。
代码
实验以及适用场景
主要实验是CV相关,感觉该方法也可以使用到NLP中。
细节
暂无。
简评
该论文提供了一个视角,Q是否可以和K相同,在self attention中,似乎对性能不会有损失,这也是后续可以研究的点。