184 Chapter 6. 基于扭曲度和繁衍率的模型 肖桐 朱靖波
6.2 基于繁衍率的模型
下面介绍翻译中的一对多问题,以及这个问题所带来的句子长度预测问题。
6.2.1 什么是繁衍率
从前面的介绍可知,IBM 模型 1 和模型 2 把不同的源语言单词看作相互独立
单元来进行词对齐和翻译。换句话说,即使某个源语言短语中的两个单词都对齐
同一个目标语单词,它们之间也是相互独立的。这样 IBM 模型 1 和模型 2 对于多个
源语言单词对齐到同一个目标语单词的情况并不能很好地进行描述。
这里将会给出另一个翻译模型,能在一定程度上解决上面提到的问题
[10, 242]
。该
模型把目标语言生成源语言的过程分解为如下几个步骤:首先,确定每个目标语
单词生成源语言单词的个数,这里把它称为繁衍率产出率Fertility其次,决定
目标语言句子中每个单词生成的源语言单词都是什么,即决定生成的第一个源语
单词是什么,生成的第二个源语言单词是什么,以此类推。这样每个目标语言单
就对应了一个源语言单词列表;最后把各组源语言单词列表中的每个单词都放置
合适的位置上,完成目标语言译文到源语言句子的生成。
s
τ
ϕ
t
科学家
并不
知道
τ
0
1.NULL
τ
1
1. 科学家
2.
τ
2
1.NULL
τ
3
1. 并不
τ
4
1. 知道
ϕ
0
0 ϕ
1
2 ϕ
2
0 ϕ
3
1 ϕ
4
1
t
0 Scientists
do
not
know
把这些元语
言单词放在
合适的位置
确定生成元
语言单词
确定生成元
语言单词的
个数
ϕ
0
= 0,ϕ
1
= 2,ϕ
3
= 0,ϕ
4
= 1
τ
0
= {},τ
1
= {τ
11
=
科学家
,τ
12
=
},ϕ
3
= {τ
31
=
并不
},ϕ
4
= {τ
41
=
知道
}
π
0
= {},π
1
= {π
11
= 1,π
12
= 2},π
2
= {},π
3
= {π
31
= 3},π
4
= {π
41
= 4}
6.5 基于产出率的翻译模型执行过程
对于句对 (s, t) φ 表示产出率,同时令 τ 表示每个目标语言单词对应的源语
言单词列表。图6.5描述了一个英语句子生成汉语句子的过程。
首先,对于每个英语单词 t
i
确定它的产出率 φ
i
比如Scientists的产出率是
2,可表示为 φ
1
= 2。这表明它会生成 2 个汉语单词;
其次,确定英语句子中每个单词生成的汉语单词列表。比如“Scientists”生成
“科学家”“们”两个汉语单词,可表示为 τ
1
= {τ
11
=“科学家”,τ
12
=“们”}
6.2 基于繁衍率的模型 185
这里用特殊的空标记 NULL 表示翻译对空的情况;
最后,把生成的所有汉语单词放在合适的位置。比如“科学家”“们”分别放在
s 的位置 1 和位置 2。可以用符号 π 记录生成的单词在源语言句子 s 中的位置。
比如Scientists生成的汉语单词在 s 中的位置表示为 π
1
= {π
11
= 1,π
12
= 2}
为了表述清晰,这里重新说明每个符号的含义。stm l 分别表示源语言句
子、目标语言译文、源语言单词数量以及译文单词数量。φτ π 分别表示产出率、
生成的源语言单词以及它们在源语言句子中的位置。φ
i
表示第 i 个目标语言单词 t
i
的产出率。τ
i
π
i
分别表示 t
i
生成的源语言单词列表及其在源语言句子 s 中的位置
列表。
可以看出,一组 τ π(记为 < τ,π >可以决定一个对齐 a 和一个源语句子 s
相反的,一个对齐 a 和一个源语句子 s 可以对应多组 < τ,π >如图6.6所示,不同的
< τ,π > 应同一个源语言句子和词对齐。它们的区别在于目标语单词“Scientists
生成的源语言单词“科学家”“们”的顺序不同。这里把不同的 < τ,π > 对应到的
相同的源语句子 s 和对齐 a 记为 < s,a >因此计算 P (s, a|t) 时需要把每个可能结果
的概率加起来,如下:
P (s,a|t) =
X
><s,a>
P (τ,π|t) (6.9)
s
τ
ϕ
t
科学家
并不
知道
τ
0
1.NULL
τ
1
1.
科学家
2.
τ
2
1.NULL
τ
3
1. 并不
τ
4
1. 知道
...
... ...
< τ,π >
1
... ...
科学家
并不
知道
τ
0
1.NULL
τ
1
1.
2.
科学家
τ
2
1.NULL
τ
3
1. 并不
τ
4
1. 知道
...
... ...
< τ,π >
2
... ...
6.6 不同 τ π 对应相同的源语言句子和词对齐的情况
不过 < s,a > 中有多少组 < τ, π > 呢?通过图6.5中的例子,可以推出 < s,a >
该包含
Q
l
i=0
φ
i
! 个不同的二元组 < τ,π >这是因为在给定源语言句子和词对齐时,
186 Chapter 6. 基于扭曲度和繁衍率的模型 肖桐 朱靖波
对于每一个 τ
i
都有 φ
i
! 种排列。
进一步,P (τ,π|t) 可以被表示如图6.7的形式。其中 τ
k1
i1
表示 τ
i1
···τ
i(k1)
π
k1
i1
表示 π
i1
···π
i(k1)
。可以把6.7中的式分 5 部分,并用同的序号颜色
行标注。每部分的具体含义是:
P (τ,π|t) =
Q
l
i=1
× ×
Q
l
i
=0
Q
φ
i
k=1
×
Q
l
i
=1
Q
φ
i
k=1
×
Q
φ
0
k=1
P (φ
i
|φ
i1
1
,t)
P (φ
0
|φ
l
1
,t)
P (τ
ik
|τ
k1
i1
,τ
i1
1
,φ
l
0
,t)
P (π
ik
|π
k1
i1
,π
i1
1
,τ
l
0
,φ
l
0
,t)
P (π
0k
|π
k1
01
,π
l
1
,τ
l
0
,φ
l
0
,t)
6.7 P (τ,π|t) 的详细表达式
第一部分:对每 i [1,l] 的目标语单词的产出率建模(红色,即 φ
i
的生成
概率。它依赖于 t 和区间 [1,i 1] 的目标语单词的产出率 φ
i1
1
1
第二部分:对 i = 0 的产出率建模(蓝色,即空标记 t
0
的产出率生成概率。
它依赖于 t 和区间 [1,i 1] 的目标语单词的产出率 φ
l
1
第三部分:对单词翻译建模(绿色,目标语言单词 t
i
生成第 k 个源语言单词
τ
ik
时的率, t、所言单 φ
l
0
、区 i [1,l]
标语言单词生成的源语言单词 τ
i1
1
和目标语单词 t
i
生成的前 k 源语言单词
τ
k1
i1
第四部分:对于每个 i [1, l] 的目标语言单词生成的源语言单词的扭曲度建模
黄色,即第 i 个目标语言单词生成的 k 源语言单词在源文中的位置 π
ik
的概率。其中 π
i1
1
表示区间 [1,i 1] 的目标语言单词生成的源语言单词的扭曲
度,π
k1
i1
表示第 i 目标语言单词生成的前 k 1 个源语言单词的扭曲度。
第五部分: i = 0 时的扭曲度建模灰色即空标记 t
0
生成源语言位置的概
率。
6.2.2 IBM 模型 3
IBM 模型 3 通过一些假设对图6.7所表示的基本模型进行了化简。具体来说,对
于每个 i [1,l] 假设 P (φ
i
|φ
i1
1
,t) 依赖 φ
i
t
i
P (π
ik
|π
k1
i1
,π
i1
1
,τ
l
0
,φ
l
0
,t)
依赖于 π
ik
im l而对于所有的 i [0, l]假设 P (τ
ik
|τ
k1
i1
,τ
i1
1
,φ
l
0
,t) 仅依赖于
τ
ik
t
i
。这些假设的形式化描述为:
1
这里约定,当 i = 1 时,φ
0
1
表示空。
6.2 基于繁衍率的模型 187
P (φ
i
|φ
i1
1
,t) = P (φ
i
|t
i
) (6.10)
P (τ
ik
= s
j
|τ
k1
i1
,τ
i1
1
,φ
t
0
,t) = t(s
j
|t
i
) (6.11)
P (π
ik
= j|π
k1
i1
,π
i1
1
,τ
l
0
,φ
l
0
,t) = d(j|i,m, l) (6.12)
通常把 d(j|i,m, l) 称为扭曲度函数。这里 P (φ
i
|φ
i1
1
,t) = P (φ
i
|t
i
) P (π
ik
= j|π
k1
i1
,
π
i1
1
,τ
l
0
,φ
l
0
,t) = d(j|i,m,l) 仅对 1 i l 成立。这样就完成了图6.7中第 13 4
分的建模。
对于 i = 0 的情况需要单独进行考虑。实际上,t
0
只是一个虚拟的单词。它要对
s 中原本为空对齐的单词。这里假设:要等其他非空对齐单词都被生成(放置)后,
才考虑这些空对齐单词的生成(放置)即非空对齐单词都被生成后,在那些还有空
的位置上放置这些空对齐的源语言单词。此外,在任何空位置上放置空对齐的源
言单词都是等概率的,即放置空对齐源语言单词服从均匀分布。这样在已经放置
k 个空对齐源语言单词的时候,应该还有 φ
0
k 空位置。如果 j 源语言位置
为空,那么
P (π
0k
= j|π
k1
01
,π
l
1
,τ
l
0
,φ
l
0
,t) =
1
φ
0
k
(6.13)
否则
P (π
0k
= j|π
k1
01
,π
l
1
,τ
l
0
,φ
l
0
,t) = 0 (6.14)
这样对于 t
0
所对应的 τ
0
,就有
φ
0
Y
k=1
P (π
0k
|π
k1
01
,π
l
1
,τ
l
0
,φ
l
0
,t) =
1
φ
0
!
(6.15)
而上面提到的 t
0
所对应的这些空位置是如何生成的呢?即如何确定哪些位置是
要放置空对齐的源语言单词。在 IBM 模型 3 中,假设在所有的非空对齐源语言单词
都被生成出来后(共 φ
1
+ ···φ
l
个非空对源语单词)这些单词后面都以 p
1
概率随机
地产生一个“槽”用来放置空对齐单词。这样,φ
0
就服从了一个二项分布。于是得
P (φ
0
|t) =
φ
1
+ ···φ
l
φ
0
p
φ
1
+···φ
l
φ
0
0
p
φ
0
1
(6.16)
其中,p
0
+ p
1
= 1。到此为止,已经完成了图6.7中第 2 5 部分的建模。最终根据
188 Chapter 6. 基于扭曲度和繁衍率的模型 肖桐 朱靖波
这些假设可以得到 P ( s |t ) 的形式为:
P (s|t) =
l
X
a
1
=0
···
l
X
a
m
=0
h
m φ
0
φ
0
p
m2φ
0
0
p
φ
0
1
l
Y
i=1
φ
i
!n(φ
i
|t
i
)
×
m
Y
j=1
t(s
j
|t
a
j
) ×
m
Y
j=1,a
j
̸=0
d(j|a
j
,m,l)
i
(6.17)
其中,n(φ
i
|t
i
) = P (φ
i
|t
i
) 表示产出率的分布。这里的约束条件为:
X
s
x
t(s
x
|t
y
) = 1 (6.18)
X
j
d(j|i,m,l) = 1 (6.19)
X
φ
n(φ|t
y
) = 1 (6.20)
p
0
+ p
1
= 1 (6.21)
6.2.3 IBM 模型 4
IBM 模型 3 然存在问题,比如,它不能很好地处理一个目标语言单词生成
个源语言单词的情况。这个问题在模型 1 和模 2 也存在。如果一个目标语言
词对应多个源语言单词,则这些源语言单词往往会构成短语。但是模型 1-3 把这些源
语言单词看成独立的单元,而实际上它们是一个整体。这就造成了在模型 1-3 中这些
源语言单词可能会“分散”开。为了解决这个问题,模 4 对模型 3 进行了进一
修正。
为了更清楚地阐述,这里引入新的术语
——
概念单元概念Concept)。词对
齐可以被看作概念之间的对应。这里的概念是指具有独立语法或语义功能的一组
词。依照 Brown 等人的表示方法
[10]
,可以把概念记为 cept.。每个句子都可以被表示
成一系列的 cept.这里要注意的是,源语言句子中的 cept. 数量不一定等于目标句子
中的 cept. 数量。因为有些 cept. 可以为空,因此可以把那些空对的单词看作空 cept.
比如,在图6.8的实例中,“了”就对应一个空 cept.
IBM 的词齐框下,目语的 cept. 是那非空齐的标语
词, cept. 一个标语词组(通常这类一个词组
cept. 称为独立单词 cept.这里用 [i] 表示第 i 个独立单词 cept. 在目标语言句子中的
位置。换句话说,[i] 表示第 i 个非空对的目标语单词的位置。比如在本例中mind
t 中的位置表示为 [3]
另外,可以用
i
表示位置为 [i] 的目标语言单词对应的那些源语言单词位置的
6.2 基于繁衍率的模型 189
改变
主意
1 2
3
4
5
t
0
I
changed
my
mind
.
[1] [2] [3] [4]
s
t
6.8 词对齐的汉译英句对及独立单词 cept. 的位置(记为 [i]
平均值,如果这个平均值不是整数则对它向上取整。比如在本例中,目标语句中第 4
cept. .)对应在源语言句子中的第 5 个单词。可表示为
4
= 5
利用这些新引进的概念,模型 4 对模型 3 的扭曲度进行了修改。主要是把扭
度分解为两类参数。对于 [i] 对应的源语言单词列表 (τ
[i]
) 中的第一个单词 (τ
[i]1
,且
[i] > 0,它的扭曲度用如下公式计算:
P (π
[i]1
= j|π
[i]1
1
,τ
l
0
,φ
l
0
,t) = d
1
(j
i1
|A(t
[i1]
),B(s
j
)) (6.22)
其中, i 个目标语言单词生成的第 k 个源语言单词的位置用变量 π
ik
表示。而对于
列表 (τ
[i]
) 中的其他的单词 (τ
[i]k
,1 < k φ
[i]
) 的扭曲度, [i] > 0用如下公式计算:
P (π
[i]k
= j|π
k1
[i]1
,π
[i]1
1
,τ
l
0
,φ
l
0
,t) = d
>1
(j π
[i]k1
|B(s
j
)) (6.23)
这里 A(·) B(·) 标语语言射到
类。这么做的目的是要减小参数空间的大小。词类信息通常可以通过外部工具得到,
比如 Brown 类等。另一种简单的方法是把单词直接映射为它的词性。这样可以直
接用现在已经非常成熟的词性标注工具解决问题。
从上面改进的扭曲度模型可以看出,对于 t
[i]
生成的第一个源语言单词,要考虑
中心
[i]
和这个源语言单词之间的绝对距离。实际上也就要把 t
[i]
生成的所有源语言
单词看成一个整体并把它放置在合适的位置。这个过程要依据第一个源语言单词
词类和对应的源语中心位置,以及前一个非空的目标语言单词 t
[i1]
的词类。而对于
t
[i]
生成的其他源语言单词,只需要考虑它与前一个刚放置完的源语言单词的相对
置和这个源语言单词的词类。
实际上,上述过程要先用 t
[i]
生成的第一个源语言单词代表整个 t
[i]
生成的单词
列表,并把第一个源语言单词放置在合适的位置。然后,相对于前一个刚生成的
语言单词,把列表中的其他单词放置在合适的地方。这样就可以在一定程度上保
由同一个目标语言单词生成的源语言单词之间可以相互影响,达到了改进的目的。
190 Chapter 6. 基于扭曲度和繁衍率的模型 肖桐 朱靖波
6.2.4 IBM 模型 5
模型 3 和模型 4 并不是“准确”的模型。这两个模型会把一部分概率分配给
些根本就不存在的句子。这个问题被称作 IBM 模型 3 和模 4 Deficiency
。说得具体一些,模 3 模型 4 中并没有这样的约束:已经放置了某个源语言
词的位置不能再放置其他单词,也就是说句子的任何位置只能放置一个词,不能
也不能少。由于缺乏这个约束,模 3 模型 4 中在所有合法的词对齐上概率和
等于 1。这分缺失的概率被分配到其他不合法的词对齐上。举例来说,如图6.9
示,“吃/早饭”have breakfast”之间的合法词对齐用直线表示。但是在模型 3
模型 4 中,它们的概率和 0.9 < 1损失掉的概率被分配到像 a5 a6 这样的对齐
上了(红色)虽然 IBM 模型并不支持一对多的对齐,但是模型 3 和模型 4 把概率分
配给这些“不合法”的词对齐上,因此也就产生所谓的缺陷。
早饭
have
breakfast
a
1
P (s,a
1
|t) = 0.5
吃早饭 have breakfast
早饭
have
breakfast
a
2
P (s,a
2
|t) = 0.1
早饭
have
breakfast
a
3
P (s,a
3
|t) = 0.1
早饭
have
breakfast
a
4
P (s,a
4
|t) = 0.1
早饭
have
breakfast
a
5
P (s,a
5
|t) = 0.05
早饭
have
breakfast
a
6
P (s,a
6
|t) = 0.05
6.9 IBM 模型 3 的词对齐及概率分配
为了解决这个问题,模型 5 在模型中增加了额外的约束。基本想法是,在放置一
个源语言单词的时候检查这个位置是否已经放置了单词,如果没有放置单词,则
这个放置过程赋予一定的概率,否则把它作为不可能事件。基于这个想法,就需
在逐个放置源语言单词的时候判断源语言句子的哪些位置为空。这里引入一个变
v(j, τ
1
[i]1
,τ
k1
[i]1
)它表示在放置 τ
[i]k
之前τ
[i]1
1
τ
k1
[i]1
已经被放置完了)从源语
言句子的第一个位置到位置 j(包含 j)为止还有多少个空位置。这里,把这个变量
简写为 v
j
。于是,对 [i] 所对应的源语言单词列表(τ
[i]
)中的第一个单词(τ
[i]1
有:
P (π
[i]1
= j|π
[i]1
1
,τ
l
0
,φ
l
0
,t) = d
1
(v
j
|B(s
j
),v
i1
,v
m
(φ
[i]
1)) ·
(1 δ(v
j
,v
j1
)) (6.24)
6.2 基于繁衍率的模型 191
对于其他单词(τ
[i]k
, 1 < k φ
[i]
,有:
P (π
[i]k
= j|π
k1
[i]1
,π
[i]1
1
,τ
l
0
,φ
l
0
,t)
= d
>1
(v
j
v
π
[i]k1
|B(s
j
),v
m
v
π
[i]k1
φ
[i]
+ k) ·(1 δ(v
j
,v
j1
)) (6.25)
这里,因子 1 δ(v
j
,v
j1
) 是用来判断第 j 个位置是不是为空。如果第 j 个位置为空
v
j
= v
j1
,这样 P (π
[i]1
= j|π
[i]1
1
,τ
l
0
,φ
l
0
,t) = 0 这样就从模型上避免了模型 3
模型 4 中生成不存在的字符串的问题。这里还要注意的是,对于放置第一个单词
情况,影响放置因素 v
j
B(s
i
) v
j1
。此外还要考位置 j 置了第一
语言的右有足给剩 k 1 个源词。
v
m
(φ
[i]
1) 了解这个问题, v
m
语言句子还有
少空位置,φ
[i]
1 示源语言位置 j 右边至少还要留出的空格数。对于放置非第一
个单词的情况,主要是要考虑它和前一个放置位置的相对位置。这主要体现在参
v
j
v
φ
[i]
k1
上。式(6.25) 的其他部分都可以用上面的理论解释,这里不再赘述。
实际上,模型 5 和模型 4 的思想基本一致,即,先确定 τ
[i]1
的绝对位置,然后再
确定 τ
[i]
中剩余单词的相对位置。模型 5 消除了产生不存在的句子的可能性,不过模
5 的复杂性也大大增加了。