162 Chapter 5. 基于词的机器翻译建模 肖桐 朱靖波
5.4 统计机器翻译的三个基本问题
公式(5.17)给出了统计机器翻译的数学描述。为了实现这个过程,面临着三个基
本问题:
• 建模(Modeling):如何建立 P (s|t) 和 P (t) 的数学模型。换句话说,需要用可
计算的方式对翻译问题和语言建模问题进行描述,这也是最核心的问题。
• 训练(Training):如何获得 P (s|t) 和 P (t) 所需的参数。即从数据中得到模型
的最优参数。
• 解码(Decoding):如何完成搜索最优解的过程。即完成 arg max。
为了理解以上的问题,可以先回忆一下5.2.4小节中的公式(5.11),即 g(s,t) 函数
的定义,它用于评估一个译文的好与坏。如图5.13所示,g(s,t) 函数与公式(5.17)的建
模方式非常一致,即 g(s, t) 函数中红色部分描述译文 t 的可能性大小,对应翻译模型
P (s|t);蓝色部分描述译文的平滑或流畅程度,对应语言模型 P (t) 。尽管这种对应并
不十分严格的,但也可以看出在处理机器翻译问题上,很多想法的本质是一样的。
g(s, t)
=
Q
(j,i)∈
ˆ
A
P (s
j
,t
i
)
× P
lm
(t)
P (s|t)
翻译模型
P (t)
语言模型
图 5.13 IBM 模型与公式(5.11)的对应关系
但 g(s,t) 函数的建模很粗糙,因此下面将介绍的 IBM 模型对问题有着更严谨的
定义与建模。对于语言模型 P (t) 和解码过程在前面的内容中都有介绍,所以本章的
后半部分会重点介绍如何定义翻译模型 P (s|t) 以及如何训练模型参数。
5.4.1 词对齐
IBM 模型的一个基本的假设是词对齐假设。词对齐描述了源语言句子和目标语
句子之间单词级别的对应。具体来说,给定源语句子 s = {s
1
...s
m
} 和目标语译文
t = {t
1
...t
l
},IBM 模型假设词对齐具有如下两个性质。
• 一个源语言单词只能对应一个目标语言单词。如图5.14所示,(a) 和 (c) 都满足
该条件,尽管 (c) 中的“谢谢”和“你”都对应“thanks”,但并不违背这个约束。
而 (b) 不满足约束,因为“谢谢”同时对应到了两个目标语单词上。这个约束条
件也导致这里的词对齐变成一种非对称的词对齐(Asymmetric Word Alignment)
,因为它只对源语言做了约束,但是目标语言没有。使用这样的约束的目的是
为了减少建模的复杂度。在 IBM 模型之后的方法中也提出了双向词对齐,用
于建模一个源语言单词对应到多个目标语单词的情况
[242]
。
• 源语言单词可以翻译为空,这时它对应到一个虚拟或伪造的目标语单词 t
0
。在
图5.15所示的例子中,“在”没有对应到“on the table”中的任意一个词,而是把
5.4 统计机器翻译的三个基本问题 163
谢谢
你
thanks
you
Yes
(a)
谢谢
你
thanks
you
No
(b)
谢谢
你
thanks
you
Yes
(c)
图 5.14 不同词对齐的对比
它对应到 t
0
上。这样,所有的源语言单词都能找到一个目标语单词对应。这种
设计也很好地引入了空对齐(Empty Alignment)的思想,即源语言单词不对应
任何真实存在的单词的情况。而这种空对齐的情况在翻译中是频繁出现的,比
如虚词的翻译。
s
1
: 在 s
2
: 桌子
s
3
: 上
t
1
:on
t
2
:the t
3
:table
t
0
图 5.15 词对齐实例(“在”对应到 t
0
)
通常,把词对齐记为 a,它由 a
1
到 a
m
共 m 个词对齐连接组成,即 a = {a
1
...a
m
}。
a
j
表示第 j 个源语单词 s
j
对应的目标语单词的位置。在图5.15的例子中,词对齐关
系可以记为 a
1
= 0,a
2
= 3,a
3
= 1,即第 1 个源语单词“在”对应到目标语译文的第
0 个位置,第 2 个源语单词“桌子”对应到目标语译文的第 3 个位置,第 3 个源语单
词“上”对应到目标语译文的第 1 个位置。
5.4.2 基于词对齐的翻译模型
直接准确估计 P (s|t) 很难,训练数据只能覆盖整个样本空间非常小的一部分,绝
大多数句子在训练数据中一次也没出现过。为了解决这个问题,IBM 模型假设:句
子之间的对应可以由单词之间的对应进行表示。于是,翻译句子的概率可以被转化
为词对齐生成的概率:
P (s|t) =
X
a
P (s,a|t) (5.18)
公式(5.18)使用了简单的全概率公式把 P (s|t) 进行展开。通过访问 s 和 t 之间所
有可能的词对齐 a,并把对应的对齐概率进行求和,得到了 t 到 s 的翻译概率。这里,
可以把词对齐看作翻译的隐含变量,这样从 t 到 s 的生成就变为从 t 同时生成 s 和隐
含变量 a 的问题。引入隐含变量是生成模型常用的手段,通过使用隐含变量,可以
把较为困难的端到端学习问题转化为分步学习问题。
举个例子说明公式(5.18)的实际意义。如图5.16所示,可以把从“谢谢 你”到
“thank you”的翻译分解为 9 种可能的词对齐。因为源语言句子 s 有 2 个词,目标语
言句子 t 加上空标记 t
0
共 3 个词,因此每个源语言单词有 3 个可能对齐的位置,整
164 Chapter 5. 基于词的机器翻译建模 肖桐 朱靖波
个句子共有 3 ×3 = 9 种可能的词对齐。
谢谢
你
thank
you
t
0
P (
)
+
谢谢
你
thank
you
t
0
P (
)
+
谢谢
你
thank
you
t
0
P (
)
+
谢谢
你
thank
you
t
0
P (
)
+
谢谢
你
thank
you
t
0
P (
)
+
谢谢
你
thank
you
t
0
P (
)
+
谢谢
你
thank
you
t
0
P (
)
+
谢谢
你
thank
you
t
0
P (
)
+
谢谢
你
thank
you
t
0
P (
)
= P (s|t)
图 5.16 一个汉译英句对的所有词对齐可能
接下来的问题是如何定义 P (s,a|t)
——
即定义词对齐的生成概率。但是,隐含
变量 a 仍然很复杂,因此直接定义 P (s, a|t) 也很困难,在 IBM 模型中,为了化简问
题,P (s,a|t) 被进一步分解。使用链式法则,可以得到:
P (s,a|t) = P (m|t)
m
Y
j=1
P (a
j
|a
j−1
1
,s
j−1
1
,m,t)P (s
j
|a
j
1
,s
j−1
1
,m,t) (5.19)
其中 s
j
和 a
j
分别表示第 j 个源语言单词及第 j 个源语言单词对齐到的目标位置,
s
j−1
1
表示前 j −1 个源语言单词(即 s
j−1
1
= {s
1
...s
j−1
}),a
j−1
1
表示前 j −1 个源语言
的词对齐(即 a
j−1
1
= {a
1
...a
j−1
}),m 表示源语句子的长度。公式(5.19)将 P(s, a|t)
分解为四个部分,具体含义如下:
• 根据译文 t 选择源文 s 的长度 m,用 P (m|t) 表示;
• 当确定源语言句子的长度 m 后,循环每个位置 j 逐次生成每个源语言单词 s
j
,
也就是
Q
m
j=1
· 计算的内容;
• 对于每个位置 j,根据译文 t、源文长度 m、已经生成的源语言单词 s
j−1
1
和对
齐 a
j−1
1
,生成第 j 个位置的对齐结果 a
j
,用 P (a
j
|a
j−1
1
,s
j−1
1
,m,t) 表示;
• 对于每个位置 j,根据译文 t、源文长度 m、已经生成的源语言单词 s
j−1
1
和对
齐 a
j
1
,生成第 j 个位置的源语言单词 s
j
,用 P (s
j
|a
j
1
,s
j−1
1
,m,t) 表示。
换句话说,当求 P (s,a|t) 时,首先根据译文 t 确定源语言句子 s 的长度 m;当知
道源语言句子有多少个单词后,循环 m 次,依次生成第 1 个到第 m 个源语言单词;
当生成第 j 个源语言单词时,要先确定它是由哪个目标语译文单词生成的,即确定
生成的源语言单词对应的译文单词的位置;当知道了目标语译文单词的位置,就能
确定第 j 个位置的源语言单词。
需要注意的是公式(5.19)定义的模型并没有做任何化简和假设,也就是说公式的
左右两端是严格相等的。在后面的内容中会看到,这种将一个整体进行拆分的方法
5.4 统计机器翻译的三个基本问题 165
可以有助于分步骤化简并处理问题。
5.4.3 基于词对齐的翻译实例
用前面图5.15中例子来对公式(5.19)进行说明。例子中,源语言句子“在 桌子
上”目标语译文“on the table”之间的词对齐为 a = {1-0, 2-3, 3-1}。公式(5.19)的计
算过程如下:
• 首先根据译文确定源文 s 的单词数量(m = 3),即 P (m = 3|“t
0
on the table”);
• 再确定源语言单词 s
1
由谁生成的且生成的是什么。可以看到 s
1
由第 0 个目标
语单词生成,也就是 t
0
,表示为 P (a
1
= 0 |ϕ, ϕ, 3,“t
0
on the table”),其中 ϕ 表
示空。当知道了 s
1
是由 t
0
生成的,就可以通过 t
0
生成源语言第一个单词“在”,
即 P (s
1
=“在” |{1 −0},ϕ,3,“t
0
on the table”);
• 类似于生成 s
1
,依次确定源语言单词 s
2
和 s
3
由谁生成且生成的是什么;
最后得到基于词对齐 a 的翻译概率为:
P (s,a|t) = P (m|t)
m
Y
j=1
P (a
j
|a
j−1
1
,s
j−1
1
,m,t)P (s
j
|a
j
1
,s
j−1
1
,m,t)
= P (m = 3 | t
0
on the table)×
P (a
1
= 0 | ϕ,ϕ,3,t
0
on the table)×
P (s
1
= 在 | {1-0},ϕ,3,t
0
on the table)×
P (a
2
= 3 | {1-0},在,3,t
0
on the table)×
P (s
2
= 桌子 | {1-0, 2-3}, 在, 3, t
0
on the table)×
P (a
3
= 1 | {1-0, 2-3}, 在 桌子, 3, t
0
on the table)×
P (s
3
= 上 | {1-0, 2-3, 3-1},在 桌子,3,t
0
on the table) (5.20)