abstract

神经网络机器翻译是最近提出的一种机器翻译方法。与传统的统计机器翻译不同,神经网络机器翻译的目的是建立一个单一的神经网络,通过联合调节使翻译性能最大化。最近提出的神经机器翻译模型通常属于编码器-解码器系列,它们将源语句编码成一个固定长度的向量,解码器从中生成翻译。在本文中,我们推测,使用一个固定长度的向量是改善这个基本的性能瓶颈encoder-decoder架构,并提出自动扩展这个通过允许一个模型(软)搜索部分源相关的句子预测目标词,不需要将这些部分明确地构成硬段。通过这种新方法,我们在英法翻译任务上取得了与目前最先进的基于短语的翻译系统相当的翻译性能。此外,定性分析表明,模型发现的(软)对齐与我们的直觉很一致。

introduction

与传统的基于短语的许多单独调整的小组件组成的翻译系统不同的是,而神经机器翻译则试图构建和训练一个单独的、大型的神经网络来阅读句子并输出正确的翻译。

大多数提出的神经机器翻译模型都属于编码器-解码器家族,对于每种语言都有一个编码器和一个解码器,或者包含一个特定于语言的编码器,应用于每个句子,然后对其输出进行比较。编码器神经网络将源语句读取并编码成固定长度的向量。然后译码器从编码的向量输出翻译。整个编码器-解码器系统,由语言对的编码器和解码器组成,共同训练,以最大限度地提高给定源句的翻译正确的概率。

这种编码器-解码器方法的一个潜在问题是,神经网络需要能够将源语句的所有必要信息压缩成固定长度的向量。这可能会使神经网络难以处理长句,特别是那些比训练语料库中的句子长。表明,随着输入语句长度的增加,基本编码器-解码器的性能确实会迅速下降。

为了解决这个问题,我们在编码器-解码器模型中引入了一个扩展,它学习对齐和翻译联合。该模型每次在译文中生成一个词时,都会(软)搜索源句中最相关信息集中的一组位置。然后,该模型根据与这些源位置相关的上下文向量以及之前生成的所有目标词预测目标词。

这种方法与基本的编码器-解码器最重要的区别是,它不试图将整个输入句子编码成单个固定长度的向量。相反,它将输入的句子编码成向量序列,并在解码翻译时自适应地选择这些向量的一个子集。这使得神经翻译模型不必将源句子的所有信息(无论其长度如何)压缩成固定长度的向量。我们证明,这可以让一个模型更好地处理长句。

BACKGROUND: NEURAL MACHINE TRANSLATION

RNN ENCODER–DECODER

在encoder - decoder框架中,编码器将输入的句子,即向量x = (x1,···,xTx)序列读入向量c最常见的方法是使用这样的RNN

通常训练解码器在给定上下文向量c和所有之前预测的单词{y1,···,yt0−1}的情况下预测下一个单词yt0。换句话说,解码器通过将联合概率分解为有序条件来定义翻译y上的概率:

Encoder architecture

Encoder一般是RNN,它读入input sentence,一般是一连串的vector:X=(X1,X2,X3...XT),将其编码成一个vector C,公式如下:

其中,ht是encoder在t时刻的hidden-state,  C是由这些hidden-state最后生成的一个代表全句子的vector。经典的模型使用LSTM作为f,C=f吐出的最后一个hidden-state,也就是hT。

上面的结构,在运行期间,每个hidden state只包含了其前面的词的信息,作者使用了双向RNN( bidirectional RNN),即一个词的隐层状态不仅压缩了其前面的词的信息,还压缩了后面的词。其Encoder的架构如下图所示

一个BiRNN包含一个前向(forward)和一个后向(backward)RNN。前向RNN按照词序列的顺序依次压缩源语句,并得到一系列隐层状态。类似地,后向RNN按照Xt到X1的顺序依次压缩源语句词,得到。正如上面的结构图所示。最后对于词Xi,它的隐层状态通过连接两个RNN的结果得到,即:。(也有的人喜欢将两个向量之间加起来,效果也不错)。可以看到,hi压缩了前向和后向的表示,并且由于RNN的特性,会使得更加关注词Xi周围的词,这使得RNN可以更好地表达当前的输入。 

