基于动态词汇编码的树形神经机器翻译
2022-10-01席红旗蒋亚平
席红旗,蒋亚平
(1.河南财政金融学院 计算机与信息技术学院,河南 郑州 450000;2.郑州轻工业大学 计算机与通信工程学院,河南 郑州 450000)
0 引 言
随着机器学习与神经网络的不断发展,神经机器翻译(neural machine translation,NMT)由于其较强的翻译能力得到了广泛的应用[1,2]。NMT最广泛采用的框架是编码器-解码器模型,该模型首先将源语句映射到分布式表示中,然后通过利用软注意机制循环生成目标词[3]。先前研究中的大多数编码器都使用双向递归神经网络(recurrent neural network,RNNs)来编码源端顺序的上下文[4]。Sennrich等指出,这类模型的不足之处是缺乏对语法信息的考虑,即没有对长距离单词之间的依赖关系进行完整的建模[5]。为解决该问题,学者们提出了几种语法感知的NMT模型[6-9]。从模型架构的角度来看,可以将这些基于语法的NMT模型分为两种方法:通过线性化结构神经网络或树型结构神经网络对语法结构进行建模。
树型结构神经网络根据句子的语法结构对句子进行编码。在这种背景下,Socher等证明,在顺序RNN层上按照语法结构对源语句进行进一步编码有益于捕获更多源端语言信息。尽管基于树形方法已在多个翻译任务中获得了较好效果,但该类别下的方法仍面临一些问题:
①词汇信息在构成结构的内部节点的构成中被过度使用。Yang等指出,使用短语结构编码器可能会导致过度翻译问题[10]。此外,随着语法结构的使用,模型参数数量会不断增加,且其中的短语节点可能并不总是有益于神经翻译模型。②树形RNN模型采用子和架构,该架构依赖于预定义数量的子节点。因此,基于成分的模型通常用二叉树进行处理,在某种程度上,这限制了它在计算短语表示时考虑远程上下文之间的依赖关系,从而忽略了对于正确解释源语句语义至关重要的单词依存关系。③Socher等证明单一的权重参数集不足以完全捕获解析和文本分类任务中语言短语的语法和语义丰富性,因此NMT也无法适应翻译过程中存在的语法语义丰富性。
针对树形神经机器翻译方法存在的局限性,提出了一种动态词汇化依赖编码的树形神经机器翻译方法。实例验证了所提出的模型在参数更少的情况下优于两个先前的模型,对于机器翻译、领域知识库自动构建等领域具有较大应用价值。
1 树形序列神经机器翻译
1.1 基于依赖关系的编码器
树形序列神经机器翻译系统的思想是建立一个考虑源语句的语法结构的神经网络。给定一个源语句X=(x1,…,xN) 及其语法树T, 对模型进行训练,从而在并行训练语料库上实现目标值Y=(y1,…,yM) 的条件翻译概率p(Y|X,T) 最大化。
(1)
(2)
(3)
图1 传统的树形编码翻译器
(4)
(5)
1.2 顺序解码器
目标句子由RNN顺序预测,使用非线性函数fsoftmax计算第j个目标词yj的条件概率
(6)
上下文向量dj是由注意力模型计算的,该注意力模型用于将每个解码的隐藏状态与源端表示形式进行软对齐
(7)
(8)
(9)
其中,Va、Ua、Wa和ba是模型参数。
2 词汇化依赖编码
2.1 建模依赖
如图1所示,成分表示向量是从其子节点表示得到的,成分节点下面的叶节点处的词汇信息会被重复使用,并传播到根路径上的所有内部节点。这导致以下情况:无论成分节点是否参与解码,在目标词的预测中始终考虑相同的词法信息。Yang等和Chen等指出,对短语表示进行条件限制时,如果没有适当的控制,可能会导致翻译过度的问题,即部分源句被多次翻译[12,13]。解决此问题的另一种方法是要么将成分结构的内部节点词汇化,要么使用依赖关系结构对句子的语法建模,在这种依赖性结构中,每个节点自然都被词汇化。此外,对于正确地解释源句子的语义至关重要的单词之间的依赖关系可能无法直接体现在连续的短语结构中。在一个句子中,头词和它的依存词之间可能有很大的距离。图2显示了一个句子依赖结构的示例,其中单词对之间的头部依赖关系被直接链接。与依赖关系图相比,信息流更直接,同时,它给出了更简单的网络体系结构,与其中引入了附加节点来代表句子成分的成分结构相反。使用依赖结构对句子的语法进行建模能够缓解上述问题。
图2 单词之间的头部依赖关系在依赖关系树中表示
研究表明,自上向下的编码方法可以更好地传播和捕获全局语法和语义信息[14]。为了携带语法信息并减少相应单词之间的距离,提出从核心词到其依存词的对源句子进行递归编码。如图3所示,其中灰线表示单词嵌入的输入,黑线表示头部依赖关系,左和右直线表示从头到右依存和从头到左依存顺序编码的方向。以h0作为根节点的隐藏状态,首先将核心词“live”编码为h1, 然后再编码其左、右依存词“We”和“places”分别变成h2和h3。 带箭头的黑线表示依赖性。首先对核心词(最重要的信息)和其依存词(补充信息)建模。表1中说明了编码过程,“Current”,“Head”和“Sibling”表示当前编码的单词、父单词和兄弟单词,其表示在每个时间步都输入到变体GRU中。“INIT”表示初始隐藏状态为的根节点。
图3 词汇化依赖编码器
表1 每个时间步的编码过程
2.2 建模顺序上下文
在一个普通的基于树形模型中,树节点的表示是在二叉化的成分树之后递归构建的,这增加了结构的深度,并没有充分考虑顺序上下文。依赖树是一个有序图,它包含头部依赖关系以及依存词到其头部的相对位置。在所提出的方法中,为了对顺序信息进行建模,将共享相同头部的依存词在中心以圆形方式顺序编码,即从头到左的依赖和从头到右的依赖。以头节点h3为例,h4和h5是左依存词,而h6是右依存词。箭头指示递归计算依赖关系的方向,如图3所示。
(10)
(11)
(12)
2.3 初始状态
为了用全局信息丰富源表示,仅将初始隐藏状态h0视为根节点的表示,并通过提供其下层的平均值,即由双向RNN生成的表示,对其进行初始化,即
(13)
由于源侧隐藏状态是以词汇化的方式计算的,因此很容易将提出的模型与标准的NMT解码器组合在一起。根据文献[15],将源端隐藏状态的平均值定义为解码器的初始隐藏状态
(14)
然后,将源隐藏状态传递给标准注意力模型以预测目标词的条件概率。
3 上下文特定参数调整
3.1 潜在向量
传统方法的另一个缺点是它在整个合成过程中递归地使用相同的共享合成函数,并且由于无法捕获语言短语的语法和语义丰富性而缺乏表达能力。Liu等提到在所有语义组成规则之间共享的相同参数可能无法捕获文本分类和语义匹配任务上语义结构的丰富性。为了处理由文献[16]启发的语义组合中的多样性所引起的拟合不足问题,进一步采用了由元网络生成的低维潜在向量z, 以动态调节上下文特定的参数。
(15)
图4 依赖模型框架
3.2 动态参数
(16)
(17)
4 实验与分析
4.1 实验设置
本文进行了一组关于英汉翻译任务的实验。使用LDC语料库的并行数据训练模型,使用NIST 08数据集进行开发,并在NIST 06测试集上进行评估。使用NiuTrans的中文分词工具包对中文句子进行了分段。此外还在WMT14上针对英语-德语翻译任务中更为突出的数据集上对提出的模型进行了训练,其中使用newstest13数据集开发模型并在newstest14数据集上进行检查。对于传统的基于树形模型和本文提出的模型,使用基于Shift-Reduce算法的Stanford Parser解析英语句子,并分别获得二进制成分树和依赖树。该解析器在各种解析任务上均取得了较好的效果,在English Penn Treebank(PTB)上的准确度达到92.0%。出于计算效率的原因,超过50个单词的句子被排除在训练集中。通过最常用的30K(英语-汉语)和50K(英语-德语)单词作为源词汇和目标词汇,在两个平行语料库的源端和目标端分别覆盖了约99.8%/97.9%和97.6%/94.5%。所有词汇量以外的词都映射到特殊标记“UNK”。表2展示了过滤后的数据集的句子数。
表2 实验数据统计
为了实现可比性,在本研究中,所有比较的NMT模型都是基于广泛使用的NMT源代码dl4mt实现的。NMT的参数设置如下:模型使用500维单词嵌入和隐藏单元。为了进行公平的比较,建立了一个额外的顺序模型,该模型的维数为700,该模型需要有与提出的模型相当数量的参数。为了防止过度拟合,在每个时期之后对训练数据进行混洗。最小批量大小设置为50个句子。在解码过程中,采用波束搜索算法来预测每一步的输出单词,并且波束搜索的大小为5。尽早停止对每个模型的训练,以最大程度地减少开发集上的疑虑。此外,使用Adadelta优化模型参数,其中学习率根据梯度的变化进行调整。使用BLEU度量标准评估相对于参考文献的翻译准确性,对比系统为:
(1)顺序编码器:一种广泛使用的逐序列基线,没有对句子的语法结构进行任何显式建模。
(2)成分编码器:传统的树形序列基线,它使用基于双向树形编码器。
(3)顺序依赖编码器:具有源方依赖性信息的顺序到顺序框架的表示。该模型用两个附加的RNNs扩展了原始的顺序编码器,以对源依赖结构派生的头富集和子富集序列进行建模。
(4)词汇化的依赖编码器:立即将源依赖结构利用到编码器中。
4.2 英汉翻译
4.2.1 词汇化依赖
实验结果总结见表3。“500 d”和“700 d”表示顺序编码器的隐藏大小,分别设置为500和700。第三列表示每个编码器的参数数量。“训练”和“解码”表示在一个GeForce GTX 1080 GPU上检查的训练和解码速度。最后一栏是通过BLEU分数评估的英汉测试集的翻译准确性。粗体表示动态词汇化依赖编码器明显优于普通的基于成分的编码器(模型#3)(p<0.01)。基于依赖的编码器(模型#6和#8)均优于传统的顺序编码器(模型#1和#2)和传统的成分模型(模型#3)。这揭示了依赖方法在结构上下文中对源端表示进行建模的有效性。关于依赖模型对比,所提出的词汇化依赖模型(模型#8)优于其线性化依赖模型(模型#6)。分析可知提高的原因是:后者按顺序构建依赖关系,但仍然仅限于捕获长距离依赖关系,而所提出的模型能够通过层次结构直接对依赖关系进行建模。
表3 英汉翻译结果
进一步评估了捕获顺序上下文信息能力的模型。如前文所述,通过删除双向顺序编码层,它对成分模型(模型#4)的翻译质量产生了巨大影响。英汉翻译任务中的6.73 BLEU得分大幅下降,表明成分模型的成功取决于顺序RNNs所学习的上下文。相反,在不使用显式单词序列的情况下,基于依赖关系的方法(模型#7和模型#10)的性能优于常规树方法(模型#4),产生的结果要高得多。这证实了提出的理论,即在某种程度上,所提出的依赖模型能够通过对兄弟节点的相对位置进行建模来捕获顺序上下文。
4.2.2 动态参数
潜在向量z控制基本网络的性能,其维数确定模型参数的数量。本文研究了25、50、75、100、150和200不同维度模型的动态组成机制,而文献[14]的工作只评估了25以下小维度的z。 图5中的实验结果表明,即使向量z的大小减小到25,该模型仍然可以在编码器中以少2倍的参数获得可观的性能。通过研究翻译质量和模型大小的组合,将z的维数设置为100。x轴表示的维数。图5(a)的y轴报告编码器所需的参数数量,图5(b)的y轴显示在英汉验证集上评估的BLEU得分。
图5 实验结果
如图5所示,通过利用动态参数,成分模型和提出的依赖模型(模型#5和模型#10)都可以用更少的参数实现渐进式改进。从结果可知,以潜在向量为组成函数的动态参数有助于捕获各种语法模式,因此可以更准确地对源端信息进行建模。另外,顺序依赖性编码器(模型#6)由于其元网络体系结构的不兼容性问题而无法从元网络带来的优势中受益。此外,每个编码器所需参数的统计数据表明,与传统的基于树形模型相比,提出的模型所需的模型参数更少,并且得到的处理速度更快。
顺序编码器(模型#1)和基于成分的编码器(模型#3)在相同数据上均胜过报告的结果。通过将所有上述改进集成到NMT系统中,提出的动态词汇化依赖编码器(模型#10)在参数尺寸较小的情况下,明显优于基于成分的编码器(模型#3)(+0.84 BLEU评分)。所提出的模型展示了从顺序和结构性上下文对源端表示进行有效建模的能力。
4.3 英语-德语翻译
在大型训练数据(4.5 M)上评估基于树形NMT模型并进行英语-德语翻译。如表4所示,动态词汇化依赖编码器明显优于成分编码器(p<0.01),在英语-德语翻译任务中,所提出的模型始终优于成分编码器和顺序编码器,显示了提出方法的有效性和普遍性。但是,相对于顺序模型,本文提出的方法在英语-德语翻译任务中获得了+0.52的BLEU分数,这与英语-汉语实验相比是微不足道的(+1.05 的BLEU分数),原因一方面可能是德语属于一种语义更为丰富的语言,其次在英语到德语的翻译中,只使用了有限的词汇,经常使用50k个单词,它仅覆盖了德国训练数据上94.5%的词汇量,因此存在模型训练期间引入词汇不足的问题。
表4 英语-德语翻译任务的翻译结果
5 结果分析
5.1 对比分析
根据等式(3),短语表示仅从其子节点的隐藏状态中得出,并考虑了单词的语法和语义关系。随着子树深度的增加,可以认为上层短语表示的隐藏状态很难较好地学习语法信息。为了深入评估各个级别的短语表示形式对翻译质量的影响,对英汉翻译任务进行了多次实验。模型允许在不同层次的组成树上公开参与限制短语表示。通过控制方程(7)的变量i来训练这些模型。
如表5所示的实验结果,考虑了组成树中靠近根(上层)的节点表示的模型(模型#5、模型#6、模型#7),其翻译质量比那些上层短语向量的模型(模型#1、模型#2、模型#3、模型#4)要稍差一些。此外,忽略叶表示的模型(模型#8)可能会比其它同样受叶节点约束的模型表现差。这表明在解码过程中考虑源侧高级短语表示会明显损害翻译质量。
表5 验证集上的翻译结果对比
5.2 词汇化形式
关于较低节点例如叶节点及其直接父节点的表示,在提出的词汇化模型与模型#1、模型#2之间仅存在少量改进。可以将缩小的差距归因于以下事实:用语法信息更新词法表示时,该信息从上层节点通过自上而下的编码传播。通过对组成树进行词汇化,传统的基于树形模型能够获得与依赖编码器可比的结果,从而验证了词汇化形式在神经机器翻译上下文中的有效性。但是基于依赖的模型和基于成分的模型之间仍然存在差距,原因是前者直接捕获单词的长距离依赖,而后者则不能。
5.3 长句分析
进一步评估了所提出的依赖模型对长句子的影响。如图6所示,根据句子的长度将句子分成10个不相交的组,并对其BLEU分数进行评估,Y轴表示提出的模型和成分编码器之间的BLEU得分差距。所提出的方法在几乎所有长度段中都优于成分模型。结果表明,所提出的依赖编码器在对长距离依赖进行建模时表现更好,从而对长句实现了更好的翻译质量。
图6 输入句子的长度对翻译性能的影响
5.4 过度翻译
在没有适当地控制来自结构表示形式的信息流的比例的情况下,成分模型往往会过度翻译句子,尤其是构成要素的翻译。从对翻译结果的观察进一步验证了这一现象。选择并检查由两个或多个连续的相同短语或片段组成的句子。如图7所示,根据重复短语的长度,将统计数据分为5个不相交的组。显然,与连续模型相比,成分模型产生较多的过度翻译,尤其是在较短的短语上(N<4)。所提出的依赖模型能够减轻这个问题,并且比其顺序对应模型产生更少的过度翻译。
图7 重复翻译结果
5.5 定性分析
5.5.1 歧义表现分析
在表6的第一个示例中,顺序编码模型错误地将“signed up”转换为“署名(signature)”,这在上下文中是不正确的,而两个树模型都给出了正确的翻译“签约(sign a contract)”。可以将其归因于树模型的能力,该树模型在某种程度上能够捕获“sign”和“up”的关系并消除词义的歧义,表明在NMT中对语法结构进行建模对翻译是有效的。关于第二个翻译错误,顺序编码模型和成分编码模型都不能很好地解释“play”,“music”和“piano”之间的关系,从而导致错误的翻译“play...with a music player(播放)”,而不是“perform piano(演奏)”。但是,在依赖编码模型中,这些词的依赖关系以更直接的方式连接在一起,而不管它们在句子中的位置如何,从而产生了更加可靠的翻译“演奏”。
5.5.2 过度翻译问题
如表6中的第二个示例所示。成分编码模型将短语“the same aspiration working in the same industry”翻译了两次。可以推断问题主要是由句子的递归结构引起的。它允许注意力模型对不同层次的成分施加条件,这些成分可能携带共同的词汇信息。在提出的依赖编码模型中,递归结构隐含在依赖结构中,因此自然缓解了过度翻译的问题。
表6 不同模型生成的翻译示例
6 结束语
本文针对树形神经机器翻译方法存在的局限性,提出了一种动态词汇化依赖编码的树形神经机器翻译方法。通过实例数据分析可知:
(1)解码过程中考虑源侧高级短语表示会明显损害翻译质量,动态词汇化编码在神经机器翻译上下文中能够兼顾顺序模型与依赖模型的优点。从而对长句实现了更好的翻译质量。所提出的依赖模型能够减轻这个问题,并且比其顺序对应模型产生更少的过度翻译。
(2)潜在向量动态调节每个节点表示的组成参数,能够更加准确地捕捉语言短语的语法和语义丰富性。
(3)提出的模型有效地提高了翻译质量与效率,对于多语义词汇有较好的翻译效果,并且有效地解决了基于树形模型中的过度翻译问题。所提出的动态词汇化依赖关系模型在参数大小较小的情况下,显著优于英语-汉语和英语-德语翻译任务中基于树形传统模型。