一种翻译方法及装置、翻译模型的训练方法及装置与流程

文档序号:17951801发布日期:2019-06-19 00:06阅读:157来源:国知局
一种翻译方法及装置、翻译模型的训练方法及装置与流程

本申请涉及人工智能技术领域,特别涉及一种翻译方法及装置、翻译模型的训练方法及装置、计算设备和计算机可读存储介质。



背景技术:

随着计算机运算能力的提升,神经网络的应用越来越广泛,例如构建翻译模型,以实现源语言到目标语言的转换。一般地,翻译模型的架构包括:编码层(encoder)—解码层(decoder)。编码层实现对待翻译的源语句进行编码生成向量,解码层实现对源语句的向量进行解码生成对应的目标语句。

翻译模型是利用训练集进行优化,获得一个对于全体训练集数据的训练好的模型,然后使用训练好的翻译模型对新输入的语句进行编码和解码,从而获得新输入的语句对应的翻译语句。

传统的翻译模型大多会使用卷积神经网络(convolutionalneuralnetworks,cnn)模型或循环神经网络(recurrentneuralnetworks,rnn)模型作为编码层—解码层的模型基础。谷歌的基于注意力机制的翻译模型并没有用任何cnn或者rnn的结构,该模型可以高度并行地工作,所以在提升翻译性能的同时训练速度也特别快。

参见图1,图1为现有的一种谷歌翻译模型的架构。谷歌翻译模型分为编码层和解码层两部分。编码层由6个相同的编码堆栈层叠加于一起,解码层由6个相同的解码堆栈层叠加于一起。最底层的编码堆栈层接收输入的语句向量,其他的编码堆栈层的输入向量源自于上一个编码堆栈层的输出向量。将最后一个编码堆栈层的输出向量作为解码层的输入向量输入至每个解码堆栈层。

现有技术的方法,每个编码堆栈层的输入依赖于前一个编码堆栈层的输出向量,每个编码堆栈层的输出即为该编码堆栈层的编码向量;每个解码堆栈层的输入依赖于前一个解码堆栈层的输出向量,每个解码堆栈层的输出即为该解码堆栈层的解码向量。并没有对编码向量或解码向量之间的信息进行高效地聚合,这会对最终的翻译效果造成不利的影响。



技术实现要素:

有鉴于此,本申请实施例提供了一种翻译方法及装置、翻译模型的训练方法及装置、计算设备和计算机可读存储介质,以解决现有技术中存在的技术缺陷。

本申请实施例公开了一种翻译方法,用于翻译模型,所述翻译模型包括编码层和解码层,所述编码层包括a个顺次连接的第一堆栈层,其中,a为大于1的正整数;

所述方法包括:

根据输入的待翻译语句,得到每个第一堆栈层对应的输出向量;

将所述第一堆栈层对应的输出向量进行聚合,得到每个第一堆栈层对应的编码向量,并根据每个第一堆栈层对应的编码向量确定编码层的输出向量;

将编码层的输出向量输入至解码层,得到解码层的解码向量,并根据所述解码层的解码向量得到翻译语句。

可选地,所述编码层包括第一隐藏层;

根据输入的待翻译语句,得到每个第一堆栈层对应的输出向量,包括:

s102、将所述待翻译语句输入至所述第一隐藏层,生成第一向量;

s104、将所述第一向量输入至第1个第一堆栈层,得到第1个所述第一堆栈层的输出向量;

s106、将第b-1个所述第一堆栈层的输出向量输入至第b个第一堆栈层,得到第b个所述第一堆栈层对应的输出向量,其中2≤b≤a;

s108、将b自增1,判断自增1后的b是否大于a,若是,则结束,若否,继续执行步骤s106。

可选地,所述翻译模型包括:线性层、全连接层和归一化层;

将所述第一堆栈层对应的输出向量进行聚合,得到每个第一堆栈层对应的编码向量,包括:

将a个第一堆栈层的输出向量经过线性层聚合,得到a个第一堆栈层的线性向量;

将a个第一堆栈层的线性向量经过全连接层处理,得到每个第一堆栈层对应的全连接向量;

将每个第一堆栈层对应的全连接向量经过归一化层处理,得到每个第一堆栈层对应的编码向量。

可选地,将a个第一堆栈层的输出向量经过线性层聚合,得到a个第一堆栈层的线性向量,包括:

将第1个第一堆栈层的输出向量经过线性层处理,得到第1个第一堆栈层的线性向量;

将第b-1个第一堆栈层的输出向量输入至第b个第一堆栈层,得到第b个第一堆栈层对应的输出向量,然后将第b-1个和第b个第一堆栈层对应的输出向量经过线性层聚合,得到第b个第一堆栈层的线性向量。

可选地,将第b-1个和第b个第一堆栈层对应的输出向量经过线性层聚合,得到第b个第一堆栈层的线性向量,包括:

将第b个第一堆栈层对应的输出向量和第b-1个第一堆栈层对应的输出向量进行求和,然后乘以权重系数,得到第b个第一堆栈层的线性向量。

可选地,根据每个第一堆栈层对应的编码向量确定编码层的输出向量,包括:将最后一个或多个第一堆栈层对应的编码向量作为编码层的输出向量。

可选地,所述解码层包括m个第二堆栈层组,其中,m≥2;

将编码层的输出向量输入至解码层,得到解码层的解码向量,包括:

将编码层的输出向量分别输入m个第二堆栈层组,得到每个第二堆栈层组的输出向量;

将m个第二堆栈层组的输出向量进行聚合,得到解码层的解码向量。

可选地,所述解码层包括第二隐藏层;

将编码层的输出向量输入m个第二堆栈层组,得到每个第二堆栈层组的输出向量,包括:

s202、将编码层的输出向量和所述待翻译语句对应的参考向量输入第1个第二堆栈层组,得到第1个第二堆栈层组的输出向量;

s204、将编码层的输出向量和第i-1个第二堆栈层组的输出向量输入第i个第二堆栈层组,得到第i个第二堆栈层组的输出向量;其中,2≤i≤m;

s206、将i自增1,判断自增1后的i是否大于m,若是,则结束,若否,继续执行步骤s204。

可选地,所述编码层的输出向量为至少两个;

步骤s202包括:将编码层的至少一个输出向量和所述待翻译语句对应的参考向量输入第1个第二堆栈层组,得到第1个第二堆栈层组的输出向量;

