首页> 中国专利> 一种基于无监督领域自适应的神经网络机器翻译方法

一种基于无监督领域自适应的神经网络机器翻译方法

摘要

本发明提供一种基于无监督领域自适应的神经网络机器翻译方法,包括:将双语语料训练样本中源端句最后一个词和第一个词的向量表示作为Softmax分类器和翻译模块的输入进行训练;根据Softmax分类器生成的领域数目,生成翻译网络解码器的数目,基于目标端的解码器生成目标端以及所对应的领域。本发明克服了现有技术中缺乏已标注领域数据的问题,节省时间和成本,能够高效准确地完成翻译和领域之间的自适应,具有较好的实用性,具备良好的适用范围以及可扩展性。

著录项

  • 公开/公告号CN107038159A

    专利类型发明专利

  • 公开/公告日2017-08-11

    原文格式PDF

  • 申请/专利权人 清华大学;

    申请/专利号CN201710139214.0

  • 申请日2017-03-09

  • 分类号G06F17/28(20060101);G06N3/08(20060101);

  • 代理机构11002 北京路浩知识产权代理有限公司;

  • 代理人汤财宝

  • 地址 100084 北京市海淀区清华园北京100084-82信箱

  • 入库时间 2023-06-19 02:59:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-07-12

    授权

    授权

  • 2017-09-05

    实质审查的生效 IPC(主分类):G06F17/28 申请日:20170309

    实质审查的生效

  • 2017-08-11

    公开

    公开

说明书

技术领域

本发明涉及机器学习以及机器翻译技术领域,更具体地,涉及一种基于无监督领域自适应的神经网络机器翻译方法。

背景技术

目前,随着国际交流的日益逐渐加深,人们对语言翻译的需求与日俱增。然而,世界上存在的语言种类繁多,互联网是变成当前今最为便捷的获取信息平台,用户对在线翻译需求日益迫切。各有特征,形式灵活,使得语言的自动处理,包括语言之间的机器翻译,成为尚待解决的难题。同时如何为用户提供高质量的翻译服务成为一个难以得到解决的问题。互联网中存在的语言种类多,各语言又具有大量的多义性,语言又处于时时刻刻的变化之中,这就对翻译服务提出更高的要求。

现有技术中,为实现自动的机器翻译,目前常用的技术为基于神经网络和基于统计的方法,前者为NMT(Neural Machine Translation,神经网络机器翻译),后者为SMT(Statistical Machien Translation,统计机器翻译)。

然而,为了上述现有技术能够很好的实现,需要收集大规模高质量的平行语料以获得可靠的翻译模型。反而,高质量的平行语料常常只存在于少量的几种语言之间,并且往往受限于某些特定的领域,比如政府文件、新闻等。随着互联网的兴起,国际信息的流通变得空前便捷,人们对于高质量机器翻译的需求也变得愈加迫切。与此同时,互联网也为机器翻译带来了新的机遇。互联网上大量的语料,使得覆盖多种语言、领域的平行语料获取成为可能。因此从网上获取的语料中单个领域的语料很少,比如比较容易得到的是新闻的语料,可是政府、电影、贸易、教育、体育以及文艺等某一种领域,特别是医学等方面的语料非常难以获取。训练的语料是和开发集(对用训练语料已训练完的模型进行调优)语料属于同一个领域,同时测试语料也属于同一个领域的话,(领域内语料)翻译结果非常好,否则(领域外语料)很差。因此,急需一种能够把不同领域之间也同样实现较好的翻译效果的翻译方法,比如说训练集和开发集是新闻语料,测试集是法律语料(领域外)尽量能够保证避免由于不同领域的原因下降翻译效率的情况。

然而,现有技术中的数据加权方法,所述方法根据与域内语料的相似度来给那些句子分配权重;上述现有技术离不开标注语料的严重问题,需要将原来的训练语料切分若干个小成分从而导致增加模型参数个数等复杂操作,进而使得神经网络机器翻译的性能降低,翻译效率低下以及不能准确的获取各领域之间的自适应。

