注意力机制(attention mechanism) 从本质上讲和人类的选择性视觉注意力机制类似,核心目标是从众多信息中选择出对当前任务目标更关键的信息。
RNN本身的梯度消失问题,对于较长的句子,很难希望讲输入的序列转化为定长的向量而保留所有的有效信息,所以随着所需翻译句子的长度的增加,这种结构的效果会显著下降。
这个结构得到的hidden vector虽然包括了整句话的全部信息,但是这个全部信息具有局部依赖性即对越近的句子hidden vector贡献越大,很多时候hidden vector其实只学到了每句话最后几个词的信息。同时,不支持并行计算,训练起来很慢,每个词向量对应的导数依赖后续的词的导数,这样递归求导是梯度消失的主要原因。
关键的操作是计算encoder和decoder state之间的关联性的权重,得到attention 的分布,从而对当前输出位置得到比较重要的输入位置的权重,在预测输出时相应的会占较大的比重。
概念上理解就是,把attention理解为从大量信息中有选择的筛选出少量重要信息并聚焦到这些重要信息中,忽略大多不重要的信息。权重越大越聚焦其对应的value值上,即权重代表了信息的重要性,而value是其对应的信息。