self-attention——Transformer
向量的形式
- 声音向量
- 图中的每个结点
机制流程
先计算某个向量和其他向量之间的关联性。
W
q
W^q
Wq、
W
v
W^v
Wv是两个矩阵,
a
1
a1
a1和
a
2
a2
a2乘以这两个矩阵后得到两个向量
q
q
q
,
k
,k
,k,再点乘得到attention的分数
α
α
α
得到后attention的分数
α
α
α后再对每个
a
i
a^i
ai乘以一个矩阵得到对应的
v
i
v^i
vi,再求和得
b
=
Σ
b=\Sigma
b=Σ
a
v
av
av
我们要训练的参数就是
W
K
W^K
WK,
W
Q
W^Q
WQ,
W
V
W^V
WV
多头注意力机制
缺点
缺点是表示位置信息不好,但是也可以加入位置编码。
适用范围
输入是一排向量
CNN和self-attention的关系
具体可以参考下篇论文,这里我也没太懂
On the Relationship between Self-Attention and Convolutional Layers
CNN是划分卷积核,而self-attention是自己学习出卷积核大小。CNN在数据较小的时候得到的性能较好,而self-attention在数据较大的时候性能更好。
self-attention和RNN的关系
self-attention可以一波产生,RNN是递进产生。
参考下面一篇文章
Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention
self-attention for Graph
就是一种GNN