基于深度神经网络的句子对齐方法与流程

文档序号:16390430发布日期:2018-12-22 11:24阅读:269来源:国知局
基于深度神经网络的句子对齐方法与流程

本发明涉及一种基于神经网络的句子对齐方法。

背景技术

平行语料库是多自然语言处理任务极其重要的资源,自然语言处理中的许多任务,如机器翻译、跨语言信息检索和双语词典等都需要平行语料的支持。句子对齐任务是从两篇不同语言的文档中提取出互为翻译的平行句对,用来扩充平行语料库,从而解决一些平行语料规模较小问题。

句子对齐的早期研究方法主要是基于特征匹配的方法,该方法只关注了双语句子之间的表面信息,即根据两个句子之间的长度关系判断句子是否对齐。接着根据平行句子中的词对关系,许多研究者提出基于词典的方法,即根据两个句子中互为翻译的词对个数与整个句子的单词数的关系来判断句子是否对齐。此外,也有一些方法将两个句子的长度信息和词对信息结合起来,或者添加其它特征信息、启发式策略、翻译成同一种语言并比较翻译后的句子与另一个句子是否相似等来判断句子是否对齐。近年来,随着深度学习的深入研究,神经网络方法也在句子对齐任务中取得了显著的效果。

句子对齐是自然语言处理中的基础性任务。目前,句子对齐任务被看作是一个分类任务,即对齐或不对齐两类,最后通过对齐优化策略来抽取最终的平行句对。

早期的句子对齐方法采用的是统计的方法,根据句子的长度特征、互为翻译对的单词数特征,通过统计的方法得到这些特征值,并根据这些特征值和制定的对齐策略来判断句子是否对齐。同时,还有一些方法是根据标点符号、位置关系等特征来提高句子对齐的性能。另外,也有一些句子对齐工作是先采用已有的句子工具抽取出语料中被工具认为是平行的句对,然后在通过一些规则特征进行进一步判断,找到最优对齐。它们大部分采用的是无监督和半监督的方法来进行训练。

如图1所示,近年来,随着深度学习的不断发展,深度神经网络也在句子对齐任务中成功应用,一般来说需要参考语料来进行有监督训练,即通过一系列已知类别的句对(平行句对和非平行句对两个类别)来训练调整分类器的参数,使其达到最优性能的过程。已有的神经网络方法主要有根据双向循环神经网络来编码两个句子,得到每个单词的隐藏状态,将最后一个单词和第一个单词的隐藏状态拼接起来作为整个句子的隐藏状态,然后将这两个隐藏状态的乘积和差的绝对值相加,再通过双曲正切函数tanh来计算它们之间的相似度,并通过全链接层获得更抽象的表示,最后通过s型生长曲线--sigmoid函数计算其分类概率。这种方法仅仅将句子表示成一个向量,并不能很好地捕获句子内部的单词信息,而单词信息是判断句子是否对齐的关键因素,因此仅仅通过比较两个句子向量来判断句子对齐很容易丢失重要的匹配信息。

如图2所示,同时,也有方法是来比较词对间的相似度,然后通过卷积神经网络捕获其最有用的信息进行分类。根据两个句子中每个词对的词嵌入通过余弦相似度和欧氏距离计算它们的相似度,从而得到一个m*n的相似度矩阵,其中m和n分别为源端句子长度和目标端句子长度;然后,在得到的相似度矩阵上应用卷积神经网络来捕获其最有用的信息;最后通过s型生长曲线--sigmoid函数输出其分类概率。这种方法通过计算词对间的相似度来捕获句对间的匹配信息,能够较好地提高句子对齐性能。

然而,句子对齐不仅要求对齐的句对存在大量互为翻译的单词对,同时也要求对齐的句对间的语义一致性。仅通过词嵌入计算词对相似度可能会丢失句子的上下文信息,仅通过双向循环神经网络编码得到的句子向量判断句子对齐很容易丢失单词的匹配信息。



技术实现要素:

本发明所要解决的技术问题是,克服现有技术的缺点,提供一种基于深度神经网络的句子对齐方法,与传统方法相比传统方法考虑了句子中互为翻译的词对,然而对于同一个单词在不同句子中可能会有不同的含义。本发明可以通过双向循环神经网络编码后获得的单词隐藏状态不仅包含其自身含义,同时也包含其上下文信息。

本发明所要解决的技术问题是,克服现有技术的缺点,进一步提供一种基于深度神经网络的句子对齐方法,传统方法一般只考虑到了词汇信息,然而互为翻译的两个句子的句义也是一致的。本发明在上一发明的基础上,对句子进行编码来获得整个句子的表示,捕获句子的语义特征。

