由于最近学习的需要,对论文《Learning Phrase Representations using RNN Encoder–Decoderfor Statistical Machine Translation》进行了不地道的翻译,翻译存在许多问题,因此仅供自己参考。也希望大家在留言中提出意见,我会认真修改。
翻译全文如下:
使用RNN编码器 - 解码器学习短语表示以进行统计机器翻译
摘要
在本文中,我们提出了一种新的神经网络模型,称为RNN编码器 - 解码器,它由两个循环神经网络(RNN)组成。 一个RNN将符号序列编码成固定长度矢量表示,而另一个RNN将该表示编码成另一个符号序列。 所提出的模型的编码器和解码器被联合训练以最大化给定源序列的目标序列的条件概率。通过使用由RNN编码器 - 解码器计算的短语对的连续概率作为现有对数线性模型中的附加特征,经验地发现统计机器翻译系统的性能得到改善。 定性地,我们表明所提出的模型学习语义和句法上有意义的语言短语表示。
1 介绍
深度神经网络已经显示出非常成功的各种应用,例如目标识别(参见,例如,(Krizhevsky等人,2012))和语音识别(参见,例如,(Dahl等人,2012))。 此外,许多最近的工作表明,神经网络可以成功地用于自然语言处理(NLP)中的许多任务。这些包括但不限于语言建模(Bengio等,2003),释义检测(Socher) et al。,2011)和单词嵌入提取(Mikolov等,2013)。 在统计机器翻译(SMT)领域,深度神经网络已经开始显示出有希望的结果。(Schwenk,2012)总结了基于短语的SMT系统框架中前馈神经网络的成功应用。
在研究神经网络在SMT中的应用的基础上,提出了一种新的神经网络体系结构,可以作为传统基于短语的SMT系统的一部分。提出的神经网络结构,我们将称为一个RNN编码器解码器,由两个循环神经网络(RNN)作为编码器和解码器对。编码器将变长源序列映射到固定长度的向量,解码器将向量表示映射回变长目标序列。在给定源序列的情况下,对两个网络进行联合训练,使目标序列的条件概率最大化。此外,我们建议使用一个相当复杂的隐藏单元,以提高记忆力和训练的易用性。
所提出的带有隐藏单元的RNN编码器 - 解码器在从英语到法语的翻译任务中进行了实证评估。我们训练该模型学习英语短语到相应法语短语的翻译概率。然后,通过在短语表中为每个短语对打分,将该模型用作基于短语的标准SMT系统的一部分。实验结果表明,采用RNN编译码器对短语进行评分的方法可以提高翻译性能。
通过对训练后的RNN码译码器的短语评分与已有的翻译模型进行比较,定性地分析了训练后的RNN码译码器的短语评分。定性分析表明,RNN编解码器能较好地捕捉短语表中的语言规律,间接解释了整体翻译性能的量化改进。对该模型的进一步分析表明,RNN编译码器学习了短语的连续空间表示,同时保留了短语的语义和句法结构。
2 RNN的编码-解码
2.1 初步:循环神经网络
循环神经网络(RNN)是一种神经网络,由隐藏的状态选择性输出y组成,其在可变长度序列x =(x1,...,xT)上操作。 在每个时间步t,RNN的隐藏状态ht更新由
。。。。。。。。。
其中f是非线性激活函数。 f可以像元素逻辑sigmoid函数一样简单,也可以像长短期记忆(LSTM)单元一样复杂(Hochreiter和Schmidhuber,1997)。
RNN可以通过训练预测序列中的下一个符号来学习序列上的概率分布。在这种情况下,每一步t的输出是条件分布p(xt|xt 1,…,x1)。例如,可以使用softmax激活函数输出多项式分布(1- kcoding)
。。。。。。。。。。
对于所有可能的符号j = 1,...,K,其中wj是权重矩阵W的行。通过组合这些概率,我们可以计算序列x的概率用
。。。。。。。。。。。。。。。。。。。
从这种学习的分布中,通过在每个时间步迭代地对符号进行采样来直接采样新序列。
2.2 RNN 编码-解码
本文提出了一种新的神经网络结构,该结构学习将变长序列编码为定长向量表示,并将给定的定长向量表示解码为变长序列。从概率的角度出发,该模型是研究变长序列上条件分布的一种通用方法。例如 p(y1,...,yT′|x1,...,xT),其中输入和输出序列长度T和T可能不同。
编码器是RNN,其顺序地读取输入序列x的每个符号。 当它读取每个符号时,RNN的隐藏状态根据等式(1)而改变。 在读取序列的结尾(由序列结束符号标记)之后,RNN的隐藏状态是整个输入序列的摘要c。
该模型的解码器是另一种RNN,它经过训练,在给定隐藏状态ht的情况下,通过预测下一个符号yt来生成输出序列。然而,与第2.1节中描述的RNN不同,yt和ht都以yt- 1和输入序列的汇总c为条件。因此,解码器在时间t的隐藏状态由下式计算:
。。。。。。。。。。。
类似地,下一个符号的条件分布是
。。。。。。。。。。。。。
对于给定的激活函数f和g(后者必须产生有效概率,例如使用softmax)。
如图1所示,这是预提出的模型体系结构的图形化描述。
所提出的RNN编码器 - 解码器的两个组件被联合训练以最大化条件对数似然
。。。。。。。。。。。
其中θ是模型参数的集合,每个(xn,yn)是来自训练集的(输入序列,输出序列)对。 在我们的例子中,由于解码器的输出从输入开始是可微分的,我们可以使用基于梯度的算法来估计模型参数。
一旦训练了RNN编码器 - 解码器,就可以以两种方式使用该模型。 一种方法是使用该模型在给定输入序列的情况下生成目标序列。 另一方面,该模型可用于对给定的输入和输出序列对进行评分,其中得分仅是来自(3)和(4)式的概率pθ(y | x)。
2.3自适应记住和忘记的隐藏单位
除了一种新的模型结构,我们还提出了一种新型的隐藏单元(fin Eq.(1)),它由LSTM单元驱动,但计算和实现要简单得多。图2显示了所提议的隐藏单元的图形化描述。
让我们描述一下如何计算第j个隐藏单元的激活。首先,计算复位门rj,通过
。。。。。。。。。。。。。
其中σ是逻辑sigmoid函数,[]j表示向量的第j个元素,x和ht1分别代表输入和先前的隐藏状态。Wr和Ur是学习的权重矩阵。
类似地,更新门zj计算由
。。。。。。。
然后计算所提议的单元hj的实际激活量
。。。。。。。。。。。。。。。。。。
其中
。。。。。。。。。。。。。。。。
在这个公式中,当复位门接近于0时,强迫隐藏状态忽略之前的隐藏状态,仅用当前输入复位。这有效地允许隐藏状态删除将来发现不相关的任何信息,从而允许更紧凑的表示。
另一方面,更新门控制来自先前隐藏状态的多少信息将转移到当前隐藏状态。 这类似于LSTM网络中的存储器单元,并帮助RNN记住长期信息。 此外,这可以被认为是泄漏整合单元的自适应变体(Bengio et al,2013)。
由于每个隐藏的单元都有单独的重置和更新门,所以每个隐藏的单元将学习在不同的时间尺度上捕获依赖关系。那些学会捕捉短期依赖的单元往往会有经常起作用的重置门,但那些捕捉长期依赖的单元会有更新门,这些更新门大多是活动的。
在我们的初步实验中,我们发现使用这种带有门控单元的新装置是至关重要的。我们无法得到有意义的结果与一个常用的tanh单位没有任何门控。
3 统计机器翻译
在一个常用的统计机器翻译系统(SMT)中,该系统(解码器)的目标是找到给定源语句的翻译f,使其最大化
。。。。。。。。。。。。
其中右手边的第一项称为翻译模型,后一种语言模型称为(例如,(Koehn,2005))。 然而,在实践中,大多数SMT系统将log p(f | e)建模为具有附加特征和相应权重的对数线性模型。
。。。。。。。。。。。。。
其中fn和wn分别为第n个特征和权重。Z(e)是一个不依赖权重的归一化常数。权重的优化通常是为了使开发集上的BLEU得分最大化。
在(Koehn et al., 2003)和(Marcu and Wong, 2002)中引入的基于短语的SMT框架中,将翻译模型logp(e|f)分解为源句和目标句中匹配短语的翻译概率。这些概率在对数线性模型中再次被认为是额外的特征(参见Eq.(9)),并相应地加权以使BLEU得分最大化。
由于神经网络语言模型是在(Bengio等人,2003)中提出的,神经网络已广泛应用于SMT系统。在许多情况下,神经网络已用于核心翻译假设(n-最佳列表)(参见,例如, (Schwenk等,2006))。 然而,最近,人们一直关注训练神经网络以使用源句子的表示作为附加输入来对翻译的句子(或短语对)进行评分。 参见,例如,(Schwenk,2012),(Son等人,2012)和(Zou等人,2013)。
3.1 使用RNNEncoder-Decoder对短语进行评分
在这里,我们建议在短语对表上训练RNN编码器解码器(参见第2.2节),并在调整SMT解码器时,将其得分作为Eq.(9)中的对数线性模型的附加特性。
当我们训练RNN编码器解码器时,我们忽略了原始语料库中每个短语的(归一化)频率。该方法的目的是:(1)根据归一化频率,减少从大量短语表中随机选择短语对的计算量;(2)保证RNN编解码器不会简单地根据短语出现的次数对短语进行排序。这种选择的一个潜在原因是短语表中现有的翻译概率已经反映了原始语料库中短语对的频率。 利用RNN编码器 - 解码器的固定容量,我们试图确保模型的大部分容量专注于学习语言规律,即区分似是而非的难以理解的翻译,或学习“流形”(概率区域) 合理的翻译。
一旦训练了RNN编码器 - 解码器,我们就为现有短语表添加每个短语对的新分数。这允许新的分数以最小的额外计算开销进入现有的调整算法。
正如Schwenk在(Schwenk, 2012)中指出的那样,可以用提出的RNN编码器解码器完全替换现有短语表。在这种情况下,对于给定的源短语,RNN编码器解码器将需要生成(好的)目标短语列表。然而,这需要一个昂贵的采样过程来重复进行。因此,在本文中,我们只考虑在短语表中重新标记短语对。
3.2 相关方法:机器翻译中的神经网络
在给出实证结果之前,我们讨论了一些最近提出在SMT环境下使用神经网络的工作。
Schwenk在(Schwenk,2012)提出了一种评分短语对的类似方法。 他没有使用基于RNN的神经网络,而是使用具有固定大小输入的前馈神经网络(在他的情况下为7个单词,对于较短的短语使用零填充)和固定大小的输出(目标语言中为7个单词)。 当它专门用于SMT系统的评分短语时,通常最大化短语长度选择较小的。 然而,随着短语的长度增加或者我们将神经网络应用于其他可变长度序列数据,重要的是神经网络可以处理可变长度的输入和输出。 提出的RNN编码器 - 解码器非常适合这些应用。
类似于(Schwenk,2012),Devlin等人(Devlin等人,2014)提出使用向馈神经网络对翻译模型进行建模,但是,通过每次预测一个目标短语中的一个单词来实现。他们报告了一个令人印象深刻的改进,但他们的方法仍然需要预先确定输入短语(或上下文单词)的最大长度。
虽然它并不完全是一个神经网络,但是(Zou et al。,2013)的作者提出要学习单词/短语的双语嵌入。他们使用学习的嵌入来计算一对短语之间的距离,该距离被用作SMTs系统中短语对的附加分数。
在(Chandar等人,2014)中,训练了前馈神经网络,以学习从输入短语的单词表示到输出短语的映射。 这与提出的RNN编码器 - 解码器和(Schwenk,2012)中提出的模型密切相关,不同之处在于它们的短语的输入表示是一个词袋。使用词袋代表的类似方法 (Gao et al。,2013)也提出了同意。 早些时候,提出了一种类似的编码器 - 解码器模型,使用了两个循环神经网络(Socher et al。,2011),但他们的模型被重新限制为单语设置,即模型重构输入句子。 最近,在(Auli等人,2013)中提出了使用RNN的另一编码器 - 解码器模型,其中解码器以源句子或源上下文的表示为条件。
提出的RNN编码器解码器与(Zou et al., 2013)和(Chandar et al., 2014)方法的一个重要区别是,考虑了源短语和目标短语中的单词顺序。RNN编码器解码器自然地区分具有相同单词但顺序不同的序列,而上述方法有效地忽略了顺序信息。
与提出的RNN编码器 - 解码器相关的最接近的方法是在(Kalchbrenner和Blunsom,2013)中提出的循环连续转换模型(模型2)。 在他们的论文中,他们提出了一个由编码器和解码器组成的类似模型。 与我们的模型的不同之处在于它们使用卷积n-gram模型(CGM)用于编码器,并且使用逆CGM和用于解码器的循环神经网络的混合。 然而,他们评估了他们的模型,重新评估了传统SMT系统提出的当时最佳列表,并计算了金标准翻译的复杂性。
4 试验
我们在WMT’14英语/法语翻译任务上评估我们的方法。
4.1 数据和基线系统
在WMT'14翻译任务的框架内,可以利用大量资源建立英语/法语SMT系统。 双语语料库包括Europarl(61M字),新闻评论(5.5M),UN(421M)和两个90M和780M字的爬行语料库。最后两个语料库非常嘈杂。为了训练法语模式,除了双语文本的目标端之外,还有大约712M字的有声报纸材料。 所有字数都是在标记化后引用的法语单词。
人们普遍认为,将所有这些数据串接在一起的训练模型并不一定能得到最优的性能,并且会导致难以处理的超大模态。相反,人们应该关注给定任务的最相关的数据子集。我们通过应用(Moore and Lewis, 2010)中提出的数据选择方法,并将其扩展到双文本(Axelrod et al., 2011),实现了这一点。通过这些方法,我们从超过2G的单词中选出了418万个单词作为语言建模的子集,并从850万个单词中选出了348个单词作为训练RNN的子集。我们使用测试setnewstest2012和2013进行数据选择和使用MERT进行权重调整,并使用newstest2014作为我们的测试集。 每组有超过7万个单词和一个参考翻译。
为了训练神经网络,包括提出的RNN编码器 - 解码器,我们将源和目标词汇限制为英语和法语最常见的15,000个单词。 这约占了数据集的93%。 所有词汇表单词都被映射到一个特殊的词汇([UNK])。
用默认设置的Moses构建基于短语的基线SMT系统。 该系统在开发和测试集上分别达到30.64和33.3的BLEU评分(见表1)。
表1:使用不同方法组合计算开发和测试集的BLEU分数。WP表示单词惩罚,我们对未知单词的色调网络数量进行惩罚。
4.1.1 RNN编码-解码
实验中使用的RNN编解码器有1000个隐藏单元,分别在编码器和解码器上设置了门。每个输入符号xt与隐藏单元之间的输入矩阵近似为两个低秩矩阵,输出矩阵近似类似。我们使用秩-100矩阵,相当于学习每个单词的维数为100的嵌入。式(8)中h的激活函数为双曲正切函数。解码器中隐藏状态到输出的计算被实现为一个深度神经网络(Pascanu et al., 2014),单个中间层有500个maxout单元,每个单元池有2个输入(Goodfellow et al., 2013)。
RNN编码器 - 解码器中的所有权重参数通过从各向异性零均值(白色)高斯分布采样来初始化,其标准偏差固定为0.01,除了重复的权重参数。 对于递归权重矩阵,我们首先从白色高斯分布中采样并使用其左奇异向量矩阵,如下(Saxe et al,2014)。
我们使用Adadelta和随机梯度下降来训练具有超参数= 10-6和ρ= 0.95的RNN编码器 - 解码器(Zeiler,2012)。 在每次更新时,我们使用来自短语表(由348M字创建)的64个随机选择的短语对。 该模型训练了大约三天。
在补充材料中更详细地解释了在体验中使用的架构。
4.1.2 神经语言网络
为了评估RNN编码器解码器的短语对的有效性,我们还尝试了一种更传统的方法,即使用神经网络学习目标语言模型(CSLM) (Schwenk, 2007)。特别地,将使用CSLM的SMT系统与使用RNN编解码器的短语评分方法进行比较,可以明确SMT系统不同部分的多重神经网络的贡献是累加的还是冗余的。
我们从目标语料库中提取7个语法,对CSLM模型进行训练。将每个输入的单词投影到嵌入空间R512中,并将它们串联起来形成一个3072维的向量。连接向量通过两个整流层(大小分别为1536和1024)输入(Glorot et al., 2011)。输出层是一个简单的softmax层(见式(2))。所有权值参数在0.01和0.01之间均匀初始化,对模型进行训练,直到验证的困惑度10个时期没有改善。经过训练,语言模型的困惑度达到45.80。验证集是对0.1%语料库的随机选择。在解码过程中,使用模型对部分翻译进行评分,这通常导致BLEU评分比n-最佳列表重新评分更高(Vaswani等,2013)。
为了解决在解码器中使用CSLM的计算复杂性,在解码器执行堆栈搜索期间使用缓冲区来聚合n-grams。只有当缓冲区满了,或者堆栈即将被修剪时,才由cslm对n-grams进行评分。这使得我们可以使用Theano在GPU上执行快速的矩阵-矩阵乘法(Bergstra et al., 2010;Bastien等,2012)。
4.2 定量分析
我们训练以下组合:
1. Baseline configuration
2. Baseline + RNN
3. Baseline + CSLM + RNN
4. Baseline + CSLM + RNN + Word penalty
表2:根据翻译模型(直接翻译概率)和RNN编码器 - 解码器的一小组源短语的最高得分目标短语。 源短语是从具有4个或更多单词的短语中随机选择的。?表示不完整(部分)字符。r是一个Cyrillic字母ghe。
结果如表1所示。如前所述,添加由神经网络计算的特性可以不断地提高性能。
当我们同时使用CSLM和RNN编码器解码器的短语评分时,获得了最佳的性能。这说明CSLM和RNN编解码器的性能不太相关,可以通过独立地改进每一种方法得到更好的结果。此外,我们尝试惩罚神经网络不知道的单词数量(即不在短列表中的单词)。我们通过简单地将未知单词的数量作为一个附加特性添加到式(9)中的对数线性模型中来实现。然而,在这种情况下,我们无法获得更好的性能,而只能在开发集上获得更好的性能。
4.3 定性分析
为了了解性能改进的来源,我们分析了由RNN编码器解码器计算的短语对转换模型中对应的p(f|e)的配对分数。由于现有的翻译模型仅仅依赖于语料库中短语对的统计,我们希望它的分数对于频繁出现的短语有更好的理解,但是对于罕见的短语却没有很好的估计。此外,正如我们在3.1节前面提到的,我们进一步期望RNN编码器解码器在没有任何频率信息的情况下训练,根据语言规则而不是语料库中出现的短语对进行评分。
我们关注那些源短语长(每个源短语超过3个单词)且频繁出现的对。对于每一个这样的源短语,我们将查看翻译概率p(f|e)或RNN编码器解码器得分较高的目标短语。类似地,我们对那些源短语很长但在语料库中很少见的对使用相同的过程。
表2列出了由翻译模型或RNN编码器 - 解码器所支持的每个源语句的前3个目标短语。源词是随机选择的,有4个或5个以上的长词。
在大多数情况下,RNN编码器解码器对目标短语的选择更接近于实际翻译或字面翻译。我们可以观察到,RNN编码器 - 解码器总是喜欢较短的短语。
有趣的是,翻译模型和RNN编码器 - 解码器对许多短语对进行了相似的评分,但是有很多其他短语对得分根本不同(参见图3)。 这可能源于所提出的在一组唯一短语对上训练RNN编码器 - 解码器的方法,阻止RNN编码器 - 解码器简单地从语料库中学习短语对的频率,如前所述。
此外,在表3中,我们针对表2中的每个源短语显示了来自RNN编码器 - 解码器的生成的样本。 对于每个源短语,我们生成了50个样本,并根据它们的分数显示前五个短语。我们可以看到RNN编码器 - 解码器能够提出结构良好的目标短语而无需查看实际短语表。 重要的是,生成的短语与短语表中的目标短语不完全重叠。这鼓励我们进一步研究将来用提议的RNN编码器 - 解码器替换整个或部分短语表的可能性。
表3:针对表2中使用的每个源短语从RNN编码器 - 解码器生成的样本。在50个样本中显示前5个目标短语。 它们按RNN编码器 - 解码器分数排序。
图4:学习单词表示的二维嵌入。左边的显示了整个嵌入式空间,而右边的显示了一个区域的放大视图(彩色编码)。有关更多情节,请参见补充材料。
图5:学习短语表示的2d嵌入。左上方的图显示了完整的表现空间(5000个随机选择的点),而其他三个图显示了特定区域的放大视图(彩色编码)。
4.4 单词和短语表示
由于提出的RNN编解码器并不是专门针对机器翻译任务而设计的,所以我们在这里简要地研究了训练后的模型的性能。
众所周知,持续的空间语言学习神经网络能够学习有意义的嵌入(见(Bengio等,2003;Mikolov等,2013))。由于所提出的RNN编解码器也能将一个序列的字投射到一个连续的空间向量中,并将其映射回来,因此我们希望在所提出的模型中也能看到类似的性质。
图4左边的图显示了使用RNN编码器解码器学习的单词嵌入矩阵对单词进行二维嵌入。该支持是由最近提出的Barnes-Hut-SNE(van der Maaten,2013)。我们可以清楚地看到语义相似的单词彼此聚在一起(参见图4中放大的图)。
提出的RNN编解码器能自然地生成一个连续空间的分词表示。这种情况下的表示(图1中的c)是一个1000维的向量。与单词表示类似,我们使用图5中的Barnes-Hut-SNE将由四个或更多单词组成的短语的表示可视化。
从可视化中可以清楚地看出,RNN编码器 - 解码器捕获了短语的语义和合成结构。 例如,在左下图中,大多数短语是关于持续时间的,而那些在语法上相似的短语是聚集在一起的。 底部右侧的图显示了语义相似的短语群(国家或地区)。 另一方面,右上图显示了语法相似的短语。
5 结论
在本文中,我们提出了一种新的神经网络体系结构,称为一种RNN编码器 - 解码器,它能够学习从任意长度的序列到另一个序列的映射,可能来自任意长度的不同集合。 所提出的RNN编码器 - 解码器能够对一对序列进行核心调节(就条件概率而言)或生成给定为源序列的目标序列。 与新架构一起,我们提出了一种新颖的隐藏单元,其包括重置门和更新门,其自适应地控制每个隐藏单元在读取/生成序列时记住或忘记的情况。
我们使用统计机器翻译的任务评估了所提出的模型,其中我们使用RNN编码器 - 解码器来对短语表中的每个短语对进行评分。 定性地说,我们可以证明新模型能够在短语对中保留语言规则性,同时RNN编码器 - 解码器能够形成良好形成的目标短语。
RNN编码器 - 解码器的分数被发现用于改善BLEU分数方面的整体翻译性能。此外,我们发现RNN编解码器的贡献与现有的在SMT系统中使用神经网络的方法是相当正交的,因此我们可以通过将RNN编解码器和神经网络语言模型结合使用来进一步提高性能。
我们对训练模型的定性分析表明,它确实捕获了多个级别的语言规则,即单词级别以及短语级别。 这表明可能有更多自然语言相关的应用程序可以从提出的RNN编码器 - 解码器中受益。
提出的体系结构具有很大的改进和分析潜力。这里没有研究的一个应用程序是通过让RNN编码器解码器提出目标短语来重新放置短语表的整体或部分。此外,值得注意的是,所提出的模型并不局限于与书面语言的使用,它将是一个重要的未来研究应用于其他应用,如语音转录。
致谢