1. 注意力机制(Attention)
注意力机制(Attention Mechanism)是一种信息筛选方法,可进一步缓解LSTM和GRU中的长期依赖问题。
其实现分三步进行:它首先引入一个和任务相关的表示向量作为特征选择的基准,该向量被称为查询向量(Query Vector);然后选用一种打分函数计算输入特征与查询向量之间的相关性,得到特征被选择的概率分布,这称作注意力分布;最后按注意力分布对输入特征的加权平均筛选出与任务相关的特征信息。
1.1 查询向量(Query Vector)
如图所示,查询向量(Query Vector)是一个人工指定的超参数,它可以是动态生成的向量,也可以是可学习的(模型)参数向量。
1.2 注意力打分函数
注意力打分函数有四种常见形式:加性模型、点积模型、缩放点积模型和双线性模型。其表达式如下所示:
{
加
性
模
型
:
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 的维度。综合对比四种打分函数:
- 加性模型和点积模型的复杂度相似,但点积模型可以更好利用矩阵计算,其效率更高;
- 缩放点积模型是点积模型在高维输入向量上的改进,它可以解决当输入向量的维度𝐷 较高时,点积模型计算值方差较大,从而导致Softmax函数梯度较小的问题;
- 双线性模型是一种泛化的点积模型(即:分别对𝒙 和𝒒 进行线性变换后计算点积),相比点积模型,双线性模型在计算特征权重时引入了非对称性。
1.3 信息筛选机制
同时注意力机制也有多种加权平均方式,如:软性注意力(Soft Attention)、硬性注意力(Hard Attention)、键值对注意力(Key-Value Pair Attention)和多头注意力(Multi-Head Attention)等。内容比较简单,具体可参见《神经网络与深度学习》一书的第8.2节,本文就不再做重复性描述工作了。