慈祯嘉措, 桑杰端珠,孙茂松,色差甲,周毛先
(1. 青海师范大学 藏文信息处理教育部重点实验室,青海 西宁 810008;2. 青海省藏文信息处理与机器翻译重点实验室,青海 西宁 810008;3. 清华大学 计算机系,北京 100084)
早期的语言模型和机器翻译方法受限于人工构建的规则,由于语言的复杂性和多样性,基于规则的方法需要构建规模庞大的规则库才能刻画语言的特性,但规则库的维护和复杂性又依赖于人类专家的经验和知识,无法对语言现象进行完备的描述。为解决规则机器翻译的缺陷和不足,基于统计的机器翻译研究开始涌现,其方法是通过大规模的标注语料学习语言的基本特性,由于统计机器翻译需要大规模的标注数据会消耗大量的人力物力。目前,基于神经网络的机器翻译能够较好地解决规则和统计方法存在的问题。与传统方法相比,以Transformer为代表的神经网络方法对数据更加依赖,因为其巨大的网络参数空间需要用大规模数据进行参数估计,从而导致翻译性能并不理想。
为了解决低资源下机器翻译中存在的问题,2016年Zoph Barret等提出了一种迁移学习方法,其主要思想是先训练一个完备的机器翻译系统模型,然后将这个模型的参数传递给低资源的机器翻译模型,从而达到低资源模型参数的初始化和约束训练,这样可以显著提高低资源条件下机器翻译的性能[1]。2017年Robert Ostling等利用向量间的依赖关系和单词对齐来解决翻译中的排序问题,并且证明了NMT也可用于低资源场景[2]。2018年Ebtesam H Almansor等提出了递归神经网络和卷积神经网络相融合的机器翻译模型,用来解决低资源下阿拉伯语到英语的机器翻译问题[3]。2018年Tao Feng等为了解决低资源下机器翻译的性能问题,提出了两种解决方法,第一种方法采用解码器权重共享来增强低资源NMT系统的目标语言模型,第二种方法应用跨语言嵌入和源语言表示空间共享来加强低资源NMT编码器[4]。
基于神经网络构架的藏汉机器翻译研究刚刚起步,特别是对低资源条件下的藏汉神经网络机器翻译相关研究很少。本文首先利用Transformer作为基线系统搭建藏汉神经网络机器翻译系统,然后在编码器中将源语言置空,也就是说编码器只训练单语的语言模型,然后利用现有资源对解码器中两个语言(藏汉)之间的对应关系进行训练,通过加入不同规模的语料,对比和分析其实验结果,期望得到一个低资源条件下高效的藏汉神经网络机器翻译系统。
以Transformer为主体框架,首先在编码器端训练藏语单语语言模型,将其作为输入;然后将藏语单语语言信息与编码器端的预输出进行加权处理,使源语言与目标语言产生映射关系,最终输出目标语言,如图1所示。
图1 总体框架
图1中,LM表示编码器端训练的藏语单语语言模型,⨁表示归一化处理,LMT表示在解码器端加入的藏语语言信息。
2014年Ilya Sutskever等为了解决神经网络对序列任务不适用的问题,提出了一种端到端的神经网络机器翻译构架[5]。这种构架用一个多层的LSTM网络将输入序列映射(编码)为一个固定大小维度的向量,再用另外一个多层的LSTM网络来解码该向量作为输出序列[5]。同年,Bahdanau D等使用固定长度向量提高编码器—解码器架构性能,并且为了打破这种架构的瓶颈,使用词表的自动对齐来扩展模型的性能[6]。直到2017年,Google的Ashish Vaswani等提出了一种基于自注意力机制(self-attention)的模型构架,这种构架可以建模各种自然语言处理问题,并在多项任务中取得了最好成绩。相较于利用RNN或者CNN作为编码器—解码器(encoder-decoder)的传统的神经机器翻译,谷歌提出的基于attention的Transformer模型抛弃了传统的构架,并没有用任何CNN或者RNN的结构。该模型可以完全地进行并行运算,在提升翻译性能的同时训练速度非常快。Transformer模型构架如图2所示。
图2 Transformer模型框架
从图2可以看出,编码器由多个相同的层堆叠在一起,每一层又有两个支层,第一个支层是一个多头的自注意力机制,第二个支层是一个简单的全连接前馈网络,解码器和编码器的结构相似,但多了一个多头注意力机制,如式(1)所示。
因为在编码器和解码器中都没有递归和卷积运算,Transformer无法自然地利用序列中的位置信息,但是对于机器翻译任务,序列中的各个元素的位置是非常重要的。为解决这个问题,Transformer 使用了一个称为位置编码(positional encoding)的方法将每个元素的位置信息显式地嵌入到网络中,即编码器的输入为位置编码向量加上(⊕)输入序列的嵌入式表示。位置编码的学习通过三角函数完成,如式(2)所示。
其中,pos代表序列中元素的位置,2i表示位置向量的维度;dmodel表示自注意力网络的输出维度。因为三角函数具有周期性,对于固定长度的偏差k,P(pos+k)可以表示为P)的线性函数,使模型能够很容易地学习序列中各个元素的相对位置关系信息[6-7]。
图3 缩放点积注意力的计算示意图
图4 多头注意力网络示意图
本文使用Transformer构架来对系统进行实现,在神经网络机器翻译中,总共有三个参数影响其翻译性能,如式(4)所示。
式(4)中,yi表示i时刻生成的目标语言,x表示源语言的输入,y
如式(5)所示,翻译的性能是由编码器和解码器共同决定的(乘积的关系),在低资源的藏汉神经网络机器翻译中,解码器的性能无法再次得到提升(因为需要大规模的平行语料),那么只能通过提高编码器的性能来提升机器翻译的性能,而在神经网络模型架构中,整个训练过程是一个完整体,很难被打断或者是分割,嵌入语言模型的难度也很大,在编码端把源语言置空,只训练单语的语言模型,从而达到与嵌入单语语言模型相同的效果。
本文将藏语单语训练的语言模型作为编码器一端,本质上是删除编码端上下文向量Ci的信息,神经网络必须完全依赖于前一个网络的输出来预测下一个网络的输出,这就相当于上下文信息被删除。本文将这种设置看作是多任务学习,当源语言已知时,这个任务就是藏汉机器翻译,当源语言未知时,神经网络进行藏语单语语言建模。在训练过程中,本文以1∶1的比例使用对齐语料和藏语单语语料进行训练,并随机打乱。在解码器端,本文将上一时刻yt-1作为当前时刻的输入。同时,藏语单语语言模型也在影响整个网络的输出,训练的翻译模型生成的词和语言模型所生成的词重新加权排序,得到一个最优的输出,如图5所示。
图5 融合单语语言模型信息
在每步预测每个词之前,将神经网络的解码器的隐藏状态stTM与藏语单语语言模型stLM进行合并,控制器gt用于重新计算语言模型的权重。如式(6)所示。
本文首先将藏语单语语言模型与神经网络模型的解码器进行融合,使隐藏状态串联起来(图5)。然后,在计算下一个单词的输出概率时,对模型进行微调,使用这两个模型的隐藏状态(式(6))。与一般的神经网络机器翻译模型不同,每个网络输出的隐藏层除了神经网络本来拥有的解码器、前一时刻的单词之外,还将藏语单语语言模型的隐藏状态作为输入。其中,本文使用stTM和stLM分别表示神经网络解码端和单语语言模型的隐藏状态。在训练过程中,只更新用于参数化输出的参数,以确保藏语单语语言模型所学到的特性不会被覆盖[9]。
本文总共收集400万句藏语单语语料,其中单语语料中310万为新闻领域的语料,40万为法律领域语料,50万为其他领域的语料;收集160万句对为藏汉双语平行语料,其中90万为新闻领域语料,40万为法律领域语料,30万为其他语料。语料的整体结构如表1所示。
表1 语料领域分布表
深层融合方法(deep fusion)见式(6)与图5,在训练过程中,只更新用于参数化输出的参数,以确保藏语单语语言模型所学到的语言特性不会被覆盖。在融合过程中,本文将权值和标准差进行了设置,在训练速率上,每10K训练数据对模型进行一次模型BLEU值的计算,直到模型性能不再提升为止。本文Transformer的参数设置如表2所示。
表2 模型参数设定
续表
各个模型的BLEU值如表3所示:
表3 各个模型BLEU值
实验结果显示,基线系统藏汉机器翻译的BLEU值为21.1,汉藏机器翻译的BLEU值为18.6,而融合藏语单语语言模型的机器翻译系统,藏汉机器翻译的BLEU值为24.5,汉藏机器翻译的BULE值为23.3,比原有的基线系统BLEU值分别提高了3.4和4.7 。BLEU实验结果表明,基于单语语言模型融合的藏汉(汉藏)神经网络机器翻译系统比原有的基线系统更加有效。
本文以目前效率最高的Transformer为基线系统,对藏汉(汉藏)神经网络机器翻译系统进行了实现,首先对单语语言模型融合的机器翻译系统进行了实现,将藏语单语训练的语言模型作为编码器一端,以1∶1的比例使用对齐语料和藏语单语语料进行训练,并把藏语单语语言模型与神经网络模型的解码器进行融合,将它们的隐藏状态串联起来,再计算下一个输出的概率,对模型进行微调,实现了一个融合单语语言模型的藏汉(汉藏)机器翻译系统,最终的实验结果表明,单语语言模型融合策略可以有效地提高原有藏汉(汉藏)神经网络机器翻译系统的性能。