Synthesizer:使用合成注意力的Transformer模型.
- paper:Synthesizer: Rethinking Self-Attention in Transformer Models
- arXiv:link
Transformer模型中使用了自注意力机制机制,即对于输入$X$,分别使用query、key、value仿射变换得到$Q(X)$、$K(X)$、$G(X)$,再通过query和key的交互实现自注意力分布$B=K(X)Q(X)$,最后计算输出结果$Y=\text{Softmax}(B)G(X)$。
作者提出了合成注意力(synthetic attention)机制的想法,即不引入仿射变换$Q(X)$和$K(X)$,而是直接对输入$X$进行变换得到自注意力分布$B=F(X)$。
Synthesizer包含以下几种形式:
- Dense:使用$2$层神经网络对输入进行拟合得到自注意力分布$B=W_2(σ(W_1(X)+b_1))+b_2$
- Random:随机初始化自注意力分布$B$,随训练更新
- Fixed Random:随机初始化自注意力分布$B$,不随训练更新
- Factorized Dense:通过低秩分解降低Dense参数量。首先通过神经网络生成矩阵$B_1 \in \Bbb{R}^{n \times k_1}$,$B_2 \in \Bbb{R}^{n \times k_2}$($k_1k_2=n$),将$B_1$重复$k_2$次,$B_2$重复$k_1$次得到$\tilde{B}_1 \in \Bbb{R}^{n \times n}$,$\tilde{B}_2 \in \Bbb{R}^{n \times n}$,最后逐元素相乘$B=\tilde{B}_1 \otimes \tilde{B}_2$
- Factorized Random:通过低秩分解降低Random参数量。首先通随机生成矩阵$R_1 \in \Bbb{R}^{n \times k}$,$R_2 \in \Bbb{R}^{n \times k}$,再进行矩阵乘法$B=R_1R_2^T$
上述五种方法的对比如下:
作者在机器翻译任务上进行试验,证明在该任务上合成注意力机制可以取代传统的自注意力机制,并且达到类似的效果。将两者结合使用时效果会更好:
作者在自动摘要和对话生成任务上进行试验,在自动摘要任务上标准注意力效果比较好,但是对话生成任务上标准注意力是最差的。这说明不同的注意力各有优势。
作者还进行了预训练+微调的实验。微调后相比标准自注意力,Dense和Random效果差一些,这表明它们也许在单一任务上表现不错,但迁移能力比较弱。但是Dense和Random带来的计算效率是显著提升的。