发明内容

本发明为克服上述问题或者至少部分地解决上述问题,提供一种机器翻译方法。

根据本发明的一个方面,提供一种机器翻译方法,其特征在于,包括:

步骤1,将双语语料训练样本中源端句最后一个词和第一个词的向量表示作为Softmax分类器和翻译模块的输入进行训练;

步骤2,根据Softmax分类器生成的领域数目,生成翻译网络解码器的数目,基于目标端的解码器生成目标端以及所对应的领域。

本申请提出一种机器翻译方法,所述方法能够有效的利用没有标注的,即没有待主题信息的平行句对。与传统的SMT中的类似工作相比用了隐藏的主题来表示组成部分,而不是把原来的训练数据切分成几个组成数据。最重要的是,把小成分的语料融合到全局模型对NMT来说是个非常大的挑战,原因是缺乏解释能力。最终提出了一个近似的参数分享的而降低模型参数个数的,并且承认容易处理的解码算法。同时与NMT中的类似工作比较,跟他们相反的是不用预先定义的已标注过的主题信息、本发明中把主题看成为隐变量来对待以及保持没有改变翻译模型的优势。显然,很容易应用到在自然语言处理中别的神经网络模型。本发明中提出的基于无监督领域自适应的神经网络机器翻译方法,解决现有技术中离不开标注语料的严重的问题,避免将原来的训练语料切分若干个小成分而导致增加模型参数个数等复杂操作,改善神经网络机器翻译的性能,提高翻译效率以及获得更准确的领域之间的自适应。

附图说明

图1为根据本发明实施例一种机器翻译方法的整体流程示意图;

图2为根据本发明实施例一种机器翻译方法中Softmax分类器模型的领域分类结构示意图;

图3为根据本发明实施例一种机器翻译方法中分类模块和翻译模块的混合解码方式1(SUM)示意图;

图4为根据本发明实施例一种机器翻译方法中分类模块和翻译模块的混合解码方式2(MAX)示意图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

在本发明中提出了一种基于无监督的领域自适应神经网络机器翻译方法。

NMT或者SMT里面的迁移学习可以分为两种形式,一种是DA(领域自适应),NMT模型本身具有简洁性,并且做了最少的先验假设,它在领域适应上的表现本身就比SMT更优异,并且可以更方便的利用不同领域的知识。比如新闻的知识可以有效的帮助口语翻译,另一种是迁移,如何利用大规模单语原有的知识改善机器翻译。

近年来无论在NMT还是在SMT中提出了不少的领域自适应的方法,再说在SMT中DA得到了深入的研究。所有方法可以归纳为如下五种:(1)自训练方法,利用了单语的领域内语料。(2)数据选择方法,检索一些跟域内相同的语料。(3)数据加权方法,根据与域内语料的相似度来给那些句子分配权重。(4)基于上下文的方法,根据局部的或者全局的上下文来区分不同领域之间的翻译。(5)基于主题的方法,充分使用主题模型去实现各个领域间的适应。

本发明提出的方法与第三种方法类似,不过主要的区别是使用了隐藏的主题来表示组成部分,而不是把原来的训练数据切分成几个组成数据。最重要的是,把小成分的语料融合到全局模型对NMT来说是个非常大的挑战,原因是缺乏解释能力。最终提出了一个近似的参数分享的而降低模型参数个数的,并且承认容易处理的解码算法。

在NMT中照样别人也做过类似的工作,比如说斯坦福大学的自然语言处理组做了一个利用已存在的模型适应到一个新的领域,获取明显的提升。该方法首先在大规模的领域外(如上述定义,跟测试集不一样的领域,比如说训练集和开发集新闻,测试集政府语料、电影或贸易等)语料上,然后又在新的小规模领域内(以上已给出说明)数据上继续训练,此时他们的方法关注的是从域外到域内的传递信息过程,但是关心的是开发一个能够解决数据异构性的混合模型。

