论文 | 带注意力的前馈网络可以解决一些长期记忆问题
深度学习中的许多问题都是针对于基于序列的相关数据和模型，这就要求模型必须能够捕获序列中的时间依赖，在这其中递归神经网络（RNNS）就是一类经典的基于序列的模型。但RNN的反向传播可能会发生梯度消失和梯度爆炸的问题，这就导致该类模型要求序列不能太长，同时由于RNN只能按照时间顺序以此计算，不能实现并行化，这也导致了过长序列会使训练的效率下降。注意力机制是一种更容易建模长期依赖关系的方法，它允许模型在不同时间点的状态之间有更直接的依赖关系。根据前人研究给出的定义，若模型在每个时间步长产生隐藏状态为，基于注意力的模型计算一个“上下文”向量作为状态序列的加权平均值：其中，T是输入序列总时间步长，是每个状态在每个时间步长处计算的权重。然后使用这些上下文向量来计算一个新的状态序列，其中依赖于，和模型在处的输出。权重由如下公式计算：其中是一个可学习函数（例如，使用全连接层）。这个公式允许新的状态序列能够更直接地访问整个状态序列h。基于注意力的RNN已被证明在多种基于序列的任务中都是有效的，包括机器翻译、图像描述和语音识别等。该注意力机制是对上述公式的一些简化，可以表述如下：同样的，是一个可学习的函数，它的参数只需要。从这个公式中我们可以发现，该注意力机制相当于适用于一个网络（如：全连接层）对每个时间步的隐藏状态计算一个权值，最终，上下文的结果用每个隐藏状态的加权和表示。使用注意力机制的一个优势是能够随着时间的推移而整合信息，因此，通过使用这种简化的注意力形式，模型可以处理可变长度的序列。另外，使用前馈网络的并行化能力也会极大地提高模型的效率。