本发明所要解决的技术问题是,克服现有技术的缺点,进一步提供一种基于深度神经网络的句子对齐方法,对于互为翻译的两个句子中存在绝大多数互为翻译的单词,传统方法也是利用词对信息进行对齐判断。然而传统的方法需要利用词典信息判断该词对是否在词典中,本发明不需要利用额外的词典信息,来捕获词对间的语义关系特征。本发明以经过双向循环神经网络层编码后的单词隐藏状态作为输入,使用通过门机制融合的双线性模型和单层神经网络的网络,从线性和非线性两个角度捕获词对间关系,从而获得词对相似度矩阵。

本发明所要解决的技术问题是,克服现有技术的缺点,进一步提供一种基于深度神经网络的句子对齐方法,它克服了上述三方面的缺点,使本发明可以使其中每个单词的表示具有其上下文含义,同时还捕获两个句子的单词之间的语义对等关系。捕获句子级的相关特征。然后,将捕获的两结果组合成一个向量表示输入到感知器中,并获取两个句子对齐的概率。

本发明解决以上技术问题的技术方案是:一种基于深度神经网络的句子对齐方法,包括如下步骤:

1)语料预处理:根据训练语料生成词表和词嵌入词表;

2)生成词嵌入层,对句子中的每个单词,从词嵌入表中找到它对应的词嵌入;

3)采用双向循环神经网络层,对句子进行编码,不仅考虑了单词本身的语义信息,而且考虑了该单词的上下文信息,使每个单词获得包含其上下文信息的隐藏状态;将每个句子中单词的隐藏状态求其平均来获得句子向量,再将两个句子向量拼接起来;

4)感知器层,将双向循环神经网络层的结果输入到感知器中,并通过感知器获得更抽象的表示来判断句子对齐,

5)计算出两个句子对齐的概率,最后根据概率是否大于设定的值来判断两个句子是否对齐,然后将两篇文档中对齐的句子抽取出来。

基于上述目的,本发明的进一步改进方案是:在步骤3)之后还包括如下步骤:31)卷积神经网络层,使用两层卷积神经网络来计算句子向量,能够更好地捕获句义信息,对句子进行编码,能够更好地捕获句义信息,得到句子的向量表示;将两个句子向量拼接起来;

4)所述步骤4包括如下步骤:感知器层,将双向循环神经网络的结果和卷积神经网络层的结果组合成一个向量表示输入到感知器中,并通过感知器获得更抽象的表示来判断句子对齐。

基于上述目的,本发明的进一步改进方案是:所述步骤3)为:采用双向循环神经网络层,对句子进行编码,不仅考虑了单词本身的语义信息,而且考虑了该单词的上下文信息,使每个单词获得包含其上下文信息的隐藏状态;步骤3)之后还包括如下步骤:

32)门关联网络层,计算两个句子中词对间的语义信息;以双向循环神经网络获得的每个单词的隐藏状态作为输入,使用通过门机制融合的双线性模型和单层神经网络的网络,即门关联网络来从线性关系和非线性关系两个角度捕获词对间相似性,然后使用最大池化操作来捕获其最具信息量的部分,

4)所述步骤4包括如下步骤:感知器层,将门关联网络层的结果作为一个向量表示输入到感知器中,并通过感知器获得更抽象的表示来判断句子对齐。

基于上述目的,本发明的进一步改进方案是:所述步骤3)为:采用双向循环神经网络层,对句子进行编码,不仅考虑了单词本身的语义信息,而且考虑了该单词的上下文信息,使每个单词获得包含其上下文信息的隐藏状态;步骤3)之后还包括如下步骤:

32)门关联网络层,计算两个句子中词对间的语义信息;以双向循环神经网络获得的每个单词的隐藏状态作为输入,使用通过门机制融合的双线性模型和单层神经网络的网络,即门关联网络来从线性关系和非线性关系两个角度捕获词对间相似性,然后使用最大池化操作来捕获其最具信息量的部分;

4)所述步骤4包括如下步骤:感知器层,将门关联网络层的结果和卷积神经网络层的结果组合成一个向量表示输入到感知器中,并通过感知器获得更抽象的表示来判断句子对齐。

基于上述目的,本发明的进一步改进方案是:所述感知器层为多层感知器层。

基于上述目的,本发明的进一步改进方案是:所述双向循环神经网络层不仅对单词本身进行编码,还对句子从左到右和从右到左的上下文进行编码,在此我们只描述长度为m的源端句子s的双向循环神经网络过程,源端句子s的编码使用的是一对神经网络即双向循环神经网络:前向循环神经网络从左向右读取输入的句子序列s=(s1,...,sm),并输出一个前向隐藏状态后向循环神经网络从右向左读取输入的句子序列,并输出一个后向隐藏状态那么源端句子s中的每个单词sj的隐藏状态hj,表示为隐藏状态的拼接,本发明中双向循环神经网络使用门控循环单元来解决长期依赖关系的学习问题,如下所示:在位置j处,前向隐藏状态根据以下四个公式进行更新:

