英语原文共 23 页,剩余内容已隐藏,支付完成后下载完整资料
谷歌神经机器翻译系统:建立人工和机器翻译的桥梁
摘要
神经机器翻译(NMT: Neural Machine Translation)是一种用于自动翻译的端到端的学习方法,该方法有望克服传统的基于短语的翻译系统的缺点。不幸的是,众所周知 NMT 系统的训练和翻译推理的计算成本非常高。另外,大多数 NMT 系统都难以应对罕见词。这些问题阻碍了 NMT 在实际部署和服务中的应用,因为在实际应用中,准确度和速度都很关键。我们在本成果中提出了 GNMT——谷歌的神经机器翻译(Google#39;s Neural Machine Translation)系统来试图解决许多这些问题。我们的模型由带有 8 个编码器和 8 个解码器的深度 LSTM 网络组成,其使用了注意(attention)和残差连接(residual connections)。为了提升并行性从而降低训练时间,我们的注意机制将解码器的底层连接到了编码器的顶层。为了加速最终的翻译速度,我们在推理计算过程中使用了低精度运算。为了改善对罕见词的处理,我们将词分成常见子词(sub-word)单元(词的组件)的一个有限集合,该集合既是输入也是输出。
这种方法能提供「字符(character)」-delimited models 的灵活性和「词(word)」-delimited models 的有效性之间的平衡、能自然地处理罕见词的翻译、并能最终提升系统的整体准确度。我们的波束搜索技术(beam search technique)使用了一个长度规范化(length-normalization)过程,并使用了一个覆盖度惩罚(coverage penalty),其可以激励很可能能覆盖源句子中所有的词的输出句子的生成。在 WMT#39; 14 英语-法语和英语-德语基准上,GNMT 实现了可与当前最佳结果媲美的结果。通过在一个单独的简单句子集合的人类对比评估中,它相比于谷歌已经投入生产的基于短语的系统的翻译误差平均降低了 60%。
1.介绍
神经机器翻译(NMT)(41, 2)最近被引入作为一种有前途的方法,具有解决传统机器翻译系统的许多缺点的潜力。NMT的强大之处在于它能够以一种端到端的方式直接学习从输入文本到相关输出文本的映射。它的体系结构通常包括两个递归神经网络(RNN),一个消耗输入文本序列,一个生成翻译输出文本。NMT经常伴随着注意力机制[2 ],这有助于它有效地处理长输入序列。
神经机器翻译的一个优点是,它避免了传统的基于短语的机器翻译中许多脆弱的设计选择[26]。然而,在实践中,NMT系统过去比基于短语的翻译系统的准确性更差,特别是在用于最佳公开可用翻译系统的超大型数据集的训练时。神经机器翻译的三个固有弱点是造成这种差距的原因:训练速度慢,推理速度慢,处理罕见单词无效,有时无法翻译源句中的所有单词。首先,通常需要大量的时间和计算资源来在大规模翻译数据集上训练NMT系统,从而减慢实验周转时间和创新的速度。由于使用了大量的参数,因此推断它们通常比基于短语的系统慢得多。其次,NMT在翻译罕见词时缺乏稳健性。虽然原则上可以通过训练一个“复制模型”来模拟传统的对齐模型[31],或者通过使用注意机制来复制罕见词[37]来解决这个问题,但这些方法在规模上都不可靠,因为质量对齐方式因语言而异,并且当网络深度较深时,关注机制产生的潜在对齐方式不稳定。此外,简单复制并不总是应对罕见词语的最佳策略,例如音译更合适。最后,NMT系统有时产生的输出句子不能翻译输入句子的所有部分 - 换句话说,它们不能完全“掩盖”输入,这可能导致令人惊讶的翻译。
这项工作介绍了GNMT(Google的生产NMT系统)的设计和实施,旨在为上述问题提供解决方案。在我们的实现中,经常性网络是长期短期记忆(LSTM)RNN [23,17]。我们的LSTM RNN有8层,层间存在剩余连接以促进梯度流动[21]。对于并行性,我们将注意力从解码器网络的底层连接到编码器网络的顶层。为了提高推理时间,我们采用低精度算法进行推理,通过特殊硬件(Google的Tensor Processing Unit或TPU)进一步加速推理。为了有效地处理难得的单词,我们使用分词单位(也称为“wordpieces”)[35]用于我们系统的输入和输出。使用单词可以很好地平衡单个字符的灵活性和全文解码的效率,并且避免了对未知单词进行特殊处理的需要。我们的波束搜索技术包括一个长度归一化过程,以有效处理解码过程中比较不同长度假设的问题,以及覆盖惩罚来鼓励模型翻译所有提供的输入。
我们的实施是可行的,并且在许多对语言的数据集上表现良好,无需进行特定于语言的调整。使用相同的实现方式,我们能够在标准基准测试中获得与之前最先进的系统相媲美或更好的结果,同时对基于短语的生产翻译系统进行了重大改进。具体而言,在WMT#39;14英语至法语版本中,我们的单一模型得分为38.95 BLEU,从[31]中报告的单一模型没有外部对准模型报告可以提高7.5 BLEU,并且在没有外部校准模型[45]报道。我们的单一模型也可以与[45]中的单一模型相媲美,但并未使用[45]中使用的任何对准模型。同样,在WMT#39;14英语对德语版本中,我们的单一模型得分为24.17 BLEU,比以前的竞争基线要高出3.4 BLEU [6]。在生产数据上,我们的实施更加有效。人类评估显示,与我们以前的基于短语的系统相比,GNMT在许多对语言上的翻译错误减少了60%:英语harr;法语,英语harr;西班牙语和英语harr;中文。另外的实验表明,由此产生的翻译系统的质量更接近于普通人类翻译的质量。
2.相关工作
统计机器翻译(SMT)几十年来一直是主要的翻译范式[3,4,5]。 SMT的实际实现通常是基于短语的系统(PBMT),它可以翻译长度可能不同的单词或短语序列[26]。
甚至在直接神经机器翻译出现之前,神经网络已被用作SMT系统中的一个组件,并取得了一些成功。 也许最值得注意的尝试之一是使用联合语言模型来学习短语表征[13],当与基于短语的翻译相结合时,这种方法产生了令人印象深刻的改进。 然而,这种方法仍然使用基于短语的翻译系统作为其核心,因此继承了它们的缺点。 其他提出的用于学习短语表征[7]或用神经网络学习端到端翻译的方法[24]提供了令人鼓舞的提示,但与标准的基于短语的系统相比,最终提供了更差的整体准确性。
机器翻译端到端学习的概念在过去已经尝试过了(例如[8]),并且取得了有限的成功。 在该领域的开创性论文[41,2]之后,NMT翻译质量已经更接近常见研究基准的基于短语的翻译系统的水平。 [31]也许是第一次成功尝试超越基于短语的翻译。 在WMT#39;14英语至法语版本中,与最先进的基于短语的系统相比,该系统实现了0.5 BLEU的改进。
从那时起,已经提出了许多新颖的技术来进一步改进NMT:使用注意机制来处理罕见词[37],翻译覆盖模型的机制[42],多任务和半监督训练以结合更多数据 字符解码器[9],字符编码器[11],还包括用于处理罕见字输出,不同种类的关注机制[30]以及句子级损失最小化的子字单元[38]34。 虽然这些系统的翻译准确性令人鼓舞,但与大规模的系统比较,缺乏基于短语的翻译系统的生产质量。
3 .算法模型
我们的模型(参见图1)遵循常见的序列到序列学习框架[41]并引起注意[2]。 它有三个组件:编码器网络,解码器网络和关注网络。 编码器将源语句转换为向量列表,每个输入符号一个向量。 给定这个向量列表,解码器一次产生一个符号,直到产生特殊的句尾符号(EOS)。 编码器和解码器通过注意模块连接,该模块允许解码器在解码过程中聚焦在源语句的不同区域。
对于符号,我们使用粗体小写来表示向量(例如,v,oi),粗体大写字母表示矩阵(例如U,W),草写大写字母表示集合(例如V,T),大写字母 表示序列(例如,X,Y)和小写以表示序列中的各个符号(例如,x1,x2)。
设(X,Y)是源语句和目标语句对。 假设X = x1,x2,x3,...,xM是源语句中M个符号的序列,令Y = y1,y2,y3,...,yN为目标语句中N个符号的序列。 编码器只是以下形式的功能:
x1,x2,...,xM = EncoderRNN(x1,x2,x3,...,xM) (1)
在这个等式中,x1,x2,...,xM是一个固定大小的向量列表。 列表中成员的数量与源句子中的符号数量相同(本例中为M)。 使用链规则,可以将序列P(Y | X)的条件概率分解为:
(2)
其中y0是一个特殊的“句首”符号,它被预设给每个目标语句。
在推理过程中,我们计算给出源句子编码的下一个符号和解码后的目标序列的概率:
P(yi|y0,y1,y2,y3,...,yiminus;1;x1,x2,x3,...,xM) (3)
我们的解码器实现为RNN网络和softmax层的组合。 解码器RNN网络为将要预测的下一个符号产生隐藏状态yi,然后经过softmax层以产生候选输出符号上的概率分布。
在我们的实验中,我们发现NMT系统要达到很好的准确性,编码器和解码器RNN必须足够深以捕捉源语言和目标语言中的细微不规则性。 这一观察结果与之前的观察结果相似,即深LSTMs显着优于浅LSTM [41]。 在那项工作中,每个额外的层减少了近10%的困惑。 与[31]类似,我们对编码器RNN和解码器RNN都使用深层堆叠的长短期存储器(LSTM)[23]网络。
我们的注意模块与[2]类似。 更具体地说,让yi-1是过去解码时间步长的解码器-RNN输出(在我们的实现中,我们使用底部解码器层的输出)注意:
图1:GNMT的模型架构,Google的神经机器翻译系统。左边是编码器网络,右边是解码器网络,中间是注意模块。底层编码器层是双向的:粉红色节点从左向右收集信息,而绿色节点从右向左收集信息。编码器的其他层是单向的。剩余连接从编码器和解码器底部的第三层开始。该模型被分割成多个GPU来加速训练。在我们的设置中,我们有8个编码器LSTM层(1个双向层和7个单向层)和8个解码器层。使用此设置,一个模型副本将进行8分区分区,并放置在通常属于一台主机的8个不同GPU上。在训练期间,底部双向编码器层首先并行计算。一旦完成,单向编码器层就可以开始计算,每个单独的GPU上。为了在运行解码器层期间保持尽可能多的并行性,我们使用底部解码器层输出仅用于获得经常性关注上下文,其直接发送到所有剩余的解码器层。 softmax图层也被分区并放置在多个GPU上。根据输出词汇量的大小,我们可以让它们在与编码器和解码器网络相同的GPU上运行,或者让它们在单独的一组专用GPU上运行。
根据以下公式计算当前时间步的上下文ai:
st = AttentionFunction(yiminus;1,xt) forall;t, 1le; t le; M
pt =exp(st)/ M X t=1 exp(st) forall;t, 1le; t le; M
ai = M X t=1 pt.xt (4)
我们实现中的AttentionFunction是一个带有一个隐藏层的前馈网络.
3.1剩余连接
如上所述,深层堆积的LSTM通常比较浅的模型具有更高的精度。 然而,简单地堆叠更多层次的LSTM只能工作到一定数量的层次,超过这个层次,网络变得太慢并且难以训练,可能是由于爆炸和渐变问题消失[33,22]。 根据我们在大规模翻译任务中的经验,简单堆叠的LSTM层最多可以工作4层,几乎没有6层,而且超过8层很差。
图2:正常堆积的LSTM与我们堆积的带剩余连接的LSTM之间的差异。 在左边:简单堆叠的LSTM层[41]。 在右侧:我们实现了具有残留连接的堆叠LSTM层。 通过剩余连接,底层LSTM层(x0 i到LSTM1)的输入按照元素方式添加到底层(x1 i)的输出中。 然后将该总和作为新输入馈送到顶部LSTM层(LSTM2)。
受过去在中间层输出和目标之间建模差异的想法的启发,过去很多项目都表现出很好的效果[16,21,40],我们在堆栈中的LSTM层之间引入了剩余连接(参见图2)。 更具体地说,设LSTMi和LSTMi 1分别为参数分别为Wi和Wi 1的堆栈中的第i层和
全文共9841字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[15826],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。