论文:NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE

综述

背景及问题

背景:

翻译: 翻译模型学习条件分布后,给定一个源句,通过搜索最大条件概率的句子,可以生成相应的翻译。

神经网络翻译:两个组件:第一个:合成一个源句子x;第二个:解码一个目标句子y。

问题:固定长度向量是编码器 - 解码器架构性能提升的瓶颈。

本文主要思想

本文提出:允许模型自动(软)搜索与预测目标单词相关的源句 --- 扩展的编码器-译码器( x 硬分段 )--- 基于RNN编解码器 --- 共同学习对齐和翻译

在翻译中生成一个单词时,(软)搜索源句中最相关信息集中的一组位置。然后,该模型根据与这些源位置相关的上下文向量和所有之前生成的目标单词预测目标单词。

将输入的句子编码成一个向量序列,并在解码翻译时自适应地选择这些向量的子集可以让模型更好地处理长句。

摘要

神经机器翻译是最近提出的机器翻译方法。与传统的统计机器翻译不同,神经机器翻译的目标是建立一个单一的神经网络,可以共同调整以最大化翻译性能。最近提出的用于神经机器翻译的模型一般是编码器 - 译码器族,且将源句子编码成固定长度的矢量,解码器从该矢量生成翻译。在本文中,我们推测使用固定长度向量是提高这种基本编码器 - 解码器架构性能的瓶颈,并建议通过允许模型自动(软)搜索与预测目标单词相关的源句部分来扩展这一功能,而不必将这些部分显式地形成硬分段。采用这种新方法,我们的翻译性能可以与现有的基于短语的英法翻译系统相媲美。此外,定性分析表明,该模型得到的(软)对齐结果与我们的直觉非常吻合。

1 介绍

最近由Kalchbrenner和Blunsom(2013),Sutskever(2014)和Cho(2014b)提出的神经机器翻译是一种新兴的机器翻译方法。 与传统的基于短语的翻译系统(参见Koehn等人,2003)不同,它由许多分开调谐的小型子部件组成,神经机器翻译尝试构建和训练单个大型神经网络读取一个句子并输出正确的翻译。

