文献阅读:Synthesizer: Rethinking Self-Attention in Transformer Models
Posted Espresso Macchiato
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文献阅读:Synthesizer: Rethinking Self-Attention in Transformer Models相关的知识,希望对你有一定的参考价值。
1. 文章简介
前两天在看Google的Transformer Quality in Linear Time突然想起来这篇long long ago之前看过的transformer的变体,因此这里就回来考个古,顺便加深一下理解吧。
这篇文章同样是Google提出来的一个工作,不过是在20年了。某种程度上,确实还是非常的佩服Google的,因为考虑到近年来Transformer在NLP以及CV领域的各种猪突猛进,主流的工作感觉都是在Transformer的基础上进行工作迁移,结构优化以及各种细化研究,但是Google自己却总感觉对于Transformer本身不太满意,时不时就搞出一篇文章来想要从根本上推翻transformer的基础架构。
这篇Synthesizer就是其中之一,他的关注点在于Transformer自身的self-attention的权重计算部分,考察 Q Q Q和 K K K的点积计算attention权重的方式是否是真的必要的。如果直接给出一个与输入token无关的全局self-attention权重是否同样能够生效,感觉实在考察self-attention结构之所以有效的更为本质的原因。
结论而言,文章认为 Q Q Q和 K K K的点积计算attention权重的方式似乎效果并不是那么的重要,直接训练权重都能够获得不弱于sota的结果,甚至直接随机权重然后fix都能得到一些过去的结果……
不过要想要达到sota,似乎attention权重还是要和输入权重关联起来才能达到效果的最优。
Anyway,当时看这篇文章感觉还是很震惊的,不过两年过去了,感觉似乎这篇文章相关的结构也没有被大幅利用起来,整体来说还是vanilla的transformer占着主导的地位……
2. 核心方法
如前所述,这篇文章的核心就是针对self-attention的结构进行了细化研究,尝试优化掉了点积操作,从而可以考察self-attention权重的更本质的含义。
我们首先给出各个版本的self-attention结构图以及对应的参数量如下:
1. Vanilla Self-Attention (V)
对于最基础的self-attention结构,假设attention层的输入为 X ∈ R l ∗ d X \\in \\mathbbR^l*d X∈Rl∗d,则有:
Q = W Q ⋅ X + b Q K = W K ⋅ X + b K V = W V ⋅ X + b V O = s o f t m a x ( W Q ⋅ W k T d ) ⋅ V \\left\\ \\beginaligned Q &= W_Q \\cdot X + b_Q \\\\ K &= W_K \\cdot X + b_K \\\\ V &= W_V \\cdot X + b_V \\\\ O &= softmax(\\fracW_Q \\cdot W_k^T\\sqrtd) \\cdot V \\endaligned \\right. ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧QKVO=WQ⋅X+bQ=WK⋅X+bK=WV⋅X+bV=softmax(dWQ⋅WkT)⋅V
其中, W Q , W K , W V ∈ R d × d W_Q, W_K, W_V \\in \\mathbbR^d \\times d WQ,WK,WV∈Rd×d,所以,总的参数量级为 O ( 3 d 2 ) O(3d^2) O(3d2),Self-Attention部分的参数量级为 O ( 2 d 2 ) O(2d^2) O(2d2)( W Q , W K W_Q, W_K WQ,WK)。
后续由于只调整self-attention的权重部分,因此,我们说的self-attention部分的参数量就仅指除了 V V V之外的部分的参数量,即权重部分的参数量。
2. Dense Synthesizer (D)
Dense Synthesizer的核心思路是说使用FFN层来替换掉attention权重的生成过程,即:
B = W 2 ( σ R ( W 1 ⋅ X + b 1 ) ) + b 2 V = W V ⋅ X + b V O = s o f t m a x ( B ) ⋅ V \\left \\ \\beginaligned B &= W_2(\\sigma_R(W_1 \\cdot X + b_1)) + b_2 \\\\ V &= W_V \\cdot X + b_V \\\\ O &= softmax(B) \\cdot V \\endaligned \\right. ⎩⎪⎨⎪⎧BVO=W2(σR(W1⋅X+b1))+b2=WV⋅X+bV=softmax(B)⋅V
其中, W 1 ∈ R d × d W_1 \\in \\mathbbR^d \\times d W1∈Rd×d, W 2 ∈ R l × d W_2 \\in \\mathbbR^l \\times d W2∈Rl×d,因此,其参数量级为 O ( d × l + d 2 ) O(d\\times l + d^2) O(d×l+d2)。
3. Random Synthesizer (R)
Random Synthesizer的思路较之上述的Dense Synthesizer则更加暴力,我们直接给出一组与输入无关的权重矩阵,然后直接训练这组权重然后考察效果。
具体而言,即为:
V = W V ⋅ X + b V O = s o f t m a x ( R ) ⋅ V \\left \\ \\beginaligned V &= W_V \\cdot X + b_V \\\\ O &= softmax(R) \\cdot V \\endaligned \\right. VO=WV⋅X+bV=softmax(R)⋅V
其中, R ∈ R l × l R \\in \\mathbbR^l\\times l R∈Rl×l,对应的参数量极同样为 O ( l 2 ) O(l^2) O(l2)。
4. Factorized Model
这里,我们注意到一点,这里,我们虽然减少了权重的计算,但是Self-Attention层的参数总量却从 O ( 2 d 2 ) O(2d^2) O(2d2)增加到了KaTeX parse error: Undefined control sequence: \\tims at position 4: O(l\\̲t̲i̲m̲s̲ ̲d + d^2)(Dense Synthersizer)或者 O ( l 2 ) O(l^2) O(l2)(Random Synthesizer)。
由于通常来说句长 l l l是大于模型维度Rethink Technology预测看好VVC