机器翻译设备和方法与流程

文档序号:24043599发布日期:2021-02-23 17:33阅读:275来源:国知局
机器翻译设备和方法与流程

[0001]
本发明涉及自然语言处理的领域,更具体地说,涉及机器翻译设备和方法。


背景技术:

[0002]
机器翻译是利用计算机将一种自然语言(源语言)转换为另一种自然语言(目标语言)的过程。它是计算语言学的一个分支,是人工智能的终极目标之一,具有重要的科学研究价值。同时,机器翻译又具有重要的实用价值。随着经济全球化及互联网的飞速发展,机器翻译技术在促进政治、经济、文化交流等方面起到越来越重要的作用。
[0003]
随着深度学习的研究取得较大进展,基于人工神经网络的机器翻译(neural machine translation,nmt)逐渐兴起。其技术核心是一个拥有海量结点(神经元)的深度神经网络,可以自动地从语料库中学习翻译知识。一种语言的句子被向量化之后,在网络中层层传递,转化为计算机可以“理解”的表示形式,再经过多层复杂的传导运算,生成另一种语言的译文。实现了“理解语言,生成译文”的翻译方式。这种翻译方法最大的优势在于译文流畅,更加符合语法规范,容易理解。相比之前的翻译技术,质量有“跃进式”的提升。
[0004]
谷歌提出了一种新的架构(transformer),用来实现nmt。transformer架构包括编码器(encoder)和解码器(decoder)两部分。编码器对输入文本进行深层语义表示,解码器依据输入文本的语义表示产生输出文本。编码器和解码器都是由多层网络堆积而成。
[0005]
现有的解码网络仅能够按照设置好的翻译方向(如,自左往右或自右向左)逐词地产生译文输出。也就是说,一个解码网络只能够按照一种固定的翻译方向来构造并训练。如果用户希望改变翻译方向,则只能重新构造并训练与该翻译方向对应的另一个解码网络。然而,这显然不利于节约时间成本和软硬件成本。


技术实现要素:

[0006]
鉴于以上情形,期望提供新的机器翻译方法和设备,其能够针对不同的翻译方向,共享相同的解码网络。
[0007]
根据本公开的一个方面,提供了一种机器翻译方法,包括:对源语言输入文本执行处理,以产生与所述源语言输入文本中的各源语言单词对应的多个向量;对所述多个向量进行编码以产生多个编码向量;将所述多个编码向量以及指示翻译方向的信息输入至单个解码网络;以及从所述单个解码网络输出与源语言输入文本对应的目标语言输出文本,其中,所述输出文本中包括的目标语言单词的输出顺序与所述翻译方向一致,其中当向所述单个解码网络输入的信息所指示的翻译方向改变时,所述单个解码网络中各节点的参数不变。
[0008]
另外,在根据本公开实施例的方法中,通过以下处理来训练所述解码网络:对源语言训练输入文本执行处理,以产生与所述源语言训练输入文本中的各源语言单词对应的多个训练向量;对所述多个训练向量进行编码以产生多个编码训练向量;将所述多个编码训练向量以及指示翻译方向的信息输入至单个解码网络;分别在多个时间步从所述单个解码
网络输出多个训练预测向量,其中每一个训练预测向量包括目标语言词库中的各单词在一个时间步作为目标语言输出文本中的单词的概率,且各时间步分别与目标语言输出文本中的各单词对应;基于与所述翻译方向对应的、目标语言正解文本在多个时间步应该输出的单词,确定多个正解向量,其中每一个正解向量包括目标语言词库中的各单词在一个时间步作为目标语言输出文本中的单词的概率,并且与该时间步应该输出的单词对应的概率最大;以及至少基于表示训练预测向量与相应的正解向量之间的差异的第一损失函数,调整所述解码网络中各节点的参数。
[0009]
另外,在根据本公开实施例的方法中,所述单个解码网络包括隐藏层,并且进一步通过以下处理来训练所述解码网络:将与所述翻译方向对应的、各时间步从解码网络的隐藏层输出的中间向量输入至分类网络,并且从所述分类网络输出分类结果,其中所述分类结果指示从所述单个解码网络输出的目标语言训练输出文本中各单词的输出顺序;基于所述输出顺序与所述翻译方向的比较,进一步调整所述解码网络中各节点的参数。
[0010]
另外,在根据本公开实施例的方法中,通过以下处理来训练所述分类网络:基于表示分类网络输出的分类结果与所述翻译方向之间的差异的第二损失函数,调整所述分类网络中各节点的参数。
[0011]
另外,在根据本公开实施例的方法中,将所述多个编码向量以及指示翻译方向的信息输入至单个解码网络进一步包括:将所述多个编码向量以及指示第一翻译方向的信息输入至单个解码网络;以及将所述多个编码向量以及指示第二翻译方向的信息输入至单个解码网络,并且从所述单个解码网络输出与源语言输入文本对应的目标语言输出文本进一步包括:从所述单个解码网络输出目标语言第一输出文本,其中,所述第一输出文本中包括的目标语言单词的输出顺序与所述第一翻译方向一致;以及从所述单个解码网络输出目标语言第二输出文本,其中,所述第二输出文本中包括的目标语言单词的输出顺序与所述第二翻译方向一致。
[0012]
另外,在根据本公开实施例的方法中,所述解码网络包括隐藏层,并且所述方法进一步包括:将与所述第一翻译方向对应的、各时间步从解码网络的隐藏层输出的中间向量输入至分类网络,其中各时间步分别与目标语言第一输出文本中的各单词对应,并且从所述分类网络输出第一分类结果,其中所述第一分类结果指示从所述单个解码网络输出的目标语言第一输出文本中各单词的输出顺序;将与所述第二翻译方向对应的、各时间步从解码网络的隐藏层输出的中间向量输入至所述分类网络,其中各时间步分别与目标语言第二输出文本中的各单词对应,并且从所述分类网络输出第二分类结果,其中所述第二分类结果指示从所述单个解码网络输出的目标语言第二输出文本中各单词的输出顺序;将基于所述目标语言第一输出文本中各单词的出现概率的值和第一分类结果输入到打分网络,并且从所述打分网络输出第一分数;以及将基于所述目标语言第二输出文本中各单词的出现概率的值和第二分类结果输入到打分网络,并且从所述打分网络输出第二分数;并且其中从所述单个解码网络输出与源语言输入文本对应的目标语言输出文本进一步包括:选择第一分数和第二分数中较大的一个所对应的输出文本作为目标语言输出文本。
[0013]
另外,在根据本公开实施例的方法中,通过以下处理来训练所述打分网络:对源语言训练输入文本执行处理,以产生与所述源语言训练输入文本中的各源语言单词对应的多个训练向量;对所述多个训练向量进行编码以产生多个编码训练向量;将所述多个编码训
练向量以及指示一个翻译方向的信息输入至单个解码网络;将与所述一个翻译方向对应的、各时间步从解码网络的隐藏层输出的中间向量输入至分类网络,并且从所述分类网络输出分类结果,其中所述分类结果指示从所述单个解码网络输出的目标语言训练输出文本中各单词的输出顺序;将基于所述目标语言训练输出文本中各单词的出现概率的值和分类结果输入到打分网络,并且从所述打分网络输出训练分数;计算所述解码网络输出的目标语言训练输出文本与目标语言正解文本之间的相似度;基于表示所述训练分数与所述相似度之间的差异的第三损失函数,调整所述打分网络中各节点的参数。
[0014]
另外,在根据本公开实施例的方法中,所述目标语言正解文本进一步包括当输入相同的源语言输入文本时从另一解码网络输出的目标语言输出文本,其中所述另一解码网络的网络规模大于所述解码网络的网络规模。
[0015]
另外,在根据本公开实施例的方法中,将从所述解码网络输出的目标语言输出文本作为与源语言输入文本对应的目标语言正解文本,应用于另一解码网络的训练处理,其中所述另一解码网络的网络规模小于所述解码网络的网络规模。
[0016]
根据本公开的另一方面,提供了一种机器翻译设备,包括:预处理单元,用于对源语言输入文本执行处理,以产生与所述源语言输入文本中的各源语言单词对应的多个向量;编码单元,用于对所述多个向量进行编码以产生多个编码向量;以及解码单元,用于将所述多个编码向量以及指示翻译方向的信息输入至单个解码网络,并且从所述单个解码网络输出与源语言输入文本对应的目标语言输出文本,其中,所述输出文本中包括的目标语言单词的输出顺序与所述翻译方向一致,其中当向所述单个解码网络输入的信息所指示的翻译方向改变时,所述单个解码网络中各节点的参数不变。
[0017]
另外,根据本公开实施例的设备进一步包括训练单元,用于通过执行以下处理来训练所述解码网络:对源语言训练输入文本执行处理,以产生与所述源语言训练输入文本中的各源语言单词对应的多个训练向量;对所述多个训练向量进行编码以产生多个编码训练向量;将所述多个编码训练向量以及指示翻译方向的信息输入至单个解码网络;分别在多个时间步从所述单个解码网络输出多个训练预测向量,其中每一个训练预测向量包括目标语言词库中的各单词在一个时间步作为目标语言输出文本中的单词的概率,且各时间步分别与目标语言输出文本中的各单词对应;基于与所述翻译方向对应的、目标语言正解文本在多个时间步应该输出的单词,确定多个正解向量,其中每一个正解向量包括目标语言词库中的各单词在一个时间步作为目标语言输出文本中的单词的概率,并且与该时间步应该输出的单词对应的概率最大;以及至少基于表示训练预测向量与相应的正解向量之间的差异的第一损失函数,调整所述解码网络中各节点的参数。
[0018]
另外,在根据本公开实施例的设备中,所述单个解码网络包括隐藏层,并且所述训练单元进一步被配置为通过执行以下处理来训练所述解码网络:将与所述翻译方向对应的、各时间步从解码网络的隐藏层输出的中间向量输入至分类网络,并且从所述分类网络输出分类结果,其中所述分类结果指示从所述单个解码网络输出的目标语言训练输出文本中各单词的输出顺序;基于所述输出顺序与所述翻译方向的比较,进一步调整所述解码网络中各节点的参数。
[0019]
另外,在根据本公开实施例的设备中,所述训练单元进一步被配置为通过以下处理来训练所述分类网络:基于表示分类网络输出的分类结果与所述翻译方向之间的差异的
第二损失函数,调整所述分类网络中各节点的参数。
[0020]
另外,在根据本公开实施例的设备中,所述解码单元进一步被配置为:将所述多个编码向量以及指示第一翻译方向的信息输入至单个解码网络,并且从所述单个解码网络输出目标语言第一输出文本,其中,所述第一输出文本中包括的目标语言单词的输出顺序与所述第一翻译方向一致;以及将所述多个编码向量以及指示第二翻译方向的信息输入至单个解码网络,并且从所述单个解码网络输出目标语言第二输出文本,其中,所述第二输出文本中包括的目标语言单词的输出顺序与所述第二翻译方向一致。
[0021]
另外,在根据本公开实施例的设备中,所述解码网络包括隐藏层,并且所述设备进一步包括:选择单元,用于执行以下处理:将与所述第一翻译方向对应的、各时间步从解码网络的隐藏层输出的中间向量输入至分类网络,其中各时间步分别与目标语言第一输出文本中的各单词对应,并且从所述分类网络输出第一分类结果,其中所述第一分类结果指示从所述单个解码网络输出的目标语言第一输出文本中各单词的输出顺序;将与所述第二翻译方向对应的、各时间步从解码网络的隐藏层输出的中间向量输入至所述分类网络,其中各时间步分别与目标语言第二输出文本中的各单词对应,并且从所述分类网络输出第二分类结果,其中所述第二分类结果指示从所述单个解码网络输出的目标语言第二输出文本中各单词的输出顺序;将基于所述目标语言第一输出文本中各单词的出现概率的值和第一分类结果输入到打分网络,并且从所述打分网络输出第一分数;将基于所述目标语言第二输出文本中各单词的出现概率的值和第二分类结果输入到打分网络,并且从所述打分网络输出第二分数;以及选择第一分数和第二分数中较大的一个所对应的输出文本作为目标语言输出文本。
[0022]
另外,根据本公开实施例的设备进一步包括训练单元,用于通过以下处理来训练所述打分网络:对源语言训练输入文本执行处理,以产生与所述源语言训练输入文本中的各源语言单词对应的多个训练向量;对所述多个训练向量进行编码以产生多个编码训练向量;将所述多个编码训练向量以及指示一个翻译方向的信息输入至单个解码网络;将与所述一个翻译方向对应的、各时间步从解码网络的隐藏层输出的中间向量输入至分类网络,并且从所述分类网络输出分类结果,其中所述分类结果指示从所述单个解码网络输出的目标语言训练输出文本中各单词的输出顺序;将基于所述目标语言训练输出文本中各单词的出现概率的值和分类结果输入到打分网络,并且从所述打分网络输出训练分数;计算所述解码网络输出的目标语言训练输出文本与目标语言正解文本之间的相似度;基于表示所述训练分数与所述相似度之间的差异的第三损失函数,调整所述打分网络中各节点的参数。
[0023]
另外,在根据本公开实施例的设备中,所述目标语言正解文本进一步包括当输入相同的源语言输入文本时从另一解码网络输出的目标语言输出文本,其中所述另一解码网络的网络规模大于所述解码网络的网络规模。
[0024]
另外,在根据本公开实施例的设备中,将从所述解码网络输出的目标语言输出文本作为与源语言输入文本对应的目标语言正解文本,应用于另一解码网络的训练处理,其中所述另一解码网络的网络规模小于所述解码网络的网络规模。
[0025]
在根据本公开的各实施例的机器翻译方法和机器翻译设备中,使用同一个解码网络,既可以实现按照第一翻译方向的目标语言文本输出,也可以实现按照第二翻译方向的目标语言文本输出。从而,与现有技术中针对固定翻译方向单独构造并训练解码网络的方
案相比,能够极大地降低时间成本和软硬件成本。
附图说明
[0026]
图1是图示根据本公开的一个实施例的机器翻译方法的过程的流程图;
[0027]
图2示出了编码网络的一种示例;
[0028]
图3示出了解码网络按照时间顺序的输入输出示意图;
[0029]
图4示出了解码网络在一个时间步确定待输出单词的过程的示意图;
[0030]
图5是图示所述解码网络的具体训练过程的流程图;
[0031]
图6是图示根据本公开的另一实施例的机器翻译方法的过程的流程图;
[0032]
图7是图示打分网络的具体训练过程的流程图;
[0033]
图8是图示根据本公开的实施例的机器翻译设备的配置的功能性框图;以及
[0034]
图9是示出了根据本公开实施例的一种示例性的计算设备的架构的示意图。
具体实施方式
[0035]
下面将参照附图对本发明的各个优选的实施方式进行描述。提供以下参照附图的描述,以帮助对由权利要求及其等价物所限定的本发明的示例实施方式的理解。其包括帮助理解的各种具体细节,但它们只能被看作是示例性的。因此,本领域技术人员将认识到,可对这里描述的实施方式进行各种改变和修改,而不脱离本发明的范围和精神。而且,为了使说明书更加清楚简洁,将省略对本领域熟知功能和构造的详细描述。
[0036]
首先,将参照图1描述根据本公开的一个实施例的机器翻译方法。如图1所示,所述机器翻译方法包括以下步骤。
[0037]
首先,在步骤s101,对源语言输入文本执行处理,以产生与所述源语言输入文本中的各源语言单词对应的多个向量。由于现有的机器学习方法往往无法直接处理文本数据,因此在输入到后续的各网络之前,需要先将目标语言输入文本转换为数值型数据。例如,源语言输入文本可以是一个句子。对句子执行分词处理以将句子分割为多个单词,然后将多个单词分别转换为特定维度的词向量。例如,可以通过词嵌入(word embedding)的方式来实现这种转换。
[0038]
然后,在步骤s102,对所述多个向量进行编码以产生多个编码向量。例如,可以通过编码网络来执行所述编码。图2示出了编码网络的一种示例。在图2中,x1、x2、x3、
……
、x
m
表示通过在步骤s101对源语言输入文本进行向量化而得到的多个向量,且h1、h2、h3、
……
、h
m
表示通过编码网络产生的编码向量。当然,编码网络的规模(如,节点数量和网络层数)并不限于图2中的示例。
[0039]
接下来,在步骤s103,将所述多个编码向量以及指示翻译方向的信息输入至单个解码网络。这里,翻译方向是由用户指定的。例如,当用户希望解码网络按照从左向右的顺序输出译文文本时,则向解码网络输入指示从左向右的翻译方向的信息。或者,当用户希望解码网络从右向左的顺序输出译文文本时,则向解码网络输入指示从右向左的翻译方向的信息。例如,指示翻译方向的信息可以是一个多维特征向量(如,128维)。该多维特征向量中各元素的值是随机确定的,并且对于同一翻译方向是固定的。
[0040]
最后,在步骤s104,从所述单个解码网络输出与源语言输入文本对应的目标语言
输出文本,其中,所述输出文本中包括的目标语言单词的输出顺序与所述翻译方向一致。
[0041]
这里,需要指出的是,当向所述单个解码网络输入的信息所指示的翻译方向改变时,所述单个解码网络中各节点的参数不变。
[0042]
例如,当向所述单个解码网络输入的信息所指示的翻译方向为第一翻译方向时所述单个解码网络中各节点的参数与当向所述单个解码网络输入的信息所指示的翻译方向为第而翻译方向时所述单个解码网络中各节点的参数相同。换言之,使用同一个解码网络,既可以实现按照第一翻译方向的目标语言文本输出,也可以实现按照第二翻译方向的目标语言文本输出。从而,与现有技术中针对固定翻译方向单独构造并训练解码网络的方案相比,能够极大地降低时间成本和软硬件成本。
[0043]
所述解码网络按照预定的处理时间间隔依次输出译文(即,目标语言输出文本)中的各单词。在第一时间步(time step),如果在步骤s103输入至解码网络的信息所指示的翻译方向为从左向右,那么所述解码网络输出从左边起的第一个目标语言单词。然后,在距离第一时间步预定的处理时间间隔的第二时间步,所述解码网络继续输出从左边起的第二个目标语言单词。以此类推,直至所述解码网络输出最后一个目标语言单词为止。类似地,在第一时间步(time step),如果在步骤s103输入至解码网络的信息所指示的翻译方向为从右向左,那么所述解码网络输出从右边起的第一个目标语言单词。然后,在距离第一时间步预定的处理时间间隔的第二时间步,所述解码网络继续输出从右边起的第二个目标语言单词。以此类推,直至所述解码网络输出最后一个目标语言单词为止。
[0044]
并且,需要指出的是,当前时间步的输出会在下一个时间步解码的时候进一步作为输入反馈给解码网络的最底层。换言之,除了来自解码网络的编码向量和指示翻译方向的信息作为输入之外,解码网络还可以进一步基于解码网络的历史输出来产生当前输出。
[0045]
图3示出了解码网络按照时间顺序的输入输出示意图。在图3中,各方框表示的是同一个解码网络,只是解码网络所处的时间步不同。在第一时间步t1,除了编码向量h1、h2、h3、
……
、h
m
之外,向解码网络输入指示翻译方向的信息<l2r>。这里,<l2r>表示从左向右的翻译方向。解码网络在该时间步t1输出与翻译方向对应的目标语言单词y1,且y1为译文从左边起的第1个单词。在第二时间步t2,除了编码向量h1、h2、h3、
……
、h
m
之外,向解码网络输入第一时间步t1的输出y1。并且,解码网络在该时间步t2输出与翻译方向对应的目标语言单词y2,且y2为译文从左边起的第2个单词。在后面的各时间步,解码网络执行类似的处理,直至解码网络输出与翻译方向对应的最后一个目标语言单词(即,从左边起最后一个目标语言单词)为止。
[0046]
尽管在图3中没有示出,但可以理解,类似地,如果在第一时间步t1,向解码网络输入指示翻译方向的信息<r2l>,这里,<r2l>表示从右向左的翻译方向,那么解码网络在该时间步t1输出与翻译方向对应的目标语言单词y1,且y1为译文从右边起的第1个单词。在第二时间步t2,除了编码向量h1、h2、h3、
……
、h
m
之外,向解码网络输入第一时间步t1的输出y1。并且,解码网络在该时间步t2输出与翻译方向对应的目标语言单词y2,且y2为译文从右边起的第2个单词。在后面的各时间步,解码网络执行类似的处理,直至解码网络输出与翻译方向对应的最后一个目标语言单词(即,从右边起最后一个目标语言单词)为止。
[0047]
接下来,将具体描述解码网络如何确定待输出的目标语言单词的细节。具体来说,分别在多个时间步从所述单个解码网络输出多个预测向量,其中每一个预测向量包括目标
语言词库中的各单词在一个时间步作为目标语言输出文本中的单词的概率,且各时间步分别与目标语言输出文本中的各单词对应。
[0048]
图4示出了解码网络在一个时间步确定待输出单词的过程的示意图。以第一时间步为例进行描述。例如,可以将目标语言词库设置为包括10000个单词的词库。当给定源语言输入文本时,将从该目标语言词库所包括的单词中选择对应于源语言输入文本的单词输出。在这种情况下,在第一时间步,解码网络输出一个维度为10000的预测向量。
[0049]
在图4中,以401表示从解码网络的隐藏层输出的中间向量,如一个浮点型向量。将该中间向量提供到一个全连接层。通过全连接层将该中间向量投影到一个更高维向量上。在目标语言词库为包括10000个单词的词库(即:词库大小vocab_size=10000)的情况下,这个更高维向量即为10000维的向量。最后通过softmax层将这个更高维向量中的各元素归一化为0到1之间的概率值。归一化后的这个更高维向量就是上文中所述的预测向量,在图4中以402示出。在图4中,以阴影示出了所有概率中最大的一个。可以看出,第5个元素所对应的概率最大。假设目标语言词库为英语词库,且如果第5个元素对应于目标语言词库中的单词“i”,则解码网络在第一时间步输出单词“i”。
[0050]
可以以如下公式(1)表示解码网络在各时间步输出的单词的概率。
[0051][0052]
其中p(y|x)表示当输入为x时输出为y的概率,分别表示从左向右输出的第1个至第i个目标语言单词,x1,...,x
m
表示输入的源语言单词,<l2r>表示指示从左向右的翻译方向的信息,θ表示编码网络的参数,表示当编码网络的参数为θ、源语言输入为x1,...,x
m
、翻译方向为从左向右、且已经输出的目标语言单词为时输出的概率。类似地,分别表示从右向左输出的第1个至第i个目标语言单词,x1,...,x
m
表示输入的源语言单词,<r2l>表示指示从右向左的翻译方向的信息,θ表示编码网络的参数,表示当编码网络的参数为θ、源语言输入为x1,...,x
m
、翻译方向为从右向左、且已经输出的目标语言单词为时输出的概率。
[0053]
相比之下,分别以如下公式(2)和(3)来表示根据现有技术的对应于翻译方向l2r和r2l的解码网络在各时间步输出的单词的概率。
[0054][0055][0056]
其中,p(y|x)表示当输入为x时输出为y的概率,p(y
i
|y1,...,y
i-1
;x1,...,x
m
;θ
l2r
)表示当编码网络的参数为θ
l2r
、源语言输入为x1,...,x
m
、且已经输出的目标语言单词为
y1,...,y
i-1
时输出y
i
的概率。p(y
i
|y
i+1
,...,y
n
;x1,...,x
m
;θ
r2l
)表示当编码网络的参数为θ
r2l
、源语言输入为x1,...,x
m
、且已经输出的目标语言单词为y
i+1
,...,y
n
时输出y
i
的概率。
[0057]
从以上公式(1)-(3)可以看出,在根据本公开的方法中,对于不同的翻译方向l2r和r2l,解码网络的参数同样都是θ。相比之下,在现有技术的方法中,对于不同的翻译方向,解码网络的参数是不同的,分别为θ
l2r
和θ
r2l
,换言之,对于不同的翻译方向,分别采用单独的解码网络。
[0058]
此外,尽管参照图4以第一时间步为例进行了描述,但是在其他时间步的处理均与第一时间步的处理类似。不同之处在于,每一个时间步都会产生一个与该时间步对应的预测向量,并且一般而言,不同时间步输出的预测向量是不同的。
[0059]
在上文中,描述了根据本公开的机器翻译方法的具体过程,以及能够针对不同的翻译方向共享相同的节点参数的单个解码网络。上文中所述的机器翻译方法是基于完成训练的解码网络来执行翻译的过程。接下来,将参照图5描述所述解码网络的具体训练过程。
[0060]
首先,在步骤s501,对源语言训练输入文本执行处理,以产生与所述源语言训练输入文本中的各源语言单词对应的多个训练向量。
[0061]
然后,在步骤s502,对所述多个训练向量进行编码以产生多个编码训练向量。
[0062]
接下来,在步骤s503,将所述多个编码训练向量以及指示翻译方向的信息输入至单个解码网络。
[0063]
然后,在步骤s504,分别在多个时间步从所述单个解码网络输出多个训练预测向量,其中每一个训练预测向量包括目标语言词库中的各单词在一个时间步作为目标语言输出文本中的单词的概率,且各时间步分别与目标语言输出文本中的各单词对应。
[0064]
以上步骤s501至步骤s504与上文中描述的机器翻译方法中的步骤和处理是类似的。不同之处在于,当解码网络训练完成之后,向其输入的是任意的源语言输入文本。该任意的源语言输入文本并不存在与之对应的目标语言正解文本。相比之下,对于处于训练过程的解码网络而言,向其输入的是来自训练样本库的源语言训练文本。该源语言训练文本存在与之对应的目标语言正解文本。
[0065]
并且,不同之处还在于,训练完成的解码网络输出的预测向量是准确的,换言之,在预测向量中概率最大的元素所对应的单词是应该输出的准确单词。相比之下,处于训练过程的解码网络输出的训练预测向量是不准确的,换言之,在训练预测向量中概率最大的元素所对应的单词不一定是应该输出的准确单词。
[0066]
接下来,在步骤s505,基于与所述翻译方向对应的、目标语言正解文本在多个时间步应该输出的单词,确定多个正解向量,其中每一个正解向量包括目标语言词库中的各单词在一个时间步作为目标语言输出文本中的单词的概率,并且与该时间步应该输出的单词对应的概率最大。
[0067]
仍然以第一时间步为例进行描述。假设输入的翻译方向为从左向右,并且正解文本中从左边起的第一个词为“i”且“i”对应于向量中的第5个元素,那么在第一时间步,正解向量为第5个元素的值最大的向量。例如,第5个元素的值为1,且其余元素的值均为0。
[0068]
最后,在步骤s506,至少基于表示训练预测向量与相应的正解向量之间的差异的第一损失函数,调整所述解码网络中各节点的参数。
[0069]
例如,作为一种可能的实施方式,第一损失函数可以表示训练预测向量中的每一
个元素的值与正解向量中的每一个元素的值之间的差异。或者,作为另一种可能的实施方式,第一损失函数也可以表示正解向量中概率值最大的元素与训练预测向量中对应元素之间的差异。举例来说,假设正解向量中第5个元素的值最大,例如值为1,那么第一损失函数可以表示训练预测向量中第5个元素的概率值与正解向量中第5个元素的概率值之间的差异。
[0070]
此外,从上文中的描述可以看出,指示翻译方向的信息对于第一个时间步输出的目标语言单词的影响是最大的。尽管在此后的各时间步,指示翻译方向的信息还会作为输入提供到解码网络,但是随着时间的推移,由于更大的权重将赋予较近的历史输出,因此指示翻译方向的信息的权重将越来越小,换言之,指示翻译方向的信息对于输出的目标语言单词的影响越来越小。也就是说,在共享同一个解码网络的架构中,尤其后续时间步的输出对于翻译方向是不敏感的,并且可能丢失关于翻译方向的信息。因此,作为另一种可能的实施方式,在针对所述单个解码网络的训练过程中,还可以进一步增加一个分类网络,用于辅助地训练所述解码网络。
[0071]
具体来说,如上文中所述,所述单个解码网络包括隐藏层,并且在步骤s506之后,进一步通过以下处理来训练所述解码网络。
[0072]
在步骤s507,将与所述翻译方向对应的、各时间步从解码网络的隐藏层输出的中间向量输入至分类网络,并且从所述分类网络输出分类结果,其中所述分类结果指示从所述单个解码网络输出的目标语言训练输出文本中各单词的输出顺序。
[0073]
从解码网络的隐藏层输出的中间向量为上文中参照图4所述的中间向量401,且隐藏层是指全连接层之前的最顶部隐藏层。所述分类网络可以通过一个卷积神经网络(convolutional neural networks,cnn)来实现。例如,所述分类网络可以通过如下公式(4)的判别函数来表示:
[0074][0075]
其中,h
dis
表示一判别函数,表示解码网络中全连接层之前的最顶部隐藏层输出的中间矢量,conv表示一卷积神经网络。
[0076]
例如,分类网络输出的分类结果可以是指示目标语言训练输出文本中各单词的输出顺序为特定顺序的概率值。所述概率值p
dir
可以通过以下公式(5)来表示。
[0077]
p
dir
=softmax(w
dis
×
h
dis
+b
dis
)
ꢀꢀꢀ
(5)
[0078]
其中,w
dis
和b
dis
分别表示卷积神经网络中的权重值和偏移值。
[0079]
具体来说,在将所述特定顺序设置为从左向右的顺序的情况下,如果分类网络输出的概率值为1,则目标语言训练输出文本中各单词的输出顺序为从左向右的顺序;如果分类网络输出的概率值为0,则目标语言训练输出文本中各单词的输出顺序为从右向左的顺序;如果分类网络输出的概率值为0到1之间的值且该值更接近于1,则目标语言训练输出文本中各单词的输出顺序为大致从左向右的顺序,其中少部分单词的输出顺序错乱;如果分类网络输出的概率值为0到1之间的值且该值更接近于0,则目标语言训练输出文本中各单词的输出顺序为大致从右向左的顺序,其中少部分单词的输出顺序错乱。
[0080]
然后,在步骤s508,基于所述输出顺序与所述翻译方向的比较,进一步调整所述解码网络中各节点的参数。这里,翻译方向是输入至解码网络的信息所指示的方向。
[0081]
也就是说,通过分类网络来进一步纠正对于翻译方向不敏感的解码网络。具体来说,如果基于源语言训练输入文本和用户指示的翻译方向,经分类网络输出的分类结果指示目标语言训练输出文本中各单词的输出顺序与输入的翻译方向一致,例如,用户指示的翻译方向为从左向右,且分类网络输出的目标语言训练输出文本中各单词的输出顺序为从左向右的顺序的概率值为1,那么认为解码网络不需要进一步调整。另一方面,如果基于源语言训练输入文本和用户指示的翻译方向,经分类网络输出的分类结果指示目标语言训练输出文本中各单词的输出顺序与输入的翻译方向相反,例如,用户指示的翻译方向为从左向右,且分类网络输出的目标语言训练输出文本中各单词的输出顺序为从左向右的顺序的概率值为0,那么认为解码网络需要进行较大的调整。或者,如果基于源语言训练输入文本和用户指示的翻译方向,经分类网络输出的分类结果指示目标语言训练输出文本中各单词的输出顺序与输入的翻译方向大体一致,例如,用户指示的翻译方向为从左向右,且分类网络输出的目标语言训练输出文本中各单词的输出顺序为从左向右的顺序的概率值为0.8,那么认为解码网络需要进行微调。
[0082]
因此,在这种实施方式中,通过进一步增加分类网络,可以学习或利用翻译方向信息,使得解码网络的目标语言单词的实际输出顺序能够逐渐地训练到与输入的、用户指示的翻译方向一致。
[0083]
由于步骤s507和步骤s508不是训练根据本公开的单个解码网络的必要步骤,因此在图5中以虚线框示出。
[0084]
与解码网络类似地,分类网络也是需要训练的。例如,可以通过以下处理来训练所述分类网络:基于表示分类网络输出的分类结果与所述翻译方向之间的差异的第二损失函数,调整所述分类网络中各节点的参数。这里,所述翻译方向是输入至解码网络的信息所指示的方向。在这种情况下,以用户指示的、输入至解码网络的信息所指示的方向作为分类网络的近似正解。如上文中所述,分类网络输出的分类结果是指示单词输出顺序为从左向右的概率值。例如,如果用户指示的、输入至解码网络的信息所指示的方向为从左向右,且对于一训练数据,分类网络输出的概率值为0.8,那么以1作为分类网络的近似正解来调整分类网络中各节点的参数。或者,又如,如果用户指示的、输入至解码网络的信息所指示的方向为从右向左,且对于一训练数据,分类网络输出的概率值为0.8,则以0作为分类网络的近似正解来调整分类网络中各节点的参数。
[0085]
或者,作为另一种可能的实施方式,也可以通过以下处理来训练所述分类网络:基于分类结果与实际的单词输出顺序之间的差异来调整,调整所述分类网络中各节点的参数。在这种实施方式下,不再使用用户指示的、输入至解码网络的信息所指示的方向作为分类网络的近似正解。在训练过程中,需要预先针对实际的单词输出顺序,计算该输出顺序为特定翻译方向的概率值,作为分类网络的分类结果的正解概率值。例如,如果用户指示的、输入至解码网络的信息所指示的方向为从左向右,例如,各时间步依次输出y1、y2、y3、y4,并且解码网络实际输出的单词顺序为y1、y3、y2、y4,那么输出顺序为从左向右的概率值为0.5。在这种情况下,如果分类网络输出的概率值为0.8,则以0.5作为分类网络的正解来调整分类网络中各节点的参数。
[0086]
所述分类网络的训练可以在所述解码网络的训练之前独立地进行。或者,所述分类网络也可以与所述解码网络同时训练。在同时训练的情况下,两个网络相互制约、相互调
整,直至二者的损失函数均收敛为止,训练结束。
[0087]
在上文中描述了向解码网络输入一个用户指定的翻译方向,并且解码网络按照所述翻译方向,输出目标语言单词的实施例。然而,本发明并不仅限于此。图6示出了根据本公开的另一实施例的机器翻译方法的过程的流程图。在该另一实施例中,所述单个解码网络可以针对两个翻译方向分别输出两种目标语言输出文本。然后,基于预定规则,选择这两种输出文本中较优的一个作为最终的译文输出。
[0088]
具体来说,如图6所示,所述机器翻译方法包括以下步骤。
[0089]
首先,在步骤s601,对源语言输入文本执行处理,以产生与所述源语言输入文本中的各源语言单词对应的多个向量。
[0090]
然后,在步骤s602,对所述多个向量进行编码以产生多个编码向量。
[0091]
以上步骤s601和步骤s602与图中的步骤s101和步骤s102类似。
[0092]
接下来,在步骤s603,将所述多个编码向量以及指示第一翻译方向的信息输入至单个解码网络。
[0093]
然后,在步骤s604,从所述单个解码网络输出目标语言第一输出文本,其中,所述第一输出文本中包括的目标语言单词的输出顺序与所述第一翻译方向一致。
[0094]
接下来,在步骤s605,将所述多个编码向量以及指示第二翻译方向的信息输入至单个解码网络。
[0095]
然后,在步骤s606,从所述单个解码网络输出目标语言第二输出文本,其中,所述第二输出文本中包括的目标语言单词的输出顺序与所述第二翻译方向一致。
[0096]
例如,第一翻译方向可以是从左向右的方向,且第二翻译方向可以是从右向左的方向。也就是说,通过上述步骤s603至步骤s606,分别获得了对应于两种翻译方向的译文结果。
[0097]
然后,在步骤s607,分别对第一输出文本和第二输出文本打分,以得到第一分数和第二分数。
[0098]
例如,可以通过构造一个打分网络来实现对输出文本的打分。
[0099]
具体来说,将与所述第一翻译方向对应的、各时间步从解码网络的隐藏层输出的中间向量输入至分类网络,其中各时间步分别与目标语言第一输出文本中的各单词对应,并且从所述分类网络输出第一分类结果,其中所述第一分类结果指示从所述单个解码网络输出的目标语言第一输出文本中各单词的输出顺序。这里的分类网络可以是上文中描述的分类网络,并且如上文中所述,可以将分类网络输出的分类结果表示为p
dir
。然后,将基于所述目标语言第一输出文本中各单词的出现概率的值和第一分类结果输入到打分网络,并且从所述打分网络输出第一分数。这里,例如,基于所述目标语言第一输出文本中各单词的出现概率的值可以是所有输出的目标语言单词的概率的平均值。如上文中所述,分别以y1、y2、
……
、y
n
表示在各时间步输出的目标语言单词,那么对于当前时间步输出的目标语言单词y
i
的概率为sc(y
i
),可以通过以下公式(6)来计算:
[0100][0101]
打分网络可以通过以下公式(7)来表示:
[0102][0103]
其中sc(y)表示解码网络输出的第一输出文本的概率,p
dir
表示分类网络输出的、关于第一输出文本的翻译方向的第一分类结果,fnn表示用来实现打分网络的神经网络,sc(y1),