除此之外,另外一些工作描述的是直接把主题信息嵌入到神经网络。具体的说给NMT提供通过LDA获得的主题信息或者在解码阶段直接人工标注的分类的语料。还有些学者更进一步的把主题信息融合到编码器和解码器阶段。另外,还有一些新的工作中,提出一种通过用领域信息来扩展词向量层而控制领域的方法。跟他们相反的是不用预先定义的已标注过的主题信息,本发明技术方案与这些工作的区别在于把主题看成为隐变量(隐藏变量)来对待以及保持没有改变翻译模型的优势。很显然的是,很容易应用到在自然语言处理中别的神经网络模型。

综上所述,在机器翻译(不管是NMT还是SMT)中急需一种新的领域自适应的方法,解决现有技术中离不开标注语料的严重问题,避免将原来的训练语料切分若干个小城分而导致增加模型参数个数等复杂操作,改善神经网络机器翻译的性能,提高翻译效率以及获得更准确的领域之间的自适应。

基于无监督领域自适应的神经网络机器翻译方法旨在用无标注的平行句对上训练生成一个领域外测试集上翻译效果也较好的翻译模型。

本发明方法其实就是混合模型,因为包括Softmax分类器的分类模型和神经网络机器翻译的翻译模型。前人所做的混合模型思想是首先把训练语料根据领域(新闻、电影、政府、贸易等)分解成几个不同的组成部分然后翻译模型P(y|x;θc)在每一个小规模语料<Xc,Yc>上训练。这些各个组成部分的模型合并到一个单独全局模型:其中λc是混合参数,即第c个组成部分的参数,也就从待翻译的目标段文本和每一个小组成部分的语料之间的距离矩阵得到的,比如说:tf/idf、LSA、perplexity或EM等方法(在本发明中为了计算相似度调用TF-IDF,cosine相似度)。这些混合参数是被文本相似度来预测出来的,不用干涉于整个混合模型的学习过程。虽然混合建模方式在SMT中效果很好,但是适应到NMT不那么简单。SMT中根据来说,很简单地把每一个单独训好的模型融合到全局模型,看起来如何把他混入到NMT有点模糊。主要的难点是,不同组成部分(不同领域或不同来源)小规模语料上训练出来的神经网络翻译模型在那些为了效率原因而选取的几千个最高频率的词汇上存在明显的差别,说明各个不同领域数据集上训练的翻译模型在每一个小规模语料组成部分上训练前,在预处理阶段中,选择高频的几千个词汇,此时各个领域模型的词汇表上产生很明显的不同。

如果没有把小规模组成部分的模型融合到全局模型,参数空间将会增大。除此,搜索算法必须把所有小规模模型句子级别的翻译概率的权重加起来:

目标段最高概率不会像

一样被分解为词级别。然而,在解码过程当中很难把那些小规模组成部分的神经网络机器翻译模型的预测融合起来,因此确实需要开发一个混合模型的神经网络机器翻译系统。

如图1,示出本发明一个具体实施例中一种机器翻译方法的整体流程示意图。总体上,包括:

步骤1,将双语语料训练样本中源端句最后一个词和第一个词的向量表示作为Softmax分类器和翻译模块的输入进行训练;

步骤2,根据Softmax分类器生成的领域数目,生成翻译网络解码器的数目,基于目标端的解码器生成目标端以及所对应的领域。

本发明另一个具体实施例中,一种机器翻译方法,所述步骤1前还包括:

步骤0,构建训练语料数据集,对所述数据集中的训练语料进行预处理;利用Softmax分类器模型和翻译模型对所述训练语料进行训练,分别得到分类和翻译模型参数;

本发明另一个具体实施例中,一种机器翻译方法,所述步骤0和步骤1之间还包括:基于所述预处理后的训练语料数据集,利用GRU得到翻译模块的编码器阶段和Softmax分类器的输入。

本发明另一个具体实施例中,一种机器翻译方法,所述步骤2中根据Softmax分类器生成的领域数目,其生成翻译网络解码器的数目进一步包括:

S21,将Softmax分类器模型分t个领域类;