步骤s204包括:将编码层的至少一个输出向量和第i-1个第二堆栈层组的输出向量输入第i个第二堆栈层组,得到第i个第二堆栈层组的输出向量。

可选地,每个第二堆栈层组包括n个第二堆栈层分组;

所述步骤s202包括:

s302、将编码层的输出向量和所述待翻译语句对应的参考向量输入第1个第二堆栈层分组,得到第1个第二堆栈层分组的输出向量;

s304、将编码层的输出向量和第j-1个第二堆栈层分组的输出向量输入第j个第二堆栈层分组,得到第j个第二堆栈层分组的输出向量,其中,2≤j≤n;

s306、将j自增1,判断自增1后的j是否大于n,若是,则执行步骤s308,若否,继续执行步骤s304;

s308、将n个第二堆栈层分组的输出向量进行聚合,得到第1个第二堆栈层组的输出向量。

可选地,所述编码层的输出向量为至少两个;

步骤s302包括:将编码层的至少一个输出向量和所述待翻译语句对应的参考向量输入第1个第二堆栈层分组,得到第1个第二堆栈层分组的输出向量;

步骤s304包括:将编码层的至少一个输出向量和第j-1个第二堆栈层分组的输出向量输入第j个第二堆栈层分组,得到第j个第二堆栈层分组的输出向量。

可选地,每个第二堆栈层组包括n个第二堆栈层分组;

所述步骤s204包括:

s402、将编码层的输出向量和第i-1个第二堆栈层组的输出向量输入第1个第二堆栈层分组,得到第1个第二堆栈层分组的输出向量;

s404、将编码层的输出向量和第j-1个第二堆栈层分组的输出向量输入第j个第二堆栈层分组,得到第j个第二堆栈层分组的输出向量,其中,2≤j≤n;

s406、将j自增1,判断自增1后的j是否大于n,若是,则执行步骤s408,若否,继续执行步骤s404;

s408、将n个第二堆栈层分组的输出向量进行聚合,得到第i个第二堆栈层组的输出向量。

可选地,所述编码层的输出向量为至少两个;

步骤s402包括:将编码层的至少一个输出向量和第i-1个第二堆栈层组的输出向量输入第1个第二堆栈层分组,得到第1个第二堆栈层分组的输出向量;

步骤s404包括:将编码层的至少一个输出向量和第j-1个第二堆栈层分组的输出向量输入第j个第二堆栈层分组,得到第j个第二堆栈层分组的输出向量。

可选地,每个第二堆栈层分组包括p个第二堆栈层;所述步骤s402包括:

s502、将编码层的其中一个输出向量和所述第i-1个第二堆栈层组的输出向量输入第1个第二堆栈层,得到第1个第二堆栈层的输出向量;

s504、将编码层的其中一个输出向量和第k-1个第二堆栈层的输出向量输入第k个第二堆栈层,得到第k个第二堆栈层的输出向量,其中,2≤k≤p;

s506、将k自增1,判断自增1后的k是否大于p,若是,则执行步骤s508,若否,继续执行步骤s504;

s508、将p个第二堆栈层的输出向量进行聚合,得到第1个第二堆栈层分组的输出向量。

可选地,每个第二堆栈层分组包括p个第二堆栈层;所述步骤s404包括:

s602、将编码层的其中一个输出向量和第j-1个第二堆栈层分组的输出向量输入第1个第二堆栈层,得到第1个第二堆栈层的输出向量;

s604、将编码层的其中一个输出向量和第k-1个第二堆栈层分组的输出向量输入第k个第二堆栈层,得到第k个第二堆栈层的输出向量,其中,2≤k≤p;

s606、将k自增1,判断自增1后的k是否大于p,若是,则执行步骤s608,若否,继续执行步骤s604;

s608、将p个第二堆栈层的输出向量进行聚合,得到第j个第二堆栈层分组的输出向量。

本申请实施例公开了一种翻译模型的训练方法,所述翻译模型包括编码层和解码层,所述编码层包括a个顺次连接的第一堆栈层,其中,a为大于1的正整数;

所述训练方法包括:

根据输入的目标语料中的第一语句,得到每个第一堆栈层对应的输出向量;

将所述第一堆栈层对应的输出向量进行聚合,得到每个第一堆栈层对应的编码向量,并根据每个第一堆栈层对应的编码向量确定编码层的输出向量;

将编码层的输出向量以及与第一语句对应的翻译后的第二语句均输入至解码层,得到解码层的解码向量,并根据解码向量得到解码向量的误差;

根据所述解码向量的误差继续训练所述翻译模型,直至达到训练停止条件。

可选地,所述解码向量的误差通过以下方法得到:将所述解码向量与预设的向量验证集进行对比,得到所述解码向量的误差。

可选地,所述训练停止条件包括:误差的变化率小于稳定阈值。

本申请实施例公开了一种翻译装置,设置于翻译模型,所述翻译模型包括编码层和解码层,所述编码层包括a个顺次连接的第一堆栈层,其中,a为大于1的正整数;所述装置包括:

输出向量获取模块,被配置为根据输入的待翻译语句,得到每个第一堆栈层对应的输出向量;

编码模块,被配置为将所述第一堆栈层对应的输出向量进行聚合,得到每个第一堆栈层对应的编码向量,并根据每个第一堆栈层对应的编码向量确定编码层的输出向量;

解码模块,被配置为将编码层的输出向量输入至解码层,得到解码层的解码向量,并根据所述解码层的解码向量得到翻译语句。

本申请实施例公开了一种翻译模型的训练装置,所述翻译模型包括编码层和解码层,所述编码层包括隐藏层和a个顺次连接的第一堆栈层,其中,a为大于1的正整数;所述训练装置包括:

输出向量训练模块,被配置为根据输入的目标语料中的第一语句,得到每个第一堆栈层对应的输出向量;

编码训练模块,被配置为将所述第一堆栈层对应的输出向量进行聚合,得到每个第一堆栈层对应的编码向量,并根据每个第一堆栈层对应的编码向量确定编码层的输出向量;

解码训练模块,被配置为将编码层的输出向量以及与第一语句对应的翻译后的第二语句均输入至解码层,得到解码层的解码向量,并根据解码向量得到解码向量的误差;

