零基础学nlp【2】 注意力机制(Neural machine translation by jointly learning to align and translate)

零基础学nlp【2】 注意力机制

论文:.Bahdanau D, Cho K, Bengio Y. Neural machine translation by jointly learning to align and translate[J]. arXiv preprint arXiv:1409.0473, 2014

主要内容

在使用encoder-decoder用于机器翻译的任务中,作者在在encoder和decoder上做了某些结构的修改:1)在encoder上使用了双向的循环门控单元,使得encoder得到的每个输入的隐变量同时包含前后部分的信息 2)decoder中在每次解码过程中利用引入注意力机制的变量代替了原先的固定的变量,输入解码器中。通过这样的改变(主要是引入了注意力机制),使得建立的模型在对长句的翻译效果得到了巨大的提升。
零基础学nlp【2】 注意力机制(Neural machine translation by jointly learning to align and translate)_第1张图片零基础学nlp【2】 注意力机制(Neural machine translation by jointly learning to align and translate)_第2张图片
如图左边为包含了注意力机制的decoder结构,右图为普通的encoder-decoder模型,可以看出注意力机制是将encoder中的隐变量通过权重比的设置集合成一个C用来代替之前的用最后一个输入得到的隐变量C,即对于不同的输出,C的值从原先的不会变变成了可变的。

细节

  1. encoder中使用了双向循环神经网络单元,即encoder中的隐变量
    在这里插入图片描述
  2. 注意力机制具体生成方法:
    零基础学nlp【2】 注意力机制(Neural machine translation by jointly learning to align and translate)_第3张图片
    可以看出每一个c(i)的生成就是所有的encoder中的隐变量的加权,加权的权重由模型a(s,h)即e决定,第二个式子多做了一步归一化。那么公式中的a(s,h)究竟是个什么样的模型呢?
    文章中设定了a(s,h)是一个神经网络,它的训练是和整个模型的训练同时完成的,因为使用了注意力机制的编码c作为decoder的输入量,在反向传播中a(s,h)的参数也因此得到了更新。

结果

论文的结果如下图
零基础学nlp【2】 注意力机制(Neural machine translation by jointly learning to align and translate)_第4张图片

零基础学nlp【2】 注意力机制(Neural machine translation by jointly learning to align and translate)_第5张图片

要点

  • 注意力机制的训练方式是和整个系统一起训练的
  • 编码c在encoder-decoder模型中在每一个decoder中都重复的作为输入

你可能感兴趣的:(零基础学nlp,nlp,注意力机制)