其中,表示前一时刻的隐藏状态,sj是第j个单词的词嵌入,在计算时包含了前面状态和当前时刻的信息,在计算每个单词的隐藏状态时,都能或多或少地包含该单词前面序列的信息,σ是s型生长曲线,wz,wr,w是要学习的模型参数,训练开始时随机初始化这些参数,并在训练过程中使用梯度下降算法对其进行优化更新,·表示矩阵乘法,⊙表示元素乘法,同样的,后向隐藏状态以同样的方式进行更新,本发明使用相同的双向循环神经网络来编码源端语句s和目标端语句t,因此目标端语句t的计算公式与上述相同;同时,还可以使用长短期记忆单元来替代本发明使用的门控循环单元,在位置j处,前向隐藏状态根据以下六个公式进行更新:

其中,表示前一时刻的隐藏状态,sj是第j个单词的词嵌入,σ是s型生长曲线,wf,wi,wc,wo,bf,bi,bc,bo是要学习的模型参数,训练开始时随机初始化这些参数,并在训练过程中使用梯度下降算法对其进行优化更新,·表示矩阵乘法,⊙表示元素乘法。

基于上述目的,本发明的进一步改进方案是:所述门关联网络层以经过双向循环神经网络编码后的两个句子的隐藏状态(hs1,...,hsm)和(ht1,...,htn)为输入,然后,根据下面的公式计算每个单词对(si,tj)的相似性分数:

其中,hsim[1:r]htj为双线性模型,用来捕获词对间线性关系,f(v[hsi,htj])为单层神经网络,用来捕获词对间非线性关系,g是表示如何整合词对间线性关系和非线性关系的门,即词对最终的相似度分数融合了多大比例的线性关系和非线性关系,u、m、v、wg均为参数,训练开始时随机初始化这些参数,并在训练过程中使用梯度下降算法对其进行优化更新,通过上述计算后,可以得到大小为m*n的矩阵,其中m和n分别为源端句子和目标端句子长度,两个文本片段之间的关系通常由一些强烈的语义相互作用决定,因此在得到灰色方块的相似性分数矩阵后,本发明采用最大池化策略来划分该矩阵,通过设置大小为p1×p2的最大化池,即对相似性分数矩阵中每个p1×p2块取其最大值,从而得到大小为(m/p1)×(n/p2)矩阵,然后将其重塑为一个一维向量vg作为门关联网络的输出。

基于上述目的,本发明的进一步改进方案是:所述卷积神经网络层使用两个相同的卷积神经网路层来编码源端句子s和目标端句子t,对于输入的句子s=(s1,...,sm)经过词嵌入层后,得到大小为[m,embed_size]的矩阵,本发明将其重塑为大小为[m,embed_size,1]的矩阵e,并且定义一个形状为[filter_depth,filter_rows,1]滤波器,然后,根据滑动步长,该滤波器按照滑动步长在矩阵e上滑动,并且对于每次滑动,矩阵e中被滤波器覆盖部分与滤波器的对应位置相乘,并将它们相加作为输出中相应位置的值,最后,我们得到一个形状更小的输出[m-filter_depth+1,embed_size-filter_rows+1,1];本发明使用python编程语言中的theano框架中封装好的conv3d函数来实现该操作,然后,在输出上采用theano框架中提供的3维-最大池化策略,来获得其中最具信息量的部分,通过设置形状为[p1,p2,1]的最大池,即对上述输入的矩阵中的每个[p1,p2,1]块取其最大值,从而得到大小为[(m-filter_depth+1)/p1,(embed_size-filter_rows+1)/p2,1]的最具信息量的矩阵,在一次卷积过程中,滤波器的值保持不变,因此通过卷积可以增强句子的一些重要特征,并且可以降低噪声,由于一个卷积神经网路层学到的特征往往是局部的,本发明中使用了两个卷积神经网路层来学习更多的全局化特征,第二个卷积神经网路层的输入是第一个卷积神经网路层的输出,对源端句子s和目标端句子t编码之后,将两个句子的结果按矩阵的最后一维拼接起来作为卷积神经网络层的输出vc。

基于上述目的,本发明的进一步改进方案是:根据上述描述,可以获得门关联网络的输出vg和卷积神经网路的输出vc,接下来,首先将这两个矢量组合成一个矢量表示v:

v=wg·vg+wc·vc

然后,将其输入感知器层中,本发明中感知器包括多个隐藏层和一个输出层,即v被输入到多个全链接隐藏层来获得更加抽象的表示,并最终连接到输出层:

cn=tanh(wn·cn-1+bn)

