Synthesizer: Rethinking Self-Attention in Transformer Models
论文地址:
整体思路以及计算方式
本文的观点很有意思:Attention中的Attention Matrix可以不通过Query和Key计算,通过其他方式得到n×n矩阵也能得到合理的结果,模型一共有5种,分别如下:
Dense:
输入:X∈Rn×d
S1=f(XW1)∈Rn×d1
S2=S1W2∈Rn×n
O=Softmax(S2)(XW3)∈Rn×d
Random:
输入:X∈Rn×d
初始化:S1∈Rn×n
O=Softmax(S1)(XW1)∈Rn×d
Factorized Dense(降低空间复杂度):
输入:X∈Rn×d
初始化:W1∈Rd×k1,W2∈Rd×k2,k1×k2=n
S1=(XW1)⊙(XW2)∈Rn×n(复制到相同维度,然后点乘)
O=Softmax(S1)(XW3)∈Rn×d
Factorized Random(降低空间复杂度):
输入:X∈Rn×d
初始化:S1∈Rn×k,S2∈Rn×k
O=Softmax(S1S2⊤)(XW1)∈Rn×d
Mixture:
输入:X∈Rn×d
通过不同的方式计算Score Matrix S:
S=∑αiSi,∑αi=1
O=Softmax(S)(XW)∈Rn×d
时间复杂度
本质上还需要计算Attention Matrix,所以依然为O(n2d)
训练以及loss
不变。
代码
实验以及适用场景
适用于所有场景,性能最好的是Mixture情形,这里使用了QK⊤,所以即使提升性能,其实意义并不大。
细节
模型参数和序列长度有关,如果所以要处理很长的序列,模型应该会非常大。
简评
提供了一个不同的视角,但是从实验上来说,不利用QK⊤的情形性能其实比较差。