人工智能A7论坛 >> Tensorflow和深度学习笔记_论坛版 >> 9.其他高级神经网络模型 >> 9.3 神经网络机器翻译模型(NMT)

9.3.2 神经网络机器翻译模型的提升

提升方法一:双向RNN

   双向RNN为什么更好?

用通俗的话理解:

     “上下文” vs “上文”,更好地表示了Xt的信息

      

 

但是如果从RNN本身的原理出发来理解,可以参考本笔记 7.3.1 部分对双向RNN的介绍:

     

 

提升方法二:引入attention模型

  传统的NMT模型如下图:

NLP中第一个使用attention机制的工作是这篇论文《Neural Machine Translation by Jointly Learning to Align and Translate》。运用了attention以后的模型大致如下图:

图中并没有把解码器中的所有连线画玩,只画了前两个词,后面的词其实都一样。可以看到基于attentionNMT在传统的基础上,它把源语言端的每个词学到的表达(传统的只有最后一个词后学到的表达)和当前要预测翻译的词联系了起来,这样的联系就是通过他们设计的attention进行的,在模型训练好后,根据attention矩阵,我们就可以得到源语言和目标语言的对齐矩阵了。具体论文的attention设计部分如下:

 

可以看到他们是使用一个感知机公式来将目标语言和源语言的每个词联系了起来,然后通过soft函数将其归一化得到一个概率分布,就是attention矩阵。

    相比传统的NMT,加入attention以后效果提升了不少,而且可以可视化对齐,并且在长句的处理上更有优势。

目前使用NMT的项目中,attention机制用的很常见。比如下面是一张NMT经典的图,其中就有atttention机制。