注意力机制总结 (5)

CNN 在 NLP 中扮演了 n-gram 的 detector 角色,在层内可以并行。CNN works well,基于的假设是局部信息相互依赖。CNN 具有 Hierarchical Receptive Field,使得任意任意两个位置之间的长度距离是对数级别的。

CNN缺点:

长距离依赖需要很多层

 
模型图  

注意力机制总结

注意力机制总结

 

注意力机制总结

注意力机制总结

 

所以有没有一种方法,能够做到既能又能还能?

相对于 CNN,要 constant path length 不要 logarithmic path length , 要 variable-sized perceptive field,不要固定 size 的 perceptive field;

相对于 RNN,考虑长距离依赖,还要可以并行!

这就是 self attention,下图可以看到 self-attention 和 convolution 有点儿神似,它摒弃了 CNN 的局部假设,想要寻找长距离的关联依赖。看下图就可以理解 self-attention 的这几个特点:

constant path length & variable-sized perceptive field :任意两个位置(特指远距离)的关联不再需要通过 Hierarchical perceptive field 的方式,它的 perceptive field 是整个句子,所以任意两个位置建立关联是常数时间内的。

parallelize : 没有了递归的限制,就像 CNN 一样可以在每一层内实现并行。

注意力机制总结

self-attention 借鉴 CNN中 multi-kernel 的思想,进一步进化成为 Multi-Head attention。每一个不同的 head 使用不同的线性变换,学习不同的 relationship。

(2)什么是Self-Attention?

self attention 计算三种 attention:

在encoder 端计算自身的 attention,捕捉input 之间的依赖关系。

在 decoder 端计算自身的 attention,捕捉output 之间的依赖关系。

将 encoder 端得到的 self attention 加入到 decoder 端得到的 attention中,捕捉输入序列的每个 input 和输出序列的每个 output 之间的依赖关系。

注意力机制总结

具体见transformer

(3)Multi-Head Attention

        多头注意力Multi-Head Attention)是利用多个查询$Q = [q_1, · · · , q_M]$,来
平行地计算从输入信息中选取多组信息。每个注意力关注输入信息的不同部分。
$\operatorname{att}((K, V), Q)=\operatorname{att}\left((K, V), \mathbf{q}_{1}\right) \oplus \cdots \oplus \operatorname{att}\left((K, V), \mathbf{q}_{M}\right)$

其中$oplus$表示向量拼接。

 

4. 其他Attention 4.1 Hierarchical Attention

《Hierarchical Attention Networks for Document Classification》,从 word attention 到 sentence attention       

        在之前介绍中,我们假设所有的输入信息是同等重要的,是一种扁平(Flat) 结构,注意力分布实际上是在所有输入信息上的多项分布。但如果输入信息本身具有层次(hierarchical)结构,比如文本可以分为词、句子、段落、篇章等不同粒度的层次,我们可以使用层次化的注意力来进行更好的信息选择[Yang et al., 2016]。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgzwzg.html