![6cf89668bdb356e685a7e47c6c0e5af2.png](https://i-blog.csdnimg.cn/blog_migrate/2513d37609872a3a885b32230273b367.jpeg)
Attention模型在机器学习领域越来越得到广泛的应用,准备写一个关于Attention模型的专题,主要分为三个部分:(一)在Seq2Seq 问题中RNN与Attention的结合。 (二)抛除RNN的Self-Attention模型以及谷歌的Transformer架构。 (三)Attention及Transformer在自然语言处理及图像处理等方面的应用。主要参考资料是Yoshua Bengio组的论文、谷歌研究组的论文及Tensor2Tensor的官方文档、斯坦福自然语言处理相关部分讲义等。
这一篇先来介绍早期的在Machine Translation(机器翻译)中Attention机制与RNN的结合。
RNN结构的局限
机器翻译解决的是输入是一串在某种语言中的一句话,输出是目标语言相对应的话的问题,如将德语中的一段话翻译成合适的英语。之前的Neural Machine Translation(一下简称NMT)模型中,通常的配置是encoder-decoder结构,即encoder读取输入的句子将其转换为定长的一个向量,然后decoder再将这个向量翻译成对应的目标语言的文字。通常encoder及decoder均采用RNN结构如LSTM或GRU等(RNN基础知识可参考循环神经网络RNN——深度学习第十章),如下图所示,我们利用encoder RNN将输入语句信息总结到最后一个hidden vector中,并将其作为decoder初始的hidden vector,利用decoder解码成对应的其他语言中的文字。
![3e44203438785dc0cc496c2681045fb4.png](https://i-blog.csdnimg.cn/blog_migrate/63394e3f4f077484adc84232de0401eb.jpeg)
但是这个结构有些问题,尤其是RNN机制实际中存在长程梯度消失的问题,对于较长的句子,我们很难寄希望于将输入的序列转化为定长的向量而保存所有的有效信息,所以随着所需翻译句子的长度的增加,这种结构的效果会显著下降。
Attention机制的引入
为了解决这一由长序列到定长向量转化而造成的信息损失的瓶颈,Attention注