attention
attention
比如看图片的时候,人会自动的有偏重去看图片。
就比如下图:
我们把自身的偏见所带有的特征用矩阵Q表示,
而图片所带有的特征是矩阵K。
通过Q内积K,去得到所谓的注意力分数score。(打分方式除了内积还有很多种,并不明白为什么内积可以做这个相关性判断 ??? )
经过softmax 归一化,得到的就是各个位置的概率,
Q * K * V 得到的就是经过注意力机制后的图片的向量,也就是有选择性地去关注图片的内容。
K和V一般是一个矩阵,至少是有关联的。
1. self-attention
与attention的不同就是QKV均是同源的,即可以线性变换互相得到。(代码设置上需要如何注意??)
以机器翻译任务为例:
input 是一个词向量(初始的word embedding,可以认为是one-hot 码)
通过初始化矩阵WQ、WK、WV,
初始化的矩阵得到 Q、K、V:WQ * a、WK * a、WV * a,
计算相关性:内积,Q*K
softmax,得到最终的score,*V,得到新的词向量。
核心如图所示:
2. masked-attention
掩码的注意力机制,是考虑时序问题做出的改进,即只考虑在某个词之前的词和它的关系。这是后续文本生成问题需要用到的。
3. cross-attention
就是区分与自注意力的注意力机制,Q和KV不同源。(或者QK同源,V不同行吗??)
4. multi-attention
为了拥有更多信息而提出,我们将原来的词分成8个向量,分别做attention,这样就可以得到不同的注意力的情况下的新词向量。
直觉式的解释:
把X切分成8块,这样一个原先在一个位置上的×,去了空间上8个位置,通过对8个点进行寻找,找到更合适的位置 (编码越来越“准确”)(这里的数字是自己瞎写的)
就是想要得到更多的信息,这样可以得到更多的注意点。
标签:内积,attention,矩阵,得到,注意力,向量 From: https://www.cnblogs.com/moonlight1209/p/17087679.html