但是Encoder-Decoder框架会有一个明显的缺点,Encoder会把输入句子X编码为一个固定长度的隐向量(语义编码c),会导致隐向量无法完全表示输入句子X的信息。可以从两个方面理解,1.隐向量的大小有限,无法表示语义丰富的句子,2.由于RNN类网络特点,网络会更加看中句子后面的信息,无法总揽全局。
最简单的解决思路就是把所有RNNcell的输出组合起来使用,而不只使用最后一个RNNcell的输出,这个可以做到充分利用句子信息,可以一定程度解决问题。但是一般越明确的网络学习目标可以获得越好的效果,如果可以获得每个RNNcell的输出的权重来加权编码,就可以更加明确学习目标提升学习效果。Attention Model的思路就是如此。
如何设计网络,进行加权操作,并且使用合理的loss就是Attention Model的重难点,也是我们要学习理解的内容了。请继续往下看。。
5.Attention机制的本质思想
如果把Attention机制从上文讲述例子中的Encoder-Decoder框架中剥离,并进一步做抽象,可以更容易看懂Attention机制的本质思想。
链接:
Attention机制总结
关于attention机制的三种总结,第一次看有点启发