将用于后续的Decoder和对齐模型中。

为了解决由长序列到定长向量转化而造成的信息损失的瓶颈,Attention注意力机制被引入了。Attention机制跟人类翻译文章时候的思路有些类似,即将注意力关注于我们翻译部分对应的上下文。同样的,Attention模型中,当我们翻译当前词语时,我们会寻找源语句中相对应的几个词语,并结合之前的已经翻译的部分作出相应的翻译,如下图所示,当我们翻译“knowledge”时,只需将注意力放在源句中“知识”的部分,当翻译“power”时,只需将注意力集中在"力量“。这样,当我们decoder预测目标翻译的时候就可以看到encoder的所有信息,而不仅局限于原来模型中定长的隐藏向量,并且不会丧失长程的信息。

Decoder architecture

传统的Decoder 的表达式为:

也就是说,Decoder预测每个yi时,使用的是之前时间步预测的结果y<i   与 C,这里的C就是encoder获得的embedding。可以看到传统的方法,对每个yi的预测,使用的C都是一样的。而作者的模型:

可见,与普通的Encoder-Decoder结构不同的是,源语言端上下文向量表示由原来的C变成了Ci。即针对每一个目标词yi,都有一个特定的上下文Ci与之对应(也就是如果固定Ci=hT,那么模型就变为RNN Encoder-Decoder了)。

上图就是基于Attention的Decoder结构图。

上下文向量Ci依赖于Encoder得到的 annotation (h1,....hT),其中每个hj压缩了源语言端的词并且“关注于”Xj周围的词。

Ci可以通过各个annotation加权平均获得:

Decoder中的a可以看做是一个对齐模型,用来衡量第j个源端词语目标端第i个词的匹配程度,这个程度则通过Decoder的隐层状态Zi-1与源端第j个annotaiton计算得到。不同于传统的对齐模型:源语言端每个词明确对齐到目标语言端一个或多个词(hard alignment).  而该方法计算得到的是一种soft alignment。可以融入整个NMT框架,通过BP算法求梯度来更新参数。

将Attention机制引入NMT中,可以使得Decoder更多地关注源语言端的部分相关词,从而缓解了Encoder-Decoder框架中将源语言压缩成固定维度向量带来的问题。

原文对attention的解释

We can understand the approach of taking a weighted sum of all the annotations as computing an expected annotation, where the expectation is over possible alignments. Let αij be a probability that the target word yi is aligned to, or translated from, a source word xj. Then, the i-th context vector ci is the expected annotation over all the annotations with probabilities αij.

The probability αij, or its associated energy eij, reflects the importance of the annotation hj with respect to the previous hidden state si−1 in deciding the next state si and generating yi. Intuitively, this implements a mechanism of attention in the decoder. The decoder decides parts of the source sentence to pay attention to. By letting the decoder have an attention mechanism, we relieve the encoder from the burden of having to encode all information in the source sentence into a fixed-length vector. With this new approach the information can be spread throughout the sequence ofannotations, which can be selectively retrieved by the decoder accordingly.

