注意力模型是近年来在序列处理领域新提出的机器学习方法,在语言翻译等领域取得了不错的效果。要想了解注意力模型,那么必须对现在的机器学习各领域有一定的了解,而且要了解encoder-decoder基本思想。
首先可以大致的概括下目前的机器学习尤其是深度学习的各个领域。图像方面,CNN当之无愧是绝对的主力,并且在各大公司的研究下仍然在发力。NLP(自然语言处理)方面,RNN型的网络仍然占多数,但是自从Facebook用CNN搭建的翻译模型超越谷歌的Seq2Seq以后,CNN已经开始蚕食RNN的领域。序列数据的处理不再是RNN类网络一家独大。
Attention-Model是Seq2Seq的一种,所谓的sequence就是指序列数据,序列数据处理一般有Seq2Label模型,如心电图分类、情感分析等。和Seq2Seq模型,如语言翻译和序列预测。
Encoder-Decoder
Attention-model是在编码-解码模型的基础上改进而来,所以在了解Attention-model前需要了解Encoder-Decoder的基本原理。
![](%7b%7b%20site.baseurl%20%7d%7d/images/Encoder-Decoder.png)
由上图可以清楚的看出,该结构由两部分组成,前面是由编码器处理输入信号,最后输出一个包含着序列信息的vector。解码器的输入是自身的input然后加上前面编码器输出的编码信息。
编码器和解码器的网络可以选择任意的结构,但是在NLP中选择RNN类网络的居多,如常用的LSTM和GRU等。
以语言翻译为例,前面编码器的输入是想要翻译的语言序列。经过编码器后产生一个代表着输入语句的语义编码C,然后解码器使用语义编码C、编码器的输出