训练模块,被配置为根据所述解码向量的误差继续训练所述翻译模型,直至达到训练停止条件。

本申请实施例公开了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现如上所述的翻译方法或翻译模型的训练方法的步骤。

本申请实施例公开了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如上所述的翻译方法或翻译模型的训练方法的步骤。

本申请实施例公开了一种芯片,其存储有计算机指令,该指令被处理器执行时实现如上所述的翻译方法或翻译模型的训练方法的步骤。

本申请提供的翻译方法及装置,通过将第一堆栈层对应的输出向量进行聚合,得到每个第一堆栈层对应的编码向量,并根据每个第一堆栈层对应的编码向量确定编码层的输出向量;将编码层的输出向量输入至解码层,得到解码层的解码向量,并根据解码层的解码向量得到翻译语句,实现第一堆栈层的输出向量之间的聚合,最终提升翻译模型的性能。

其次,第一堆栈层的输出向量之间的聚合并非简单的拼合,而是利用线性层对第一堆栈层的输出向量进行聚合,然后加以全连接层以及归一化层生成最终的编码向量,以实现第一堆栈层之间的输出向量的高效聚合。

另外,对于第二堆栈层的输出向量之间的聚合并非简单的拼合,而是利用全连接层以及归一化层得到最终的编码向量,以实现第二堆栈层之间的输出向量的高效聚合。

本申请提供的翻译模型的训练方法及装置,将第一堆栈层对应的输出向量进行聚合,得到每个第一堆栈层对应的编码向量,并根据每个第一堆栈层对应的编码向量确定编码层的输出向量;将编码层的输出向量以及第二语句均输入至解码层,得到解码层的解码向量,并根据解码向量得到解码向量的误差;根据解码向量的误差继续训练翻译模型,从而可以在模型训练阶段,对第一堆栈层的输出向量进行有效地聚合,有助于提高翻译模型在使用阶段的翻译性能。

附图说明

图1是现有的一种谷歌翻译模型的架构示意图;

图2是本申请一实施例的计算设备的结构示意图;

图3是本申请一实施例的翻译方法的流程示意图;

图4是本申请一实施例的翻译方法的流程示意图;

图5是本申请一实施例的翻译方法的流程示意图;

图6是本申请一实施例的翻译方法的流程示意图;

图7是本申请一实施例的翻译方法的流程示意图;

图8是本申请一实施例的翻译方法的流程示意图;

图9是本申请一实施例的一种翻译模型的架构示意图;

图10是本申请一实施例的翻译模型的解码向量的生成示意图;

图11是本申请另一实施例的翻译模型的训练方法的流程示意图;

图12是本申请一实施例的翻译装置的结构示意图;

图13是本申请一实施例的翻译模型的训练装置的结构示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

首先,对本发明一个或多个实施例涉及的名词术语进行解释。

翻译模型:其主要思想是将待翻译语句经过编码层(encoder)编码成为一个编码向量,然后利用解码层(decoder)对编码向量进行解码,得到解码向量,然后将解码向量翻译成为对应的翻译语句。

谷歌翻译模型(googletransformer):谷歌提出的一种神经网络架构,用于机器翻译。

编码(encoder):将待翻译语句由文字转化为编码向量;

解码(decoder):将编码向量转化为翻译语句的语言文字。

在本申请中,提供了一种翻译方法及装置、翻译模型的训练方法及装置、计算设备和计算机可读存储介质,在下面的实施例中逐一进行详细说明。

图2是示出了根据本说明书一实施例的计算设备200的结构框图。该计算设备200的部件包括但不限于存储器210和处理器220。处理器220与存储器210通过总线230相连接,数据库250用于保存数据。

计算设备200还包括接入设备240,接入设备240使得计算设备200能够经由一个或多个网络260通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备240可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。

在本说明书的一个实施例中,计算设备200的上述部件以及图2中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图2所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备200可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备200还可以是移动式或静止式的服务器。

其中,处理器220可以执行图3所示方法中的步骤。图3示出了根据本申请一实施例的翻译方法的示意性流程图,用于翻译模型,该翻译模型包括编码层和解码层。其中,编码层包括第一隐藏层和a个第一堆栈层,且a个第一堆栈层顺次连接;解码层包括第二隐藏层和m个第二堆栈层组,且m个第二堆栈层组顺次连接,每个第二堆栈层组包括至少两个第二堆栈层分组,每个第二堆栈层分组包括至少两个第二堆栈层。

本申请一实施例的翻译方法包括下述步骤302~306:

302、根据输入的待翻译语句,得到每个第一堆栈层对应的输出向量。

具体地,步骤302包括下述步骤s3022~s3028:

s3022、将待翻译语句输入至第一隐藏层,得到第一向量。

s3024、将第一向量输入至第1个第一堆栈层,得到第1个第一堆栈层的输出向量。

s3026、将第b-1个所述第一堆栈层的输出向量输入至第b个第一堆栈层,得到第b个所述第一堆栈层对应的输出向量,其中,2≤b≤a。

s3028、将b自增1,判断自增1后的b是否大于a,若是,则结束,若否,继续执行步骤s3026。

304、将所述第一堆栈层对应的输出向量进行聚合,得到每个第一堆栈层对应的编码向量,并根据每个第一堆栈层对应的编码向量确定编码层的输出向量。

其中,翻译模型包括:线性层、全连接层和归一化层;

参见图4,步骤304中将第一堆栈层对应的输出向量进行聚合,得到每个第一堆栈层对应的编码向量,包括下述步骤402~408:

402、将a个第一堆栈层的输出向量经过线性层聚合,得到a个第一堆栈层的线性向量。

具体地,步骤402包括:

s4022、将第1个第一堆栈层的输出向量经过线性层处理,得到第1个第一堆栈层的线性向量。

可选地,步骤s4022包括:将第1个第一堆栈层对应的输出向量乘以权重系数,得到第1个第一堆栈层的线性向量。

s4024、将第b-1个第一堆栈层的输出向量输入至第b个第一堆栈层,得到第b个第一堆栈层对应的输出向量,然后将第b-1个和第b个第一堆栈层对应的输出向量经过线性层聚合,得到第b个第一堆栈层的线性向量。

本实施例中,步骤s4024包括:将第b个第一堆栈层对应的输出向量和第b-1个第一堆栈层对应的输出向量进行求和,然后乘以权重系数,得到第b个第一堆栈层的线性向量。