其中,wg、wc、wn和bn均为参数,在训练开始阶段随机初始化,并在训练过程中使用梯度下降算法对其进行优化更新;cn-1表示感知器的隐藏层计算,最后,感知器层的输出cn通过s型生长曲线来计算句子分类为0或1的概率p,若概率大于给定的阈值ρ则判断为句子对齐为1,反之则不对齐为0:

基于上述目的,本发明的进一步改进方案是:根据上述描述,本发明使用的语言对是中文和英文,其中对中文文档需要进行分词,对英文文档需要全部转化成英文小写,在语料预处理阶段,先根据训练语料将训练语料中的单词按词频从大到小排序,并选出前三万个单词,生成以“单词编号”为表示形式词表,其中“编号”为从0开始的数字,那么可以通过“编号”来表示对应的单词,然后,该词表从双语词嵌入文件中找到词表中每个单词对应的词嵌入,生成词嵌入词表,与传统的独热向量表示相比,词嵌入允许相似含义的单词具有类似的表示,因此,在词嵌入层,作为输入的两个句子中的所有单词都将被映射到固定大小的低维度向量,这个向量就是句子中每个单词在词嵌入词表中对应的词嵌入,对应超出词表的所有低频单词,我们都将它映射到一个特殊的词嵌入上,并且本发明采用双语词嵌入来初始化词嵌入层,经过语料预处理步骤,本发明得到词表和词嵌入词表,对于输入的每个句子,先通过查询词表生成对应的编号序列,然后再根据编号序列查询词嵌入词表生成对应的词嵌入序列,从而完成初始化词嵌入层。

本发明的有益效果是:本发明考虑了上述存在的问题,首先采用双向循环神经网络,与上述方法不同的是,本发明首先通过双向循环神经网络对输入的句子序列进行编码,使得每个单词的隐藏状态包含其本身含义及上下文信息;双向循环神经网络编码后,将每个句子中单词的隐藏状态求其平均来获得句子向量,再将两个句子向量拼接起来,而不是简单地使用双向循环神经网络编码后的单词隐藏状态表示;

对于捕获句子的语义信息即句子向量,本发明使用了两层卷积神经网络来捕获句子级别的向量表示,而不是仅用经过双向循环神经网络编码的首尾两个单词隐藏状态的拼接作为句子向量;计算句子向量时,本发明使用两层卷积神经网络来计算句子向量,能够更好地捕获句义信息。

本发明同样采用神经网络方法进行句子对齐研究。计算词对相似度时,首先本发明使用经过双向循环神经网络编码后的单词向量而不是简单的词嵌入,不仅考虑了单词本身的语义信息,而且考虑了该单词的上下文信息;其次本发明使用双线性模型和单层神经网络来计算词对相似度,并通过门机制将两种相似度融合,从而从线性和非线性两个对立的角度来更全面地考虑词对关系,而不是使用余弦相似度和欧氏距离两个通过角度和距离判断相似度的方法;最后本发明使用最大池化操作来捕获词对相似度中最具信息量的部分,而不是使用卷积神经网络。

双向循环神经网络层:通过双向循环神经网络编码后获得的单词隐藏状态不仅包含其自身含义,同时也包含其上下文信息;门关联网络层:以经过双向循环神经网络层编码后的单词隐藏状态作为输入,使用通过门机制融合的双线性模型和单层神经网络的网络,从线性和非线性两个角度捕获词对间关系,从而获得词对相似度矩阵;卷积神经网络层:本发明使用两层卷积神经网络来计算句子向量,能够更好、更全面地捕获句义信息。

融合词对信息和句义信息:本发明通过多层感知器将门关联网络的输出和卷积神经网络的输出结合起来。

附图说明

图1是现有的双向循环神经网络结构图

图2是现有的卷积神经网络结构图;

图3是本发明深度神经网络的句子对齐方法的结构图;

图4是本发明双向循环神经网络结构图;

图5是本发明门关联网络结构图;

图6是本发明bi-rnn模型结构图;

图7是本发明bi-rnn-cnn模型结构图;

图8是本发明bi-rnn-grn模型结构图;

图9是本发明深度神经网络的句子对齐方法的流程图

具体实施方式

本发明提出了一种基于深度神经网络的方法提取平行句子,并且没有任何的外部词典或特征。本发明主要是使用神经网络来捕获句子间的语义特征、词对间的语义关系特征等,并且根据对齐的句子的特点,即对齐的两个句子中存在绝大多数互为翻译的单词,因此我们使用门关联网络计算两个句子中每个单词对的相似性。为了更好地反映本发明的性能,我们分别使用平行语料和可比语料分别对使用双向循环神经网络(bi-rnn,如图6)、双向循环神经网络和卷积神经网络(bi-rnn+cnn,如图7)、双向循环神经网络和门关联网络结合(bi-rnn+grn,如图8)、双向循环神经网络和门关联网络和卷积神经网络组合(bi-rnn+grn+cnn,如图3),以及两种常用的句子对齐工具champollion和gargantua进行评测。

