C. 附录 C
C.1 IBM 模型 2 的训练方法
IBM 模型 2 与模型 1 的训练过程完全一样,本质上都是基于 EM 的方法,因此
可以直接复用第五章中训练模型 1 的流程。对于源语言句子 s = {s
1
,...,s
m
} 和目标
语言句子 t = {t
1
,...,t
l
},E-Step 的计算公式如下:
c(s
u
|t
v
;s,t) =
m
X
j=1
l
X
i=0
f(s
u
|t
v
)a(i|j,m,l)δ(s
j
,s
u
)δ(t
i
,t
v
)
P
l
k=0
f(s
u
|t
k
)a(k|j,m,l)
(C.1)
c(i|j,m,l;s,t) =
f(s
j
|t
i
)a(i|j,m,l)
P
l
k=0
f(s
j
|t
k
)a(k,j,m,l)
(C.2)
M-Step 的计算公式如下:
f(s
u
|t
v
) =
c(s
u
|t
v
;s,t)
P
s
′
u
c(s
′
u
|t
v
;s,t)
(C.3)
a(i|j,m,l) =
c(i|j,m,l;s,t)
P
i
′
c(i
′
|j,m,l;s,t)
(C.4)
其中,f(s
u
|t
v
) 与 IBM 模型 1 一样表示目标语言单词 t
v
到源语言单词 s
u
的翻译概
率,a(i|j,m,l) 表示调序概率。
642 Chapter C. 附录 C 肖桐 朱靖波
对于由 K 个样本组成的训练集 {(s
[1]
,t
[1]
),...,(s
[K]
,t
[K]
)},可以将 M-Step 的计
算调整为:
f(s
u
|t
v
) =
P
K
k=1
c
(
s
u
|
t
v
;
s
[k]
,t
[k]
)
P
s
′
u
P
K
k=1
c(s
′
u
|t
v
;s
[k]
,t
[k]
)
(C.5)
a(i|j,m,l) =
P
K
k=1
c(i|j,m
[k]
,l
[k]
;s
[k]
,t
[k]
)
P
i
′
P
K
k=1
c(i
′
|j,m
[k]
,l
[k]
;s
[k]
,t
[k]
)
(C.6)
其中,m
[k]
= |s
[k]
|,l
[k]
= |t
[k]
|。
C.2 IBM 模型 3 的训练方法
IBM 模型 3 采用与模型 1 和模型 2 相同的参数估计方法,辅助函数被定义如下:
h(t,d,n,p,λ,µ,ν,ζ) = P
θ
(s|t) −
X
t
v
λ
t
v
X
s
u
t(s
u
|t
v
) −1
−
X
i
µ
iml
X
j
d(j|i,m,l) −1
−
X
t
v
ν
t
v
X
φ
n(φ|t
v
) −1
−ζ(p
0
+ p
1
−1) (C.7)
这里略去推导步骤,直接给出不同参数对应的期望频次计算公式,如下:
c(s
u
|t
v
,s,t) =
X
a
P
θ
(s,a|t) ×
m
X
j=1
(δ(s
j
,s
u
) ·δ(t
a
j
,t
v
))
(C.8)
c(j|i,m,l;s,t) =
X
a
P
θ
(s,a|t) ×δ(i,a
j
)
(C.9)
c(φ|t
v
;s,t) =
X
a
P
θ
(s,a|t) ×
l
X
i=1
δ(φ,φ
i
)δ(t
v
,t
i
)
(C.10)
c(0|s,t) =
X
a
P
θ
(s,a|t) ×(m −2φ
0
)
(C.11)
c(1|s,t) =
X
a
P
θ
(s,a|t) ×φ
0
(C.12)
C.2 IBM 模型 3 的训练方法 643
进一步,对于由 K 个样本组成的训练集,有:
t(s
u
|t
v
) = λ
−1
t
v
×
K
X
k=1
c(s
u
|t
v
;s
[k]
,t
[k]
) (C.13)
d(j|i,m,l) = µ
−1
iml
×
K
X
k=1
c(j|i,m,l;s
[k]
,t
[k]
) (C.14)
n
(
φ
|
t
v
) =
ν
−1
t
v
×
K
X
k=1
c
(
φ
|
t
v
;
s
[k]
,t
[k]
) (C.15)
p
x
= ζ
−1
K
X
k=1
c(x;s
[k]
,t
[k]
) (C.16)
在模型 3 中,因为繁衍率的引入,并不能像模型 1 那样,通过简单的数学技巧加
速参数估计的过程(见第五章)。因此在计算公式(C.8)-(C.12)时,我们不得不面对大
小为 (l+ 1)
m
的词对齐空间。遍历所有 (l + 1)
m
个词对齐所带来的高时间复杂度显然
是不能被接受的。因此就要考虑能否仅利用词对齐空间中的部分词对齐对这些参数
进行估计。比较简单的方法是仅使用 Viterbi 词对齐来进行参数估计,这里 Viterbi 词
对齐可以被简单的看作搜索到的最好词对齐。遗憾的是,在模型 3 中并没有方法直
接获得 Viterbi 对齐。这样只能采用一种折中的策略,即仅考虑那些使得 P
θ
(s,a|t) 达
到较高值的词对齐。这里把这部分词对齐组成的集合记为 S。以公式(C.8)为例,它
可以被修改为:
c(s
u
|t
v
,s,t) ≈
X
a∈S
P
θ
(s,a|t) ×
m
X
j=1
(δ(s
j
,s
u
) ·δ(t
a
j
,t
v
))
(C.17)
可以以同样的方式修改公式(C.9)-(C.12)的修改结果。进一步,在 IBM 模型 3 中,
可以定义 S 如下:
S = N(b
∞
(V (s|t;2))) ∪(∪
ij
N(b
∞
i↔j
(V
i↔j
(s|t;2)))) (C.18)
为了理解这个公式,先介绍几个概念。
• V (s|t) 表示 Viterbi 词对齐,V (s|t;1)、V (s|t;2) 和 V (s|t;3) 就分别对应了模型
1、2 和 3 的 Viterbi 词对齐;
• 把那些满足第 j 个源语言单词对应第 i 个目标语言单词(a
j
= i)的词对齐构成
的集合记为 a
i↔j
(s,t)。通常称这些对齐中 j 和 i 被 “钉” 在了一起。在 a
i↔j
(s,t)
中使 P (s,a|t) 达到最大的那个词对齐被记为 V
i↔j
(s|t);
• 如果两个词对齐,通过交换两个词对齐连接就能互相转化,则称它们为邻居。
一个词对齐 a 的所有邻居记为 N(a)。
644 Chapter C. 附录 C 肖桐 朱靖波
公式(C.18)中,应该使用 V (s|t;3) 和 V
i↔j
(s|t;3) 进行计算,但其复杂度较高,因
此使用 b
∞
(V (s|t; 2)) 和 b
∞
i↔j
(V
i↔j
(s|t;2)) 分别对 V (s|t;3) 和 V
i↔j
(s|t;3) 进行估计。
在计算 S 的过程中,需要知道一个对齐 a 的邻居 a
′
的概率,即通过 P
θ
(a,s|t) 计算
P
θ
(a
′
,s|t)。在模型 3 中,如果 a 和 a
′
仅区别于某个源语言单词 s
j
,对齐从 a
j
变到
a
′
j
,且 a
j
和 a
′
j
均不为零,令 a
j
= i,a
′
j
= i
′
,那么
P
θ
(a
′
,s|t) = P
θ
(a,s|t) ·
φ
i
′
+ 1
φ
i
·
n(φ
i
′
+ 1|t
i
′
)
n(φ
i
′
|t
i
′
)
·
n(φ
i
−1|t
i
)
n(φ
i
|t
i
)
·
t(s
j
|t
i
′
)
t(s
j
|t
i
)
·
d(j|i
′
,m,l)
d(j|i,m,l)
(C.19)
如果 a 和 a
′
区别于两个位置 j
1
和 j
2
的对齐,即 a
j
1
= a
′
j
2
且 a
j
2
= a
′
j
1
,那么
P
θ
(a
′
,s|t) = P
θ
(a,s|t) ·
t(s
j
1
|t
a
j
2
)
t(s
j
1
|t
a
j
1
)
·
t(s
j
2
|t
a
j
1
)
t(s
j
2
|t
a
j
2
)
·
d(j
1
|a
j
2
,m,l)
d(j
1
|a
j
1
,m,l)
·
d(j
2
|a
j
1
,m,l)
d(j
2
|a
j
2
,m,l)
(C.20)
相比整个词对齐空间,S 只是一个非常小的子集,因此计算时间可以被大大降
低。可以看到,模型 3 的参数估计过程是建立在模型 1 和模型 2 的参数估计结果上
的。这不仅是因为模型 3 要利用模型 2 的 Viterbi 对齐,而且还因为模型 3 参数的初
值也要直接利用模型 2 的参数。从这个角度说,模型 1、2、3 是有序的且向前依赖
的。单独的对模型 3 的参数进行估计是较为困难的。实际上 IBM 的模型 4 和模型 5
也具有这样的性质,即它们都可以利用前一个模型参数估计的结果作为自身参数的
初始值。
C.3 IBM 模型 4 的训练方法
模型 4 的参数估计基本与模型 3 一致。需要修改的是扭曲度的估计公式,目标
语言的第 i 个 cept. 生成的第一个单词为(假设有 K 个训练样本):
d
1
(∆
j
|ca,cb) = µ
−1
1cacb
×
K
X
k=1
c
1
(∆
j
|ca,cb;s
[k]
,t
[k]
) (C.21)
其中,
C.3 IBM 模型 4 的训练方法 645
c
1
(∆
j
|ca,cb;s,t) =
X
a
P
θ
(s,a|t) ×z
1
(∆
j
|ca,cb;a,s,t)
(C.22)
z
1
(∆
j
|ca,cb;a,s,t) =
l
X
i=1
ε(φ
i
) ·δ(π
i1
−⊙
i
,∆
j
) ·
δ(A(t
i−1
),ca) ·δ(B(τ
i1
),cb)
(C.23)
且
ε(x) =
0 x ≤ 0
1
x >
0
(C.24)
目标语言的第 i 个 cept. 生成的其他单词(非第一个单词)为:
d
>1
(∆
j
|cb) = µ
−1
>1cb
×
K
X
k=1
c
>1
(∆
j
|cb;s
[k]
,t
[k]
) (C.25)
其中,
c
>1
(∆
j
|cb;s,t) =
X
a
P
θ
(s,a|t) ×z
>1
(∆
j
|cb;a,s,t)
(C.26)
z
>1
(∆
j
|cb;a,s,t) =
l
X
i
=1
ε(φ
i
−1)
φ
i
X
k=2
δ(π
[i]k
−π
[i]k−1
,∆
j
) ·
δ(B(τ
[i]k
),cb)
(C.27)
这里,ca 和 cb 分别表示目标语言和源语言的某个词类。注意,在公式(C.23)和(C.27)中,
求和操作
P
l
i=1
是从 i = 1 开始计算,而不是从 i = 0 。这实际上跟 IBM 模型 4 的定
义相关,因为 d
1
(j −⊙
i−1
|A(t
[i−1]
),B(s
j
)) 和 d
>1
(j −π
[i]k−1
|B(s
j
)) 是从 [i] > 0 开始
定义的,详细信息可以参考第六章的内容。
模型 4 需要像模型 3 一样,通过定义一个词对齐集合 S,使得每次训练迭代都
在 S 上进行,进而降低运算量。模型 4 中 S 的定义为:
S = N(
˜
b
∞
(V (s|t; 2))) ∪(∪
ij
N(
˜
b
∞
i↔j
(V
i↔j
(s|t;2)))) (C.28)
646 Chapter C. 附录 C 肖桐 朱靖波
对于一个对齐 a,可用模型 3 对它的邻居进行排名,即按 P
θ
(b(a)|s,t;3) 排序,其
中 b(a) 表示 a 的邻居。
˜
b(a) 表示这个排名表中满足 P
θ
(a
′
|s,t;4) > P
θ
(a|s,t;4) 的最高
排名的 a
′
。同理可知
˜
b
∞
i↔j
(a) 的意义。这里之所以不用模型 3 中采用的方法直接利用
b
∞
(a) 得到模型 4 中高概率的对齐,是因为模型 4 中要想获得某个对齐 a 的邻居 a
′
必须做很大调整,比如:调整 τ
[i]1
和 ⊙
i
等等。这个过程要比模型 3 的相应过程复杂
得多。因此在模型 4 中只能借助于模型 3 的中间步骤来进行参数估计。
C.4 IBM 模型 5 训练方法
模型 5 的参数估计过程也和模型 4 的过程基本一致,二者的区别在于扭曲度的
估计公式。在模型 5 中,对于目标语言的第 i 个 cept. 生成的第一单词,可以得到(假
设有 K 个训练样本):
d
1
(∆
j
|cb) = µ
−1
1cb
×
K
X
k=1
c
1
(∆
j
|cb;s
[k]
,t
[k]
) (C.29)
其中,
c
1
(∆
j
|cb,v
x
,v
y
;s,t) =
X
a
h
P (s,a|t) ×z
1
(∆
j
|cb,v
x
,v
y
;a,s,t)
i
(C.30)
z
1
(∆
j
|cb,v
x
,v
y
;a,s,t) =
l
X
i=1
h
ε(φ
i
) ·δ(v
π
i
1
,∆
j
) ·δ(v
⊙
i
−
1
,v
x
)
·δ(v
m
−φ
i
+ 1,v
y
) ·δ(v
π
i1
,v
π
i1
−1
)
i
(C.31)
目标语言的第 i 个 cept. 生成的其他单词(非第一个单词)为:
d
>1
(∆
j
|cb,v) = µ
−1
>1cb
×
K
X
k=1
c
>1
(∆
j
|cb,v; s
[k]
,t
[k]
) (C.32)
其中,
c
>1
(∆
j
|cb,v; s, t) =
X
a
h
P (a,s|t) ×z
>1
(∆
j
|cb,v; a, s, t)
i
(C.33)
z
>1
(∆
j
|cb,v; a, s, t) =
l
X
i=1
h
ε(φ
i
−1)
φ
i
X
k=2
δ(v
π
ik
−v
π
[i]k
−1
,∆
j
)
·δ(B(τ
[i]k
),cb) ·δ(v
m
−v
π
i(k−1)
−φ
i
+ k,v)
·δ(v
π
i1
,v
π
i1
−1
)
i
(C.34)
C.4 IBM 模型 5 训练方法 647
从公式(C.30)中可以看出,因子 δ(v
π
i1
,v
π
i1
−1
) 保证了,即使对齐 a 不合理(一
个源语言位置对应多个目标语言位置)也可以避免在这个不合理的对齐上计算结果。
也就是因子 δ(v
π
p1
,v
π
p1−1
) 确保了 a 中不合理的部分不产生坏的影响,而 a 中其他正
确的部分仍会参与迭代。
不过上面的参数估计过程与 IBM 前 4 个模型的参数估计过程并不完全一样。
IBM 前 4 个模型在每次迭代中,可以在给定 s、t 和一个对齐 a 的情况下直接计算并
更新参数。但是在模型 5 的参数估计过程中(如公式(C.30)),需要模拟出由 t 生成 s
的过程才能得到正确的结果,因为从 t、s 和 a 中是不能直接得到的正确结果的。具
体说,就是要从目标语言句子的第一个单词开始到最后一个单词结束,依次生成每
个目标语言单词对应的源语言单词,每处理完一个目标语言单词就要暂停,然后才
能计算公式(C.30)中求和符号里面的内容。
从前面的分析可以看出,虽然模型 5 比模型 4 更精确,但是模型 5 过于复杂以
至于给参数估计增加了计算量(对于每组 t、s 和 a 都要模拟 t 生成 s 的翻译过程)。
因此模型 5 的系统实现是一个挑战。
在模型 5 中同样需要定义一个词对齐集合 S,使得每次迭代都在 S 上进行。可
以对 S 进行如下定义
S = N(
˜
˜
b
∞
(V (s|t; 2))) ∪(∪
ij
N(
˜
˜
b
∞
i↔j
(V
i↔j
(s|t;2)))) (C.35)
其中,
˜
˜
b(a) 借用了模型 4 中
˜
b(a) 的概念。不过
˜
˜
b(a) 表示在利用模型 3 进行排名的列
表中满足 P
θ
(a
′
|s,t;5) 的最高排名的词对齐,这里 a
′
表示 a 的邻居。