摘要:在本文中,我们提出了一种新的神经网络模型,称为RNN编码器 - 解码器,由两个递归神经网络(RNN)组成。一个RNN编码器将特征编码为一个固定长度的向量,另一个解码器解码这个向量为另一个符号序列。联合训练所提出的模型的编码器和解码器以最大化给定源序列的目标序列的条件概率。通过使用由RNN编码器 - 解码器计算的短语对的条件概率作为现有对数线性模型中的附加特征,相较于统计机器翻译系统的性能得到改善。定性地,我们表明所提出的模型学习表达到了短语的语义和语法。
1.introduction
深度神经网络已经在很多应用中取得了成功,比如在语音识别和目标检测上。此外,许多最近的工作表明神经网络可以成功地用于自然语言处理(NLP)中的许多任务。这些包括但不限于语言建模(Bengio等,2003),复述检测(Socher等,2011)和单词嵌入提取(Mikolov等,2013)。在统计机器翻译(SMT)领域,深度神经网络已经开始显示出有希望的结果。(Schwenk,2012)总结了基于短语的SMT系统框架中前馈神经网络的成功应用。
通过对SMT使用神经网络的这一研究,本文重点研究了一种新的神经网络结构,可以作为传统的基于短语的SMT系统的一部分。提出的神经网络结构,我们将其称为 RNN编码器 - 解码器由两个递归神经网络(RNN)组成,它们充当编码器和解码器对。 编码器将可变长度源序列映射到固定长度矢量,并且解码器将矢量表示映射回可变长度目标序列。 联合训练两个网络以最大化给定源序列的目标序列的条件概率。 此外,我们建议使用相当复杂的隐藏单元,以提高内存容量和培训的便利性。
所提出的具有新颖隐藏单元的RNN编码器 - 解码器根据从英语到法语的翻译任务进行经验评估。 我们训练模型以学习英语短语的翻译概率到相应的法语短语。 然后,通过对短语表中的每个短语对进行评分,将该模型用作基于标准短语的SMT系统的一部分。 经验评估表明,这种使用RNN编码器 - 解码器对短语对进行评分的方法提高了翻译性能。
我们通过比较其短语得分与现有翻译模型给出的那些,定性地分析训练的RNN编码器 - 解码器。 定性分析表明,RNN编码器 - 解码器更好地捕捉短语表中的语言规律,间接解释了整体翻译性能的定量改进。 对模型的进一步分析表明,RNN编码器 - 解码器学习了一个短语的连续空间表示,该短语保留了短语的语义和句法结构。
2RNN Encoder–Decoder
2.1Preliminary: Recurrent Neural Networks
递归神经网络(RNN)是神经网络,其由隐藏状态h和可选输出y组成,其在可变长度序列x =(x 1,...,x T)上操作。 在每个时间步t,RNN中的隐藏单元h(t)被以以下方式进行更新:
其中f是非线性激活函数。 f可以像元素逻辑sigmoid函数一样简单,也可以像长短期记忆(LSTM)单元一样复杂(Hochreiter和Schmidhuber,1997)。
RNN可以通过训练来预测序列中的下一个符号来学习序列上的概率分布。 在这种情况下,每个时间步t的输出是条件分布p(x t | x t-1,...,x 1)。 例如,可以使用softmax激活函数输出多项分布(1-of-K编码)
对于所有可能的符号j = 1 ,.。。 ,K,其中w j是权重矩阵W的行。通过组合这些概率,我们可以计算序列x的概率。
通过这种学习的分布,通过在每个时间步迭代地对符号进行采样,可以直接对新序列进行采样。
2.2 RNN Encoder–Decoder.
在本文中,我们提出了一种新颖的神经网络体系结构,它学习将可变长度序列编码为固定长度的矢量表示,并将给定的固定长度矢量表示解码回可变长度序列。 从概率的角度来看,这种新模型是学习在另一个可变长度序列条件下的可变长度序列上的条件分布的一般方法,例如, p(y 1,...,y T 0 | x 1,...,x T),其中应注意输入和输出序列长度T和T 0可能不同。
编码器是RNN,其顺序地读取输入序列x的每个符号。 当它读取每个符号时,RNN的隐藏状态根据等式1而变化。(1)。 在读取序列的结尾(由序列结束符号标记)之后,RNN的隐藏状态是整个输入序列的摘要c。
所提出的模型的解码器是另一个RNN,其被训练以通过在给定隐藏状态h(t)的情况下预测下一个符号y t来生成输出序列。 但是,与第二节中描述的RNN不同。 在图2.1中,y t和ht也都以y t-1和输入序列的汇总c为条件。 因此,解码器在时间t的隐藏状态由下式计算:
并且类似地,下一个符号的条件分布是:
对于给定的激活函数f和g(后者必须产生有效概率,例如使用softmax)。
有关所提出的模型架构的图形描述,请参见图1。
所提出的RNN编码器 - 解码器的两个组件被联合训练以最大化条件对数似然:
其中θ是模型参数的集合,并且每个(x n,y n)是来自训练集的(输入序列,输出序列)对。 在我们的例子中,由于解码器的输出从输入开始是可微分的,我们可以使用基于梯度的算法来估计模型参数。
一旦训练了RNN编码器 - 解码器,就可以以两种方式使用该模型。 一种方法是使用该模型在给定输入序列的情况下生成目标序列。 另一方面,该模型可用于对给定的输入和输出序列对进行评分,其中得分就像概率pθ(y | x)一样来自于公式(3)和(4)。
2.3 Hidden Unit that Adaptively Remembers and Forgets
除了新颖的模型架构之外,我们还提出了一种新型的隐藏单元(方程(1)中的f),该单元由LSTM单元激励,但计算和实现起来要简单得多。 1图2显示了所提出的隐藏单元的图形描述。
让我们描述如何计算第j个隐藏单元的激活。 首先,通过计算复位门r j:
其中σ是逻辑sigmoid函数,[。] j表示向量的第j个元素。 x和h t-1分别是输入和先前的隐藏状态。 W r和U r是学习的权重矩阵。
类似地,更新门z j由计算:
然后通过计算所提出的单位h j的实际激活
在该公式中,当复位门接近0时,强制隐藏状态忽略先前的隐藏状态并仅用当前输入复位。 这有效地允许隐藏状态丢弃在将来稍后发现不相关的任何信息,从而允许更紧凑的表示。
另一方面,更新门控制来自先前隐藏状态的多少信息将转移到当前隐藏状态。 这类似于LSTM网络中的存储器单元,并帮助RNN记住长期信息。 此外,这可以被认为是泄漏整合单元的自适应变体(Bengio等,2013)。
由于每个隐藏单元具有单独的重置和更新门,每个隐藏单元将学习捕获不同时间尺度上的依赖性。 学习捕获短期依赖关系的那些单元将倾向于重置经常活动的门,但那些捕获长期依赖关系的那些将具有主要是活动的更新门。
在我们的初步实验中,我们发现使用带有浇口装置的新装置至关重要。 我们无法通过经常使用的tanh装置获得有意义的结果而没有任何门控。
3 Statistical Machine Translation
在常用的统计机器翻译系统(SMT)中,系统的目标(具体地说是解码器)是在给定源句e的情况下找到翻译f,最大化:
其中右手侧的第一项称为翻译模型,后一种称为语言模型(例如,(Koehn,2005))。 然而,在实践中,大多数SMT系统将log p(f | e)建模为具有附加特征和相应权重的对数线性模型:
其中f n和w n分别是第n个特征和权重。 Z(e)是不依赖于权重的归一化常数。 通常优化权重以最大化开发集上的BLEU分数。
在(Koehn等,2003)和(Marcu和Wong,2002)中引入的基于短语的SMT框架中,将翻译模型log p(e | f)分解为源和目标中匹配短语的翻译概率。这些概率再次被认为是对数线性模型中的附加特征(参见方程(9))并且相应地加权以最大化BLEU得分。
由于神经网络语言模型(Bengio et al。,2003)提出,神经网络已广泛应用于SMT系统。 在许多情况下,神经网络已被用于重新构建翻译假设(n-最佳列表)(参见,例如,(Schwenk等人,2006))。 然而,最近,人们对训练神经网络感兴趣
使用源句子的表示作为附加输入来对翻译的句子(或短语对)进行评分。 参见,例如,(Schwenk,2012),(Son等人,2012)和(Zou等人,2013)。
3.1 Scoring Phrase Pairs with RNN Encoder–Decoder
在这里,我们提出在短语对表上训练RNN编码器 - 解码器(参见2.2节),并将其得分作为方程中对数线性模型的附加特征(9)当调节SMT解码器时。
当我们训练RNN编码器 - 解码器时,我们忽略原始语料库中每个短语对的(标准化的)频率。 采取该措施(1)以减少根据归一化频率从大短语表中随机选择短语对的计算开销,以及(2)确保RNN编码器 - 解码器不仅仅学习对短语对进行排序 根据他们的出现次数。 这种选择的一个潜在原因是短语表中的现有翻译概率已经反映了原始语料库中短语对的频率。 利用RNN编码器 - 解码器的固定容量,我们尝试确保模型的大部分容量专注于学习语言规律,即区分合理和难以置信的翻译,或学习“流形”(概率集中区域) )合理的翻译。
一旦训练了RNN编码器 - 解码器,我们就为每个短语对添加到现有短语表的新分数。 这允许新分数进入现有调整算法,而计算中的额外开销最小。
正如Schwenk在(Schwenk,2012)中指出的那样,可以用提出的RNN编码器 - 解码器完全替换现有的短语表。 在这种情况下,对于给定的源短语,RNN编码器 - 解码器将需要生成(好的)目标短语的列表。 然而,这需要重复执行昂贵的采样程序。 因此,在本文中,我们只考虑在短语表中重新标记短语对。
3.2Related Approaches: Neural Networks in Machine Translation
在介绍实验结果之前,我们讨论了一些最近提出的在SMT背景下使用神经网络的工作。
Schwenk(Schwenk,2012)提出了一种类似的评分短语对的方法。 他没有使用基于RNN的神经网络,而是使用前馈神经网络,该网络具有固定大小的输入(在他的情况下为7个字,对于较短的短语具有零填充)和固定大小的输出(目标语言中的7个字)。 当它专门用于SMT系统的评分短语时,通常选择最大短语长度较小。 然而,随着短语的长度增加或者当我们将神经网络应用于其他可变长度序列数据时,神经网络可以处理可变长度的输入和输出是很重要的。 所提出的RNN编码器 - 解码器非常适合这些应用。
类似于(Schwenk,2012),Devlin等人(Devlin等人,2014)提出使用前馈神经网络来建模翻译模型,然而,通过一次预测目标短语中的一个单词。 他们报告了一个令人印象深刻的改进,但他们的方法仍然需要输入短语(或上下文单词)的最大长度
先验地固定。
虽然它不是他们训练的神经网络,但是(Zou等人,2013)的作者提出要学习单词/短语的双语嵌入。 他们使用学习嵌入来计算一对短语之间的距离,这对短语用作SMT系统中短语对的附加分数。
在(Chandar等人,2014)中,训练前馈神经网络以学习从输入短语的词袋表示到输出短语的映射。 这与提出的RNN编码器 - 解码器和模型密切相关
在(Schwenk,2012)中提出,除了他们对短语的输入表示是一个词袋之外。在(Gao等人,2013)中也提出了使用词袋表示的类似方法。 早些时候,在(Socher等人,2011)中提出了使用两个递归神经网络的类似编码器 - 解码器模型,但是他们的模型被限制为单语设置,即模型重建输入句子。 最近,在(Auli等人,2013)中提出了另一种使用RNN的编码器 - 解码器模型,其中解码器以源句子或源上下文的表示为条件。
所提出的RNN编码器 - 解码器与(Zou等人,2013)和(Chandar等人,2014)中的方法之间的一个重要区别在于考虑了源和目标短语中的单词的顺序。 RNN编码器 - 解码器自然地区分具有相同字但序列不同的序列,而上述方法忽略了顺序信息。
与提出的RNN编码器 - 解码器相关的最接近的方法是(Kalchbrenner和Blunsom,2013)中提出的循环连续转换模型(模型2)。 在他们的论文中,他们提出了一个由编码器和解码器组成的类似模型。 与我们的模型的不同之处在于它们使用卷积n-gram模型(CGM)用于编码器以及逆CGM和用于解码器的递归神经网络的混合。 然而,他们评估了他们的模型,重新评估了传统SMT系统提出的n-最佳列表,并计算了金标准翻译的困惑。
4 Experiments
我们评估了WMT'14研讨会英语/法语翻译任务的方法。
4.1 Data and Baseline System
在WMT'14翻译任务的框架内,可以利用大量资源建立英语/法语SMT系统。 双语语料库包括Europarl(61M字),新闻评论(5.5M),UN(421M),以及两个90M和780M字的爬行语料库。最后两个语料库非常嘈杂。 为了训练法语模型,除了比特的目标侧之外,还有大约712M字的爬行报纸材料。 所有单词计数都是指在标记化之后的法语单词。
人们普遍认为,在所有这些数据的串联上训练统计模型不一定会导致最佳性能,并导致难以处理的极大模型。 相反,应该关注给定任务的最相关数据子集。 我们通过应用(Moore和Lewis,2010)中提出的数据选择方法及其对bitexts的扩展(Axelrod等,2011)来实现。 通过这些方法,我们从用于语言建模的2G字以上的418M字的子集中选择了用于训练RNN编码器 - 解码器的850M字中的348M的子集。 我们使用测试集newstest2012和2013进行数据选择和使用MERT进行重量调整,并使用newstest2014作为我们的测试集。 每组有超过7万个单词和一个参考翻译。
为了训练神经网络,包括提出的RNN编码器 - 解码器,我们将源和目标词汇限制为英语和法语最常见的15,000个单词。 这涵盖了大约93%的数据集。 所有词汇外的单词都被映射到一个特殊的令牌([UNK])。
基于短语的基线SMT系统是使用具有默认设置的Moses构建的。 该系统在开发和测试集上分别达到30.64和33.3的BLEU分数(见表1)。
4.1.1 RNN Encoder–Decoder
在该实验中使用的RNN编码器 - 解码器具有1000个隐藏单元,其在编码器和解码器处具有所提出的门。 每个输入符号x hti和隐藏单元之间的输入矩阵用两个较低秩矩阵近似,并且输出矩阵类似地近似。 我们使用了rank-100矩阵,相当于为每个单词学习了100维的嵌入。 用于方程式中的h的激活函数。 (8)是双曲正切函数。 从解码器中的隐藏状态到输出的计算被实现为深度神经网络(Pascanu等人,2014),其中单个中间层具有500个最大单元,每个单元汇集2个输入(Goodfellow等人,2013)。