Flowformer: Linearizing Transformers with Conservation Flows
论文地址:
参考资料:
整体思路以及计算方式
利用网络流的思路计算Attention。
输入:
Q∈Rn×d,K∈Rm×d,V∈Rm×d
Q=ϕ(Q)∈Rn×d
K=ϕ(K)∈Rm×d
Calculate incoming and outgoing flow
Qsum=Sum(Q,d=0)∈Rd
Ksum=Sum(K,d=0)∈Rd
dQ=1/(QKsum⊤)∈Rn
dK=1/(KQsum⊤)∈Rm
conservation refine for source and sink
tQ=Sum(K⊙dK,d=0)∈Rd
tK=Sum(Q⊙dQ,d=0)∈Rd
sink=Q⊙tQ∈Rn×d
source=K⊙tK∈Rm×d
Competition & Allocation
α=Sigmoid(sink)∈Rn×d
β=Softmax(source)∈Rm×d
dot product
Q1=Q⊙α∈Rn×d
K1=Q⊙β∈Rm×d
O=α⊙(Q1(K1⊤V))∈Rn×d
时间复杂度
理论上依然是O((n+m)d2),但是实际上应该不会太快。
训练以及loss
不变。
代码
实验以及适用场景
测试了各种常见,总体来说性能都有提升。
细节
暂无。
简评
从理论和实验来说都还不错,是一篇不错的工作,但是计算的方式有点生硬,感觉并没有抓住问题的核心。