实施例1

深度神经网络的句子对齐方法(bi-rnn+grn+cnn)如图3所示,为本发明基于深度神经网络的句子对齐方法的结构图,基于深度神经网络的句子对齐方法包括如下步骤,同时图9给出了具体的流程图:

1)语料预处理:根据训练语料生成词表和词嵌入词表;

2)词嵌入层,对句子中的每个单词,从词嵌入表中找到它对应的词嵌入,即利用参考论文[注1]提供的双语词嵌入将单词表示成向量,从而使得相似的单词具有相似的表示;

3)采用双向循环神经网络层,对句子进行编码,不仅考虑了单词本身的语义信息,而且考虑了该单词的上下文信息,使每个单词获得包含其上下文信息的隐藏状态;

4)门关联网络层,计算两个句子中词对间的语义信息;以双向循环神经网络获得的每个单词的隐藏状态作为输入,使用通过门机制融合的双线性模型和单层神经网络的网络,即门关联网络来从线性关系和非线性关系两个角度捕获词对间相似性,然后使用最大池化操作来捕获其最具信息量的部分,从而获得词对相似度矩阵;

5)卷积神经网络层,使用两层卷积神经网络来计算句子向量,能够更好地捕获句义信息,对句子进行编码,得到句子的向量表示,将两个句子向量拼接起来;

6)多层感知器层,将门关联网络层的结果和卷积神经网络层的结果组合成一个向量表示输入到多层感知器中,并通过多层感知器获得更抽象的表示来判断句子对齐,

7)计算出两个句子对齐的概率,最后根据概率是否大于设定的值来判断两个句子是否对齐,然后将两篇文档中对齐的句子抽取出来。判断两个句子是否对齐,0表示不对齐,1表示对齐。本发明将句子对齐看作是0/1分类任务,即输入两个双语句子,通过上述的模型操作可以得到两个句子对齐的概率,当该概率值大于给定的阈值时,输出1表示输入的两个句子是对齐的,即为平行句对;当该概率值小于给定的阈值时,输出0表示输入的两个句子不对齐,即不是平行句对。

[注1]willy.zou,richardsocher,danielcer,etal.bilingualwordembeddingsforphrase-basedmachinetranslation.[c]//proceedingsofthe2013conferenceonempiricalmethodsinnaturallanguageprocessing,2013:1393-1398.

实施例2

双向循环神经网络模型(bi-rnn)如图6所示,为本发明的另一实施例,基于深度神经网络的句子对齐方法本发明包括如下步骤:

1)语料预处理:根据训练语料生成词表和词嵌入词表;

2)生成词嵌入层,对句子中的每个单词,从词嵌入表中找到它对应的词嵌入;

3)采用双向循环神经网络层,对句子进行编码,不仅考虑了单词本身的语义信息,而且考虑了该单词的上下文信息,使每个单词获得包含其上下文信息的隐藏状态;将每个句子中单词的隐藏状态求其平均来获得句子向量,再将两个句子向量拼接起来得到vr;

4)多层感知器层,将双向循环神经网络层的结果输入到多层感知器中,并通过多层感知器获得更抽象的表示来判断句子对齐,

5)计算出两个句子对齐的概率,最后根据概率是否大于设定的值来判断两个句子是否对齐,然后将两篇文档中对齐的句子抽取出来。

双向循环神经网络层:通过双向循环神经网络编码后获得的单词隐藏状态不仅包含其自身含义,同时也包含其上下文信息。从表1和表2中的bi-rnn对应的性能可以看出,双向神经网络层捕获的信息能够帮助提取对齐的句子。

实施例3

双向循环神经网络+卷积神经网络模型(bi-rnn+cnn)如图7所示,为本发明的另一实施例,基于深度神经网络的句子对齐方法包括如下步骤:

1)语料预处理:根据训练语料生成词表和词嵌入词表;

2)生成词嵌入层,对句子中的每个单词,从词嵌入表中找到它对应的词嵌入;

3)采用双向循环神经网络层,对句子进行编码,不仅考虑了单词间本身的语义信息,而且考虑了该单词的上下文信息,使每个单词获得包含其上下文信息的隐藏状态;将每个句子中单词的隐藏状态求其平均来获得句子向量,再将两个句子向量拼接起来得到vr;

4)卷积神经网络层,使用两层卷积神经网络来计算句子向量,能够更好地捕获句义信息,对句子进行编码,得到句子的向量表示;将两个句子向量拼接起来得到vc;

5)多层感知器层,将双向循环神经网络的结果和卷积神经网络的结果组合成一个向量表示输入到多层感知器中,即计算v=wr·vr+wc·vc(wr和wc均为参数),并通过多层感知器获得更抽象的表示来判断句子对齐,