具体地,可以通过下述公式(1)实现:

y1=w1(x+y)(1)

其中,x代表第b个第一堆栈层对应的输出向量,y代表第b-1个第一堆栈层对应的输出向量,w1代表线性层的权重系数,y1代表第b个第一堆栈层的线性向量。

404、将a个第一堆栈层的线性向量经过全连接层处理,得到每个第一堆栈层对应的全连接向量。

需要说明的是,全连接层的每个节点分别与线性层的所有节点相连接。对于全连接层的每个节点的输出,需要将线性层的所有节点的输出分别乘以对应的权重系数、求和,并加上偏置系数得到。

对于本步骤404,每个第一堆栈层对应的全连接向量为将n个第一堆栈层的线性向量分别乘以权重系数,然后加上一个偏置系数得到。

具体地,每个第一堆栈层对应的全连接向量可以通过以下公式(2)来实现:

y2=∑w2*y1+d(2)

其中,y2代表每个第一堆栈层的全连接向量,

y1代表第1~b个第一堆栈层的线性向量,

w2代表全连接层的权重系数,需要说明的是,每个第一堆栈层对应有一组权重系数,每个第一堆栈层的线性向量对应一个权重系数,

d代表全连接层的偏移参数,每个第一堆栈层对应一个偏移参数。

406、将每个第一堆栈层对应的全连接向量经过归一化层处理,得到每个第一堆栈层对应的编码向量。

具体地,可以通过以下公式(3)来实现:

norm=(y2-mean)/variance(3)

其中,norm代表每个第一堆栈层的编码向量,y2代表每个第一堆栈层的全连接向量,mean代表归一化层的平均值,variance代表归一化层的标准差。

对于mean和variance参数的取值,可参见均值归一化(meannormalization)处理的过程。

由步骤s4022和s4024可见,对于第1个第一堆栈层,可以直接通过该第一堆栈层的输出向量得到对应的线性向量,而对于除去第1个之外的其他第一堆栈层对应的线性向量,需要根据该第一堆栈层的输出向量以及前一个第一堆栈层的输出向量聚合生成。

408、将b自增1,判断自增1后的b是否大于a,若是,则结束,若否,继续执行步骤406。

通过步骤304,可以获得每个第一堆栈层对应的编码向量。在获得每个第一堆栈层对应的编码向量后,根据每个第一堆栈层对应的编码向量确定编码层的输出向量。具体地,编码层的输出向量可以为:将最后一个或多个第一堆栈层对应的编码向量作为编码层的输出向量。

本实施例中,将多个编码向量作为编码层的输出向量输入至解码层可以有多种方法,前提是保证解码层的每个第二堆栈层均可以接收到输入的编码向量。例如,在一个具体实施方案中,第一堆栈层为6层,第二堆栈层为8层,将后2个第一堆栈层的编码向量输入至8个第二堆栈层。其中,可以将最后1个第一堆栈层的编码向量输入至后4个第二堆栈层,倒数第2个第一堆栈层的编码向量输入至前4个第二堆栈层。

需要解释的是,对于顺次连接的多个第一堆栈层,位置越靠前,即越接近起始的第一堆栈层,其编码向量则包含更多的语义信息;位置越靠后,即越接近最后的第一堆栈层,其编码向量则包含更多的语法信息。本实施例通过将最后多个第一堆栈层对应的编码向量输入至解码层,一方面可以在后续的解码过程中更加合理地利用语义和语法的信息,另一方面可以通过层编码向量的信息融合,增强解码层的解码能力。

306、将编码层的输出向量输入至解码层,得到解码层的解码向量,并根据所述解码层的解码向量得到翻译语句。

具体地,解码层包括m个第二堆栈层组,参见图5,步骤306包括下述步骤502~504:

502、将编码层的输出向量分别输入m个第二堆栈层组,得到每个第二堆栈层组的输出向量。

504、将m个第二堆栈层组的输出向量进行聚合,得到解码层的解码向量。

参见图6,步骤502包括下述步骤602~606:

602、将编码层的输出向量和所述待翻译语句对应的参考向量输入第1个第二堆栈层组,得到第1个第二堆栈层组的输出向量。

对于编码层的输出向量为至少两个的情形,步骤602包括:将编码层的至少一个输出向量和所述待翻译语句对应的参考向量输入第1个第二堆栈层组,得到第1个第二堆栈层组的输出向量。

需要说明的是,对于待翻译语句,包括至少一个待翻译词语。在翻译的过程中,依次得到至少一个待翻译词语对应的翻译词语。对于每个翻译词语,可以作为参考向量输入至第二嵌入层。

具体地,对于初始的第一个待翻译词语,参考向量为设定的初始值,可以为0;对于除去第一个待翻译词语的其他待翻译词语,参考向量为当前待翻译词语的前一个待翻译词语所对应的翻译词语。

例如对于“我爱中国”,如果当前待翻译词语为“爱”,那么参考向量为“我”对应的翻译词语“i”。

604、将编码层的输出向量和第i-1个第二堆栈层组的输出向量输入第i个第二堆栈层组,得到第i个第二堆栈层组的输出向量;其中,2≤i≤m。

对于编码层的输出向量为至少两个的情形,步骤604包括:将编码层的至少一个输出向量和第i-1个第二堆栈层组的输出向量输入第i个第二堆栈层组,得到第i个第二堆栈层组的输出向量。

606、将i自增1,判断自增1后的i是否大于m,若是,则结束,若否,继续执行步骤604。

以每个第二堆栈层组包括n个第二堆栈层分组为例,参见图7,步骤602包括:

702、将编码层的输出向量和所述待翻译语句对应的参考向量输入第1个第二堆栈层分组,得到第1个第二堆栈层分组的输出向量。

对于编码层的输出向量为至少两个的情形,步骤702包括:将编码层的至少一个输出向量和所述待翻译语句对应的参考向量输入第1个第二堆栈层分组,得到第1个第二堆栈层分组的输出向量。

704、将编码层的输出向量和第j-1个第二堆栈层分组的输出向量输入第j个第二堆栈层分组,得到第j个第二堆栈层分组的输出向量,其中,2≤j≤n。