所提出的神经机器翻译模型大多属于编码器译码器家族(Sutskever et al., 2014;Cho等人(2014a),为每种语言配备编码器和解码器,或为每句话应用特定于语言的编码器,然后对其输出进行比较(Hermann和Blunsom, 2014)。编码器神经网络将源信号读取并编码为固定长度的矢量, 解码器从编码矢量输出翻译。 整个编码器 - 译码器系统由编码器和语言对的译码器共同训练,以最大化给定源句子的正确译文的概率。

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

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

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

在这篇论文中,我们证明了提出的联合学习对齐和翻译的方法比基本的编码器解码器方法取得了显著的改善翻译性能。长句的这种改善更为明显,但任何长度的句子都可以观察到。在英法翻译任务中,该方法通过单一的模型实现了与传统的基于短语的翻译系统相当或接近的翻译性能。此外,定性分析表明,该模型在源句和对应的目标句之间找到了一种语言上合理的(软)对齐。

2 背景:神经机器翻译

从概率的角度来看,翻译等价于在给定源句x的情况下,找到一个最大化y条件概率的目标句y,即在神经机器翻译中,我们使用一个并行的训练语料库,拟合一个参数化的模型来最大化句子对的条件概率。当条件分布被翻译模型学习后,给定一个源句,通过搜索最大条件概率的句子,可以生成相应的翻译。

最近,许多论文提出利用神经网络直接学习这种条件分布(如Kalchbrenner and Blunsom, 2013;Cho等,2014a;Sutskever等,2014;Cho等,2014b;forada和Neco, 1997)。这种神经机器翻译方法一般包含两个组件,第一个:合成一个源句子x;第二个:解码一个目标句子y。例如,两个递归神经网络(RNN)所使用的(赵et al ., 2014)和(Sutskever et al ., 2014)将变长源句编码为定长向量,并将该向量解码为变长目标句

尽管神经机器翻译是一种全新的方法,但它已经显示出了良好的效果。Sutskever等(2014)报道,基于长短时记忆(LSTM)单元的神经机器翻译在英法翻译任务上的性能接近传统基于短语的机器翻译系统的最高水平。在现有的翻译系统中添加神经成分,例如,在短语表中对短语对进行评分(Cho等,2014a),或者对候选翻译进行重新排序(Sutskever等,2014),都可以超过以前最先进的性能水平。

2.1 RNN编解码器

这里,我们简要描述了Cho等人(2014a)和Sutskever等人(2014)提出的被称为RNN编码器解码器的底层框架,在此基础上,我们构建了一个能够同时学习对齐和翻译的新架构。

在编码器译码器框架中,编码器读取输入语句,一个向量序列x = (x1;···xTx),变成向量c。最常见的方法是使用这样的RNN:

其中ht 是t时刻的一个隐藏状态,c是由隐藏状态序列生成的一个向量。f和q是一些非线性函数。Sutskever等(2014)使用LSTM作为f和q (h1,···,hTg) = hT.

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

对于一个RNN,每个条件概率被建模为:

其中g是输出yt概率的非线性潜在多层函数,st是RNN的隐藏状态。需要注意的是,可以使用其他结构,如RNN和去卷积神经网络的混合结构(Kalchbrenner and Blunsom, 2013)。

模型及方法

双向RNN编解码器

解码器

条件概率定义为

其中si是藏状态,由下式计算

概率取决于每个目标单词yi的不同上下文向量ci

上下文向量ci依赖于一系列注释(h1,···,htx)编码器将输入语句映射到其中。每个注释hi包含关于整个输入序列的信息,重点关注围绕输入序列第i个单词的部分。

eij是一个对齐模型对位置j周围的输入和位置i的输出匹配程度进行评分。得分基于RNN隐藏状态si-1和第j个注释hj。

将对齐模型a参数化为一个前馈神经网络,该神经网络与所提出的系统的所有其他组件联合训练。

将所有注释的加权和作为计算预期注释的方法。

αij概率,或其相关能源eij,反映了注释hj对前面的隐藏状态st-1在决定下一个状态si和生成yi的重要性--- 实现attention机制

编码器:用于序列注释的双向RNN

每个单词的注释不仅总结前面的单词,而且总结之后的单词。--- 所以使用双向RNN

通过连接前向隐藏状态和后向隐藏状态来获得每个单词xj的注释。

3 学习对齐和翻译

在本节中,我们提出了一种新的神经机器翻译体系结构。新体系结构由双向RNN作为编码器(第3.2节)和解码器组成,解码器在解码翻译时模拟搜索源语句(第3.1节)。

3.1 解码器:一般说明

在一个新的模型体系结构中,我们将式(2)中的每个条件概率定义为

其中si是时间i的RNN隐藏状态,由下式计算

需要注意的是,与现有的编码器解码器方法不同(见式(2)),这里的概率取决于每个目标单词yi的不同上下文向量ci

上下文向量ci依赖于一系列注释(h1,···,htx)编码器将输入语句映射到其中。每个注释hi包含关于整个输入序列的信息,重点关注围绕输入序列第i个单词的部分。我们将在下一节详细解释如何计算注释。

然后,上下文向量ci被计算为这些注释hi的加权和:

eij是一个对齐模型,它对位置j周围的输入和位置i的输出匹配程度进行评分。得分基于RNN隐藏状态si-1(恰好在发出yi之前,式(4))和输入语句的第j个注释hj。

我们将对齐模型a参数化为一个前馈神经网络,该神经网络与所提出的系统的所有其他组件联合训练。注意,与传统的机器翻译不同对齐不被认为是一个潜在的变量。相反,对齐模型直接计算软对齐,这允许反向传播损失函数的梯度。该梯度可用于联合训练对齐模型和整个翻译模型。

我们可以理解将所有注释的加权和作为计算预期注释的方法,其中预期超过了可能的对齐。让αij表示目标词对齐的概率。然后,第i个词上下文向量就是预期的注释与概率αij所有注释。

αij概率,或其相关能源eij,反映了注释hj对前面的隐藏状态st-1在决定下一个状态si和生成yi的重要性。直观地说,这在解码器中实现了注意机制。解码器决定要注意源句的某些部分。通过让解码器具有注意机制,我们将编码器从必须将源语句中的所有信息编码为固定长度向量的负担中解放出来。使用这种新方法,信息可以传播到整个注释序列中,解码程序可以相应地选择性地检索这些注释。

3.2 编码器:用于序列注释的双向RNN

通常的RNN,在方程 (1)从第一符号x1开始到最后一个xTx为止读取输入序列x。 但是,在提出的方案中,我们希望每个单词的注释不仅总结前面的单词,而且总结之后的单词。 因此,我们建议使用最近在语音识别中成功使用的双向RNN(BiRNN,Schuster和Paliwal,1997)(参见例如Graves等,2013)。

BiRNN由前向和后向RNN组成。 正向RNN f读取输入序列(从x1到xTx),并计算一系列前向隐藏状态。 后向RNN f以相反的顺序(从xTx到x1)读取序列,产生一系列后向隐藏状态。

我们通过连接前向隐藏状态和后向隐藏状态来获得每个单词xj的注释。 这样,注释hj包含前面的单词和后面的单词的摘要。 由于RNN倾向于更好地代表最近的输入,所以注释hj将集中在xj周围的单词上。 解码器和对齐模型使用该序列的注释来计算上下文向量(等式(5) - (6))。

请参阅图1以了解所提议模型的图解说明。

实验及结论

数据集

WMT '14

模型与训练

训练了两种类型的模型:第一个是RNN编码器解码器(RNNencdec, Cho等,2014a),另一个是文中提出的模型,RNNsearch。

每个模型进行两次训练:首先训练长度不超过30个单词的句子(RNNencdec-30, RNNsearch-30),然后训练长度不超过50个单词的句子(RNNencdec-50, RNNsearch-50)。

使用小批量随机梯度下降(SGD)算法和Adadelta (Zeiler, 2012)对每个模型进行训练。每个SGD更新方向使用80个句子的小批计算。我们对每个模型进行了大约5天的训练。

一旦一个模型被训练好,我们使用定向搜索来找到一个近似最大化条件概率的翻译。

结论

RNNsearch都优于传统的RNNencdec。

当只考虑由已知单词组成的句子时,RNNsearch的性能与传统的基于短语的翻译系统(Moses)一样高。

表1: 训练模型在测试集上的BLEU得分。第二栏和第三栏分别显示了所有句子的得分,以及不含生词的句子和参考译文的得分。RNNsearch-50*经过长时间的训练,直到开发集的性能停止改善。当只评估没有未知单词的句子时,不允许模型生成[UNK]令牌(最后一列)。

图2:测试集中生成的翻译的BLEU分数与句子长度的关系。结果是在完整的测试集上,其中包括对模型有未知单词的句子。

4 实验设置

我们对所提出的英法翻译方法进行了评价。我们使用ACL WMT 14.3提供的双语并行语料库作为比较,并报告了Cho等人(2014a)最近提出的RNN编码器解码器的性能。我们对这两个模型使用相同的训练过程和相同的数据集。

4.1 数据集

WMT '14包含以下英法平行语料库:Europarl (61M words), news commentary (5.5M), UN (421M),两个爬虫语料库,分别为90M和272.5M,共计8.5 m words。按照Cho等人(2014a)的方法,我们使用Axelrod等人(2011)的数据选择方法,将合并后的语料库缩减为3.48亿词。除了上述并行语料库外,我们不使用任何单语数据,尽管可以使用更大的单语语料库对编码器进行预培训。我们将news-test-2012和news-test-2013串联起来,建立一个开发(验证)集,并对WMT’14的test set (news-test-2014)上的模型进行评估,其中包含3003个训练数据中没有的句子。

在通常的标记之后,我们使用每种语言中出现频率最高的3万个单词来训练我们的模型。任何没有包含在候选列表中的单词都被映射到一个特殊的令牌([UNK])。我们不应用任何其他特殊的预处理,如小写大小写或词干。

4.2 模型

我们训练了两种类型的模型。第一个是RNN编码器解码器(RNNencdec, Cho等,2014a),另一个是我们提出的模型,我们称之为RNNsearch。我们对每个模型进行两次训练:首先训练长度不超过30个单词的句子(RNNencdec-30, RNNsearch-30),然后训练长度不超过50个单词的句子(RNNencdec-50, RNNsearch-50)。

RNNencdec的编码器和解码器各有1000个隐藏单元。RNNsearch的编码器由前向和后向递归神经网络(RNN)组成,每个RNN都有1000个隐藏单元。它的解码器有1000个隐藏单元。在这两种情况下,我们使用一个单层maxout (Goodfellow et al., 2013)隐层的多层网络来计算每个目标单词的条件概率(Pascanu et al., 2014)。

我们使用小批量随机梯度下降(SGD)算法和Adadelta (Zeiler, 2012)对每个模型进行训练。每个SGD更新方向使用80个句子的小批计算。我们对每个模型进行了大约5天的训练。

一旦一个模型被训练好,我们使用定向搜索来找到一个近似最大化条件概率的翻译(见,例如Graves, 2012;Boulanger-Lewandowski等,2013)。Sutskever等(2014)使用这种方法从他们的神经机器翻译模型生成翻译。

有关实验中使用的模型体系结构和训练过程的更多细节,请参见附录A和附录B。

5 结果

5.1 定量结果

在表1中,我们列出了用BLEU评分衡量的翻译性能。从表中可以明显看出,在所有情况下,提议的RNNsearch都优于传统的RNNencdec。更重要的是,当只考虑由已知单词组成的句子时,RNNsearch的性能与传统的基于短语的翻译系统(Moses)一样高。考虑到Moses除了我们用来训练RNNsearch和RNNencdec的并行语料库之外,还使用了一个单独的单语语料库(4.18亿个单词),这是一个重大的成就。

表1:训练模型在测试集上的BLEU得分。第二栏和第三栏分别显示了所有句子的得分,以及不含生词的句子和参考译文的得分。注意,RNNsearch-50*经过长时间的训练,直到开发集的性能停止改善。◦当只评估没有未知单词的句子时,我们不允许模型生成[UNK]令牌(最后一列)。

图2:测试集中生成的翻译的BLEU分数与句子长度的关系。结果是在完整的测试集上,其中包括对模型有未知单词的句子。

提出这种方法的动机之一是在基本的编码器解码器方法中使用固定长度的上下文向量。我们推测,这一限制可能使基本的编码器解码器方法在长句中表现不佳。从图2中可以看出,随着句子长度的增加,RNNencdec的性能显著下降。另一方面,RNNsearch-30和RNNsearch-50都对句子的长度有更强的鲁棒性。特别是RNNsearch- 50,即使句子长度在50或50以上,也没有显示出性能下降。RNNsearch-30的性能甚至优于RNNencdec-50(见表1),这进一步证实了该模型相对于基本编码器解码器的优越性。

5.2 定性分析

5.2.1 对齐

提出的方法提供了一种直观的方法来检查生成翻译中的单词与源句中的单词之间的(软)对齐。这是通过可视化注释来实现的权重αij Eq。(6),如图3所示。每个图中矩阵的每一行都表示权重与注释相关联。从这里我们可以看出源句中的位置在生成目标单词时更重要。

图3:RNNsearch-50找到的四个样本对齐。每个情节的x轴和y轴分别对应源句中的单词(英语)和生成的翻译(法语)。每个像素显示的注释的重量αij j源词的第i个目标词(见Eq。(6)),在灰度级(0:黑色、1:白色)。(a)任意句。(b d)从测试集中随机抽取3个长度在10 - 20个单词之间、没有任何未知单词的句子作为样本。

从图3的对齐可以看出,英语和法语单词的对齐在很大程度上是单调的。我们在每个矩阵的对角线上都能看到强权重。然而,我们也观察到一些非平凡的、非单调的排列。在法语和英语中,形容词和名词的顺序通常是不同的,我们可以在图3 (a)中看到一个例子。从这个图中,我们可以看到模型正确地将短语[European Economic Area]翻译成[zone economique europ een]。RNNsearch能够正确地将[zone]与[Area]对齐,跳过两个单词([European]和[Economic]),然后一次返回一个单词来完成整个词组[zone economique europ eenne]。

相对于硬对齐,软对齐的强度是显而易见的,例如,从图3 (d)中可以看出。任何硬对齐都会将[the]映射到[l]和[man]映射到[homme]。这对翻译是没有帮助的,因为必须考虑[the]后面的单词来决定它应该被翻译成[le]、[la]、[les]还是[l]。我们的软对齐通过让模型同时考虑[the]和[man]很自然地解决了这个问题,在这个例子中,我们看到模型能够正确地将[the]转换成[l]。我们在图3所示的所有案例中都观察到了类似的行为。软对齐的另一个好处是,它可以自然地处理不同长度的源和目标短语,而不需要反直觉地将一些单词映射到某个地方或从某个地方映射到另一个地方([NULL])(参见Koehn, 2010年第4章和第5章)。

5.2.2 长句

从图2中可以清楚地看出,本文提出的模型(RNNsearch)在长句翻译方面明显优于传统模型(RNNencdec)。这可能是由于RNNsearch不需要将长句完美地编码为固定长度的向量,而只需要精确地编码围绕特定单词的输入句的部分

作为一个例子,考虑来自测试集的这个源语句:

RNNencdec-50正确地翻译了原句,直到[医疗中心]。然而,从那时起(下划线),它偏离了原句的原意。例如,它用[en fonction de son etat de sant e](基于他的健康状况)代替了[基于他在医院的卫生保健工作者的身份]。另一方面,RNNsearch-50生成了以下正确的翻译,保留了输入句子的全部含义,而没有遗漏任何细节

和前面的例子一样,RNNencdec在生成大约30个单词(参见带下划线的短语)后开始偏离源语句的实际含义。在那之后,翻译的质量就会下降,出现一些基本的错误,比如没有结尾处的引号。

RNNsearch-50能够翻译这个长句子正确:

结合已经给出的定量结果,这些定性观察证实了我们的假设,即相对于标准的RNNencdec模型,RNNencdec搜索架构能够更可靠地翻译长句。

在附录C中,我们提供了一些由RNNencdec-50、RNNsearch-50和谷歌翻译生成的长源句的示例翻译,以及参考翻译。

6 相关工作

6.1 学习对齐

Graves(2013)最近在手写合成的背景下提出了一种类似的将输出符号与输入符号对齐的方法。笔迹合成是一项要求模型生成给定字符序列的笔迹的任务。在他的工作中,他使用高斯核的混合来计算注释的权重,其中每个核的位置、宽度和混合系数都是通过对齐模型来预测的。更具体地说,他的对齐被限制为预测位置,使位置单调地增加。

与我们的方法的主要区别在于,在(Graves, 2013)中,注释权重的模式只向一个方向移动。在机器翻译的上下文中,这是一个严重的限制,因为(远程)重新排序常常需要生成语法正确的翻译(例如,英语到德语)。

另一方面,我们的方法需要计算源句中每个单词对应翻译中的每个单词的注释权重。这个缺点并不严重,在翻译任务中,大多数输入和输出的句子只有15 40个单词。然而,这可能会限制拟议方案对其他任务的适用性。

6.2 机器翻译的神经网络

自Bengio等(2003)提出神经概率语言模型以来,神经网络在机器翻译中得到了广泛的应用。然而,神经网络的作用在很大程度上仅限于为现有的统计机器翻译系统提供一个单一的功能,或者对现有系统提供的候选翻译列表进行重新排序。

例如,Schwenk(2012)提出在基于短语的统计机器翻译系统中,使用前馈神经网络计算一对源和目标短语的得分,并将该得分作为额外的特征。最近,Kalchbrenner and Blunsom(2013)和Devlin等人(2014)报道了成功地将神经网络作为现有翻译系统的子组件。传统上,作为目标端语言模型训练的神经网络被用来重新核取或重新排序候选翻译的列表(参见,例如,Schwenk et al., 2006)。

虽然上述方法已被证明可以提高翻译性能超过最先进的机器翻译系统,但我们更感兴趣的是一个更雄心勃勃的目标,即设计一个全新的基于神经网络的翻译系统。因此,我们在本文中考虑的神经机器翻译方法与这些早期的工作有很大的不同。我们的模型没有使用神经网络作为现有系统的一部分,而是独立工作,直接从源句生成翻译。

结论及展望

传统的神经机器翻译方法称为编码器译码器方法,它将整个输入语句编码成一个固定长度的向量,然后从这个向量对翻译进行解码,存在一定弊端。

本文扩展了基本的编码器解码器,让模型在生成每个目标词时(软)搜索一组输入序列,或者由编码器计算出它们的注释。这使模型不必将整个源语句编码为一个固定长度的向量,而且还使模型只关注与生成下一个目标单词相关的信息。

与传统的机器翻译系统不同,翻译系统的所有部件,包括对齐机制,都经过联合训练,以获得更好的生成正确翻译的概率。

实验结果表明,无论句子长度如何,RNNsearch算法都比传统的编译码器模型(RNNencdec)有显著的性能优势,并且对源语句的长度具有更强的鲁棒性。

7 结论

传统的神经机器翻译方法称为编码器译码器方法,它将整个输入语句编码成一个固定长度的向量,然后从这个向量对翻译进行解码。根据Cho等人(2014年b)和Pouget-Abadie等人(2014年)最近的一项实证研究,我们推测使用固定长度的上下文向量翻译长句是有问题的。

在本文中,我们提出了一种新的体系结构来解决这个问题。我们扩展了基本的编码器解码器,让模型在生成每个目标词时(软)搜索一组输入序列,或者由编码器计算出它们的注释。这使模型不必将整个源语句编码为一个固定长度的向量,而且还使模型只关注与生成下一个目标单词相关的信息。这对神经机器翻译系统在较长句子中产生良好效果的能力具有重要的积极影响。与传统的机器翻译系统不同,翻译系统的所有部件,包括对齐机制,都经过联合训练,以获得更好的生成正确翻译的概率。

我们在英法翻译任务中测试了这个被称为RNNsearch的模型。实验结果表明,无论句子长度如何,该算法都比传统的编译码器模型(RNNencdec)有显著的性能优势,并且对源语句的长度具有更强的鲁棒性。从定性分析中,我们研究了RNNsearch生成的(软)对齐,我们可以得出这样的结论:当模型生成正确的翻译时,它可以正确地将每个目标单词与源句中的相关单词或它们的注释对齐。也许更重要的是,所提议的方法实现了与现有基于短语的统计机器翻译相当的翻译性能。这是一个引人注目的结果,考虑到提出的体系结构,或整个神经机器翻译家族,直到今年才被提出。我们相信这里提出的体系结构是朝着更好的机器翻译和更好地理解自然语言迈出的有希望的一步。留给未来的挑战之一是更好地处理未知或罕见的词汇。这将要求模型得到更广泛的应用,并在所有上下文中匹配当前最先进的机器翻译系统的性能

文中的模型细节

A 递归神经网络

对于RNN的激活函数f,文中使用Cho等人(2014a)最近提出的门控隐藏单元。门控隐藏单元是传统简单单元(如元素智能的tanh)的替代方案。这个门控单元类似于Hochreiter和Schmidhuber(1997)早先提出的长短期记忆(LSTM)单元,也有更好的建模和学习长期依赖关系的能力。这可以通过在展开的RNN中设置导数乘积接近1的计算路径来实现。这些路径允许梯度很容易地向后流动,而不会受到消失效应的太大影响(Hochreiter, 1991;Bengio等,1994;Pascanu等,2013a)。因此,可以使用LSTM单元代替这里描述的门控隐藏单元,就像Sutskever等人(2014)在类似的上下文中所做的那样。

计算采用n个门控隐藏单元的RNN的新状态si:

其中圈是元素乘,zi是更新门的输出(参见下面)。计算所提出的更新状态s~i。

e(yi-1)是yi-1的m维嵌入,ri是重置门的输出(见下)。当yi表示为1-k向量时,e(yi)只是嵌入矩阵E(m*k)的一列。省略偏置项,以使方程更简洁。

更新门 zi允许每个隐藏的单元维护它以前的激活,而重置门 ri控制应该重置多少以及来自以前状态的什么信息。

σ是sigmoid函数。

在解码器的每一步,将输出概率(Eq.(4))计算为一个多层函数(Pascanu et al., 2014)。使用maxout单元的一个隐藏层(Goodfellow et al., 2013),并使用softmax函数对输出概率(每个单词一个)进行标准化(参见式(6))。

B 对齐模型

W,U,V是权重矩阵。

C 编码器

输入和输出的形式。

首先,计算双向递归神经网络(BiRNN)的正向状态:

将正向和反向状态串联起来,得到标注(h1, h2, ···, hTx)

D 解码器

隐层状态si(根据注释):

s0 = 

上下文向量:

hj是源句中的第j个注释(见式(7))。

预测目标词yi的概率:

神经机器翻译 - NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE的更多相关文章

  1. 对Neural Machine Translation by Jointly Learning to Align and Translate论文的详解

    读论文 Neural Machine Translation by Jointly Learning to Align and Translate 这个论文是在NLP中第一个使用attention机制 ...

  2. [笔记] encoder-decoder NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE

    原文地址 :[1409.0473] Neural Machine Translation by Jointly Learning to Align and Translate (arxiv.org) ...

  3. 课程五(Sequence Models),第三周(Sequence models & Attention mechanism) —— 1.Programming assignments:Neural Machine Translation with Attention

    Neural Machine Translation Welcome to your first programming assignment for this week! You will buil ...

  4. Sequence Models Week 3 Neural Machine Translation

    Neural Machine Translation Welcome to your first programming assignment for this week! You will buil ...

  5. 【转载 | 翻译】Visualizing A Neural Machine Translation Model(神经机器翻译模型NMT的可视化)

    转载并翻译Jay Alammar的一篇博文:Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models Wi ...

  6. Effective Approaches to Attention-based Neural Machine Translation(Global和Local attention)

    这篇论文主要是提出了Global attention 和 Local attention 这个论文有一个译文,不过我没细看 Effective Approaches to Attention-base ...

  7. On Using Very Large Target Vocabulary for Neural Machine Translation Candidate Sampling Sampled Softmax

    [softmax分类器的加速器] https://www.tensorflow.org/api_docs/python/tf/nn/sampled_softmax_loss This is a fas ...

  8. TensorFlow 神经机器教程-TensorFlow Neural Machine Translation Tutorial

    seq2seq 模型在广泛的任务比如机器翻译,语音识别,文本总结中取得了巨大的成功.这个教程给读者 seq2seq 模型一个完整的理解,并且展示如何从原型建立一个有竞争力的 seq2seq 模型.我们 ...

  9. Introduction to Neural Machine Translation - part 1

    The Noise Channel Model \(p(e)\): the language Model \(p(f|e)\): the translation model where, \(e\): ...

随机推荐

  1. css学习_css补充知识

    1.渐进增强,优雅降级 2.浏览器前缀 3.背景渐变   4.css  验证工具 2种方式:第2种支持验证本地的css(推荐) 5.css压缩  ----(节约空间,节省带宽) 6.旋转轮播图 案例: ...

  2. Dynamics365 WebAPI ADFS token 获取

    public class CrmAuth { ///<summary> /// Token /// </summary> public string access_token ...

  3. Gym 101606 - A/B/C/D/E/F/G/H/I/J/K/L - (Undone)

    链接:https://codeforces.com/gym/101606 A - Alien Sunset 暴力枚举小时即可. #include<bits/stdc++.h> using ...

  4. 审核被拒Guideline 2.1 - Information Needed we are unable to find 账号登录 option

    Guideline 2.1 - Information Needed We were unable to sign in to review your app with the demo accoun ...

  5. Tomcat出现端口占用错误

    Several ports (8005, 8080, 8009) required by Tomcat v8.5 Server at localhost are already in use. The ...

  6. Node.js、npm、vue-cli 的安装配置环境变量

    我安装node.js是为了学习vue,需要用到npm,所以就把node.js安装了,安装node.js会带有npm的安装. 在安装node.js之前,我们需要了解以下三个内容. npm: Nodejs ...

  7. less命令查看文件时的常用操作

    下键或者回车:往下一行 D:往下半页 空格和f:往下一页 上键:往上一行 B:往上一页 shift+G:直接切到末尾 ?+搜索条件:从下往上搜索 /+搜索条件:从上往下搜索

  8. Hadoop生态集群YARN详解

    一,前言 Hadoop 2.0由三个子系统组成,分别是HDFS.YARN和MapReduce,其中,YARN是一个崭新的资源管理系统,而MapReduce则只是运行在YARN上的一个应用,如果把YAR ...

  9. linux 几种服务类型

    采集来自于 https://blog.csdn.net/hguisu/article/details/7453390 https://blog.csdn.net/limo120621/article/ ...

  10. egg.js异步请求数据

    之前已经简单的使用egg-init初始化项目,并创建控制器controller和服务service 在实际项目中, service主要负责数据的请求,并处理(http请求) controll主要负责获 ...