16.3 多语言翻译模型 561
16.3 多语言翻译模型
低资源机器翻译面临的主要挑战是缺乏大规模高质量的双语数据。这个问题
往伴随着多语言的翻译任务
[941]
。也就是,要同时开发多个不同语言之间的机器翻译
系统,其中少部分语言是富资源语言,而其它语言是低资源语言。针对低资源语言双
语数据稀少或者缺失的情况,一种常见的思路是利用富资源语言的数据或者系统
助低资源机器翻译系统。这也构成了多语言翻译的思想,并延伸出大量的研究工作,
其中有三个典型研究方向:基于枢轴语言的方法
[942]
基于知识蒸馏的方法
[551]
基于
迁移学习的方法
[932, 943]
,下面进行介绍。
16.3.1 基于枢轴语言的方法
传统的多语言翻译中,广泛使用的是基于枢轴语言的翻译Pivot-based Translation
[942, 943]
。这种方法会使用一种数据丰富的语言作为枢轴语言Pivot Language)。翻译
过程分为两个阶段:源语言到枢轴语言的翻译,枢轴语言到目标语言的翻译。这样,
通过资源丰富的枢轴语言将源语言和目标语言桥接在一起,达到解决源语言-目标语
言双语数据缺乏的问题。比如,想要得到泰语到波兰语的翻译,可以通过英语做
轴语言。通过“泰语 英语 波兰语”的翻译过程完成泰语到波兰语的转换。
在统计机器翻译中,有很多基于枢轴语言的方法
[944, 945, 946, 947]
这些方法也已经广
泛用于低资源翻译任务
[942, 948, 949, 950]
由于基于枢轴语言的方法与模型结构无关,这些
方法也适用于神经机器翻译,并且取得了不错的效果
[943, 951]
基于枢轴语言的方法可以被描述为如16.11所示的过程。这里,使用虚线表
具有双语平行语料库的语言对,并使用带有箭头的实线表示翻译方向,令 xy p
分别表示源语言、目标语言和枢轴语言,对于输入源语言句子 x 和目标语言句子 y
其翻译过程可以被建模为:
P (y|x) =
X
p
P (p|x)P (y|p) (16.6)
其中,p 表示一个枢轴语言句子。P (p|x) P (y|p) 的求解可以直接复用既有的模型
和方法。不过,枚举所有的枢轴语言句子 p 是不可行的。因此一部分研究工作也
讨了如何选择有效的路径,从 x 经过少量 p 到达 y
[952]
x
p y
P
(
p
|
x
)
P
(
y
|
p
)
16.11 基于枢轴语言的翻译过程
虽然基于枢轴语言的方法简单且易于实现,但该方法也有一些不足。例如,它需
562 Chapter 16. 低资源神经机器翻译 肖桐 朱靖波
要两次翻译,时间开销较大。而且在两次翻译中,翻译错误会进行累积从而产生
误传播问题,导致模型翻译准确性降低。此外,基于枢轴语言的方法仍然假设源
言和枢轴语言(或者目标语言和枢轴语言)之间存在一定规模的双语平行数据,
是这个假设在很多情况下并不成立。比如,对于一些资源极度稀缺的语言,其到
语或者汉语的双语数据仍然十分匮乏,这时使用基于枢轴语言的方法的效果往往
并不理想。虽然存在以上问题,基于枢轴语言的方法仍然受到工业界的青睐,很
在线翻译引擎也在大量使用这种方法进行多语言的翻译。
16.3.2 基于知识蒸馏的方法
为了缓解基于枢轴语言的方法中存在的错误传播等问题,可以采用基于知识
馏的方法
[551, 953]
。知识蒸是一常用的模压缩
[549]
,基于教-生框架,
第十三章已经进行了详细介绍。针对低资源翻译任务,基于教师-学生框架的方法基
本思想如图16.12所示。其中,虚线表示具有平行语料库的语言对,带有箭头的实线
表示翻译方向。这里,将枢轴语言(p)到目标语言(y)的翻译模型 P (y|p) 当作教
师模型,源语言(x到目标语言(y)的翻译模型 P (y|x) 当作学生模型。然后,用
教师模型来指导学生模型的训练,这个过程中学习的目标就是让 P (y|x) 尽可能接近
P (y|p)这样学生模型就可以学习到源语言到目标语言的翻译知识。举个例子,假设
16.12 x 源语言德语hallop 为中间语言英语“helloy 目标语言法
bonjour,则德语“hallo”翻译为法语“bonjour”的概率应该与英语hello”翻译
为法语“bonjour”的概率相近。
x
p
y
P (y|x)
P (y|p)
16.12 基于教师-学生框架的翻译过程
需要注意的是,基于知识蒸馏的方法基于一个假设:如果源语言句子 x枢轴语
言句子 p 和目标语言句子 y 这三者互译,则 P (y|x) 应接近 P (y|p) ,即:
P (y|x) P(y | p) (16.7)
和基于枢轴语言的方法相比,基于知识蒸馏的方法无需训练源语言到枢轴语
的翻译模型,也就无需经历两次翻译过程。不过,基于知识蒸馏的方法仍然需要显性
地使用枢轴语言进行桥接,因此仍然面临着“源语 枢轴语 目标语言”
16.3 多语言翻译模型 563
换中信息丢失的问题。比如,当枢轴语言到目标语言翻译效果较差时,由于教师
型无法提供准确的指导,学生模型也无法取得很好的学习效果。
16.3.3 基于迁移学习的方法
迁移学习Transfer Learning是一种机器学习的方法,指的是一个预训练的模型
被重新用在另一个任务中,而并不是从头训练一个新的模型
[549]
。迁移学习的目标
将某个领域或任务上学习到的知识应用到新的领域或问题中。在机器翻译中,可
用富资源语言的知识来改进低资源语言上的机器翻译性能,也就是将富资源语言
的知识迁移到低资源语言中。
基于枢轴语言的方法需要显性地建立“源语言 枢轴语言 目标语言”的
径。这时,如果路径中某处出现了问题,就会成为整个路径的瓶颈。如果使用多个枢
轴语言,这个问题就会更加严重。不同于基于枢轴语言的方法,迁移学习无需进
两次翻译,也就避免了翻译路径中错误累积的问题。如图16.13所示,迁移学习将所
有任务分类为源任务和目标任务,目标是将源任务中的知识迁移到目标任务当中。
NMT 系统 1 NMT 系统 2 NMT 系统 3
我不悦
我不开心
吾怀忳忳
不同任务 源任务
知识
我不悦
我不开心
目标任务
吾怀忳忳
学习系统
书面语
口语
文言文
(a) 传统机器学习
(b) 迁移学习
16.13 传统机器学习和迁移学习方法对比
1. 参数初始化方法
在解决多语言翻译问题时,首先需要在资源语言上训练一个翻译模型,将
称之为父模型Parent Model)。在对父模型的参数进行初始化的基础上,训练低资
源语言的翻译模型,称之为子模型Child Model这意味着低资源翻译模型将不会
从随机初始化的参数开始学习,而是从父模型的参数开始
[954, 955, 956]
这时,也可以把
参数初始化过程看作是迁移学习。在图16.14中,左侧模型为父模型,右侧模型为子
模型。这里假设从英语到汉语的翻译为富资源翻译,从英语到西班牙语的翻译为
资源翻译,则首先用英中双语平行语料库训练出一个父模型,之后再用英语到西
牙语的数据在父模型上微调得到子模型,这个子模型即为迁移学习的模型。此过
可以看作是在富资源语言训练模型上使用低资源语言的数据进行微调,将富资源
言中的知识迁移到低资源语言中,从而提升低资源语言的模型性能。
564 Chapter 16. 低资源神经机器翻译 肖桐 朱靖波
编码器 编码器
解码器 解码器
知识 就是 力量 <eos>
El conocimiento es poder . <eos>
Knowledge is power . Knowledge is power .
父模型 子模型
参数复用 & 微调
参数复用 & 微调
16.14 参数初始化方法示意图
这种方法尽管在某些低资源语言上取得了成功,但在资源极度匮乏或零资源
翻译任务中仍然表现不佳
[957]
。具体而言,如果子模型训练数据过少,无法通过训练
弥补父模型跟子模型之间的差异,因此微调的结果很差。一种解决方案是先预训
一个多语言的模型,然后固定这个预训练模型的部分参数后训练父模型,最后从
模型中微调子模型
[958]
。这样做的好处在于先用预训练提取父模型的任务和子模型的
任务之间通用的信息(保存在模型参数里)然后强制在训练父模型的时候保留这些
信息(通过固定参数)这样最后微调子模型的时候就可以利用这些通用信息,减少
父模型和子模型之间的差异,使得微调的结果得到提升
[959]
2. 多语言单模型系统
多语言单模型方法Multi-lingual Single Model-based Method)也可以被看做是一
种迁移学习。多语言单模型方法尤其适用于翻译方向较多的情况,因为为每一个
译方向单独训练一个模型是不实际的,不仅因为设备资源和时间上的限制,还因
很多翻译方向都没有双语平行数据
[932, 941, 960]
比如,要翻译 100 个语言之间互译的系
统,理论上就需要训 100 ×99 翻译模型,代价十分巨大。这时就可以使用多
言单模型方法。
多语言单模型系统是指具有多个语言方向翻译能力的单模型系统。对于源语
集合 G
x
和目标语言集合 G
y
,多语言单模型的学习目标是学习一个单一的模型,这
译, {(l
x
,l
y
)|x
G
x
,y G
y
)} 的翻译。多语言单模型方法又可以进一步分为一对多
[931]
多对一
[563]
多对多
[961]
的方法。不过这些方法本质上是相同的,因此这里以多对多翻译为例进行
介绍。
在模型结构方面,多语言模型与普通的经机器翻译模型相同,都是标准的
-构。是:
示空间。因此,该方法使用同一个编码器处理所有的源语言句子,使用同一个解
16.3 多语言翻译模型 565
器处语言子。使个语码器(或器)
种简单的方法是直接在输入句子上加入语言标记,让模型显性地知道当前句子属
哪个语言。如图16.15所示,在此示例中,标记“<spanish>”表示目标句子为西班牙
语,标记<german>”表示目标句子为德语,则模型在进行翻译时便会将句子开头
<spanish>西
[932]
西
<spanish> HelloHola和法语到德语<german> BonjourHallo的双语
句对,则在解码时候输入英语“<german> Hello”时就会得到解码结果“Hallo
多语言
单模型系统
英语
法语
...
德语
西班牙语
...
训练阶段:
双语句对 1
英语:<spanish> hello
西班牙语:hola
双语句对 2
法语:<german> Bonjour
德语:Hallo
推断阶段:
输入:
英语:<german> hello
输出:
德语:Hallo
16.15 多语言单模型结构示意图
多语言单模型系统无需显性训练基于枢轴语言的翻译系统,而是共享多个语
的编码器和解码器,因此极大地提升了数据资源的利用效率。其适用的的一个极
场景是零资源翻译,即源语言和目标语言之间没有任何平行数据。以法语到德语
翻译为例,假设此翻译语言方向为零资源,即没有法语到德语的双语平行数据,
是有法语到其他语言(如语)的双语平行数据,也有他语言(如英语)到德
的双语平行数据。这时直接运行图16.15所示模型,可以学习到法语到英语、英语到
德语的翻译能力,同时具备了法语到德语的翻译能力,即零资源翻译能力。从这
角度说,零资源神经机器翻译也需要枢轴语言,只是这些枢轴语言数据仅在训练
间使
[932]
,而无需生成并行语料库。这种使用轴语言的式也被称隐式
Implicit Bridging
另外,使用多语言单模型系统进行零资翻译的一个优势在于,它可以最大
度上利用其它语言的数据。还是以上面提到法语到德语的零资源翻译任务为例,
了使用法语到英语、英语到德语的数据之外,所有法语到其它语言、其它语言到
语的数据都是有价值的,这些数据可以强化对法语句子的表示能力,同时强化对
语句子的生成能力。这个优点也是16.3.1节所介绍的传统基于枢轴语言方法所不具备
的。
不过,多语言单模型系统经常面临脱靶译问题,即把源语言翻译成错误的
566 Chapter 16. 低资源神经机器翻译 肖桐 朱靖波
标语言,比如要求翻译成英语,结果却是汉语或者英语夹杂其他语言的字符。这
因为多语言单模型系统对所有语言都使用一样的参数,导致模型不容易区分出来
同语言字符混合的句子属于哪种语言。针对这个问题,可以在原来共享参数的基
上为每种语言添加额外的独立的参数,使得每种语言拥有足够的建模能力,以便
更好地完成特定语言的翻译
[962, 963]