对于编码层的输出向量为至少两个的情形,步骤704包括:将编码层的至少一个输出向量和第j-1个第二堆栈层分组的输出向量输入第j个第二堆栈层分组,得到第j个第二堆栈层分组的输出向量。

706、将j自增1,判断自增1后的j是否大于n,若是,则执行步骤708,若否,继续执行步骤704。

708、将n个第二堆栈层分组的输出向量进行聚合,得到第1个第二堆栈层组的输出向量。

通过上述步骤702~708,可以得到第1个第二堆栈层组的输出向量。

以每个第二堆栈层组包括n个第二堆栈层分组为例,参见图8,步骤604包括:

802、将编码层的输出向量和第i-1个第二堆栈层组的输出向量输入第1个第二堆栈层分组,得到第1个第二堆栈层分组的输出向量。

对于编码层的输出向量为至少两个的情形,步骤802包括:将编码层的至少一个输出向量和第i-1个第二堆栈层组的输出向量输入第1个第二堆栈层分组,得到第1个第二堆栈层分组的输出向量。

804、将编码层的输出向量和第j-1个第二堆栈层分组的输出向量输入第j个第二堆栈层分组,得到第j个第二堆栈层分组的输出向量,其中,2≤j≤n。

对于编码层的输出向量为至少两个的情形,步骤804包括:将编码层的至少一个输出向量和第j-1个第二堆栈层分组的输出向量输入第j个第二堆栈层分组,得到第j个第二堆栈层分组的输出向量。

806、将j自增1,判断自增1后的j是否大于n,若是,则执行步骤808,若否,继续执行步骤804。

808、将n个第二堆栈层分组的输出向量进行聚合,得到第i个第二堆栈层组的输出向量。

通过上述步骤802~808,可以得到第i个第二堆栈层组的输出向量。

以每个第二堆栈层分组包括p个第二堆栈层为例,步骤802包括:

s8022、将编码层的其中一个输出向量和所述第i-1个第二堆栈层组的输出向量输入第1个第二堆栈层,得到第1个第二堆栈层的输出向量。

s8024、将编码层的其中一个输出向量和第k-1个第二堆栈层的输出向量输入第k个第二堆栈层,得到第k个第二堆栈层的输出向量,其中,2≤k≤p。

s8026、将k自增1,判断自增1后的k是否大于p,若是,则执行步骤s8028,若否,继续执行步骤s8024。

s8028、将p个第二堆栈层的输出向量进行聚合,得到第1个第二堆栈层分组的输出向量。

以每个第二堆栈层分组包括p个第二堆栈层为例,步骤804包括:

s8042、将编码层的其中一个输出向量和第j-1个第二堆栈层分组的输出向量输入第1个第二堆栈层,得到第1个第二堆栈层的输出向量。

s8044、将编码层的其中一个输出向量和第k-1个第二堆栈层分组的输出向量输入第k个第二堆栈层,得到第k个第二堆栈层的输出向量,其中,2≤k≤p。

s8046、将k自增1,判断自增1后的k是否大于p,若是,则执行步骤s8048,若否,继续执行步骤s8044。

s8048、将p个第二堆栈层的输出向量进行聚合,得到第j个第二堆栈层分组的输出向量。

由上可见,本实施例中,将解码层的多个第二堆栈层划分为三个等级:第二堆栈层组、第二堆栈层分组和第二堆栈层。通过第二堆栈层的输出向量,可以得到第二堆栈层分组的输出向量;通过第二堆栈层分组的输出向量,可以得到第二堆栈层组的输出向量;通过第二堆栈层组的输出向量,可以得到解码层的解码向量。

当然,在实际应用时,还可以根据第二堆栈层的个数划分为更多的等级。

在获得m个第二堆栈层组的输出向量后,然后根据m个第二堆栈层组的输出向量得到解码层的解码向量。

具体地,根据m个第二堆栈层组的输出向量得到解码层的解码向量包括:将m个第二堆栈层组的输出向量进行聚合,得到解码层的解码向量。

具体地,解码层还包括线性层和归一化层,将m个第二堆栈层组的输出向量经由线性层聚合,然后经过归一化层进行归一化处理,得到解码层的解码向量。

本申请提供的翻译方法,通过将第一堆栈层对应的输出向量进行聚合,得到每个第一堆栈层对应的编码向量,并根据每个第一堆栈层对应的编码向量确定编码层的输出向量;将编码层的输出向量输入至解码层,得到解码层的解码向量,并根据解码层的解码向量得到翻译语句,实现第一堆栈层的输出向量之间的聚合,最终提升翻译模型的性能。

其次,另外,本实施例通过将n个编码向量中的m个编码向量输入至解码层,一方面可以在后续的解码过程中更加合理地利用语义和语法的信息,另一方面可以通过层编码向量的信息融合,增强解码层的解码能力。

再次,对于每个第一堆栈层的编码向量,并非仅与该第一堆栈层的输出向量有关,而是根据n个第一堆栈层的输出向量经由线性层、全连接层和归一化层的处理而得,从而有利于多个第一堆栈层之间的语句信息的融合,有利于提升翻译模型的翻译性能。

为了便于理解本实施例的技术方案,下面结合图9,以一具体翻译模型的对本实施例进行示意性的说明。

参见图9所示的翻译模型,包括编码层和解码层,编码层包括6个第一堆栈层,解码层包括8个第二堆栈层。第一堆栈层和第二堆栈层质检还依次连接有:线性层、全连接层和归一化层。其中,将8个第二堆栈层进行如下划分:解码层共包括2个第二堆栈层组,每个第二堆栈层组包括2个第二堆栈层分组,每个第二堆栈层分组包括2个第二堆栈层。

基于本翻译模型的翻译方法包括:

s912、将所述待翻译语句输入至所述第一隐藏层,生成第一向量。

s914、将所述第一向量输入至第1个第一堆栈层,得到第1个第一堆栈层的输出向量。

s916、将第b-1个所述第一堆栈层的输出向量输入至第b个第一堆栈层,得到第b个所述第一堆栈层对应的输出向量,其中,2≤b≤6。

s918、将6个第一堆栈层的输出向量经过线性层聚合,得到6个第一堆栈层的线性向量;将6个第一堆栈层的线性向量经过全连接层处理,得到每个第一堆栈层对应的全连接向量;将每个第一堆栈层对应的全连接向量经过归一化层处理,得到每个第一堆栈层对应的编码向量。

