Synthesizer: Rethinking Self-Attention in Transformer Models

论文地址:

整体思路以及计算方式

本文的观点很有意思:Attention中的Attention Matrix可以不通过Query和Key计算,通过其他方式得到n×nn\times n矩阵也能得到合理的结果,模型一共有5种,分别如下:

Dense:

  • 输入:XRn×dX\in \mathbb R^{n\times d}

  • S1=f(XW1)Rn×d1S_1= f(XW_1) \in \mathbb R^{n\times d_1}

  • S2=S1W2Rn×nS_2= S_1 W_2 \in \mathbb R^{n\times n}

  • O=Softmax(S2)(XW3)Rn×dO=\mathrm{Softmax}(S_2)(XW_3)\in \mathbb R^{n\times d}

Random:

  • 输入:XRn×dX\in \mathbb R^{n\times d}

  • 初始化:S1Rn×nS_1 \in \mathbb R^{n\times n}

  • O=Softmax(S1)(XW1)Rn×dO=\mathrm{Softmax}(S_1 )(XW_1)\in \mathbb R^{n\times d}

Factorized Dense(降低空间复杂度):

  • 输入:XRn×dX\in \mathbb R^{n\times d}

  • 初始化:W1Rd×k1,W2Rd×k2W_1\in \mathbb R^{d\times k_1}, W_2\in \mathbb R^{d\times k_2}k1×k2=nk_1 \times k_2 = n

  • S1=(XW1)(XW2)Rn×nS_1= (XW_1) \odot (XW_2) \in \mathbb R^{n\times n}(复制到相同维度,然后点乘)

  • O=Softmax(S1)(XW3)Rn×dO=\mathrm{Softmax}(S_1)(XW_3)\in \mathbb R^{n\times d}

Factorized Random(降低空间复杂度):

  • 输入:XRn×dX\in \mathbb R^{n\times d}

  • 初始化:S1Rn×k,S2Rn×kS_1\in \mathbb R^{n\times k}, S_2\in \mathbb R^{n\times k}

  • O=Softmax(S1S2)(XW1)Rn×dO=\mathrm{Softmax}(S_1 S_2^{\top})(XW_1)\in \mathbb R^{n\times d}

Mixture:

  • 输入:XRn×dX\in \mathbb R^{n\times d}

  • 通过不同的方式计算Score Matrix SS

    • S=αiSi,αi=1S=\sum\alpha_i S_i, \sum \alpha_i =1

  • O=Softmax(S)(XW)Rn×dO=\mathrm{Softmax}(S)(XW)\in \mathbb R^{n\times d}

时间复杂度

本质上还需要计算Attention Matrix,所以依然为O(n2d)O(n^2d)

训练以及loss

不变。

代码

实验以及适用场景

适用于所有场景,性能最好的是Mixture情形,这里使用了QKQK^{\top},所以即使提升性能,其实意义并不大。

细节

模型参数和序列长度有关,如果所以要处理很长的序列,模型应该会非常大。

简评

提供了一个不同的视角,但是从实验上来说,不利用QK\mathbf Q \mathbf K^{\top}的情形性能其实比较差。

Last updated