6)计算出两个句子对齐的概率,最后根据概率是否大于设定的值来判断两个句子是否对齐,然后将两篇文档中对齐的句子抽取出来。

卷积神经网络层:本发明使用两层卷积神经网络来计算句子向量,能够更好、更全面地捕获句义信息。从表1可以发现,与bi-rnn相比,bi-rnn+cnn的f1值提高了0.6;

实施例4

双向循环神经网络+门关联网络模型(bi-rnn+grn)如图8所示,是本发明bi-rnn+grn模型结构图,为本发明的另一实施例,基于深度神经网络的句子对齐方法包括如下步骤:

1)语料预处理:根据训练语料生成词表和词嵌入词表;

2)生成词嵌入层,对句子中的每个单词,从词嵌入表中找到它对应的词嵌入;

3)采用双向循环神经网络层,对句子进行编码,不仅考虑了单词本身的语义信息,而且考虑了该单词的上下文信息,使每个单词获得包含其上下文信息的隐藏状态;

4)门关联网络层,计算两个句子中词对间的语义信息;以双向循环神经网络获得的每个单词的隐藏状态作为输入,使用通过门机制融合的双线性模型和单层神经网络的网络,即门关联网络来从线性关系和非线性关系两个角度捕获词对间相似性,然后使用最大池化操作来捕获其最具信息量的部分,

5)多层感知器层,将门关联网络层的结果作为一个向量表示输入到多层感知器中,并通过多层感知器获得更抽象的表示来判断句子对齐,

6)计算出两个句子对齐的概率,最后根据概率是否大于设定的值来判断两个句子是否对齐,然后将两篇文档中对齐的句子抽取出来。

门关联网络层:以经过双向循环神经网络层编码后的单词隐藏状态作为输入,使用通过门机制融合的双线性模型和单层神经网络的网络,从线性和非线性两个角度捕获词对间关系,从而获得词对相似度矩阵。从表1和表2中bi-rnn+grn对应的性能可以看出,句子对齐的性能得到了极大地提高,总体性能all的f1值比bi-rnn分别提高了8.6和29.7,表明了词对关系是判断句子对齐的重要特征,同时本发明的门关联网络层能够有效地捕获出词对间的关系信息。

实施例5

与上述实施例不同之处在于,所述的多层感知器层为全链接层。

本发明以中英双语语料为测试,比较各个系统的句子对齐性能。

1)双向循环神经网络(rnn)和卷积神经网络(cnn)作用:

表1给出了bi-rnn和bi-rnn+cnn模型在平行语料上的对齐性能,f1值分别是89.2、89.8。bi-rnn模型是使用双向循环神经网络对输入的句对编码,使得每个单词的隐藏状态获得其上下文信息。bi-rnn+cnn模型是在bi-rnn模型基础上使用卷积神经网络获得句子的整体向量表示。该结果表明简单的深度神经网络有能力抽取双语语料中的平行句对。

表1

2)门关联网络(grn)作用:

表1和表2分别给出了不同模型在平行语料和可比语料上抽取平行句对的性能比较。

表2

bi-rnn+grn模型是在bi-rnn模型的基础上使用门关联网络(grn)来捕获单词对的语义关系,即计算源端句子中的每个单词与目标端句子中的每个单词的相似性。结果表明,与bi-rnn和bi-rnn+cnn相比,在总体性能all上,bi-rnn+grn的对齐性能在平行语料和可比语料上f1值分别平均提高了8.3和30.2,表明了门关联网络能够很好地捕获词对之间的语义关系信息,为判断句子对齐提供有力证据。

3)与现有句子对齐工具比较:

上述1)中表明卷积神经网络捕获的句子向量表示对句子对齐性能的提升有一定的帮助,因此在本发明的最终模型中加入卷积神经网络,即bi-rnn+grn+cnn。从表1和表2中可以发现确实提高了其性能。表3给出了深度神经网络方法bi-rnn+grn+cnn与句子对齐工具champollion和gargantuan在可比语料和平行语料上抽取平行句对的性能比较。

表3

从表中可以看出,本发明的实验结果在抽取不同类型的句对,如1-1或1-2/2-1,以及总体性能上均比工具的性能高。这也说明了本发明提出的基于深度神经网络的句子对齐方法能够提高句子对齐的性能。

根据互为翻译的两个句子(平行句对)中包含大量互为翻译的词对这一事实,本发明充分考虑词对信息在句子对齐任务中的重要性,采用门关联网络来捕获词对间的语义关系。另外,由于双向循环神经网络能够获取单词的上下文信息,因此,本发明采用双向循环神经网络作为底层网络来编码句子。此外,为了获得更多的判断信息,本发明通过卷积神经网络来获取句子的向量表示。从表1和表2可以发现,仅考虑句义信息(bi-rnn、bi-rnn+cnn)或仅考虑词对信息(bi-rnn+grn)均能获得一定的对齐性能,而与最终模型(bi-rnn+grn+cnn)对比可以发现,将二者信息结合起来考虑的性能要明显优于单独使用某一信息。同时,在可比语料上的测试结果表明,本发明的方法与常用句子对齐工具相比,性能得到了明显的提高,如表3所示,总体性能all上分别获得了2.0、2.2的f1值提升。