论文阅读:NEURAL MACHINE TRANSLATIONBY JOINTLY LEARNING TO ALIGN AND TRANSLATE相关推荐

  1. [论文阅读]Neural Machine Translation By Jointly Learning to Align and Translate

    文章目录 前言 摘要 一.神经机器翻译 1.机器翻译 2.基于RNN的Encoder-Decoder架构 二.文章贡献 三.模型架构 1.译码器:整体概述 2.编码器:用于注释序列的双向RNN 四.实 ...

  2. 《Neural Machine Translation by Jointly Learning to Align and Translate》阅读笔记

    个人总结 本文最大贡献是提出了注意力机制,相比于之前 NMT(Neural Machine Translation) 把整个句子压缩成一个固定向量表示的方法,对不同位置的目标单词计算每个输入的不同权重 ...

  3. 【论文泛读】4. 机器翻译:Neural Machine Translation by Jointly Learning to Align and Translate

    更新进度:■■■■■■■■■■■■■■■■■■■■■■■|100% 理论上一周更一个经典论文 刚刚开始学习,写的不好,有错误麻烦大家留言给我啦 这位博主的笔记短小精炼,爱了爱了:点击跳转 目录 准备 ...

  4. nlp论文-《Neural Machine Translation by Jointly Learning to Align and Translate》-基于联合学习对齐和翻译的神经机器翻译(一)

    <Neural Machine Translation by Jointly Learning to Align and Translate>--基于联合学习对齐和翻译的神经机器翻译 作者 ...

  5. neural machine translation by jointly learning to align and translate

    1.论文出处 Dzmitry Bahdanau, KyungHyun Cho, Yoshua Bengio, "neural machine translation by jointly l ...

  6. 论文阅读:《Neural Machine Translation by Jointly Learning to Align and Translate》

    https://blog.csdn.net/u011239443/article/details/80521026 论文地址:http://pdfs.semanticscholar.org/071b/ ...

  7. nlp论文-《Neural Machine Translation by Jointly Learning to Align and Translate》-基于联合学习对齐和翻译的神经机器翻译(二)

    1.论文整体框架 1.1 摘要 神经机器翻译的任务定义: 传统神经机器翻译所用的编码器-解码器模型的缺陷: 本文提出一种能够自动搜索原句中与预测目标词相关的神经机器翻译模型: 所提出的模型的效果: 1 ...

  8. 论文阅读Neural Machine Reading Comprehension: Methods and Trends

    神经机器阅读理解:方法和趋势 目录: 摘要 机器阅读理解(MRC):让机器根据给定的内容回答问题. 近几年随着深度学习的出现吸引了广泛的注意. 根据近几年这方面的研究,做了一个全面透彻的综合概述. 通 ...

  9. 【论文阅读】Rethinking Spatiotemporal Feature Learning For Video Understanding

    [论文阅读]Rethinking Spatiotemporal Feature Learning For Video Understanding 这是一篇google的论文,它和之前介绍的一篇face ...

  10. 论文阅读: Channel Augmented Joint Learning for Visible-Infrared Recognition

    论文阅读: Channel Augmented Joint Learning for Visible-Infrared Recognition code: https://gitee.com/mind ...

最新文章

  1. 自从用完 Gradle 后,有点嫌弃 Maven 了!
  2. 皮一皮:有钱人的世界咱不懂...
  3. c语言文件查找函数fread,文件函数fread
  4. python按键盘上哪个键运行_pythonshell哪个键执行命令
  5. Check Dependency 2(一个检查.net部署文件完整性及一致性工具)
  6. 云栖大会上,阿里巴巴重磅发布前端知识图谱!
  7. Java动态代理模拟spring的AOP
  8. 没想到我的粉丝里还有这么多C++er,瑞思拜!
  9. Apache常见编译选项-转
  10. java用this-gt;,java基础之十四-&gt;常用类
  11. win8.1搭建php环境,WIN8.1下搭建PHP5.6环境
  12. TI-TMS320F28335学习详解(2)::F28335片上资源详解
  13. 揭秘win10系统CPU占用100%的真正原因/找出那些罪魁祸首
  14. .net core 下文件压缩打包下载
  15. U盘里的文件怎么会不见了
  16. 数字图像处理——第七章(小波变换和多分辨率处理)
  17. python方差齐性检验_【Python】统计科学之方差齐性检验
  18. 海蝶公主-金莎-Kym
  19. 华三模拟器完成交换机堆叠IRF实验
  20. Java多线程:Lambda 表达式

热门文章

  1. 第十五章 友元、异常和其他
  2. 最新问题:错误代码ERROR ITMS-90096 一.ERROR ITMS-90096解决方法
  3. 为什么游戏需要热更新
  4. 更快更强!华为大数据新版本让Hive提速50%!
  5. 0基础如何自学软件编程开发
  6. vvc代码阅读 encodeCtus()
  7. 访问html 403 iis,IIS 403 错误详细原因 及解决办法总结
  8. python泊松分布_Python数据可视化:泊松分布详解
  9. python语言程序设计基础课后习题答案
  10. tar -zxvf是什么意思