s920、将第4~6个第一堆栈层对应的编码向量输入至解码层。

具体地,将第6个第一堆栈层对应的编码向量输入至第3~8个第二堆栈层,将第5个第一堆栈层对应的编码向量输入至第2个第二堆栈层,将第4个第一堆栈层对应的编码向量输入至第1个第二堆栈层。

s922、计算得到解码层输出的解码向量,根据解码向量得到翻译语句。

具体地,参见图10,图10示出了解码向量的生成过程示意图。

步骤s920包括:

1)将待翻译语句对应的参考向量输入至第二隐藏层,生成第二向量。

2)将所述第二向量以及3个编码向量输入至第1个第二堆栈层组,得到第1个第二堆栈层组的输出向量。

其中,第1个第二堆栈层组的输出向量生成的过程包括:

将第二向量以及第4~5个第一堆栈层对应的编码向量输入第1个第二堆栈层分组,得到第1个第二堆栈层分组的输出向量。

将第6个第一堆栈层对应的编码向量和第1个第二堆栈层分组的输出向量输入第2个第二堆栈层分组,得到第2个第二堆栈层分组的输出向量。

其中,第1个第二堆栈层分组的输出向量为第1~2个第二堆栈层的输出向量聚合而得,第2个第二堆栈层分组的输出向量为第3~4个第二堆栈层的输出向量聚合而得。

3)将第6个第一堆栈层对应的编码向量以及第1个第二堆栈层组的输出向量输入至第2个第二堆栈层组,得到第2个第二堆栈层组的输出向量。

其中,第2个第二堆栈层组的输出向量生成的过程包括:

将第6个第一堆栈层对应的编码向量以及第1个第二堆栈层组的输出向量输入第3个第二堆栈层分组,得到第3个第二堆栈层分组的输出向量。

将第6个第一堆栈层对应的编码向量和第3个第二堆栈层分组的输出向量输入第4个第二堆栈层分组,得到第4个第二堆栈层分组的输出向量。

其中,第3个第二堆栈层分组的输出向量为第5~6个第二堆栈层的输出向量聚合而得,第4个第二堆栈层分组的输出向量为第7~8个第二堆栈层的输出向量聚合而得。

对于每个第二堆栈层的输出向量的具体过程,前述实施例已经详述,在此便不再赘述。

4)将第1~2个第二堆栈层组的输出向量经由线性层聚合、归一化层处理,得到解码向量。

上述实施例为对本申请的翻译方法的示意性说明。本申请另一实施例公开了一种翻译模型的训练方法,所述翻译模型包括编码层和解码层,所述编码层包括a个顺次连接的第一堆栈层,其中,a为大于1的正整数;

参见图11,所述训练方法包括1102~1108:

1102、根据输入的目标语料中的第一语句,得到每个第一堆栈层对应的输出向量。

本实施例中,目标语料中包括多个第一语句和多个第二语句,第一语句和第二语句一一对应。例如,第一语句为“我爱中国”,第二语句为“ilovechina”;第一语句为“我吃苹果”,第二语句为“ieatapple”。

具体地,本步骤1102包括:

s1122、将目标语料中的第一语句输入至第一隐藏层,生成第一向量;

例如,第一语句为“我爱中国”,生成的第一向量x=(x0,x1,x2,x3),其中,x0=“我”,x1=“爱”,x2=“中”,x3=“国”。

s1124、将所述第一向量输入至第1个第一堆栈层,得到第1个所述第一堆栈层的输出向量;

s1126、将第b-1个所述第一堆栈层的输出向量输入至第b个第一堆栈层,得到第b个所述第一堆栈层对应的输出向量,其中2≤b≤a;

s1128、将b自增1,判断自增1后的b是否大于a,若是,则结束,若否,继续执行步骤s1126。

1104、将第一堆栈层对应的输出向量进行聚合,得到每个第一堆栈层对应的编码向量,并根据每个第一堆栈层对应的编码向量确定编码层的输出向量。

具体地,步骤1104包括:

s1142、将a个第一堆栈层的输出向量经过线性层聚合,得到a个第一堆栈层的线性向量。

具体地,步骤s1142包括:将第1个第一堆栈层的输出向量经过线性层处理,得到第1个第一堆栈层的线性向量;

将第b-1个第一堆栈层的输出向量输入至第b个第一堆栈层,得到第b个第一堆栈层对应的输出向量,然后将第b-1个和第b个第一堆栈层对应的输出向量经过线性层聚合,得到第b个第一堆栈层的线性向量。

具体地,将第b-1个和第b个第一堆栈层对应的输出向量经过线性层聚合,得到第b个第一堆栈层的线性向量,包括:将第b个第一堆栈层对应的输出向量和第b-1个第一堆栈层对应的输出向量进行求和,然后乘以权重系数,得到第b个第一堆栈层的线性向量。

s1144、将a个第一堆栈层的线性向量经过全连接层处理,得到每个第一堆栈层对应的全连接向量;

s1146、将每个第一堆栈层对应的全连接向量经过归一化层处理,得到每个第一堆栈层对应的编码向量。

具体地,步骤1104根据每个第一堆栈层对应的编码向量确定编码层的输出向量,包括:将最后一个或多个第一堆栈层对应的编码向量作为编码层的输出向量。

1106、将编码层的输出向量以及与第一语句对应的翻译后的第二语句均输入至解码层,得到解码层的解码向量,并根据解码向量得到解码向量的误差。

具体地,步骤1106包括:

s1162、将第二语句输入至所述第二隐藏层,生成第二向量;

s1164、将编码层的输出向量和第二向量输入第1个第二堆栈层组,得到第1个第二堆栈层组的输出向量;

s1166、将编码层的输出向量和第i-1个第二堆栈层组的输出向量输入第i个第二堆栈层组,得到第i个第二堆栈层组的输出向量;其中,2≤i≤m;

s1168、将i自增1,判断自增1后的i是否大于m,若是,则执行步骤s1160,若否,继续执行步骤s1166。

s1160、将m个第二堆栈层组的输出向量进行聚合,得到解码层的解码向量。

具体地,对于第二堆栈层组的输出向量的获取,前述实施例已经详述,在此便不再赘述。

1108、根据所述解码向量的误差继续训练所述翻译模型,直至达到训练停止条件。