,sc(y
n
)分别表示各时间步输出的单词的概率。从公式(7)可以看出,通过将所述目标语言第一输出文本中各单词的出现概率的平均值和第一分类结果作为输入提供至打分网络fnn,可以输出与第一输出文本对应的第一分数。并且,对于完成训练的打分网络来说,第一分数能够正确地体现第一输出文本的翻译质量。
[0104]
类似地,将与所述第二翻译方向对应的、各时间步从解码网络的隐藏层输出的中间向量输入至所述分类网络,其中各时间步分别与目标语言第二输出文本中的各单词对应,并且从所述分类网络输出第二分类结果,其中所述第二分类结果指示从所述单个解码网络输出的目标语言第二输出文本中各单词的输出顺序。然后,将基于所述目标语言第二输出文本中各单词的出现概率的值和第二分类结果输入到打分网络,并且从所述打分网络输出第二分数。
[0105]
最后,在步骤s608,选择第一分数和第二分数中较大的一个所对应的输出文本作为目标语言输出文本。
[0106]
因此,在该另一个实施例中,在无需用户参与的情况下,能够在对应于两种翻译方向的输出文本之中动态地选择更好的一个,作为最终的译文输出。
[0107]
在该另一实施例中,解码网络的训练方式与上文中所述的一个实施例中解码网络的训练方式完全相同,将上文中描述的内容完全适用于该另一实施例中解码网络的训练。并且,为了避免冗余起见,这里不再赘述。
[0108]
与上文中所述的解码网络、分类网络类似地,打分网络在使用之前也需要进行训练。接下来,将参照图7描述所述打分网络的具体训练过程。如图7所示,可以通过以下步骤来训练所述打分网络。
[0109]
首先,在步骤s701,对源语言训练输入文本执行处理,以产生与所述源语言训练输入文本中的各源语言单词对应的多个训练向量。
[0110]
然后,在步骤s702,对所述多个训练向量进行编码以产生多个编码训练向量。
[0111]
接下来,在步骤s703,将所述多个编码训练向量以及指示一个翻译方向的信息输入至单个解码网络。
[0112]
然后,在步骤s704,将与所述一个翻译方向对应的、各时间步从解码网络的隐藏层输出的中间向量输入至分类网络,并且从所述分类网络输出分类结果,其中所述分类结果指示从所述单个解码网络输出的目标语言训练输出文本中各单词的输出顺序。
[0113]
然后,在步骤s705,将基于所述目标语言训练输出文本中各单词的出现概率的值和分类结果输入到打分网络,并且从所述打分网络输出训练分数。在训练开始时,打分网络输出的训练分数是不准确的。
[0114]
接下来,在步骤s706,计算所述解码网络输出的目标语言训练输出文本与目标语言正解文本之间的相似度。例如,可以采用作为机器翻译的自动评测方法的bleu(bilingual evaluation understudy)算法来计算所述相似度。机器翻译的译文越接近人工翻译(即,目标语言正解文本)的结果,则它的翻译质量越高,得到的bleu分数也就越高。
[0115]
最后,在步骤s707,基于表示所述训练分数与所述相似度之间的差异的第三损失函数,调整所述打分网络中各节点的参数。也就是说,通过以作为评价目标语言训练输出文本的翻译质量的准确标准的相似度(如,bleu分数)作为校准打分网络输出的分数的参考,从而在经过预定次数的训练之后,打分网络能够输出正确评价解码网络输出的译文的翻译质量的分数。
[0116]
在上文中描述了根据本公开的两种实施例的机器翻译方法。在一个实施例中,解码网络基于输入的翻译方向而输出对应的目标语言输出文本(译文),即:解码网络最终输出的译文是与最初用户指示的翻译方向有关的。在另一个实施例中,分别向解码网络输入两种不同的翻译方向,并且在对应于两种不同的翻译方向的两种不同译文之中选择翻译质量更好的一个,作为最终的译文输出。也就是说,在该另一个实施例中,可以认为不需要向解码网络输入翻译方向。
[0117]
在解码网络的训练中,除了对于源语言训练输入文本的人工翻译文本可以作为目标语言正解文本之外,所述目标语言正解文本还可以进一步包括当输入相同的源语言输入文本时从另一解码网络输出的目标语言输出文本,其中所述另一解码网络的网络规模大于所述解码网络的网络规模。这里,网络规模是指诸如节点数量、网络层数之类的网络参数。当然,所述另一解码网络是已经训练好的网络。
[0118]
例如,在上文中所述的一个实施例中,假设x
(t)
为一个源语言训练输入文本,且y
(t)
为与之对应的人工翻译译文。以θ表示解码网络的参数,并且以θ