S22,在翻译模块的解码器阶段中,根据分类器模块的输生成t个解码器。

本发明另一个具体实施例中,一种机器翻译方法,所述步骤1前还包括:利用双向GRU神经网络获取双语语料训练样本中源端句最后一个词和第一个词的向量表示;同时也能够利用CNN神经网络或LSTM神经网络获取双语语料训练样本中源端句最后一个词和第一个词的向量表示。

本发明另一个具体实施例中,一种机器翻译方法,所述步骤0中构建训练语料数据集进一步包括:

收集双语句对;选择训练集、开发集和测试集;所述双语句对为无领域标注信息的句对。

本发明另一个具体实施例中,一种机器翻译方法,所述步骤0中对所述数据集中的训练语料进行预处理进一步包括:

将所述数据集中源语言文本和目标语言文本中的句子切分成词并统一转换大小写。

本发明另一个具体实施例中,一种机器翻译方法,所述步骤2进一步包括:

其中,公式中等式右侧的第一项是整个模型的分类模块,通过训练将学会γ预测的是t,第二项中所需要学的模型参数θt预测的是y;t∈{1,…,T}表示源端句子x的主题的整数,T是预先定义好的主题个数,是预测给x分配主题概率的主题自模型。

本发明另一个具体实施例中,一种机器翻译方法,所述Softmax分类器生成的领域数目能够根据输入进行设置。

本发明另一个具体实施例中,一种机器翻译方法,所述步骤2进一步包括:

在翻译模块的解码器阶段中,根据分类器模块的输生成t个解码器;

Softmax分类器模块生成的t个领域的概率和翻译模块的解码阶段生成的解码器的个数的初始状态全是随机的。

本发明另一个具体实施例中,一种机器翻译方法,具体包括如下步骤:

A、准备大规模无标注的,不带主题信息的平行句对训练语料;

B、引用词向量模型来获得源端句子所包含的每一个词的词向量表示;

C、利用GRU得到翻译模块的编码器阶段和Softmax分类器的输入;

D、将已得到的输入用双向的GRU来处理,也就把句子的向量表示通过最后一个词的词向量表示(正向)和第一个词的词向量表示(反向)来得到的,然后传送到分类器模块和翻译模块;

E、根据Softmax分类器生成的领域数目,其生成翻译网络解码器的数目并进行解码,生成目标语言以及所对应的领域。

所述步骤A进一步包括:构建数据集和进行预处理,并使用生成式模型对训练集中的训练语料进行训练,得到模型参数;

所述构建数据集包括收集双语句对,选择训练集、开发集和测试集;

所述进行预处理包括对数据集中源语言文本和目标语言文本中的句子切分成词(分词时为了保持一致调用斯坦福大学自然语言处理组开发的中文分词开源工具),以及统一转换大小写(可以用MOSES自带的truecaser.perl或者也可以自己写一个大小写转换的脚本)和tokennize(对英文语料一概需要进行tokenize,照样为了保持一致性,可以用MOSES自带的tokenizer.perl)。

具体地,所述模型参数包括源语言和目标语言之间的翻译概率;

所述步骤A中的平行句对是指源端句子:x=x1,…,xi,…,xI和目标端y=y1,…,yj,…,yJ

进一步地,所述步骤B具体是通过RNN语言模型的预处理步骤实现的:

因为RNN语言模型由look-up层、隐藏层以及输出层等三个部分组成。输入的句子所包含的每一个单词通过look-up层来被转换成所对应的词向量表示:

xt=look-up(s),

其中,xt是s的词向量表示,s是每一个时间段t的输入,以及look-up表示look-up层。

进一步地,所述步骤C具体是通过执行以下步骤实现的:

C1、因为整个网络由两个部分组成,分类模块和翻译模块:翻译模块指的是神经网络机器翻译模块,分类模块是作为独立的一个分类器,此处只调用了Softmax分类器。

