【1】NLP中有一类问题:给定一段上下文(context),生成一段与context相关的(target)
eg:翻译/阅读理解/摘要生成
【2】这类问题需要RNN解码,用一个 RNN encoder读入context, 得到一个context vector(RNN的最后一个hidden state);然后另一个RNN decoder以这个hidden state为起始state,依次生成target的每一个单词。
【3】这种做法的缺点是,无论之前的context有多长,包含多少信息量,最终都要被压缩成一个几百维的vector。这意味着context越大,最终的state vector会丢失越多的信息。输入sentence长度增加后,最终decoder翻译的结果会显著变差。
【4】因为context在输入时已知,一个模型完全可以在decode的过程中利用context的全部信息,而不仅仅是最后一个state。这就是attention思想