IJCAI 2019的文章,对注意力机制做的综述。
地址:https://arxiv.org/abs/1904.02874
注意力机制的高速发展有三个原因:
1、这些模型取得了state-of-the-art的结果。
2、注意力机制可以被用来提升神经网络的可解释性。不然NN只能被理解为一个黑盒。
3、有助于克服递归神经网络(RNNs)的一些挑战,如随着输入长度的增加而导致的性能下降和由于输入的顺序处理而导致的计算效率低下。
传统encoder-decoder存在的问题:
首先,编码器必须将所有输入信息压缩成一个固定长度的向量hT,然后将其传递给解码器。使用单一固定长度向量压缩长而详细的输入序列可能会导致信息丢失。
其次,它无法对输入和输出序列之间的对齐进行建模,尤其是在MT和自动摘要等任务中。
直观上看,每一个output都应该跟特定的部分input有关,但是传统的模型并没有考虑到这个问题。
加了注意力机制之后,就是把原先decoder输入只有hT改成了从{h1,h2,...,hT}都输入,加一个权重矩阵,给某些位置的input加了优先级。
结构中的注意力块负责自动学习注意力权重αij,表示hi和sj之间的相关性。hi是encoder的隐藏层,文中叫candidate state,sj是decoder的隐藏层,文中叫query state。
这些注意力权重会被用来生成context vector c,然后c被作为输入送入到decoder。
在每一个decoding位置j,cj是encoder所有隐藏状态及其对应注意权值的加权和。<