C2、对于通过步骤A所获得的平行句对源端x=x1,…,xi,…,xI,和目标段y=y1,…,yj,…,yJ,神经网络机器翻译常常把句子级别的翻译概率,因式分解成为词级别的概率:

其中,θ是一系列的模型参数,y<j是部分翻译。把表达式:作为训练集时,标准的训练目标是最大化训练语料的log-likelihood:

翻译的决策规则是,没有遇到过的(既没有训练过的)源端句子x给出通过一下公式所学到的模型参数

也就是说,将目标段用最好的概率来计算,这些概率因式分解为词级别的翻译:

优选地,所述步骤C之后还包括以下步骤:

D、通过步骤C获取Softmax分类器和翻译模块的输入后,需要进一步处理,也就在这两模块的编码器阶段(编码)所需要的是句子的向量表示形式,采用双向的GRU来获取整个源端句子的表示。因为GRU也是RNN网络的一单元,而且在步骤A中已经给出说明,RNN语言模型由look-up层、隐藏层以及输出层组成。在步骤B中通过RNN来已经求完每一个词的词向量表示,然后把结果送入到编码器的输入,即给编码器阶段隐藏层所准备信息。隐层计算当前的隐状态时,采用loop-up层的输出,既是每一个词的词向量和前面几个隐状态信息来获取,也就把词向量映射到一个上下文向量:ht=f(xt,ht-1)其中f是一个抽象函数在给出输入xt和历史状态ht-1的前提下,计算当前新的隐状态。初始状态h0常常设为0,常见的f函数的选择是如下提供的一样,σ是非线性函数(比如:softmax或tanh)ht=σ(Wxhxt+Wxhht-1)。此处softmax是指翻译模块编码器段计算隐状态时所调用的softmax,这个与本发明中提出的整个模型分类器模块中调用的softmax不一样,其实分类模块是独立的领域分类器,反而翻译模块编码器端的是计算隐状态而用的,作用不一样,而且求出当前新的隐状态的时候未必调用softmax其实也可以用其他的非线性的激活函数tanh等。

因此,双向BiRNN的前向(forward)状态是按照公式来计算:

其中是词向量矩阵,是权重矩阵。n×m分别为词向量维数和隐状态个数。σ⊙是逻辑斯谛sigmoid函数。反向的状态计算也跟正向一样。在正向和反响之间共享词向量矩阵不过不同于权重矩阵。把正向和反向合并后获得这些符号表示,其中

进一步说明,双向GRU中单个GRU由更新门和调整门组成的,如下所示:

ut=σ(Wuxt+Uuht-1+bu),

rt=σ(Wrxt+Urht-1+br),

其中ut是更新门,rt是调整门,是候选激活,⊙元素方式乘法操作,ht是上一个隐状态ht-1和候选激活之间的线性插入。直观地讲,update agte选择隐状态是不是被新的状态更新掉,调整门决定上一个隐状态是否被忽略等情况。

进一步地,所述步骤D之后还包括以下步骤:

E、主要是指Softmax分类器模块分类出来的各个领域的概率和翻译模块的目标段句子的生成。直观地讲分类模块生成的领域的信息,即是t个领域的不同的概率添加到翻译模块,也就把主题信息通过隐变量的形式加入到翻译概率:

原来的翻译模块的解码器网络也有所对应的隐状态,不过这个隐状态跟编码器网络不太一样,详细计算过程如下所示:

其中:

zi=σ(WzEyi+Uzsi-1+Czci),

ri=σ(WrEyi+Ursi-1+Crci),

E是目标语言句子所包含的每一个词的词向量矩阵,W,Wz,U,Uz,Ur和C,Cz这些是权重。m,n分别为词向量维数和隐状态个数。σ⊙是逻辑斯谛sigmoid函数。初始隐状态s0是通过如下方式计算:

其中

Context vector(上下文向量)是通过对其模型来每一个time step(时间步骤)重新被计算:

其中

hj是源端句子中的第j个符号(隐状态),以及全是权重向量。

