近期对深度学习中的Attention模型进行了深入研究,该模型在图像识别、语音识别和自然语言处理三大深度学习的热门领域均有广泛的使用,是2014和2015年深度学习领域的重要进展。现对其原理、主要应用及研究进展进行详细介绍。
基本原理
Attention模型最初应用于图像识别,模仿人看图像时,目光的焦点在不同的物体上移动。当神经网络对图像或语言进行识别时,每次集中于部分特征上,识别更加准确。如何衡量特征的重要性呢?最直观的方法就是权重,因此,Attention模型的结果就是在每次识别时,首先计算每个特征的权值,然后对特征进行加权求和,权值越大,该特征对当前识别的贡献就大。
机器翻译中的Attention模型最直观,易于理解,因为每生成一个单词,找到源句子中与其对应的单词,翻译才准确。此处就以机器翻译为例讲解Attention模型的基本原理。在此之前,需要先介绍一下目前机器翻译领域应用最广泛的模型——Encoder-Decoder结构,谷歌最新发布的机器翻译系统就是基于该框架[1],并且采用了Attention模型。
Encoder-Decoder框架包括两个步骤,第一步是Encoder,将输入数据(如图像或文本)编码为一系列特征,第二步是Decoder,以编码的特征作为输入,将其解码为目标输出。Encoder和Decoder是两个独立的模型,可以采用神经网络,也可以采用其他模型。机器翻译中的Encoder-Decoder示例如下图(取自[2]):
该示例将一个句子(ABC)翻译为另一种语言的句子(WXYZ),其中A、B、C和W、X、Y、Z分别表示一个字或一个单词,图中每个方框表示一个RNN模型,不同的方框表示不同的时刻,表示句子结束。
了解Encoder-Decoder结构之后,我们再回到Attention模型,Attention在Encoder-Decoder中介于Encoder和Decoder中间,首先根据Encoder和Decoder的特征计算权值,然后对Encoder的特征进行加权求和,作为Decoder的输入,其作用是将Encoder的特征以更好的方式呈献给Decoder。[3]首次将Attention模型应用到机器翻译中,我们参照下图对其展开讲解。
该图将句子(x1,x2,…,xT)翻译为(y1,y2,…,yt,…),Encoder和Decoder均采用RNN模型,下方的一系列h为Encoder生成的特征&#x