7. 基于短语的模型
机器翻译的一个基本问题是要定义翻译的基本单元是什么。比如,可以像第五
章介绍的那样,以单词为单位进行翻译,即把句子的翻译看作是单词之间对应关系
的一种组合。基于单词的模型是符合人类对翻译问题的认知的,因为单词本身就是
人类加工语言的一种基本单元。然而,在进行翻译时也可以使用一些更“复杂”的知
识。比如,很多词语间的搭配需要根据语境的变化进行调整,而且对于句子结构的
翻译往往需要更上层的知识,如句法知识。因此,在对单词翻译进行建模的基础上,
需要探索其他类型的翻译知识,使得搭配和结构翻译等问题可以更好地被建模。
本章会介绍基于短语的机器翻译模型。在过去二十年中,它一直是机器翻译的
主流方法。相比于基于单词的模型,基于短语的模型可以更好地对单词之间搭配和
小范围依赖关系进行描述。这种方法也在相当长的一段时期内占据着机器翻译的统
治地位。即使近些年神经机器翻译逐渐崛起,基于短语的模型仍然是机器翻译的主
要框架之一,其中的思想和很多技术手段对今天的机器翻译研究仍然有很好的借鉴
意义。
7.1 翻译中的短语信息
不难发现,基于单词的模型并不能很好地捕捉单词间的搭配关系。相比之下,使
用更大颗粒度的翻译单元是一种对搭配进行处理的方法。下面来一起看看,基于单
词的模型所产生的问题以及如何使用基于短语的模型来缓解该问题。
198 Chapter 7. 基于短语的模型 肖桐 朱靖波
7.1.1 词的翻译带来的问题
首先,回顾一下基于单词的统计翻译模型是如何完成翻译的。图7.1展示了一个
实例。其中,左侧是一个单词的“翻译表”它记录了源语言(汉语)单词和目标语
(英语)单词之间的对应关系,以及这种对应的可能性大小(用 P 表示)在翻译
时,会使用这些单词一级的对应,生成译文。7.1右侧就展示了一个基于词的模型
生成的翻译结果,其中 s t 分别表示源语言和目标语言句子,单词之间的连线表示
两个句子中单词一级的对应。
单词翻译表 P
I 0.6
喜欢 like 0.3
绿 green 0.9
tea 0.8
喜欢
绿
s =
I
like
green
tea
t =
7.1 基于单词的翻译实例
7.1体现的是个典的基单词应关的翻方法。它非适合性翻
Compositional Translation的情况,也就是通常说的直译。不过,自然语言作为
人类创造的高级智能的载体,远比想象的复杂。比如,即使是同一个单词,词义也会
根据不同的语境产生变化。
7.2给出了一个新的例子,其中为了便于阅读,单词之间用空格或者斜杠进行
割。使模,“我/
//茶”,翻译概率最大的译文是I like red tea。显然,red tea”并不是英语中
“红/茶”的说法,正确的译文应该是“black tea
单词翻译表 P
I 0.6
喜欢 like 0.3
red 0.8
black 0.1
tea 0.8
“红茶”一种配,应
该翻译为“black tea
喜欢
s
=
I
like red
tea
t
=
7.2 基于单词的模型对固定搭配“红/茶”进行翻译
这里的问题在于,black tea”不能通过“红”和“茶”这两个单词直译的结果
组合而成,也就是,“红”翻译为red并不符合“红/茶”这种特殊搭配的翻译。
虽然在训练数据中“红”有很高的概率被翻译为red但是在这个例子中,应该选
择概率更低的译文black那如何做到这一点呢?如果让人来做,这个事不难,
为所有人学习英语的时候都知道“红”“茶”放在一起构成了一个短语,或者说一
种搭配,这种搭配的译文是固定的,记住就好。同理,如果机器翻译系统也能学习并
记住这样的搭配,显然可以做得更好。这也就形成了基于短语的机器翻译建模的基
7.1 翻译中的短语信息 199
本思路。
7.1.2 更大粒度的翻译单元
既然仅仅使用单词的直译不能覆盖所有的翻译现象,那就可以考虑在翻译中使
用更大颗粒度的单元,这样能够对更大范围的搭配和依赖关系进行建模。一种非常
简单的方法是把单词扩展为 n-gram,这里视为短语Phrase。也就是,翻译的基本
单元是一个个连续的词串,而非一个个相互独立的单词。
7.3展示了一个引入短语之后的翻译结果。其中的翻译表不仅包含源语言和目
标语言单词之间的对应,同时也包括短语n-gram的翻译。这样,“红/茶”可以作
为一个短语包含在翻译表中,它所对应译文是“black tea对于待翻译句子,可以
使用单词翻译的组合得到“红/茶”的译文“red tea,也可以直接使用短语翻译得到
black tea。由于短语翻译“红/ black tea”的概率更高,因此最终会输出正确
的译文“black tea
词串翻译表 P
I 0.6
喜欢 like 0.3
red 0.8
black 0.1
tea 0.8
/喜欢 I like 0.3
/喜欢 I liked 0.2
绿/ green tea 0.5
绿/ the green tea 0.1
/ black tea 0.7
...
喜欢
s =
I
like red
tea
t =
No
喜欢
s =
I
like black
tea
t =
Yes
7.3 基于短语(n-gram)的翻译的实例
一般来说,统计机器翻译的建模对应着一个两阶段的过程:首先,得到每个翻译
单元所有可能的译文;然后,通过对这些译文的组合得到可能的句子翻译结果,并
选择最佳的目标语言句子输出。如果基本的翻译单元被定义下来,机器翻译系统可
以学习这些单元翻译所对应的翻译知识(对应训练过程)之后运用这些知识对新的
句子进行翻译(对应解码过程)
7.4给出了基于单词的机器翻译过程的一个示例。首先,每个单词的候选译文
都被列举出来,而机器翻译系统就是要找到覆盖所有源语言单词的一条路径,且对
应的译文概率是最高的。比如,图中的红色折线就代表了一条翻译路径,也就是一
个单词译文的序列
1
在引入短语翻译之后,并不需要对上述过程进行太大的修改。仍然可以把翻译
1
为了简化问题,这里没有描述单词译文的调序。对于调序的建模,可以把它当作是对目标语单词串
的排列,这个排列的好坏需要用额外的调序模型进行描述。详细内容见7.4节。
200 Chapter 7. 基于短语的模型 肖桐 朱靖波
感到
满意
待翻译句子(已经分词)
I
me
I’m
1
1
1
to
with
for
2
2
2
you
3
ϕ
show
4
4
satisfy
satisfied
satisfies
5
5
5
P =0.4
P =0.2
P =0.4
P =0.4
P =0.3
P =0.3
P =1
P =0.5
P =0.5
P =0.5
P =0.4
P =0.1
单词翻译
7.4 基于单词的翻译被看作是一条“路径”
当作是一条贯穿源语言所有单词译文的路径,只是这条路径中会包含短语,而非一
个个单词。图7.5给出了一个实例,其中的蓝色折线表示包含短语的翻译路径。
感到
满意
待翻译句子(已经分词)
I
me
I’m
1
1
1
I’m
I
1-2
1-2
to
with
for
2
2
2
for you
with you
2-3
2-3
you
3
you are satisfied
ϕ
3-5
3-4
ϕ
show
4
4
satisfied
satisfactory
4-5
4-5
satisfy
satisfied
satisfies
5
5
5
P =0.4
P =0.2
P =0.4
P =0.1
P =0.2
P =0.4
P =0.3
P =0.3
P =0.2
P =0.1
P =1
P =0.4
P =0.3
P =0.5
P =0.5
P =0.3
P =0.2
P =0.5
P =0.4
P =0.1
单词翻译
短语翻译
翻译路径(仅包含单词)
翻译路径(含有短语)
7.5 翻译被看作是由单词和短语组成的“路径”
实际上,单词本身也是一种短语。从这个角度说,基于单词的翻译模型是包含
在基于短语的翻译模型中的。而这里所说的短语包括多个连续的单词,可以直接捕
捉翻译中的一些局部依赖。而且,由于引入了更多样的翻译单元,可选择的翻译路
径数量也大大增加。本质上,引入更大颗粒度的翻译单元给模型增加了灵活性,同
时增大了翻译假设空间。如果建模合理,更多的翻译路径会增加找到高质量译文的
机会。在7.2节还将看到,基于短语的模型会从多个角度对翻译问题进行描述,包括
基础数学建模、调序等等。
7.1 翻译中的短语信息 201
7.1.3 机器翻译中的短语
基于短语的机器翻译的基本假设是:双语句子的生成可以用短语之间的对应关
系进行表示。图7.6示了一个基于短语的翻译实例。可以看到,这里的翻译单元是
连续的词串。比如,“进口”的译文The imports have”就包含了三个单词,而“下
/了”也是一个包含两个单词的源语言片段。
进口
大幅度
下降
The imports have
drastically
fallen
源语言:
目标语言:
7.6 基于短语的汉英翻译实例
不过,这里所说的短语并不是语言学上的短语,本身也没有任何语言学句法的
结构约束。在基于短语的模型中,可以把短语简单地理解为一个词串。具体来说,
如下定义。
定义 7.1.1 短语
对于一个句子 w = {w
1
...w
n
},任意子 {w
i
...w
j
}(i j 0 i, j n) 是句子 w
的一个短语
根据这个定义,对于一个由 n 个单词构成的句子,可以包含
n(n1)
2
个短语(子
串)进一步,可以把每个句子看作是由一系列短语构成的序列。组成这个句子的短
语序列也可以被看作是句子的一个短语切分Phrase Segmentation)。
定义 7.1.2 句子的短语切分
如果一个句子 w = {w
1
...w
n
} 可以被切分为 m 个子串,则称 w m 个短语组成,
w = {p
1
...p
m
},其中 p
i
w 的一个短语,{p
1
,...,p
m
} 也被称作句子 w 的一个短语切
比如,对于一个句子,“机器/翻译////很有/挑战//任务”,一种可能的短
语切分为:
p
1
= 机器/翻译
p
2
= //
p
3
= 很有/挑战/
p
4
= 任务
进一步,把单语短语的概念推广到双语的情况:
202 Chapter 7. 基于短语的模型 肖桐 朱靖波
定义 7.1.3 双语短语(或短语对)
对于源语言和目标语言句对 (s, t)s 中的一个短语 ¯s
i
t 中的一个短语
¯
t
j
可以构成
一个双语短语对 (¯s
i
,
¯
t
j
),简称短语对Phrase Pairs(¯s
i
,
¯
t
j
)
也就是说,源语言句子中任意的短语和目标语言句子中任意的短语都构成一个
双语短语。这里用 表示互译关系。对于一个双语句对“牛肉的/进口/大幅度/下降/
the import of beef has drastically fallen,可以得到很多双语短语,比如:
大幅度
drastically
大幅度/下降 has drastically fallen
牛肉的/进口 import of beef
进口/大幅度 import has drastically
大幅度/下降/ drastically fallen
have drastically
...
接下来的问题是,如何使用双语短语描述双语句子的生成,即句子翻译的建模
问题。在基于词的翻译模型里,可以用词对齐来描述双语句子的对应关系。类似的,
也可以使用双语短语描述句子的翻译。这里,借用形式文法中推导的概念。把生成
双语句对的过程定义为一个基于短语的翻译推导:
定义 7.1.4 基于短语的翻译推导
对于源语言和目标语言句对 (s,t)分别有短语切分 {¯s
i
} {
¯
t
j
} {¯s
i
} {
¯
t
j
} 之间
存在一一对应的关系。 {¯a
j
} 表示 {
¯
t
j
} 中每个短语对应到源语言短语的编号,则称短语
{(¯s
¯a
j
,
¯
t
j
)} 构成了 s t 基于短语的翻译推导 (简称推导),记为 d({(¯s
¯a
j
,
¯
t
j
)},s, t)(
记为 d({(¯s
¯a
j
,
¯
t
j
)}) d)
基于短语的翻译推导定义了一种从源语言短语序列到目标语言短语序列的对应,
其中源语言短语序列是源语言句子的一种切分,同样的,目标语言短语序列是目标
语言句子的一种切分。翻译推导提供了一种描述翻译过程的手段:对于一个源语言
句子,可以找到从它出发的翻译推导,推导中短语的目标语部分就构成了译文。也
就是,每个源语言句子 s 上的一个推导 d 都蕴含着一个目标语句子 t
7.7给出了一个由三个双语短语 {(¯s
¯a
1
,
¯
t
1
),(¯s
¯a
2
,
¯
t
2
),(¯s
¯a
3
,
¯
t
3
)} 构成的汉英互译句
对,其中短语对齐信息为 ¯a
1
= 1¯a
2
= 2¯a
3
= 3。这里,可以把这三个短语对的组
合看作是翻译推导,形式化表示为如下公式:
d = (¯s
¯a
1
,
¯
t
1
) s
¯a
2
,
¯
t
2
) s
¯a
3
,
¯
t
3
) (7.1)
7.1 翻译中的短语信息 203
其中, 表示短语的组合
2
进口
大幅度
下降了
The imports have
drastically
fallen
s
t
¯s
a
1
=1
¯s
a
2
=2
¯s
a
3
=3
¯
t
1
¯
t
2
¯
t
3
7.7 三个双语短语 {(¯s
¯a
1
,
¯
t
1
),(¯s
¯a
2
,
¯
t
2
),(¯s
¯a
3
,
¯
t
3
)} 构成的翻译推导
到此为止,就得到了一个基于短语的翻译模型。对于每个双语句对 (s,t ) 每个
翻译推 d 都对应了一个基于短语的翻译过程。而基于短语的机器翻译的目标就是
d 进行描述。为了实现基于短语的翻译模型,有四个基本问题需要解决:
如何用统计模型描述每个翻译推导的好坏
——
即翻译的统计建模问题。
如何获得可使用的双语短语对
——
即短语翻译获取问题。
如何对翻译中的调序问题进行建模
——
即调序问题。
如何找到输入句子 s 的最佳译文
——
即解码问题。
这四个问题也构成了基于短语的翻译模型的核心,下面对其逐一展开讨论。
2
短语的组合是指将两个短语 a b 进行拼接,形成新的短语 ab在机器翻译中,可以把双语短语
的组合看作是对目标语短语的组合。比如,对于两个双语短语 (¯s
¯a
1
,
¯
t
1
),(¯s
¯a
2
,
¯
t
2
)短语的组合表示将
¯
t
1
¯
t
2
进行组合,而源语言端作为输入已经给定,因此直接匹配源语言句子中相应的部分即可。根据两
个短语在源语言中位置的不同,通常又分为顺序翻译、反序翻译、不连续翻译。关于这部分内容将会
7.4节调序模型的部分进行介绍。