attention 机制主要是为了解决在一句话中 让机器学会和人类一样有关注的重点。
那么,在NLP中,Attention机制是什么呢?从直觉上来说,与人类的注意力分配过程类似,就是在信息处理过程中,对不同的内容分配不同的注意力权重。下面我们详细看看,在自然语言处理中,注意力机制是怎么实现的。
https://mp.weixin.qq.com/s/_rP-0WgqRCyKq5toXLCEvw
RNN hard to parallel
using CNN to replace RNN
self-attention layer
attention is all you need
在计算attention时主要分为三步,
第一步是将query和每个key进行相似度计算得到权重,常用的相似度函数有点积,拼接,感知机等;
然后第二步一般是使用一个softmax函数对这些权重进行归一化;
最后将权重和相应的键值value进行加权求和得到最后的attention。
目前在NLP研究中,key和value常常都是同一个,即key=value。
Q K V R如何计算的
然后使用 q和k 去计算 得到a 然后使用softmax计算得到a冒,然后再与每个v计算得到b
下面是矩阵如何计算的,
矩阵计算部分,对于q k v 计算是根据分别的W 和a的相乘计算 得到数据。
a 计算中 k是有个转置 ,然后才能与q相乘,得到a
如上图所示, A通过softmax 得到A 冒。。
V 与A相乘 得到O 即为输出O
总结一下,就是如上图所示,I (一大锥a)与Wq 等相乘得到 Q K V ,
Q与K相乘得到 A 再softmax 得到A冒, V再与A冒 相乘 得到 输出O 也是一大锥 b
其中每个 都是自己和自己的计算,和其他没有太大关系。
多head 计算中,就是每个head 可能计算 关注点不一样所看的不一样
把位置信息加进去,在原来Xi
后面加入一个Pi
Wp 如图所示
add 就是把a和b作合
feed forward 就是多做处理
if you can use seq2seq , you can use transformer
深度方向上用 RNN
https://blog.csdn.net/luoxiaolin_love/article/details/82258069
3.《Attention Is All You Need》