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
aS
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
ij
(V
ij
(s|t;2)))) (C.18)
为了理解这个公式,先介绍几个概念。
V (s|t) 表示 Viterbi 词对齐,V (s|t;1)V (s|t;2) V (s|t;3) 就分别对应了模型
12 3 Viterbi 词对齐;
把那些满足第 j 个源语言单词对应第 i 个目标语言单词a
j
= i的词对齐构成
的集合记为 a
ij
(s,t)通常称这些对齐中 j i 在了一起。 a
ij
(s,t)
中使 P (s,a|t) 达到最大的那个词对齐被记为 V
ij
(s|t)
两个对齐,过交两个对齐接就相转化,则称们为居。
一个词对齐 a 的所有邻居记为 N(a)
644 Chapter C. 附录 C 肖桐 朱靖波
公式(C.18)中,应该使用 V (s|t;3) V
ij
(s|t;3) 进行计算,但其复杂度较高,
此使 b
(V (s|t; 2)) b
ij
(V
ij
(s|t;2)) 别对 V (s|t;3) V
ij
(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
= ia
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 的参数。从这个角度说,模型 123 是有序的且向前依
的。单独的对模型 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
i1
),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]k1
,
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
i1
|A(t
[i1]
),B(s
j
)) d
>1
(j π
[i]k1
|B(s
j
)) 是从 [i] > 0 开始
定义的,详细信息可以参考第六章的内容。
模型 4 需要像模 3 一样,通过定义一个词对齐集 S,使得每次训练迭代都
S 上进行,进而降低运算量。模型 4 S 的定义为:
S = N(
˜
b
(V (s|t; 2))) (
ij
N(
˜
b
ij
(V
ij
(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
ij
(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(k1)
φ
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
π
p11
) 确保了 a 中不合理的部分不产生坏的影响, a 中其他正
确的部分仍会参与迭代。
IBM 4 样。
IBM 4 个模型在每次迭代中,可以在给定 st 和一个对齐 a 的情况下直接计算并
更新参数。但是在模型 5 的参数估计过程中(如公式(C.30)需要模拟出由 t 生成 s
的过程才能得到正确的结果,因为从 ts a 中是不能直接得到的正确结果的。具
体说,就是要从目标语言句子的第一个单词开始到最后一个单词结束,依次生成每
个目标语言单词对应的源语言单词,每处理完一个目标语言单词就要暂停,然后才
能计算公式(C.30)中求和符号里面的内容。
从前面的分析可以看出,虽然模型 5 比模型 4 更精确,但是模型 5 过于复杂以
至于给参数估计增加了计算量(对于每组 ts a 都要模 t 生成 s 的翻译过程)
因此模型 5 的系统实现是一个挑战。
在模型 5 同样需要定义一个词对齐集合 S使得每次迭代都 S 上进行。可
以对 S 进行如下定义
S = N(
˜
˜
b
(V (s|t; 2))) (
ij
N(
˜
˜
b
ij
(V
ij
(s|t;2)))) (C.35)
其中,
˜
˜
b(a) 借用了模型 4
˜
b(a) 的概念。不过
˜
˜
b(a) 表示在利用模型 3 进行排名的列
表中满足 P
θ
(a
|s,t;5) 的最高排名的词对齐,这里 a
表示 a 的邻居。