来源:知乎—super灬睿
地址:
https://zhuanlan.zhihu.com/p/364819787、https://zhuanlan.zhihu.com/p/365550383
今早看见了一篇讲解自注意力机制的,自注意力在Transformer中也有应用,这篇文章讲的很精炼,分享给大家
三种注意力机制
- Soft/Global Attention(软注意机制):对每个输入项的分配的权重为0-1之间,也就是某些部分关注的多一点,某些部分关注的少一点,因为对大部分信息都有考虑,但考虑程度不一样,所以相对来说计算量比较大。
- Hard/Local Attention(硬注意机制):对每个输入项分配的权重非0即1,和软注意不同,硬注意机制只考虑那部分需要关注,哪部分不关注,也就是直接舍弃掉一些不相关项。优势在于可以减少一定的时间和计算成本,但有可能丢失掉一些本应该注意的信息。
- Self/Intra Attention(自注意力机制):对每个输入项分配的权重取决于输入项之间的相互作用,即通过输入项内部的"表决"来决定应该关注哪些输入项。和前两种相比,在处理很长的输入时,具有并行计算的优势。
在文字处理中单词向量编码的方式
- 独热编码(one-hot encoding):用N位的寄存器对N个状态编码,通俗来讲就是开一个很长很长的向量,向量的长度和世界上存在的词语的数量是一样多的,每一项都表示一个词语,只要把其中的某一项置1,其他的项都置0,那么就可以表示一个词语,但这样的编码方式没有考虑词语之间的相关性,并且内存占用也很大
- 词向量编码(Word Embedding):将词语映射(嵌入)到另一个数值向量空间,可以通过距离来表征不同词语之间的相关性
自注意力机制
自注意力机制中的QKV(query,key,value)
能否可以理解成
通过将原来单词x通过W_q和W_k转化得到对应单词在数值向量空间中的位置,
这个
然后通过自己x_i的q_i点乘其他x_j的k_j计算单词x_i与x_j的含义在某一个向量空间上的相关度
最后结合这个相关度将,通过输入项内部的"表决"来决定应该关注哪些输入项。
即