本发明另一个具体实施例中,一种机器翻译方法,图2为根据本发明实施例一种机器翻译方法中Softmax分类器模型的领域分类结构示意图。

不像在SMT中所提到的混合参数通过文本相似度而获取的混合模型的是,在本发明中把主题子模型当混合权重调用,即是跟翻译子模型一起被优化的混合权重。本发明混合模型把那标准的NMT通过加入隐变量来扩充:

其中,t∈{1,…,T}是表示源端句子x的主题的整数,T是预先定义好的主题个数,是预测给x分配主题概率的主题自模型,也就图2中的模块。

是t个主题的翻译子模块分别为图3和4中右边的神经网络机器翻译模块。

为了解决上面提到的词级别的因式分解问题,近似混合模型而假设那些词级别的翻译相互独立的:

以上公式的第三行表明混合模型可以允许在词级上训练,也就如下给出搜索算法中的效果。尽管这个近似违反了NMT中的独立性,但是在实际的应用上得到了明显的提升。

为了句子分类而在图2中所提到的主题子模型P(t|x;γ)可能会利用更多的网络架构,比如,CNN和Recursive Auto Encoder(递归的自动编码器)。本发明中利用了基于通过编码器来表示学习的简单的Softmax分类器。给出一个包含I个词汇的源端句x,采用以GRU作为单位的bi-RNN来计算正向的状态和反向的状态然后把最后一个词的正向状态(既按照正向的RNN来计算最后一个词的状态)与第一个词的反向状态(用反向的RNN来计算第一个词的状态)合并起来把他送入到Softmax分类器的输入(前人的工作是在编码器阶段中计算句子最后加了句子终结符号)。这个策略具备了如下几条优势:

借助RNN把GRU作为单位来获取长距离依赖的功能。即能够总结出源端句子的反向状态,和能够总结出源端句子的正向状态。

Softmax层的输入是维数已被固定的,而且独立于源端输入句子的长度。

图2所描述的主题子模型与那些翻译子模型(图3,4中右边的翻译子模块)相互共享同一个编码器,这样设计非常突出的减少了混合模型的参数空间。

在翻译子模型P(y|t,x;γ)中,引用到了前人的标准的基于注意力机制的编码器解码器模型。同时为了降低参数空间所有神经网络翻译子模块与主题子模型共享同一个。换句话来说,的混合模型有一个编码器和T个解码器。

本发明另一个具体实施例中,一种机器翻译方法,结合图3,步骤A-D的过程已经给出解释如上所述,因此不再重复,直接介绍步骤E的实现方式。本发明实施例提出的分类模块和翻译模块的混合解码方式1(SUM)的具体步骤是:

步骤A中所提到的训练集的训练目标是找出一些最大化训练语料的log-likelihood的模型参数:

其中

标准的mini-batch(小一批平行训练句对)随机梯度下降算法用于估计主题和翻译器子模型的参数。

图3,4中,给出的以学习出来的模型参数没有训练过的源端句子x的翻译决策规则是,通过如下方式进行计算,

表明,用最高概率来计算翻译能够被因式分解为词级别,也就相似于前人标准的工作:

本发明所提到的解码方式除了如图3之外,还有提出了一个新的解码方式,如下实施实例所示。

本发明另一个具体实施例中,一种机器翻译方法,结合上一个实例和图3来讲,本发明同时提出了第二种解码方式,也就步骤E的另一种实现方式。即步骤E中提出的解码方法是如上一个实施实例中所提到的一样,主要是Softmax分类器分类出来的输出结果t个领域的每一个概率和翻译子模块解码器部分的T个解码器结果相乘然后所有因式相加得到最后的翻译结果。跟他们有点不同的是,现在不用与每一个t个领域的概率与翻译模块的T个解码器结果相乘,反而在t个领域的概率其中就需要最大的概率和最大的概率下标tj所对应的Tj的结果相乘即可,也就是说把SUM的操作与MAX替换,根据如下两个小步骤来进行完成:

把实施实例二中给出的公式:

看成为SUM解码方式和

看成为MAX解码方式。

最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号