看代码呆了半天,实在看不懂注意力机制是怎么回事,所以研究了一下原理
self.attention计算过程
[图片上传中...(20220713_030107.png-765899-1657781807513-0)]query 就是自身的权重,key是其他的特征的权重,attention score就是其他权重和自身权重进行相乘得到的值
image.png
不一定要用softmax
20220713_030107.png
V就是a乘以W^v,然后qkv相乘再相加就可以得到b1进行下一步的学习
image.png
然后将上面的计算过程转换为矩阵乘法
20220713_031133.png
其实关键的参数就是红框之中的三个,这三个参数是未知的,也就是需要学习的
20220713_031726.png
多头的self.attention
其实就将单的自注意力模型变成多个,彼此之间独立求出来,其实也就是假设会有两种q,v,k。transformer这些便是靠multi-head self-attention搭出来
20220713_035643.png
CNN,RNN,GNN和self-attention的关系
image.pngCNN其实是self.attention一个特例,RNN可以被self.attention替换,或者说self-attention本来就是从RNN的seq2seq一步步改进过来的
image.png image.pngself-attention 自动找出node共和node之间的关联性
20220713_042626.png
self_attention的变形
selfattention计算太慢,所以出现了很多变体
Transformers大家族——Efficient Transformers: A Survey - 知乎 (zhihu.com)
[2009.06732] Efficient Transformers: A Survey (arxiv.org)
image.png【機器學習2021】自注意力機制 (Self-attention) (上) - YouTube
网友评论