Seq2Seq中的Attention机制

2021-07-02  本文已影响0人  一位学有余力的同学

Bahdanau D , Cho K , Bengio Y . Neural Machine Translation by Jointly Learning to Align and Translate[J]. Computer Science, 2014.

1、什么是Attention机制

注意力,即重点关注某一局部信息。比如一张大合照,我们肯定是首先关注照片中的人而不是背景的花花草草。再比如在进行句子的情感识别的时候,我们通常需要关注某几个关键词,以及词语间的前后文关系,“快乐”,“悲伤”,“愤怒”,等等。因此:

2、为什么要引入Attention机制?

根据通用近似定理,前馈网络和循环网络都有很强的能力。但为什么还要引入注意力机制呢?

3、Attention的实现原理[2]

3.1 权重

实现Attention的原理其实很简单,只需要对输入加上权重就好,如Fig.1所示,这有点像Photoshop中的蒙版,白色的表示模型需要着重关注的对象,黑色的区域可以暂时不需要关注,因为它对我们的目标没有帮助。


Fig.1 Attention

以Seq2Seq模型为例,如下图所示。Seq2Seq的Encoder的最后一个状态的输出h_m是Decoder的初始隐藏状态输入s_0。我们计算Decoder的初始隐藏状态s_0与Encoder的每一个状态的输出h_1, h_2,..,h_{m}的相关性,结果记作\alpha _i,命名为权重weight\alpha越大,相关性也就越大,反之相关性越小,记作:
Weight: \alpha _i=align(h_i,s_0)

Fig.2 Seq2Seq
因为有m个隐藏状态,所以共有m\alpha,所有\alpha均为0到1之间的数据,且\alpha_1+\alpha_2+...+\alpha_m=1

原论文中\alpha是根据如下计算的,具体请参考Fig.3:

  1. h_is_0拼接为一个长向量;
  2. 将拼接后的向量与权值相乘并经过激活函数tanh
  3. 将激活函数的输出与v相乘,得到一个数
  4. 将所有计算得到的\alpha经softmax函数映射到0-1之间且和为1。
Fig.3 alpha的计算过程

除此之外,\alpha还有另一种计算方法,如下所示,计算步骤如Fig.4所示:

  1. 分别将h_is_0作线性映射
  2. 将线性映射之后的向量作内积
  3. Softmax归一化


    Fig.4 alpha的计算过程

3.2 加权平均

计算得到每一个隐藏层状态的权重\alpha_i后,与每一个状态值相乘再相加,得到新的向量Context vector c_0:
c_0=\alpha_1h_1+...+\alpha_mh_m

若没有attention,Decoder的第一个时刻的计算方式为:将Encoder的最后一个状态输出s_0和Decoder的第一个输入{x}'_1拼接。而现在有了attention,将权重与每一个隐藏状态相乘再相加得到了新的向量c_0,新的向量中包含整个时间序列的所有信息,所以就解决了遗忘的问题,将c_0s_0{x}'_1一起运算就得到了Decoder的第一个状态输出s_1,其计算方式如Fig.5所示。

Fig.5
和刚刚一样,将s_1与Encoder的所有状态h对比,计算每一个状态所占权重\alpha_i=align(h_i, s_1)虽然它们都是\alpha_1,...,\alpha_m,但与刚刚的\alpha已经不是同一个,因为刚刚的\alpha是和s_0计算得到的,而现在是s_1。也就是说,该步计算的是Encoder的隐藏状态与Decoder的第一个状态s_1的相关性。

计算完\alpha后我们同样得到了Encoder隐藏状态的加权平均c_1

Fig.6

依次重复,我们可以得到加入了attention的Decoder的隐藏状态的输出,如Fig.7所示。


Fig.7

综上,在熟悉了如何引入attention机制之后我们来回顾一下attention是如何让模型只关注部分区域的。如Fig.8所示,这是一个Seq2Seq机器翻译模型,Decoder在翻译第一个单词的时候会回顾Encoder的所有inputs,但并不是所有的inputs都对翻译第一个单词有用,如图中所示,线越粗表明该单词对翻译结果的影响越大,可以看出,翻译I'的时候,第一个输入the对结果影响很大,agreementsigned次之,所以我们只需attention这几个单词即可。同理,翻译第二个单词accord同样要回去再看下整句话,发现只有agreement对最终的结果有影响,所以只需attentionagreement即可。

Fig.8 How attention works

参考:


  1. 目前主流的attention方法都有哪些

  2. Attention注意力机制

上一篇下一篇

猜你喜欢

热点阅读