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
j1
1
,s
j1
1
,m,t)P (s
j
|a
j
1
,s
j1
1
,m,t) (5.19)
s
j
a
j
j 个源 j 置,
s
j1
1
表示前 j 1 个源语言单词(即 s
j1
1
= {s
1
...s
j1
}a
j1
1
表示前 j 1 个源语言
的词对齐(即 a
j1
1
= {a
1
...a
j1
}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
j1
1
和对
a
j1
1
,生成第 j 个位置的对齐结果 a
j
,用 P (a
j
|a
j1
1
,s
j1
1
,m,t) 表示;
对于每个位置 j,根据译文 t、源文长度 m、已经生成的源语言单词 s
j1
1
和对
a
j
1
,生成第 j 个位置的源语言单词 s
j
,用 P (s
j
|a
j
1
,s
j1
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
j1
1
,s
j1
1
,m,t)P (s
j
|a
j
1
,s
j1
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)