语料预处理

本发明使用的语言对是中文和英文,其中对中文文档需要进行分词,对英文文档需要全部转化成英文小写。在语料预处理阶段,先根据训练语料将训练语料中的单词按词频从大到小排序,并选出前三万个单词,生成以“单词编号”为表示形式词表,其中“编号”为从0开始的数字,那么可以通过“编号”来表示对应的单词。然后,该词表从参考论文[注1]提供的双语词嵌入(bilingualwordembedding)文件中找到词表中每个单词对应的词嵌入,生成词嵌入词表。例如:词表中条目“正248”,双语词嵌入文件中条目“正词嵌入(表示为向量)”,则生成词嵌入词表中对应的条目为“248词嵌入”。

根据需要,也可以采用其它语言来对文档进行处理。

词嵌入层

与传统的one-hot向量(独热向量)表示相比,词嵌入允许相似含义的单词具有类似的表示。因此,在embedding层(词嵌入层),作为输入的两个句子中的所有单词都将被映射到固定大小的低维度向量,这个向量就是句子中每个单词在词嵌入词表中对应的词嵌入。对应超出词表的所有低频单词,我们都将它映射到一个特殊的词嵌入上。并且在实验中,本发明采用参考论文[注1]提供的双语词嵌入来初始化词嵌入层。经过语料预处理步骤,本发明得到词表和词嵌入词表。对于输入的每个句子,先通过查询词表生成对应的编号序列,如“我爱中国”生成对应的“1310”编号序列;然后再根据编号序列查询词嵌入词表生成对应的词嵌入序列,从而完成初始化词嵌入层。词嵌入层:利用参考论文[注1]提供的双语词嵌入将单词表示成向量,从而使得相似的单词具有相似的表示,为之后的步骤提供了一定的单词特征。

双向循环神经网络层

双向循环神经网络不仅对单词本身进行编码,还对句子从左到右和从右到左的上下文(这可以为句子翻译提供重要的特征)进行编码。为了避免重复,在此我们只描述长度为m的源端句子s的双向循环神经网络过程。双向循环神经网络结构图如图4所示。源端句子s的编码使用的是一对神经网络即双向循环神经网络:前向循环神经网络从左向右读取输入的句子序列s=(s1,...,sm),并输出一个前向隐藏状态后向循环神经网络从右向左读取输入的句子序列,并输出一个后向隐藏状态那么源端句子s中的每个单词sj的隐藏状态hj,表示为隐藏状态的拼接。本发明中双向循环神经网络的过程使用门控循环单元(gatedrecurrentunit,简称gru)来解决长期依赖关系的学习问题,如下所示:在位置j处,前向隐藏状态根据以下四个公式进行更新:

其中,表示前一时刻的隐藏状态,sj是第j个单词的词嵌入,在计算时包含了前面状态和当前时刻的信息,因此,在计算每个单词的隐藏状态时,都能或多或少地包含该单词前面序列的信息。σ是sigmoid阈值函数,wz,wr,w是要学习的模型参数,训练开始时随机初始化这些参数,并在训练过程中使用梯度下降算法对其进行优化更新。·表示矩阵乘法,⊙表示元素乘法。同样的,后向隐藏状态以同样的方式进行更新。值得注意的是,本发明使用相同的双向循环神经网络来编码源端语句s和目标端语句t,因此目标端语句t的计算公式与上述相同。同时,还可以使用长短期记忆单元(longshort-termmemory,简称lstm)来替代本发明使用的门控循环单元(gru)。在位置j处,前向隐藏状态根据以下六个公式进行更新:

其中,表示前一时刻的隐藏状态,sj是第j个单词的词嵌入,σ是s型生长曲线,wf,wi,wc,wo,bf,bi,bc,bo是要学习的模型参数,训练开始时随机初始化这些参数,并在训练过程中使用梯度下降算法对其进行优化更新。·表示矩阵乘法,⊙表示元素乘法。

门关联网络层

