166 Chapter 5. 基于词的机器翻译建模 肖桐 朱靖波
5.5 IBM 模型 1
公式(5.18)和公式(5.19)翻译问题定义为对译文和词对齐同时进行生成的问题。
其中有两个问题:
首先,公式(5.18)的右端
P
a
P (s,a|t)要求对所有的词对齐概率进行求和,
是词对齐的数量随着句子长度是呈指数增长,如何遍历所有的对齐 a
次,公(5.19)然对词对的问题进了描述,但模型中的很多数仍
然很复杂,如何计算 P (m|t)P (a
j
|a
j1
1
,s
j1
1
,m,t) P (s
j
|a
j
1
,s
j1
1
,m,t)
针对这些问题,Brown 等人总共提出了 5 种解决方案,这也就是被后人所熟知的
5 IBM 译模型。第一个问题可以通过一定的数学或者工程技巧进行求解;第
个问题可以通过一些假设进行化简,依据化简的层次和复杂度不同,可以分为 IBM
模型 1IBM 模型 2IBM 模型 3IBM 模型 4 以及 IBM 模型 5本节首先介绍较为
简单的 IBM 模型 1
5.5.1 IBM 模型 1 的建模
IBM 模型 1 对公式(5.19)中的三项进行了简化。具体方法如下:
假设 P (m|t) 为常数 ε,即源语言句子长度的生成概率服从均匀分布,如下:
P (m|t) ε (5.21)
对齐概率 P (a
j
|a
j1
1
,s
j1
1
,m,t) 仅依赖于译文长度 l即每个词对齐连接的生成
概率也服从均匀分布。换句话说,对于任意源语言位置 j 对齐到目标语言任意
位置都是等概率的。比如译文为“on the table,再加 t
0
4 个位置,相应
的,任意源语单词对齐到这 4 个位置的概率是一样的。具体描述如下:
P (a
j
|a
j1
1
,s
j1
1
,m,t)
1
l + 1
(5.22)
s
j
P (s
j
|a
j
1
,s
j1
1
,m,t) t
a
j
即单词翻译概率 f(s
j
|t
a
j
)。此时单词翻译概率满
P
s
j
f(s
j
|t
a
j
) = 1。比如
5.17表示的例子中,源语单词“上”出现的概率只和与它对齐的单词on
关系,与其他单词没有关系。
P (s
j
|a
j
1
,s
j1
1
,m,t) f(s
j
|t
a
j
) (5.23)
用一个简单的例子对公式(5.23)进行说明。比如,在图5.17中,“桌子”对齐到
table,可被描述为 f (s
2
|t
a
2
) = f(“桌子”|table),表示给定“table”翻译
为“桌子”的概率。通常,f(s
2
|t
a
2
) 被认为是一种概率词典,它反应了两种语
言单词一级的对应关系。
5.5 IBM 模型 1 167
将上述三个假设和公式(5.19)代入公式(5.18)中,得到 P (s|t) 的表达式:
P (s|t) =
X
a
P (s,a|t)
=
X
a
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)
=
X
a
ε
m
Y
j=1
1
l + 1
f(s
j
|t
a
j
)
=
X
a
ε
(l + 1)
m
m
Y
j=1
f(s
j
|t
a
j
) (5.24)
s
1
: s
2
: 桌子
s
3
:
t
1
:on
t
2
:the t
3
:table
t
0
5.17 汉译英双语句对及词对齐
在公式(5.24)中,需要遍历所有的词对齐,
P
a
·但这种表示不够直观,因此
可以把这个过程重新表示为如下形式:
P (s|t) =
l
X
a
1
=0
···
l
X
a
m
=0
ε
(l + 1)
m
m
Y
j=1
f(s
j
|t
a
j
) (5.25)
公式(5.25)分为两个主要部分。第一部分:遍历所有的对齐 a其中 a {a
1
,...,a
m
}
组成,每个 a
j
{a
1
,...,a
m
} 从译文的开始位置 (0) 循环到截止位置 (l)。如图5.18
示的例子,描述的是源语单词 s
3
从译文的开始 t
0
遍历到结尾 t
3
a
3
的取值范围。
第二部分: 对于每个 a 累加对齐概率 P (s,a|t) =
ε
(l+1)
m
Q
m
j=1
f(s
j
|t
a
j
)
s
1
: s
2
: 桌子
s
3
:
t
1
:on
t
2
:the t
3
:table
t
0
5.18 公式(5.25)第一部分实例
这样就得到了 IBM 模型 1 中句子翻译概率的计算式。可以看出 IBM 模型 1 的假
设把翻译模型化简成了非常简单的形式。对于给定的 sa t只要知道 ε f(s
j
|t
a
j
)
就可以计算出 P (s|t)
168 Chapter 5. 基于词的机器翻译建模 肖桐 朱靖波
5.5.2 解码及计算优化
如果模型参数给定,可以使用 IBM 模型 1 对新的句子进行翻译。比如,可以使
5.2.5节描述的解码方法搜索最优译文。在搜索过程中,只需要通过公式(5.25)计算
每个译文候选的 IBM 模型翻译概率。但是,公式(5.25)的高计算复杂度导致这些模型
很难直接使用。以 IBM 模型 1 为例,这里把公式(5.25)重写为:
P (s|t) =
ε
(l + 1)
m
l
X
a
1
=0
...
l
X
a
m
=0
| {z }
(l+1)
m
次循环
m
Y
j=1
f(s
j
|t
a
j
)
| {z }
m次循环
(5.26)
可以看到,遍历所有的词对齐需要 (l+1)
m
次循环,遍历所有源语言位置累计 f(s
j
|t
a
j
)
需要 m 次循环,因此这个模型的计算复杂度为 O((l + 1)
m
m) m 较大时,计算这
样的模型几乎是不可能的。不过,经过仔细观察,可以发现公式右端的部分有另
一种计算方法,如下:
l
X
a
1
=0
...
l
X
a
m
=0
m
Y
j=1
f(s
j
|t
a
j
) =
m
Y
j=1
l
X
i=0
f(s
j
|t
i
) (5.27)
(5.27)(等端)
(等端)环, O((l + 1)
m
m)
O((l + 1)m)。此外,公式(5.27)相比公式(5.26)的另一个优点在于,公(5.27)中乘法
的数量更少,因为现代计算机中乘法运算的代价要高于加法,因此公式(5.27)的计算
机实现效率更高。图5.19 对这个过程进行了进一步解释。
α(1,0)α(2, 0) + α(1,0)α(2, 1) + α(1, 0)α(2, 2)+
α(1,1)α(2, 0) + α(1,1)α(2, 1) + α(1, 1)α(2, 2)+
α(1,2)α(2, 0) + α(1,2)α(2, 1) + α(1, 2)α(2, 2)
2
P
y
1
=0
2
P
y
2
=0
α(1,y
1
)α(2,y
2
)
=
2
P
y
1
=0
2
P
y
2
=0
2
Q
x=1
(α(1,0) + α(1 , 1) + α(1, 2))·
(α(2,0) + α(2 , 1) + α(2, 2))
=
2
Q
x=1
2
P
y =0
=
l
P
a
1
=0
...
l
P
a
m
=0
m
Q
j=1
f(s
j
|t
a
j
)
=
m
Q
j=1
l
P
i=0
f(s
j
|t
i
)
α(x,y
x
) α(x,y)
5.19
l
P
a
1
=0
...
l
P
a
m
=0
m
Q
j=1
f(s
j
|t
a
j
) =
m
Q
j=1
l
P
i=0
f(s
j
|t
i
) 的实例
5.5 IBM 模型 1 169
接着,利用公式(5.27)的方式,可以把公式(5.25)重写表示为:
IBM 模型 1P (s|t) =
ε
(l + 1)
m
m
Y
j=1
l
X
i=0
f(s
j
|t
i
) (5.28)
公式(5.28) IBM 模型 1 的最终表达式,在解码和训练中可以被直接使用。
5.5.3 训练
在完成了建模和解码的基础上,剩下的问题是如何得到模型的参数。这也是
个统计机器翻译里最重要的内容。下面将会对 IBM 模型 1 的参数估计方法进行介绍。
1. 目标函数
统计机器翻译模型的训练是一个典型的优化问题。简单来说,训练是指在给
数据集(训练集)上调整参数使得目标函数的值达到最大(或最小)此时得到的参
数被称为是该模型在该目标函数下的最优解(图5.20
参数 x 的最优解
目标函数 f (x) 的最大值
f(x)
5.20 一个目标函数的最优解
IBM 模型中,优化的目标函数被定义为 P (s|t)也就是,对于给定的句对 ( s, t )
最大化翻译概率 P (s|t)。这里用符号 P
θ
(s|t) 表示模型由参数 θ 决定,模型训练可以
被描述为对目标函数 P
θ
(s|t) 的优化过程:
b
θ = argmax
θ
P
θ
(s|t) (5.29)
其中,argmax
θ
表示求最优参数的过程(或优化过程)
公式(5.29)实际上也是一种基于极大似然的模型训练方法。这里,可以把 P
θ
(s|t)
看作是模型对数据描述的一个似然函数,记作 L(s, t ; θ)也就是,优化目标是对似然
函数的优化:{
b
θ} = {arg max
θΘ
L(s,t;θ)},其中 {
b
θ} 表示可能有多个结果,Θ 表示
参数空间。
回到 IBM 模型的优化问题上。 IBM 模型 1 为例,优化的目标是最大化翻译概
170 Chapter 5. 基于词的机器翻译建模 肖桐 朱靖波
P (s|t)。使用公式(5.28) ,可以把这个目标表述为:
max
ε
(l + 1)
m
m
Y
j=1
l
X
i=0
f(s
j
|t
i
)
s.t. 任意单词t
y
:
X
s
x
f(s
x
|t
y
) = 1
其中,max(·) 表示最大化,
ε
(l+1)
m
Q
m
j=1
P
l
i=0
f(s
j
|t
i
) 是目标函数,f (s
j
|t
i
) 是模型的
参数,
P
s
x
f(s
x
|t
y
) = 1 是优化的约束条件,以保证翻译概率满足归一化的要求。需
要注意的 {f(s
x
|t
y
)} 对应了很多参数,每个源语言单词和每个目标语单词的组
都对应一个参数 f(s
x
|t
y
)
2. 优化
可以看到,IBM 型的参数训练问题本质上是带约束的目标函数优化问题。由
于目标函数是可微分函数,解决这类问题的一种常用手法是把带约束的优化问题
化为不带约束的优化问题。这里用到了拉格朗日乘数法Lagrange Multiplier Method
它的基本思想是把含有 n 个变量和 m 个约束条件的优化问题转化为含有 n + m
变量的无约束优化问题。
这里的目标是 max(P
θ
(s|t)),约束条件是对于任意的目标语单词 t
y
P
s
x
P (s
x
|t
y
) = 1。根据拉格朗日乘数法,可以把上述优化问题重新定义为最大化如
下拉格朗日函数的问题:
L(f,λ) =
ε
(l + 1)
m
m
Y
j=1
l
X
i=0
f(s
j
|t
i
)
X
t
y
λ
t
y
(
X
s
x
f(s
x
|t
y
) 1) (5.30)
L(f,λ) 包含两部分,
ε
(l+1)
m
Q
m
j=1
P
l
i=0
f(s
j
|t
i
) 是原始的目标函数,
P
t
y
λ
t
y
(
P
s
x
f(s
x
|t
y
) 1) 是原始的条件以拉日乘 λ
t
y
,拉日乘
的数量和约束条件的数量相同。图5.21通过图例说明了 L(f,λ) 各部分的意义。
L(f,λ)
=
ϵ
(l+1)
m
m
Q
j=1
l
P
i=0
f(s
j
|t
i
)
P
t
y
λ
t
y
(
P
s
x
f(s
x
|t
y
)
1)
L(f,λ)
=
ϵ
(l+1)
m
m
Q
j=1
l
P
i=0
f(s
j
|t
i
)
P
t
y
λ
t
y
(
P
s
x
f(s
x
|t
y
)
1)
新目标函数 旧目标函数 参数:词翻译概率
参数:拉格朗日乘数
参数约束条件
5.21 拉格朗日函数的解释(IBM 模型 1
5.5 IBM 模型 1 171
因为 L(f,λ) 是可微分函数,因此可以通过计算 L(f,λ) 导数为零的点得到极值点。
为这个模型里仅有 f(s
x
|t
y
) 一种类型的参数,只需要对如下导数进行计算。
L(f,λ)
f(s
u
|t
v
)
=
ε
(l+1)
m
m
Q
j=1
l
P
i=0
f(s
j
|t
i
)
f(s
u
|t
v
)
P
t
y
λ
t
y
(
P
s
x
f(s
x
|t
y
) 1)
f(s
u
|t
v
)
=
ε
(l + 1)
m
·
m
Q
j=1
l
P
i=0
f(s
j
|t
i
)
f(s
u
|t
v
)
λ
t
v
(5.31)
这里 s
u
t
v
分别表示源语言和目标语言词表中的某一个单词。为了求
m
Q
j=1
l
P
i=0
f(s
j
|t
i
)
f (s
u
|t
v
)
这里引入一个助函数。令 g(z) = αz
β
为变 z 数,显然,
g(z)
z
= αβz
β1
=
β
z
αz
β
=
β
z
g(z)。这里可以把
Q
m
j=1
P
l
i=0
f(s
j
|t
i
) g(z) = αz
β
的实例。首先,令
z =
P
l
i=0
f(s
u
|t
i
),注意 s
u
为给定的源语单词。然后,把 β 定义为
P
l
i=0
f(s
u
|t
i
)
Q
m
j=1
P
l
i=0
f(s
j
|t
i
) 中出现的次数,即源语句子中与 s
u
相同的单词的个数。
β =
m
X
j=1
δ(s
j
,s
u
) (5.32)
其中,当 x = y 时,δ(x, y) = 1,否则为 0
根据
g(z)
z
=
β
z
g(z),可以得到
g(z)
z
=
m
Q
j=1
l
P
i=0
f(s
j
|t
i
)
l
P
i=0
f
(
s
u
|
t
i
)
=
m
P
j=1
δ(s
j
,s
u
)
l
P
i=0
f(s
u
|t
i
)
m
Y
j=1
l
X
i=0
f(s
j
|t
i
) (5.33)
根据
g(z)
z
z
f
计算的结果,可以得到
172 Chapter 5. 基于词的机器翻译建模 肖桐 朱靖波
Q
m
j=1
P
l
i=0
f(s
j
|t
i
)
f(s
u
|t
v
)
=
m
Q
j=1
l
P
i=0
f(s
j
|t
i
)
l
P
i=0
f(s
u
|t
i
)
·
l
P
i=0
f(s
u
|t
i
)
f(s
u
|t
v
)
=
m
P
j=1
δ(s
j
,s
u
)
l
P
i=0
f(s
u
|t
i
)
m
Y
j=1
l
X
i=0
f(s
j
|t
i
) ·
l
X
i=0
δ(t
i
,t
v
) (5.34)
Q
m
j=1
P
l
i=0
f(s
j
|t
i
)
f (s
u
|t
v
)
进一步代入
L(f)
f (s
u
|t
v
)
,得到 L(f,λ) 的导数
L(f,λ)
f(s
u
|t
v
)
=
ε
(l + 1)
m
·
m
Q
j=1
l
P
i=0
f(s
j
|t
a
j
)
f(s
u
|t
v
)
λ
t
v
=
ε
(l + 1)
m
P
m
j=1
δ(s
j
,s
u
) ·
P
l
i=0
δ(t
i
,t
v
)
P
l
i=0
f(s
u
|t
i
)
m
Y
j=1
l
X
i=0
f(s
j
|t
i
) λ
t
v
(5.35)
L(f)
f (s
u
|t
v
)
= 0,有
f(s
u
|t
v
) =
λ
1
t
v
ε
(l + 1)
m
·
m
P
j=1
δ(s
j
,s
u
) ·
l
P
i=0
δ(t
i
,t
v
)
l
P
i=0
f(s
u
|t
i
)
m
Y
j=1
l
X
i=0
f(s
j
|t
i
) ·f(s
u
|t
v
) (5.36)
将上式稍作调整得到下式:
f(s
u
|t
v
) = λ
1
t
v
ε
(l + 1)
m
m
Y
j=1
l
X
i=0
f(s
j
|t
i
)
m
X
j=1
δ(s
j
,s
u
)
l
X
i=0
δ(t
i
,t
v
)
f(s
u
|t
v
)
l
P
i=0
f(s
u
|t
i
)
(5.37)
可以看出,这不是一个计算 f (s
u
|t
v
) 的解析式,因为等式右端仍含有 f (s
u
|t
v
)
不过它蕴含着一种非常经典的方法
——
期望最大化Expectation Maximization方法,
简称 EM 方法(或算法)。使用 EM 方法可以利用5.37迭代地计算 f(s
u
|t
v
),使其
最终收敛到最优值。EM 方法的思想是:用当前的参数,求似然函数的期望,之后最
大化这个期望同时得到新的一组参数的值。对于 IBM 模型来说,其迭代过程就是反
复使用公式(5.37),具体如图5.22所示。
为了化简 f(s
u
|t
v
) 的计算,在此对公式(5.37)进行了重新组织,见图5.23。其中,
红色部分表示翻译概 P(s|t);蓝色部分表示 (s
u
,t
v
) 在句 (s,t) 配对的总次数,
即“t
v
翻译为 s
u
”在所有对齐中出现的次数;绿色部分表示 f(s
u
|t
v
) 于所有的 t
i
的相对值,即“t
v
翻译为 s
u
”在所有对齐中出现的相对概率;蓝色与绿色部分相乘
示“t
v
译为 s
u
这个出现期望计,称之Expected
5.5 IBM 模型 1 173
f(s
u
|t
v
)
=
λ
1
t
v
ε
(l+1)
m
m
Q
j=1
l
P
i=0
f(s
j
|t
i
)
m
P
j=1
δ(s
j
,s
u
)
l
P
i=0
δ(t
i
,t
v
)
f(s
u
|t
v
)
P
l
i=0
f(s
u
|t
i
)
新的参数值 旧的参数值
5.22 IBM 模型迭代过程示意图
Count)。
f(s
u
|t
v
)
=
λ
1
t
v
ε
(l+1)
m
m
Q
j=1
l
P
i=0
f(s
j
|t
i
)
m
P
j=1
δ(s
j
,s
u
)
l
P
i=0
δ(t
i
,t
v
)
f(s
u
|t
v
)
P
l
i=0
f(s
u
|t
i
)
ϵ
(l+1)
m
m
Q
j=1
l
P
i=0
f(s
j
|t
i
)
m
P
j=1
δ(s
j
,s
u
)
l
P
i=0
δ(t
i
,t
v
)
f(s
u
|t
v
)
P
l
i=0
f(s
u
|t
i
)
翻译概率 P (s|t)
配对的总次数
(s
u
,t
v
) 在句对 (s, t)
有的 t
i
的相对值
f(s
u
|t
v
) 对于所
=
P (s|t)
t
v
翻译为 s
u
这个事件
出现次数的期望的估计
称之为期望频次
5.23 公式(5.37)的解释
期望频次是事件在其分布下出现次数的期望。另 c
E
(X) 为事件 X 的期望频次,
其计算公式为:
c
E
(X) =
X
i
c(x
i
) ·P (x
i
) (5.38)
其中 c(x
i
) 表示 X x
i
时出现的次数,P (x
i
) 表示 X = x
i
出现的概率。图5.24展示
了事 X 的期望频次的详细算过程。其 x
1
x
2
x
3
分别表示 X 2
次、1 次和 5 次的情况。
x
i
c(x
i
)
x
1
2
x
2
1
x
3
5
总频次 = 8
x
i
c(x
i
) P (x
i
) c(x
i
) ·P (x
i
)
x
1
2 0.1 0.2
x
2
1 0.3 0.3
x
3
5 0.2 1.0
c
E
(X) = 0.2 + 0.3 + 1.0 = 1.5
5.24 总频次(左)和期望频次(右)的实例
因为在 P (s|t) 中,t
v
翻译(连接)到 s
u
的期望频次为:
c
E
(s
u
|t
v
;s,t)
m
X
j=1
δ(s
j
,s
u
) ·
l
X
i=0
δ(t
i
,t
v
) ·
f(s
u
|t
v
)
l
P
i=0
f(s
u
|t
i
)
(5.39)
所以公式5.37可重写为:
f(s
u
|t
v
) = λ
1
t
v
·P (s|t) ·c
E
(s
u
|t
v
;s,t) (5.40)
174 Chapter 5. 基于词的机器翻译建模 肖桐 朱靖波
在此如果令 λ
t
v
=
λ
t
v
P (s|t)
,可得:
f(s
u
|t
v
) = λ
1
t
v
·P (s|t) ·c
E
(s
u
|t
v
;s,t)
= (λ
t
v
)
1
·c
E
(s
u
|t
v
;s,t) (5.41)
又因为 IBM 模型对 f(·|· ) 的约束如下:
t
y
:
X
s
x
f(s
x
|t
y
) = 1 (5.42)
为了满足 f(·|·) 的概率归一化约束,易得 λ
t
v
为:
λ
t
v
=
X
s
u
c
E
(s
u
|t
v
;s,t) (5.43)
因此,f(s
u
|t
v
) 的计算式可再一步变换成下式:
f(s
u
|t
v
) =
c
E
(s
u
|t
v
;s,t)
P
s
u
c
E
(s
u
|t
v
;s,t)
(5.44)
f(s
u
|t
v
)
=
P
K
k=1
c
E
(s
u
|t
v
;s
[k]
,t
[k]
)
P
s
u
P
K
k=1
c
E
(s
u
|t
v
;s
[k]
,t
[k]
)
利用这个公式计算
新的 f(s
u
|t
v
)
用当前的 f(s
u
|t
v
)
计算期望频次 c
E
(·)
f(s
u
|t
v
)
反复执行
5.25 f(s
u
|t
v
) 的计算公式和迭代过程
进一步,假 K 互译的句(称作平行语料){(s
[1]
,t
[1]
),...,(s
[K]
,t
[K]
)}
f(s
u
|t
v
) 的期望频次为:
c
E
(s
u
|t
v
) =
K
X
k=1
c
E
(s
u
|t
v
;s
[k]
,t
[k]
) (5.45)
于是有
f
(
s
u
|
t
v
)
的计算公式和迭代过程图5.25所示。完整的
EM
算法如图5.26
示。其中 E-Step 对应 4-5 行,目的是计算 c
E
(·)M-Step 对应 6-9 行,目的是计算 f(·|·)
至此,本章完成了对 IBM 1 训练方法的介绍。其可以通过5.25所示的算
法进行实现。算法最终的形式并不复杂,因为只需要遍历每个句对,之后计算 f(·|·)
的期望频次,最后估计新的 f(·|·) ,这个过程迭代直至 f (·|·) 收敛至稳定状态。
5.5 IBM 模型 1 175
IBM 模型 1 的训练(EM 算法)
输入: 平行语料 (s
[1]
,t
[1]
),...,(s
[K]
,t
[K]
)
输出: 参数 f(·|·) 的最优值
1: Function EM({(s
[1]
,t
[1]
),...,(s
[K]
,t
[K]
)})
2: Initialize f (·|·) B 比如给 f(·|· ) 一个均匀分布
3: Loop until f (·|·) converges
4: foreach k = 1 to K do
5: c
E
(s
u
|t
v
;s
[k]
,t
[k]
) =
|s
[k]
|
P
j=1
δ(s
j
,s
u
)
|t
[k]
|
P
i=0
δ(t
i
,t
v
) ·
f(s
u
|t
v
)
P
l
i=0
f(s
u
|t
i
)
6: foreach t
v
appears at least one of {t
[1]
,..., t
[K]
} do
7: λ
t
v
=
P
s
u
P
K
k=1
c
E
(s
u
|t
v
;s
[k]
,t
[k]
)
8: foreach s
u
appears at least one of {s
[1]
,..., s
[K]
} do
9: f(s
u
|t
v
) =
P
K
k=1
c
E
(s
u
|t
v
;s
[k]
,t
[k]
) ·(λ
t
v
)
1
10: return f(·|·)
5.26 EM 算法流程图(IBM 模型 1