文献阅读: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 XRld,则有:

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=WQX+bQ=WKX+bK=WVX+bV=softmax(d WQWkT)V

其中, W Q , W K , W V ∈ R d × d W_Q, W_K, W_V \\in \\mathbbR^d \\times d WQ,WK,WVRd×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(W1X+b1))+b2=WVX+bV=softmax(B)V

其中, W 1 ∈ R d × d W_1 \\in \\mathbbR^d \\times d W1Rd×d W 2 ∈ R l × d W_2 \\in \\mathbbR^l \\times d W2Rl×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=WVX+bV=softmax(R)V

其中, R ∈ R l × l R \\in \\mathbbR^l\\times l RRl×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

5.19 Synthesizer attention

文献学习文献分类查询阅读及管理

文献学习文献分类查询阅读及管理

文献学习文献分类查询阅读及管理

DBA专栏丨文献阅读技巧:牛人博士如何看文献!