注意力机制分析综述
注意力机制(AttentionMechanism)㈣早期被应用于机器翻译任务,通过基
于RNN的编码-解码器框架中使用注意力机制特征的不同方面分配权重从而
达到忽略输入的中噪声或者冗余,而后被广泛使用在自然语言处理、图像识别及
语音识别等各种不同类型的深度学习任务中。注意力机制根据覆盖范围或窗口选
择可以分全局注意力和局部注意力。其中全局注意力机制的基本思想是将所有
的隐藏状态融合成新的上下文向量,如下图2.3所示:
yt
\ht
图2.3全局注意力机制结构示意图
在全局注意力机制下,编码器的隐藏状态力「会与序列中所有的源状态厂s进
行比较,通过这种方式对力「与兀相关程度进行打分,接着对每一个隐藏状态力七
的score(力兀)打分进行一个SoftMax函数归一化最终得到每一个隐藏状态的
权重%是一个变长对齐向量,表示当前时刻的力「对应于所有原始元s的注意力
分配权重。
at(s)=alignh、)
exp(score(At,h^))(2-12)
Zsexp(score(力h、))
其中对于打分函数的计算方法,LuonAttention^中提出了三种,实验表明第一
种点积的的方式对于全局注意力机制比较有效。
T一
hJs
T--
h邮s(2-13)
vltanh(Wa[a尸力J)
得到每个步骤的注意力权重后,通过对这些步骤进行一个加权和的操作得到
最终上下文向量的表示:
Ct=at(s)ht(2-14)
s
全局注意力机制充分结合了编码器所有的隐藏状态,将解码器的隐藏状态与
编码器的隐藏状态一一比较得出评分,最后得到注意力权重。由于全局注意力机
制是一种软注意力机制,即每一时刻解码器都要对所有的编码器状态进行比较,
因此这种方式对于长序列来说计算成本很大,效率低下,同时远距离的单词效果
并不理想。了克服这一困难,提出了局部注意力机制⑹],解码器只需注意一
小部分编码器状态即可,如下图2.4所示:
图2.4局部注意力机制结构示意图
局部注意力机制对软注意力机制以及硬注意力机制进行了对比与权衡,借鉴
了硬注意力机制的方式,每一次取部分状态进行计算,同时对模型进行改进,使
其更易于训练。就局部注意力机制而言,首先要做的就是寻找局部的中心位置。
当源序列和目标序列不是单调对齐时,寻找局部中心位置算法称Predictive
Alinment,通过构建参数,让网络自学习并优化参数,最终找到正确的中心位
置。如下(2-15)式所示:
Pt=S,sigmoid(略tanh(l4^力J)(2-15)
片和Wp均模型的可学习参数,炬解码器的隐含状态,由于Simoid函数的的
输出值的区间(0,1),所以中心位置Pt的大小(。罚,S源序列的长度。