单词对相似性特征在许多任务中广泛地应用,并且根据对齐句子对的特点,可以发现单词对相似性特征对句子对齐的性能有很大的提升。在本发明中,我们使用门关联网络来建模单词对,以捕获两种语言句子的单词之间的语义对等关系,应用于双向循环神经网络层之上。现有的大部分句子对齐方法是基于长度、词典等特征来进行判断,其中基于词典的方法是根据词典来获得句对中的词汇匹配信息,从而获得句对的匹配程度信息。这些方法仅是根据浅层的词义信息进行机械地匹配,难以捕捉其深层语言信息。而本发明为了能够更好地捕获两个句子中词对间更加丰富的语义信息,使用通过门机制融合的双线性模型和单层神经网络的网络,即门关联网络来从线性关系和非线性关系两个角度捕获词对间相似性。门关联网络的结构图如图5所示。该网络以经过双向循环神经网络编码后的两个句子的隐藏状态(hs1,...,hsm)和(ht1,...,htn)为输入,其优点在于经过双向循环神经网络编码,每个单词的隐藏状态不仅包含其本身语义信息,而且包含其上下文信息。然后,根据下面的公式计算每个单词对(si,tj)的相似性分数:

其中,如图5左下部分(a)所示,hsim[1:r]htj为双线性模型,用来捕获词对间线性关系,如图5右下部分(b)所示,f(v[hsi,htj])为单层神经网络,用来捕获词对间非线性关系,如图5中下部分(c)所示,g是表示如何整合词对间线性关系和非线性关系的门,即词对最终的相似度分数融合了多大比例的线性关系和非线性关系,u、m、v、wg均为参数,训练开始时随机初始化这些参数,并在训练过程中使用梯度下降算法对其进行优化更新,通过上述计算后,可以得到大小为m*n的矩阵,其中m和n分别为源端句子和目标端句子长度,即图3中灰色方块所示。两个文本片段之间的关系通常由一些强烈的语义相互作用决定,因此在得到如图3中灰色方块的相似性分数矩阵后,本发明采用最大池化策略来划分该矩阵,通过设置大小为p1×p2的最大化池,即对相似性分数矩阵中每个p1×p2块取其最大值,从而得到大小为(m/p1)×(n/p2)矩阵,然后将其重塑为一个一维向量vg作为门关联网络的输出。

卷积神经网络层

与双向循环神经网络层相似,本发明使用相同的卷积神经网路层来编码源端句子s和目标端句子t。对于输入的句子s=(s1,...,sm)经过词嵌入层后,得到大小为[m,embed_size](embed_size为在词嵌入的大小)的矩阵,本发明将其重塑为大小为[m,embed_size,1]的矩阵e,并且定义一个形状为[filter_depth,filter_rows,1]滤波器。然后,根据滑动步长,如选择1,该滤波器按照大小为1的滑动步长在矩阵e上滑动,并且对于每次滑动,矩阵e中被滤波器覆盖部分与滤波器的对应位置相乘,并将它们相加作为输出中相应位置的值。最后,我们得到一个形状更小的输出[m-filter_depth+1,embed_size-filter_rows+1,1]。本发明使用python编程语言中的theano框架中封装好的conv3d函数来实现该操作。然后,在输出上采用theano框架中提供的3维-最大池化策略,来获得其中最具信息量的部分。通过设置形状为[p1,p2,1]的最大池,即对上述输入的矩阵中的每个[p1,p2,1]块取其最大值,从而得到大小为[(m-filter_depth+1)/p1,(embed_size-filter_rows+1)/p2,1]的最具信息量的矩阵。在一次卷积过程中,滤波器的值保持不变,因此通过卷积可以增强句子的一些重要特征,并且可以降低噪声。由于一个卷积神经网路层学到的特征往往是局部的,本发明中使用了两个卷积神经网路层来学习更多的全局化特征。第二个卷积神经网路层的输入是第一个卷积神经网路层的输出。对源端句子s和目标端句子t编码之后,将两个句子的结果按矩阵的最后一维拼接起来作为卷积神经网络层的输出vc。同时,本发明中的两层卷积神经网络也可以替换成多层卷积神经网络,即前一层卷积神经网络的输出作为后一层卷积神经网络的输入。

多层感知器层

根据上述描述,可以获得门关联网络的输出vg和卷积神经网路的输出vc。接下来,首先将这两个矢量组合成一个矢量表示v:

v=wg·vg+wc·vc

然后,将其输入多层感知器层中。本发明中多层感知器由两个隐藏层和一个输出层组成,即v被输入到两个全链接隐藏层来获得更加抽象的表示,并最终连接到输出层:

c1=tanh(v+b1)

c2=tanh(w2·c1+b2)

其中,wg、wc、w2和b1、b2均为参数,在训练开始阶段随机初始化,并在训练过程中使用梯度下降算法对其进行优化更新;c1和c2分别表示多层感知器的两个隐藏层计算。同时,本发明中多层感知器中的两个全链接层可以替换成多个全链接层,即cn=tanh(wn·cn-1+bn),n为全链接层的个数。最后,多层感知器层的输出c2通过sigmoid函数--s型生长曲线来计算句子分类为0或1的概率p,若概率大于给定的阈值ρ则判断为句子对齐为1,反之则不对齐为0:

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