注意力机制(Attention Mechanism)是一种信息筛选方法,可进一步缓解LSTM和GRU中的长期依赖问题。
其实现分三步进行:它首先引入一个和任务相关的表示向量作为特征选择的基准,该向量被称为查询向量(Query Vector);然后选用一种打分函数计算输入特征与查询向量之间的相关性,得到特征被选择的概率分布,这称作注意力分布;最后按注意力分布对输入特征的加权平均筛选出与任务相关的特征信息。
如图所示,查询向量(Query Vector)是一个人工指定的超参数,它可以是动态生成的向量,也可以是可学习的(模型)参数向量。
注意力打分函数有四种常见形式:加性模型、点积模型、缩放点积模型和双线性模型。其表达式如下所示:
{ 加 性 模 型 : S ( x , q ) = v T tanh ( W x + U q ) 点 积 模 型 : S ( x , q ) = x T q 缩 放 点 积 模 型 : S ( x , q ) = x T q D 双 线 性 模 型 : S ( x , q ) = ( U x ) T ( V q ) (1) \begin{cases} 加性模型: & S(x, q) = v^{T}\tanh(Wx + Uq) \\ \\ 点积模型: & S(x, q) = x^{T}q \\ \\ 缩放点积模型: & S(x, q) = \frac{x^{T}q}{\sqrt{D} } \\ \\ 双线性模型: & S(x, q) = (Ux)^{T}(Vq) \end{cases} \tag{1} ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧加性模型:点积模型:缩放点积模型:双线性模型:S(x,q)=vTtanh(Wx+Uq)S(x,q)=xTqS(x,q)=DxTqS(x,q)=(Ux)T(Vq)(1)
式中 , , 为可学习的模型参数, 为输入向量 x x x 的维度。综合对比四种打分函数:
同时注意力机制也有多种加权平均方式,如:软性注意力(Soft Attention)、硬性注意力(Hard Attention)、键值对注意力(Key-Value Pair Attention)和多头注意力(Multi-Head Attention)等。内容比较简单,具体可参见《神经网络与深度学习》一书的第8.2节,本文就不再做重复性描述工作了。