去掉Attention的Softmax,复杂度降为O(n)

众所周知,尽管基于Attention机制的Transformer类模型有着良好的并行性能,但它的空间和时间复杂度都是O(n2)\mathcal{O}(n^2)级别的,nn是序列长度,所以当nn比较大时Transformer模型的计算量难以承受。近来,也有不少工作致力于降低Transformer模型的计算量,比如模型剪枝、量化、蒸馏等精简技术,又或者修改Attention结构,使得其复杂度能降低到O(nlogn)\mathcal{O}(nlog⁡n)甚至O(n)\mathcal{O}(n)

论文《Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention》当中提到一种线性化Attention(Linear Attention)的方法,由此引发了我的兴趣,继而阅读了一些相关博客,有一些不错的收获,最后将自己对线性化Attention的理解汇总在此文中

Attention

当前最流行的Attention机制当属Scaled-Dot Attention,即

Attention(Q,K,V)=softmax(QK)V(1)\begin{aligned}Attention(\boldsymbol{Q},\boldsymbol{K},\boldsymbol{V}) = softmax\left(\boldsymbol{Q}\boldsymbol{K}^{\top}\right)\boldsymbol{V}\tag{1}\end{aligned}

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享