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)。