表示规模更大的另一解码网络的参数。当用户指示的翻译方向为从左向右,且将x
(t)
输入至另一解码网络θ

时,产生的目标语言输出文本为在这种情况下,可以将y
(t)
和均作为训练解码网络θ时的正解文本。例如,此时的损失函数可以以如下公式(8)表示。
[0119][0120]
其中,t表示训练样本的数量。
[0121]
类似地,当用户指示的翻译方向为从右向左,且将x
(t)
输入至另一解码网络θ

时,产生的目标语言输出文本为在这种情况下,可以将y
(t)
和均作为训练解码网络θ时的正解文本。例如,此时的损失函数可以以如下公式(9)表示。
[0122][0123]
另外,在上文中所述的另一个实施例中,由于最终的输出文本是在对应于两种翻译方向的输出文本之中选择的,因此在这种情况下,可以将y
(t)
、和均作为训练解码网络θ时的正解文本。例如,此时的损失函数可以以如下公式(10)表示。
[0124][0125]
由于在某些情况下作为正解的人工翻译文本可能是难以达到的,相比之下,来自另一解码网络的目标语言输出文本可能是更容易达到的,因此通过增加更大的另一解码网络的输出作为正解,能够实现从规模更大的另一解码网络到规模更小的解码网络的知识迁
移,实现用于学习的知识的多样性。例如,更大的另一解码网络可以是在大型设备上运行的解码网络,而更小的该解码网络可以是在小型便携式设备上运行的解码网络。从而,通过将更大的另一解码网络学习到的知识直接迁移到更小的解码网络,能够有效地缩减更小的解码网络训练完成的时间,并且能够避免解码网络的损失函数一直不能收敛的情况出现。
[0126]
如上文中所述,根据本公开的解码网络可以作为规模更小的解码网络应用更大规模的另一解码网络的目标语言输出文本作为正解来执行训练。另一方面,根据本公开的解码网络在完成训练后,其输出的目标语言输出文本也可以类似地作为正解文本应用于更小规模的解码网络的训练处理。
[0127]
具体来说,将从所述解码网络输出的目标语言输出文本作为与源语言输入文本对应的目标语言正解文本,应用于另一解码网络的训练处理,其中所述另一解码网络的网络规模小于所述解码网络的网络规模。
[0128]
并且,通过实验证明,在使用相同的训练数据训练网络的情况下,与现有技术的方案相比,根据本公开的各实施例的机器翻译方法能够在保持相同的解码速度的前提下,进一步将bleu分数提高大约1至2.5分。
[0129]
在上文中参照附图详细描述了根据本公开的各实施例的机器翻译方法的具体过程。接下来,将参照图8描述根据本公开的一个实施例的机器翻译设备。
[0130]
如图8所示,所述机器翻译设备800包括:预处理单元801、编码单元802以及解码单元803。
[0131]
预处理单元801用于对源语言输入文本执行处理,以产生与所述源语言输入文本中的各源语言单词对应的多个向量。由于现有的机器学习方法往往无法直接处理文本数据,因此在输入到后续的各网络之前,需要先将目标语言输入文本转换为数值型数据。例如,源语言输入文本可以是一个句子。对句子执行分词处理以将句子分割为多个单词,然后将多个单词分别转换为特定维度的词向量。例如,可以通过词嵌入(word embedding)的方式来实现这种转换。
[0132]
编码单元802用于对所述多个向量进行编码以产生多个编码向量。例如,可以通过上文中参照图2所述的编码网络来执行所述编码。
[0133]
解码单元803用于将所述多个编码向量以及指示翻译方向的信息输入至单个解码网络,并且从所述单个解码网络输出与源语言输入文本对应的目标语言输出文本,其中,所述输出文本中包括的目标语言单词的输出顺序与所述翻译方向一致,其中当向所述单个解码网络输入的信息所指示的翻译方向改变时,所述单个解码网络中各节点的参数不变。
[0134]
这里,如上文中所述,翻译方向是由用户指定的。例如,当用户希望解码网络按照从左向右的顺序输出译文文本时,则向解码网络输入指示从左向右的翻译方向的信息。或者,当用户希望解码网络从右向左的顺序输出译文文本时,则向解码网络输入指示从右向左的翻译方向的信息。例如,指示翻译方向的信息可以是一个多维特征向量(如,128维)。该多维特征向量中各元素的值是随机确定的,并且对于同一翻译方向是固定的。
[0135]
这里,需要指出的是,当向所述单个解码网络输入的信息所指示的翻译方向改变时,所述单个解码网络中各节点的参数不变。
[0136]
例如,当向所述单个解码网络输入的信息所指示的翻译方向为第一翻译方向时所述单个解码网络中各节点的参数与当向所述单个解码网络输入的信息所指示的翻译方向
为第而翻译方向时所述单个解码网络中各节点的参数相同。换言之,使用同一个解码网络,既可以实现按照第一翻译方向的目标语言文本输出,也可以实现按照第二翻译方向的目标语言文本输出。从而,与现有技术中针对固定翻译方向单独构造并训练解码网络的方案相比,能够极大地降低时间成本和软硬件成本。
[0137]
所述解码网络按照预定的处理时间间隔依次输出译文(即,目标语言输出文本)中的各单词。在第一时间步(time step),如果输入至解码网络的信息所指示的翻译方向为从左向右,那么所述解码网络输出从左边起的第一个目标语言单词。然后,在距离第一时间步预定的处理时间间隔的第二时间步,所述解码网络继续输出从左边起的第二个目标语言单词。以此类推,直至所述解码网络输出最后一个目标语言单词为止。类似地,在第一时间步(timestep),如果输入至解码网络的信息所指示的翻译方向为从右向左,那么所述解码网络输出从右边起的第一个目标语言单词。然后,在距离第一时间步预定的处理时间间隔的第二时间步,所述解码网络继续输出从右边起的第二个目标语言单词。以此类推,直至所述解码网络输出最后一个目标语言单词为止。
[0138]
并且,需要指出的是,当前时间步的输出会在下一个时间步解码的时候进一步作为输入反馈给解码网络的最底层。换言之,除了来自解码网络的编码向量和指示翻译方向的信息作为输入之外,解码网络还可以进一步基于解码网络的历史输出来产生当前输出。
[0139]
此外,如上文中所述,解码网络在每一个时间步输出多个预测向量,其中每一个预测向量包括目标语言词库中的各单词在一个时间步作为目标语言输出文本中的单词的概率,且各时间步分别与目标语言输出文本中的各单词对应。在每一个时间步,选择与该时间步对应的预测向量中概率最大的一个元素所对应的词库中的单词作为译文输出。
[0140]
在上文中,描述了根据本公开的机器翻译设备的具体配置,以及能够针对不同的翻译方向共享相同的节点参数的单个解码网络。上文中所述的机器翻译设备是基于完成训练的解码网络来执行翻译的。因此,所述设备还可以进一步包括训练单元804,用于通过执行以下处理来训练所述解码网络:对源语言训练输入文本执行处理,以产生与所述源语言训练输入文本中的各源语言单词对应的多个训练向量;对所述多个训练向量进行编码以产生多个编码训练向量;将所述多个编码训练向量以及指示翻译方向的信息输入至单个解码网络;分别在多个时间步从所述单个解码网络输出多个训练预测向量,其中每一个训练预测向量包括目标语言词库中的各单词在一个时间步作为目标语言输出文本中的单词的概率,且各时间步分别与目标语言输出文本中的各单词对应;基于与所述翻译方向对应的、目标语言正解文本在多个时间步应该输出的单词,确定多个正解向量,其中每一个正解向量包括目标语言词库中的各单词在一个时间步作为目标语言输出文本中的单词的概率,并且与该时间步应该输出的单词对应的概率最大;以及至少基于表示训练预测向量与相应的正解向量之间的差异的第一损失函数,调整所述解码网络中各节点的参数。
[0141]
此外,从上文中的描述可以看出,指示翻译方向的信息对于第一个时间步输出的目标语言单词的影响是最大的。尽管在此后的各时间步,指示翻译方向的信息还会作为输入提供到解码网络,但是随着时间的推移,由于更大的权重将赋予较近的历史输出,因此指示翻译方向的信息的权重将越来越小,换言之,指示翻译方向的信息对于输出的目标语言单词的影响越来越小。也就是说,在共享同一个解码网络的架构中,尤其后续时间步的输出对于翻译方向是不敏感的,并且可能丢失关于翻译方向的信息。因此,作为另一种可能的实
施方式,在针对所述单个解码网络的训练过程中,还可以进一步增加一个分类网络,用于辅助地训练所述解码网络。
[0142]
具体来说,所述单个解码网络包括隐藏层,并且所述训练单元804进一步被配置为通过执行以下处理来训练所述解码网络:将与所述翻译方向对应的、各时间步从解码网络的隐藏层输出的中间向量输入至分类网络,并且从所述分类网络输出分类结果,其中所述分类结果指示从所述单个解码网络输出的目标语言训练输出文本中各单词的输出顺序;基于所述输出顺序与所述翻译方向的比较,进一步调整所述解码网络中各节点的参数。这里,翻译方向是输入至解码网络的信息所指示的方向。
[0143]
从解码网络的隐藏层输出的中间向量为上文中参照图4所述的中间向量401,且隐藏层是指全连接层之前的最顶部隐藏层。所述分类网络可以通过一个卷积神经网络(convolutional neural networks,cnn)来实现。
[0144]
具体来说,在将所述特定顺序设置为从左向右的顺序的情况下,如果分类网络输出的概率值为1,则目标语言训练输出文本中各单词的输出顺序为从左向右的顺序;如果分类网络输出的概率值为0,则目标语言训练输出文本中各单词的输出顺序为从右向左的顺序;如果分类网络输出的概率值为0到1之间的值且该值更接近于1,则目标语言训练输出文本中各单词的输出顺序为大致从左向右的顺序,其中少部分单词的输出顺序错乱;如果分类网络输出的概率值为0到1之间的值且该值更接近于0,则目标语言训练输出文本中各单词的输出顺序为大致从右向左的顺序,其中少部分单词的输出顺序错乱。
[0145]
也就是说,通过分类网络来进一步纠正对于翻译方向不敏感的解码网络。具体来说,如果基于源语言训练输入文本和用户指示的翻译方向,经分类网络输出的分类结果指示目标语言训练输出文本中各单词的输出顺序与输入的翻译方向一致,例如,用户指示的翻译方向为从左向右,且分类网络输出的目标语言训练输出文本中各单词的输出顺序为从左向右的顺序的概率值为1,那么认为解码网络不需要进一步调整。另一方面,如果基于源语言训练输入文本和用户指示的翻译方向,经分类网络输出的分类结果指示目标语言训练输出文本中各单词的输出顺序与输入的翻译方向相反,例如,用户指示的翻译方向为从左向右,且分类网络输出的目标语言训练输出文本中各单词的输出顺序为从左向右的顺序的概率值为0,那么认为解码网络需要进行较大的调整。或者,如果基于源语言训练输入文本和用户指示的翻译方向,经分类网络输出的分类结果指示目标语言训练输出文本中各单词的输出顺序与输入的翻译方向大体一致,例如,用户指示的翻译方向为从左向右,且分类网络输出的目标语言训练输出文本中各单词的输出顺序为从左向右的顺序的概率值为0.8,那么认为解码网络需要进行微调。
[0146]
因此,在这种实施方式中,通过进一步增加分类网络,可以学习或利用翻译方向信息,使得解码网络的目标语言单词的实际输出顺序能够逐渐地训练到与输入的、用户指示的翻译方向一致。
[0147]
与解码网络类似地,分类网络也是需要训练的。例如,所述训练单元804可以通过以下处理来训练所述分类网络:基于表示分类网络输出的分类结果与所述翻译方向之间的差异的第二损失函数,调整所述分类网络中各节点的参数。这里,所述翻译方向是输入至解码网络的信息所指示的方向。在这种情况下,以用户指示的、输入至解码网络的信息所指示的方向作为分类网络的近似正解。如上文中所述,分类网络输出的分类结果是指示单词输
出顺序为从左向右的概率值。例如,如果用户指示的、输入至解码网络的信息所指示的方向为从左向右,且对于一训练数据,分类网络输出的概率值为0.8,那么以1作为分类网络的近似正解来调整分类网络中各节点的参数。或者,又如,如果用户指示的、输入至解码网络的信息所指示的方向为从右向左,且对于一训练数据,分类网络输出的概率值为0.8,则以0作为分类网络的近似正解来调整分类网络中各节点的参数。
[0148]
或者,作为另一种可能的实施方式,也可以通过以下处理来训练所述分类网络:基于分类结果与实际的单词输出顺序之间的差异来调整,调整所述分类网络中各节点的参数。在这种实施方式下,不再使用用户指示的、输入至解码网络的信息所指示的方向作为分类网络的近似正解。在训练过程中,需要预先针对实际的单词输出顺序,计算该输出顺序为特定翻译方向的概率值,作为分类网络的分类结果的正解概率值。例如,如果用户指示的、输入至解码网络的信息所指示的方向为从左向右,例如,各时间步依次输出y1、y2、y3、y4,并且解码网络实际输出的单词顺序为y1、y3、y2、y4,那么输出顺序为从左向右的概率值为0.5。在这种情况下,如果分类网络输出的概率值为0.8,则以0.5作为分类网络的正解来调整分类网络中各节点的参数。
[0149]
所述分类网络的训练可以在所述解码网络的训练之前独立地进行。或者,所述分类网络也可以与所述解码网络同时训练。在同时训练的情况下,两个网络相互制约、相互调整,直至二者的损失函数均收敛为止,训练结束。
[0150]
在上文中描述了向解码网络输入一个用户指定的翻译方向,并且解码网络按照所述翻译方向,输出目标语言单词的实施例。然而,本发明并不仅限于此。
[0151]
根据本公开的另一实施例,所述解码单元803可以进一步被配置为:将所述多个编码向量以及指示第一翻译方向的信息输入至单个解码网络,并且从所述单个解码网络输出目标语言第一输出文本,其中,所述第一输出文本中包括的目标语言单词的输出顺序与所述第一翻译方向一致;以及将所述多个编码向量以及指示第二翻译方向的信息输入至单个解码网络,并且从所述单个解码网络输出目标语言第二输出文本,其中,所述第二输出文本中包括的目标语言单词的输出顺序与所述第二翻译方向一致。
[0152]
可见,在该另一实施例中,所述单个解码网络可以针对两个翻译方向分别输出两种目标语言输出文本。
[0153]
然后,解码单元803可以进一步包括选择单元(图中未示出),用于基于预定规则,选择这两种输出文本中较优的一个作为最终的译文输出。
[0154]
具体来说,选择单元被配置为执行以下处理:将与所述第一翻译方向对应的、各时间步从解码网络的隐藏层输出的中间向量输入至分类网络,其中各时间步分别与目标语言第一输出文本中的各单词对应,并且从所述分类网络输出第一分类结果,其中所述第一分类结果指示从所述单个解码网络输出的目标语言第一输出文本中各单词的输出顺序;将与所述第二翻译方向对应的、各时间步从解码网络的隐藏层输出的中间向量输入至所述分类网络,其中各时间步分别与目标语言第二输出文本中的各单词对应,并且从所述分类网络输出第二分类结果,其中所述第二分类结果指示从所述单个解码网络输出的目标语言第二输出文本中各单词的输出顺序;将基于所述目标语言第一输出文本中各单词的出现概率的值和第一分类结果输入到打分网络,并且从所述打分网络输出第一分数;将基于所述目标语言第二输出文本中各单词的出现概率的值和第二分类结果输入到打分网络,并且从所述
打分网络输出第二分数;以及选择第一分数和第二分数中较大的一个所对应的输出文本作为目标语言输出文本。
[0155]
因此,在该另一个实施例中,在无需用户参与的情况下,能够在对应于两种翻译方向的输出文本之中动态地选择更好的一个,作为最终的译文输出。
[0156]
与上文中所述的解码网络、分类网络类似地,打分网络在使用之前也需要进行训练。
[0157]
具体来说,训练单元804可以通过以下处理来训练所述打分网络:对源语言训练输入文本执行处理,以产生与所述源语言训练输入文本中的各源语言单词对应的多个训练向量;对所述多个训练向量进行编码以产生多个编码训练向量;将所述多个编码训练向量以及指示一个翻译方向的信息输入至单个解码网络;将与所述一个翻译方向对应的、各时间步从解码网络的隐藏层输出的中间向量输入至分类网络,并且从所述分类网络输出分类结果,其中所述分类结果指示从所述单个解码网络输出的目标语言训练输出文本中各单词的输出顺序;将基于所述目标语言训练输出文本中各单词的出现概率的值和分类结果输入到打分网络,并且从所述打分网络输出训练分数;计算所述解码网络输出的目标语言训练输出文本与目标语言正解文本之间的相似度;基于表示所述训练分数与所述相似度之间的差异的第三损失函数,调整所述打分网络中各节点的参数。
[0158]
在上文中描述了根据本公开的两种实施例的机器翻译设备。在一个实施例中,解码网络基于输入的翻译方向而输出对应的目标语言输出文本(译文),即:解码网络最终输出的译文是与最初用户指示的翻译方向有关的。在另一个实施例中,分别向解码网络输入两种不同的翻译方向,并且在对应于两种不同的翻译方向的两种不同译文之中选择翻译质量更好的一个,作为最终的译文输出。也就是说,在该另一个实施例中,可以认为不需要向解码网络输入翻译方向。
[0159]
在解码网络的训练中,除了对于源语言训练输入文本的人工翻译文本可以作为目标语言正解文本之外,所述目标语言正解文本还可以进一步包括当输入相同的源语言输入文本时从另一解码网络输出的目标语言输出文本,其中所述另一解码网络的网络规模大于所述解码网络的网络规模。这里,网络规模是指诸如节点数量、网络层数之类的网络参数。当然,所述另一解码网络是已经训练好的网络。
[0160]
另一方面,根据本公开的解码网络在完成训练后,其输出的目标语言输出文本也可以类似地作为正解文本应用于更小规模的解码网络的训练处理。
[0161]
具体来说,将从所述解码网络输出的目标语言输出文本作为与源语言输入文本对应的目标语言正解文本,应用于另一解码网络的训练处理,其中所述另一解码网络的网络规模小于所述解码网络的网络规模。
[0162]
由于根据本公开的实施例的机器翻译设备与上文中所述的机器翻译方法是完全对应的,因此在关于机器翻译设备的描述中,并未对展开很多细节内容。本领域的技术人员可以理解,在上文中所述的机器翻译方法的所有细节内容都可以类似地应用于机器翻译设备中。
[0163]
此外,根据本公开实施例的方法或设备也可以借助于图9所示的计算设备900的架构来实现。如图9所示,计算设备900可以包括总线910、一个或多个cpu920、只读存储器(rom)930、随机存取存储器(ram)940、连接到网络的通信端口950、输入/输出组件960、硬盘
970等。计算设备900中的存储设备,例如rom 930或硬盘970可以存储本公开提供的机器翻译方法的处理和/或通信使用的各种数据或文件以及cpu所执行的程序指令。当然,图9所示的架构只是示例性的,在实现不同的设备时,根据实际需要,可以省略图9示出的计算设备中的一个或多个组件。
[0164]
本公开的实施例也可以被实现为计算机可读存储介质。根据本公开实施例的计算机可读存储介质上存储有计算机可读指令。当所述计算机可读指令由处理器运行时,可以执行参照以上附图描述的根据本公开实施例的机器翻译方法。所述计算机可读存储介质包括但不限于例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。
[0165]
迄今为止,已经参照图1到图9详细描述了根据本公开的各实施例的机器翻译方法和机器翻译设备。在根据本公开的各实施例的机器翻译方法和机器翻译设备中,使用同一个解码网络,既可以实现按照第一翻译方向的目标语言文本输出,也可以实现按照第二翻译方向的目标语言文本输出。从而,与现有技术中针对固定翻译方向单独构造并训练解码网络的方案相比,能够极大地降低时间成本和软硬件成本;并且,通过在解码网络的训练中进一步增加分类网络,能够学习或利用翻译方向信息,使得解码网络的目标语言单词的实际输出顺序能够逐渐地训练到与输入的、用户指示的翻译方向一致;此外,在无需用户参与的情况下,能够在两种对应于不同翻译方向的翻译结果之中动态地选择更好的一个,作为最终的译文输出;最后,通过将更大的另一解码网络学习到的知识直接迁移到更小的解码网络,实现了用于学习的知识的多样性,能够有效地缩减更小的解码网络训练完成的时间,并且能够避免解码网络的损失函数一直不能收敛的情况出现。
[0166]
需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0167]
最后,还需要说明的是,上述一系列处理不仅包括以这里所述的顺序按时间序列执行的处理,而且包括并行或分别地、而不是按时间顺序执行的处理。
[0168]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过软件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁盘、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0169]
以上对本发明进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1