介绍
这篇文章来自2017IJCAI。DA-LSTM是一个双阶段的基于注意力的encoder-decoder结构,之所以使用双阶段,是因为作者受心理学选择性注意的启发。
Encoder-Decoder与注意力机制
Encoder-Decoder框架有一个最显著的特征就是它是一个End-to-End学习的算法,这样的模型也被叫做 Sequence to Sequence learning。所谓编码,就是将输入序列转化成一个固定长度的向量;解码,就是将之前生成的固定向量再转化成输出序列。
如下图示例,其中,编码是将source sequence(x1,x2,x3,x4,…)转化为一个固定长度的context vector( c ),解码是将该context vector转化为target sequence(y1,y2,y3,…)

但是Encoder-Decoder的性能会随着输入序列的长度增加而显著减低,这是由于语义向量无法完全表示整个序列的信息,还有就是先输入的内容携带的信息会被后输入的信息稀释掉,或者说,被覆盖了。
为了弥补上述基本Encoder-Decoder模型的局限性,近两年NLP领域提出Attention Model(注意力模型),典型的例子就是在机器翻译的时候,让生成词不是只能关注全局的语义编码向量c,而是增加了一个“注意力范围”,表示接下来输出词时候要重点关注输入序列中的哪些部分,然后根据关注的区域来产生下一个输出,如下图所示:

然而,作者认为,传统的注意力机制加encoder-decoder并不适合用于时序预测问题,这是因为时序预测问题可能会有众多的外部变量,网络可能无法精确地选择相关变量。同时,作者受到一些人类注意力的启发,认为双阶段的注意力模型能很好地模拟人类行为。
双阶段encoder-decoder结构
作者提到的双阶段注意力的想法来自于[A dual-stage two-phase model of selective attention],一篇心理学期刊的文献,探讨的问题主要就是人类的选择性注意。
选择性注意
作者提到的人类的选择性注意就是人类可以将注意力用于自己感兴趣的事情而不受其他外部刺激所左右的能力,比如上课专心听讲而不受其他刺激影响。
早期对于选择性注意的解释分为两类:前期选择和晚期选择。
前期选择观点认为:在刺激的预处理阶段,人类的注意力机制就已经介入进行筛选,如下图:

晚期选择观点认为:直到识别和分类过程,人类注意力才真正介入,如下图:

两个观点各执己见,相持不下。[A dual-stage two-phase model of selective attention]的作者由此提出了一个将两者结合的双阶段注意力机制,很好地模拟了人类,而且比任何一种机制单独运用的效果都好。
双阶段注意力encoder-decoder模型
基于上述的想法,作者也将双阶段注意力用到自己模型当中,如下图:

左边的部分即为对外部变量的前期选择阶段,右边的部分为晚期选择阶段。
将外部变量与t-1时刻encoder的LSTM输出通过注意力层计算相似度,得到输出 e t e_t et,再通过sotfmax层与 t 时刻的外部变量 x t x_t xt加权得到 t 时刻新的外部变量输入 x ~ t \widetilde{x}_t x t,如上图左半段。
得到全部时刻的 x ~ \widetilde{x} x 后,将全部的encoder的输出与decoder t-1时刻的输出通过注意力层计算相似度,得到 l t l_t lt,通过softmax层与encoder的输出 h t h_t ht加权,得到decoder的输入 c t − 1 c_{t-1} ct−1,再与 y t − 1 y_{t-1} yt−1合并作为新的输入,得到新的输出。
重复上述过程,直到得到最后的输出 y ~ T \widetilde{y}_T y T。
总结
实验部分作者采用了自己寻找的数据集,表现还是不错的。作者仿生的这一思想值得我学习。