Attention model

引言

Attention model(AM)最先在计算机视觉中被应用于图片识别的问题,之后在自然语言处理(NLP)和计算机视觉(CV)中经常结合递归神经网络结构RNN、GRU、LSTM等深度学习算法,被称之为Recurrent Attention Model(RAM),其核心就是一个Encoder-Decoder的过程。

传统的Encoder-Decoder模型例如RNN在做文本翻译是把一个输入语句( x1,x2,...,xi )全部输入之后得到一个语义C,然后根据这个C得到翻译的文本( y1,y2,...,yj ),文本中每一个单词都是利用了同一个语义C,也就是说输入文本的每一个单词 xi 都对输出文本的单词 yj 的贡献是一样的,显然这一点是不合理的。例如 Cat eats food 翻译成“猫吃食物”时cat 显然对于猫这个词有更大的贡献。所以attention model的作用就在于能够根据序列的变化一直更新最关心的部分。

Encoder-Decoder模型

传统RNN的Encoder-Decoder模型是没有注意力权重的,下图是文本处理领域里常用的Encoder-Decoder框架最抽象的一种表示:
Attention model_第1张图片

Encoder-Decoder框架可以这么直观地去理解:可以把它看作适合处理由一个句子(或篇章)生成另外一个句子(或篇章)的通用处理模型。对于句子对

X=<x1,x2,...xi>

Y=<y1,y2,...yj>

Encoder过程中,对输入的X进行语义编码得到中间语义 C的公式为,其中F为非线性编码函数,在RNN中为其网络结构及其参数:

C=F(x1,x2,...,xi)

Decoder过程中,利用得到的中间语义 C,和之前输出的单词 y1,y2,...,yj1 来得到 yj ,其中G为解码函数,在RNN中为其网络结构及其参数:
yj=G(C,y1,y2,...,yj1)

根据 C就可以依次输出y,每一个输出的y都是利用了同一个中间语义 C,所以输入的每一个单词的x都对输出的y贡献是一样的,并没有引入注意力权重。(注:在LSTM等RNN模型中y就是输出神经元的隐状态h)Encoder-Decoder不是一种算法,只是一种处理序列问题的常用框架,我们可以用RNN来做Encoder,用LSTM来做Decoder来搭配出各种不同的Encoder-Decoder框架来满足不同的应用需求。

Attention model

上一节中讨论的Encoder-Decoder并没有引入的概念,所以可以看作是一个注意力的不集中的分心模型,引入attention model之后,每次输出的 yj 之前会根据之前输出的 y1,...,yj1 来确定哪个输入的x应该获得更多的关注,即给每个输入x分配一个注意力的权重,在根据这个结果更新中间语义 Cj ,并利用这个中心语义和之前的y来得到当前应该输出的 yj ,引入attention model之后的Encoder-Decoder框架如下图所示:
Attention model_第2张图片

用数学公式表示为:

y1=f1(C1)

y2=f1(C2,y1)

y3=f1(C3,y1,y2)

...

  • 备注:在RNN中上述公式实际会变化为下式,其中s为输出神经元的隐状态
    p(yj|y1,y2,..yj1,X)=f12(Cj,sj,yj1)

    sj=f11(Cj,sj1,yj1)

其中有

Cj=i=1Txaijf2(xi)

其中 Tx 是输入x的数量,在RNN网络中 f2(xi) 往往是输入 xi 后的隐状态 hi ,所以在RNN中有:
Cj=i=1Txaijhi

权重计算为常用的归一化过程:

aij=exp(eij)Txk=1exp(ekj)

现在问题就归结为 eij 的计算,这个计算大家使用的方法都不一样,但是综合来看和上一步输出神经元的隐状态 sj1 ,第i步输入神经元的隐状态 hi 两者的相关性有关,可以表示为:
ekj=score(sj1,hi)

这个 score 函数用来计算 sj1,hi 这两者的关系分数,如果分数大则说明关注度较高,注意力分布就会更加集中在这个输入单词上,关于这个函数大家未必给出了具体形式,在文章 Neural Machine Translation by Jointly Learning to Align and Translate(2014)中称之为校准模型(alignment model),文中提到这个函数是RNN前馈网络中的一系列参数,在训练过程会训练这些参数, 基于Attention-Based LSTM模型的文本分类技术的研究(2016)给出了一个比较有代表性的公式:
ekj=score(sj1,hi)=vtanh(Whi+Usj1+b)

其中v W U均是要训练的权重矩阵。

你可能感兴趣的:(视觉语义)