其中,解码向量的误差通过以下方法得到:将所述解码向量与预设的向量验证集进行对比,得到所述解码向量的误差。

所述训练停止条件包括:误差的变化率小于稳定阈值。

需要说明的是,本实施例中,得到的解码向量并不直接与原始的已翻译语句对应的向量进行对比计算误差,而是引入了一个向量验证集。如果将解码向量直接与原始的已翻译语句对应的向量进行对比计算误差,会导致过拟合,导致翻译模型在其他的语句翻译中的表现变差,翻译效果反而适得其反。

其中,训练停止条件包括:误差的变化率小于稳定阈值。

稳定阈值可以根据实际需求而设定,例如设置为1%。这样,误差趋于稳定,就可以认为模型训练完毕了。

本申请提供的翻译模型的训练方法,将第一堆栈层对应的输出向量进行聚合,得到每个第一堆栈层对应的编码向量,并根据每个第一堆栈层对应的编码向量确定编码层的输出向量;将编码层的输出向量以及第二语句均输入至解码层,得到解码层的解码向量,并根据解码向量得到解码向量的误差;根据解码向量的误差继续训练翻译模型,从而可以在模型训练阶段,对第一堆栈层的输出向量进行有效地聚合,有助于提高翻译模型在使用阶段的翻译性能。

上述为本实施例的翻译方法和翻译模型的训练方法的示例性说明,下面对本实施例的翻译装置和翻译模型的训练装置进行示例性的说明。

本申请实施例还公开了一种翻译装置,参见图12,设置于翻译模型,所述翻译模型包括编码层和解码层,所述装置包括:

输出向量获取模块1202,被配置为根据输入的待翻译语句,得到每个第一堆栈层对应的输出向量;

编码模块1204,被配置为将所述第一堆栈层对应的输出向量进行聚合,得到每个第一堆栈层对应的编码向量,并根据每个第一堆栈层对应的编码向量确定编码层的输出向量;

解码模块1206,被配置为将编码层的输出向量输入至解码层,得到解码层的解码向量,并根据所述解码层的解码向量得到翻译语句。

可选地,所述编码层包括第一隐藏层;输出向量获取模块1202具体被配置为:

s102、将所述待翻译语句输入至所述第一隐藏层,生成第一向量;

s104、将所述第一向量输入至第1个第一堆栈层,得到第1个所述第一堆栈层的输出向量;

s106、将第b-1个所述第一堆栈层的输出向量输入至第b个第一堆栈层,得到第b个所述第一堆栈层对应的输出向量,其中2≤b≤a;

s108、将b自增1,判断自增1后的b是否大于a,若是,则结束,若否,继续执行步骤s106。

可选地,所述翻译模型包括:线性层、全连接层和归一化层;编码模块1204具体被配置为:将a个第一堆栈层的输出向量经过线性层聚合,得到a个第一堆栈层的线性向量;

将a个第一堆栈层的线性向量经过全连接层处理,得到每个第一堆栈层对应的全连接向量;

将每个第一堆栈层对应的全连接向量经过归一化层处理,得到每个第一堆栈层对应的编码向量。

可选地,编码模块1204具体被配置为:

将第1个第一堆栈层的输出向量经过线性层处理,得到第1个第一堆栈层的线性向量;

将第b-1个第一堆栈层的输出向量输入至第b个第一堆栈层,得到第b个第一堆栈层对应的输出向量,然后将第b-1个和第b个第一堆栈层对应的输出向量经过线性层聚合,得到第b个第一堆栈层的线性向量。

可选地,编码模块1204具体被配置为:将第b个第一堆栈层对应的输出向量和第b-1个第一堆栈层对应的输出向量进行求和,然后乘以权重系数,得到第b个第一堆栈层的线性向量。

可选地,编码模块1204具体被配置为:将最后一个或多个第一堆栈层对应的编码向量作为编码层的输出向量。

可选地,所述解码层包括m个第二堆栈层组,其中,m≥2;解码模块1206具体被配置为:将编码层的输出向量分别输入m个第二堆栈层组,得到每个第二堆栈层组的输出向量;将m个第二堆栈层组的输出向量进行聚合,得到解码层的解码向量。

可选地,解码模块1206具体被配置为:

s202、将编码层的输出向量和所述待翻译语句对应的参考向量输入第1个第二堆栈层组,得到第1个第二堆栈层组的输出向量;

s204、将编码层的输出向量和第i-1个第二堆栈层组的输出向量输入第i个第二堆栈层组,得到第i个第二堆栈层组的输出向量;其中,2≤i≤m;

s206、将i自增1,判断自增1后的i是否大于m,若是,则结束,若否,继续执行步骤s204。

可选地,所述编码层的输出向量为至少两个;

解码模块1206具体被配置为:将编码层的至少一个输出向量和所述待翻译语句对应的参考向量输入第1个第二堆栈层组,得到第1个第二堆栈层组的输出向量;

解码模块1206具体被配置为:将编码层的至少一个输出向量和第i-1个第二堆栈层组的输出向量输入第i个第二堆栈层组,得到第i个第二堆栈层组的输出向量。

可选地,每个第二堆栈层组包括n个第二堆栈层分组;解码模块1206具体被配置为:s302、将编码层的输出向量和所述待翻译语句对应的参考向量输入第1个第二堆栈层分组,得到第1个第二堆栈层分组的输出向量;

s304、将编码层的输出向量和第j-1个第二堆栈层分组的输出向量输入第j个第二堆栈层分组,得到第j个第二堆栈层分组的输出向量,其中,2≤j≤n;

s306、将j自增1,判断自增1后的j是否大于n,若是,则执行步骤s308,若否,继续执行步骤s304;

s308、将n个第二堆栈层分组的输出向量进行聚合,得到第1个第二堆栈层组的输出向量。

可选地,编码层的输出向量为至少两个,解码模块1206具体被配置为:将编码层的至少一个输出向量和所述待翻译语句对应的参考向量输入第1个第二堆栈层分组,得到第1个第二堆栈层分组的输出向量;

解码模块1206具体被配置为:将编码层的至少一个输出向量和第j-1个第二堆栈层分组的输出向量输入第j个第二堆栈层分组,得到第j个第二堆栈层分组的输出向量。

可选地,每个第二堆栈层组包括n个第二堆栈层分组;解码模块1206具体被配置为:

