摘要:神经机器翻译(NMT)已经在很多翻译任务上获得了显著的提升效果,但它需要大规模的平行语料库作为支撑,而高质量的平行语料库往往很难获取。针对这一问题,提出了一个多语言无监督 NMT 模型,该模型使用一个共享编码器和多个解码器联合训练多种语言。实验结果表明,多语言无监督 NMT 模型方法比双语无监督 NMT 基线模型表现更好,在 WMT 测试集上,BLEU 值最大提高了 1.48%,并且此模型还可实现对训练过程中不可见语言对之间的翻译。
文丽颖, 电子设计工程 发表时间:2021-10-20
关键词:神经机器翻译;无监督;多语言;跨语言词嵌入
近年来,机器翻译技术取得了令人瞩目的成就,尤 其 是 神 经 机 器 翻 译 (Neural Machine Translation, NMT)极大程度地提升了机器翻译的译文质量,这种变革式的发展使得神经机器翻译成为机器翻译的新范式[1] 。然而,神经机器翻译(NMT)系统依赖大规模的适用于训练此类系统的平行语料库数据,如果没有或缺乏平行语料库,则会经常出现训练质量不佳的情况,甚至不能进行正确的翻译[2] 。文献[3-4]提出了不需要任何类型平行语料库的 NMT 系统,通过使用单语语料库在源语言和目标语言之间进行跨语言嵌入和迭代反向翻译;从架构的角度来看,这些方法结合了一个编码器和一个或两个解码器。文献[5]提出在有监督的 NMT 系统中联合训练多种语言,该系统成功地提高了神经机器翻译性能。受文献[3-5]的启发,文中提出一种多语言无监督神经机器翻译方法,该方法通过训练多语言无监督 NMT 模型,可实现一个源到多个目标和多个目标到一个源的翻译。实验结果表明,该模型可以改善双语无监督 NMT 模型,并且该模型无需对网络进行多对多翻译训练,网络就可以在参与训练的所有语言之间进行翻译。
1 模型构建
文中基于编码器-解码器框架构建多语言无监督 NMT 模型[6] ,该模型使用一个共享编码器和多个解码器联合训练多种语言,即通过对每种语言的降噪自动编码以及英语和多种非英语语言之间的反向翻译,产生了一个可以将参与训练的任何语言编码成一种语言间表示的通用编码器,以及多个特定语言的解码器。
1.1 双向门控循环单元
循 环 神 经 网 络 (Recurrent Neural Network,RNN) 的诞生为了更好地处理具有序列特性的数据,但该网络当前时刻的隐藏状态由该时刻的输入和上一时刻隐藏层的值共同决定,这就会带来梯度爆炸 和 梯 度 消 失 的 问 题 。 长 短 期 记 忆 (Long Short Term Memory,LSTM)网 络 可 以 解 决 RNN 带 来 的 问题,还可以从语料中学习到长期依赖关系。LSTM 神经网络模型通过引入门函数来去除或增强信息到达单元状态的能力,门函数包括遗忘门、输入门和输出门。
门控循环单元(Gated Recurrent Units,GRU)神经网络模型与 LSTM 非常相似,但相比于 LSTM,GRU 网络模型只有更新门和重置门两个门函数。GRU 网络模型更新门的作用与 LSTM 网络模型的遗忘门和输入门作用大致相同,更新门的作用在于通过设置参数值的大小决定当前状态有多少状态信息来自于前一时刻;重置门的作用也是通过设置参数值的大小决定前一时刻有多少状态信息可以遗忘或忽略。与 LSTM 网络模型相比,由于 GRU 网络模型只有两个门函数,少了一个门函数,因此 GRU 网络模型参数更少,训练速度更快。图 1 所示为 GRU 内部结构图[7] 。图1 GRU内
t 时刻输入为 xt ,GRU 的隐藏层输出为 ht ,其计算过程为: zt = σ(W ) (z) xt + U(z) ht - 1 (1) γt = σ(W ) (γ) xt + U(γ) ht - 1 (2) h′ t = tanh(Wxt + γt ⊙Uht - 1) (3)ht = zt ⊙ht - 1 + (1 - zt)⊙h′ t (4)其中,W 为连接两层的权重矩阵,σ 和 tanh 为激活函数,z、γ 分别为更新门和重置门。
文中的共享编码器和解码器使用双向 GRU 神经网络模型。如图 2 所示,网络包含左右两个序列上下文的两个子网络,分别是前向和后向传递。
双向 GRU 神经网络的输出计算过程为: ht = [ ] hl ⊕ hl (5)文中使用基于元素的和来组合正向和反向的输出。
1.2 双语无监督NMT基线模型
双语无监督 NMT 模型架构有一个共享编码器和两个语言特定的解码器,并通过以下两个步骤以无监督方式训练 NMT系统。
1)降噪自动编码。降噪自动编码就是把某种语言的句子加一些噪声(随机交换一些词的顺序等),然后用共享编码器编码加噪声后的句子,最后用该语言的句子解码恢复它。通过最大化重构出的概率来训练共享编码器和该语言的解码器。加噪声的目的是让解码器学会分析语言的结构、提取语义特征,学到一个好的语言模型 [8] 。
2)反向翻译。反向翻译是把伪平行语料当作训练数据来训练模型的过程。语言 L1 的句子 s1 先用编码器编码,然后用 L2 解码器贪心解码出 s2 ,这样就造出了伪平行句对( s1,s2 ),这时只作推断,不更新模型参数;然后再用共享编码器编码 s2 ,用 L1 解码器解码出 s1 ,这里通过最大化 P(s1 |s2) 来训练模型(也就是共享编码器和 L1 解码器的参数)[9] 。
1.3 多语言无监督NMT模型
文中提出的多语言无监督 NMT 模型首先通过跨语言嵌入映射将多种语言映射到一个共享潜在空间;然后使用共享表示,通过去噪和反向翻译,在共享编码器和特定语言解码器的帮助下,仅使用单语语料库来训练 NMT模型。
根据文献[10]创建跨语言嵌入,这是一种完全无监督的对齐单语单词嵌入的方法。首先,学习两个单语嵌入空间 X 和 Y ;然后,使用对抗性训练[11] ,学习矩阵 W 将 X 映射到 Y 。训练一个鉴别器以区分 WX 和 Y,而 W 被训练成使鉴别器难以判别出是 WX 还是 Y 。通过使用 W,可以学习小型常用词汇双语词典。求解正交普鲁克问题(Orthogonal Procrustes Problem,OPP),得到了一个在 X 和 Y 空间之间转换的新的矩阵 W : W* = arg minW‖WX - Y ‖F = UVT (6) s.t WWT = I,UΣVT = SVD(YXT ) (7)
以上步骤可以重复多次使用新的 W 来提取新的翻译对实现,两种语言之间的新翻译对是通过使用跨域相似度局部缩放(Cross- domain Similarity Local Scaling,CSLS)产生的。CSLS 距离定义如下: CSLS(Wxs ,yt) = 2 cos(Wxs ,yt) - rT (Wxs) - rS(yt)(8)其中,rT (Wxs) = 1 K y ∑t ∈ NT (Wxs ) cos(Wxs ,yt) 表示在目标语言中与 Wxs 最相邻的 K 个词汇的平均余弦距离, NT (Wxs )表示Wxs 的 K 近邻距离;rS(yt) 含义类似。
对于 n 种语言,选择一种语言 L1 作为锚点,将其他 n - 1 种语言映射到嵌入空间中。为此,首先为每种语言训练单语词嵌入;然后,逐个将 n - 1 种语言的嵌入映射到 L1 的嵌入空间中。文中实验考虑了 4 种语言,即英语、法语、西班牙语和德语,通过保持英语嵌入固定,为法语、西班牙语和德语创建了 3 种跨语言嵌入。
3 所示为多语言无监督 NMT 模型结构,共享编码器和每种语言的解码器是两层双向 GRU[12] ;在训练的每次迭代中,对 n 种语言 L1,L2,…,Ln 进行降噪自编码;如虚线箭头所示,将每个 Li 反向翻译为 L1 ;如实线箭头所示,从 L1 反向翻译到每个 Li ,其中 i ∈{2,3,…,n} 。实验设置了 4 种语言,L1 是英语。在降噪自动编码步骤中,一种语言中的句子被一些随机的单词随机打乱,并训练解码器以预测原始句子。在反向翻译步骤中,要针对源到目标的方向训练系统,首先使用推理模式系统(使用共享编码器和源语言解码器)将目标句子翻译成源句子,以生成伪源-目标平行语句,然后使用该伪平行语句按照源到目标的方向训练网络。对于从目标到源的训练过程类似于以上方法。
2 数据集和实验设置
2.1 数据集
文中使用来自 WMT 2014 的单语英语、法语和德语新闻语料库和 WMT 2013 的西班牙语语料库进行训练[13] ;其中英语、德语、法语和西班牙语的 tokens 个数分别为 4.955 亿、6.226 亿、2.243 亿和 1.229 亿。对于测试集,英语-{法语、德语}使用 newstest2013 和 newstest2014,英语-西班牙语使用 newstest2013[14] 。文中不使用任何平行语料来训练,也不使用任何开发 集 来 优 化 模 型 ,使 用 Moses 对 语 料 数 据 进 行 Tokenize和 Truecase[15] 。
2.2 实验设置
使 用 向 量 维 度 为 300 的 skip- gram 模 型 调 用 fastText(https: // github.com / facebookresearch/fastText) 训练单语嵌入;对于其他超参数,设置为 fastText 的默认值[16] 。在获得每种语言的单语嵌入后,使用跨语 言 嵌 入 映 射 代 码 MUSE(https://github.com/ facebookresearch/MUSE)将每种非英语的嵌入映射到英语的嵌入空间中[17] ,对于映射不使用双语数据。基于双语无监督 NMT 模型,使用 PyTorch 框架实现了所提出的多语言无监督 NMT 模型架构;编码器和解码器是两层双向 GRU,将句子的最大长度设置为 50 个 tokens。对于模型训练,设置嵌入维数为 300,隐藏维数为 600,词汇量大小为 50 000,Adam 优化器学习率设置为 0.000 2[18] 。由于文中不使用任何开发集,所以对双语无监督 NMT 模型和多语言无监督 NMT 模型都进行 20 万次迭代,保持批处理大小为 50 个句子,并对最终结果用 BLUE 值进行评估[19] 。
3 实验结果与分析
作为对比试验,按照文献[3]提出的方法,把为英语?{法语、德语和西班牙语}训练的双语无监督NMT模型作为基线模型。如表 1和表 2所示,给出了双语和多语言无监督 NMT 模型每个翻译方向的 BLEU 值,所提出的多语言无监督 NMT 模型在两个测试集的所有翻译方向上均优于双语无监督 NMT 模 型 ,其 中 西 班 牙 语 到 英 语 BLEU 值 最 大 改 进 为 1.48%。由于参数仅在编码器端共享,并且每个目标语言使用一个单独的解码器,因此,多语言训练在不失去其自身语言特征的情况下提高了所有语言对的性能。
在训练期间,只在英语和非英语(西班牙语、法语、德语)语言之间进行反向翻译,但网络也学会了在非英语语言对之间进行翻译。例如,为了将西班牙语翻译成法语,文中对西班牙语句子进行编码,编码器的编码输出由法语解编码器解码。为了进行评估,文中将 newstest2013测试集用于西班牙语-法语、西班牙语-德语和法语-德语语言对。表3给出了在训练中不可见语言对之间的翻译结果,可以看出,法语和西班牙语之间的翻译 BLUE 值分别高达 13.87%和 13.92%;涉及德语的语言对 BLUE 值最高为 7.40%。
4 结 论
文中提出了一个多语言无监督 NMT 模型,使用共享编码器和特定语言解码器联合训练多种语言。提出的方法基于所有语言的降噪自动编码以及英语和非英语语言之间的反向翻译。根据实验结果显示,多语言无监督 NMT 模型在所有翻译方向上较双语无监督 NMT 基线模型都有了明显的改进,最大改进 BLEU 值为 1.48%。由于提出的网络中共享编码器能够生成与语言无关的表示,所以网络也学会了在不可见的语言对之间进行翻译。