s402、将编码层的输出向量和第i-1个第二堆栈层组的输出向量输入第1个第二堆栈层分组,得到第1个第二堆栈层分组的输出向量;

s404、将编码层的输出向量和第j-1个第二堆栈层分组的输出向量输入第j个第二堆栈层分组,得到第j个第二堆栈层分组的输出向量,其中,2≤j≤n;

s406、将j自增1,判断自增1后的j是否大于n,若是,则执行步骤s408,若否,继续执行步骤s404;

s408、将n个第二堆栈层分组的输出向量进行聚合,得到第i个第二堆栈层组的输出向量。

可选地,所述编码层的输出向量为至少两个;解码模块1206具体被配置为:将编码层的至少一个输出向量和第i-1个第二堆栈层组的输出向量输入第1个第二堆栈层分组,得到第1个第二堆栈层分组的输出向量;

解码模块1206具体被配置为:将编码层的至少一个输出向量和第j-1个第二堆栈层分组的输出向量输入第j个第二堆栈层分组,得到第j个第二堆栈层分组的输出向量。

可选地,每个第二堆栈层分组包括p个第二堆栈层;解码模块1206具体被配置为:

s502、将编码层的其中一个输出向量和所述第i-1个第二堆栈层组的输出向量输入第1个第二堆栈层,得到第1个第二堆栈层的输出向量;

s504、将编码层的其中一个输出向量和第k-1个第二堆栈层的输出向量输入第k个第二堆栈层,得到第k个第二堆栈层的输出向量,其中,2≤k≤p;

s506、将k自增1,判断自增1后的k是否大于p,若是,则执行步骤s508,若否,继续执行步骤s504;

s508、将p个第二堆栈层的输出向量进行聚合,得到第1个第二堆栈层分组的输出向量。

可选地,每个第二堆栈层分组包括p个第二堆栈层;解码模块1206具体被配置为:

s602、将编码层的其中一个输出向量和第j-1个第二堆栈层分组的输出向量输入第1个第二堆栈层,得到第1个第二堆栈层的输出向量;

s604、将编码层的其中一个输出向量和第k-1个第二堆栈层分组的输出向量输入第k个第二堆栈层,得到第k个第二堆栈层的输出向量,其中,2≤k≤p;

s606、将k自增1,判断自增1后的k是否大于p,若是,则执行步骤s608,若否,继续执行步骤s604;

s608、将p个第二堆栈层的输出向量进行聚合,得到第j个第二堆栈层分组的输出向量。

本申请提供的翻译装置,通过将第一堆栈层对应的输出向量进行聚合,得到每个第一堆栈层对应的编码向量,并根据每个第一堆栈层对应的编码向量确定编码层的输出向量;将编码层的输出向量输入至解码层,得到解码层的解码向量,并根据解码层的解码向量得到翻译语句,实现第一堆栈层的输出向量之间的聚合,最终提升翻译模型的性能。

其次,第一堆栈层的输出向量之间的聚合并非简单的拼合,而是利用线性层对第一堆栈层的输出向量进行聚合,然后加以全连接层以及归一化层生成最终的编码向量,以实现第一堆栈层之间的输出向量的高效聚合。

另外,对于第二堆栈层的输出向量之间的聚合并非简单的拼合,而是利用全连接层以及归一化层得到最终的编码向量,以实现第二堆栈层之间的输出向量的高效聚合。

本申请实施例还公开了一种翻译模型的训练装置,所述翻译模型包括编码层和解码层,所述编码层包括隐藏层和a个顺次连接的第一堆栈层,其中,a为大于1的正整数;

参见图13,所述训练装置包括:

输出向量训练模块1302,被配置为根据输入的目标语料中的第一语句,得到每个第一堆栈层对应的输出向量;

编码训练模块1304,被配置为将所述第一堆栈层对应的输出向量进行聚合,得到每个第一堆栈层对应的编码向量,并根据每个第一堆栈层对应的编码向量确定编码层的输出向量;

解码训练模块1306,被配置为将编码层的输出向量以及与第一语句对应的翻译后的第二语句均输入至解码层,得到解码层的解码向量,并根据解码向量得到解码向量的误差;

训练模块1308,被配置为根据所述解码向量的误差继续训练所述翻译模型,直至达到训练停止条件。

可选地,解码训练模块1306具体被配置为:将所述解码向量与预设的向量验证集进行对比,得到所述解码向量的误差。

其中,训练停止条件包括:误差的变化率小于稳定阈值。

具体地,输出向量训练模块1302被配置为:

1)将目标语料中的第一语句输入至第一隐藏层,生成第一向量;

2)将所述第一向量输入至第1个第一堆栈层,得到第1个所述第一堆栈层的输出向量;

3)将第b-1个所述第一堆栈层的输出向量输入至第b个第一堆栈层,得到第b个所述第一堆栈层对应的输出向量,其中2≤b≤a;

4)将b自增1,判断自增1后的b是否大于a,若是,则结束,若否,继续执行步骤3)。

具体地,编码训练模块1304被配置为:将a个第一堆栈层的输出向量经过线性层聚合,得到a个第一堆栈层的线性向量;将a个第一堆栈层的线性向量经过全连接层处理,得到每个第一堆栈层对应的全连接向量;将每个第一堆栈层对应的全连接向量经过归一化层处理,得到每个第一堆栈层对应的编码向量。

具体地,对于第二堆栈层组的输出向量的获取,前述实施例已经详述,在此便不再赘述。

本申请提供的翻译模型的训练装置,将第一堆栈层对应的输出向量进行聚合,得到每个第一堆栈层对应的编码向量,并根据每个第一堆栈层对应的编码向量确定编码层的输出向量;将编码层的输出向量以及第二语句均输入至解码层,得到解码层的解码向量,并根据解码向量得到解码向量的误差;根据解码向量的误差继续训练翻译模型,从而可以在模型训练阶段,对第一堆栈层的输出向量进行有效地聚合,有助于提高翻译模型在使用阶段的翻译性能。

本申请一实施例还提供一种芯片,其存储有计算机指令,该指令被处理器执行时实现如前所述翻译方法或翻译模型的训练方法的步骤。

本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述翻译方法或翻译模型的训练方法的步骤。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的翻译方法或翻译模型的训练方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述翻译方法或翻译模型的训练方法的技术方案的描述。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1