2. 统计语言建模基础
世间万物的运行都是不确定的,大到宇宙的运转,小到分子的运动,都是如此。
自然语言也同样充满着不确定性和灵活性。建立统计模型正是描述这种不确定性的
一种手段,包括机器翻译在内对众多自然语言处理问题的求解都大量依赖于这些统
计模型。
本章将会对统计建模的基础数学工具进行介绍,并在此基础上对语言建模问题
展开讨论。而统计建模与语言建模任务的结合也产生了自然语言处理的一个重要方
——
统计语言建模Statistical Language Modeling。它与机器翻译有很多相似之
处,比如,二者都在描述单词串生成的过程,因此在解决问题的思想上是相通的。
外,统计语言模型也常常被作为机器翻译系统的组件,对于机器翻译系统研发有着
重要意义。本章所讨论的内容对本书后续章节有很好的铺垫作用。本书也会大量运
用统计模型的手段对自然语言处理问题进行描述。
2.1 概率论基础
为了便于后续内容的介绍,首先对本书中使用的概率和统计学概念进行简要说
明。
2.1.1 随机变量和概率
在自然界中,很多事件Event是否会发生是不确定的。例如,明天会下雨、
一枚硬币是正面朝上、扔一个骰子的点数是 1 等。这些事件可能会发生也可能不会
48 Chapter 2. 统计语言建模基础 肖桐 朱靖波
发生。通过大量的重复试验,能发现具有某种规律性的事件叫做随机事件
随机变量Random Variable是对随机事件发生可能状态的描述,是随机事件的
数量表征。设 = {ω} 一个随机试验的样本空间,X = X(ω) 就是定义在样本空
上的单值实数函数,即 X = X(ω) 为随机变量,记为 X随机变量是一种能随
机选取数值的变量,常用大写的英语字母或希腊字母表示,其取值通常用小写字母
来表示。例如,
A
表示一个随机变量,
a
表示变量
A
的一个取值。根据随机变
量可以选取的值的某些性质,可以将其划分为离散变量和连续变量。
离散变量是在其取值区间内可以被一一列举、总数有限并且可计算的数值变量。
例如,用随机变量 X 代表某次投骰子出现的点数,点数只可能取 16 6 整数,
X 就是一个离散变量。
连续变量是在其取值区间内连续取值无法被一一列举、具有无限个取值的变量。
例如,图书馆的开馆时间 8:30-22:00 X 代表某人进入图书馆的时间,时间的
取值范围是 [8:30, 22:00] 这个时间区间,X 就是一个连续变量。
概率Probability是度量随机事件呈现其每个可能状态的可能性的数值,本质上
它是一个测度函数
[35, 36]
。概率的大小表征随机事件在一次试验中发生的可能性
小。 P (·) 表示一个随机事件的可能性,即事件发生的概率。比如 P (太阳从东方升起)
表示“太阳从东方升起”的可能性,同理,P (A = B) 表示的就是“A = B”这件事
的可能性。
在实际问题中,往往需要得到随机变量的概率值。但是,真实的概率值可能是
无法准确道的,这时就需要对率进Estimation,得到结果是概率的
估计值Estimate)。概率值的估计是概率论和统计学中的经典问题,有十分多样的
方法可以选择。比如,一个很简单的方法是利用相对频次作为概率的估计值。如果
{x
1
,x
2
,. .. ,x
n
} 一个试验的样本空间,在相同情况下重复试验 N 次,观察到样本
x
i
(1 i n) 的次数为 n(x
i
)那么 x
i
在这 N 次试验中的相对频率是
n(x
i
)
N
N
来越大时,相对概率也就越来越接近真实概率 P (x
i
),即 lim
N→∞
n(x
i
)
N
= P (x
i
)。实
际上,很多概率模型都等同于相对频次估计。比如,对于一个服从多项式分布的变
量,它的极大似然估计就可以用相对频次估计实现。
概率函数是用函数形式给出离散变量每个取值发生的概率,其实就是将变量的
概率分布转化为数学表达形式。如果把 A 做一个离散变量,a 看做变量 A 的一个
取值,那么 P (A) 被称作变量 A 的概率函数,P (A = a) 被称作 A = a 的概率值,简
记为 P (a ) 例如,在相同条件下掷一个骰子 50 次, A 示投骰子出现的点数
个离散变量,a
i
表示点数的取值,P
i
表示 A = a
i
的概率值。?? A 的概率分布,
给出了 A 的所有取值及其概率。
2.1 离散变量 A 的概率分布
A a
1
= 1 a
2
= 2 a
3
= 3 a
4
= 4 a
5
= 5 a
6
= 6
P
i
P
1
=
4
25
P
2
=
3
25
P
3
=
4
25
P
4
=
6
25
P
5
=
3
25
P
6
=
5
25
2.1 概率论基础 49
除此之外,概率函数 P (·) 还具有非负性、归一性等特点。非负性是指,所有的
概率函数 P (·) 的数值都必须大于等于 0概率函数中不可能出现负数, x,P(x)
0性,性, 1
P
x
P (x) = 1
于离 AP (A = a) 确定值,以表 A = a 可能
小;而对于连续变量,求在某个定点处的概率是无意义的,只能求其落在某个取值
间内概率。此,概率F (x) 密度f(x) 来统述随
取值况(如??布函 F (x) 小于值的
率,是概率的累加(或积分)形式。假设 A 是一个随机变量,a 是任意实数,将函数
F (a) = P {A a} 定义为 A 的分布函数。通过分布函数,可以清晰地表示任何随机
变量的概率分布情况。
0
µ
1
2πσ
f(x)
x
0
µ
0.5
1
F (x)
x
2.1 一个概率密度函数(左)与其对应的分布函数(右)
概率密度函数反映了变量在某个区间内的概率变化快慢,概率密度函数的值是
概率的变化率,该连续变量的概率分布函数也就是对概率密度函数求积分得到的结
果。 f(x) 0 是连续变量 X 的概率密度函数,X 的分布函数就可以用如下公式定
义:
F (x) =
x
−∞
f(x)dx (2.1)
2.1.2 联合概率、条件概率和边缘概率
联合概率Joint Probability)是指多个事件共同发生,每个随机变量满足各自条
件的概率。如事件 A 事件 B 联合概率可以表示为 P (AB) P (A B)条件
Conditional Probability是指 AB 为任意的两个事件,在事件 A 已出现的前提
下,事件 B 出现的概率,使用 P (B | A) 表示。
50 Chapter 2. 统计语言建模基础 肖桐 朱靖波
贝叶斯法则(见??小节)是条件概率计算时的重要依据,条件概率可以表示为:
P (B|A) =
P (A B)
P (A)
=
P (A)P (B|A)
P (A)
=
P (B)P (A|B)
P (A)
(2.2)
缘概Marginal Probability)是和联概率应的,的是 P (X = a)
P (Y = b)即仅与单个随机变量有关的概率。对于离散随机变量 X Y 如果知道
P (X,Y ),则边缘概率 P (X) 可以通过求和的方式得到。对于 x X,有:
P (X = x) =
X
y
P (X = x,Y = y) (2.3)
对于连续变量,边缘概率 P (X) 需要通过积分得到,如下式所示:
P (X = x) =
P (x,y)dy (2.4)
为了更好地区分条件概率、边缘概率和联合概率,这里用一个图形面积的计算
来举例说明。如图??所示,矩形 A 代表事件 X 发生所对应的所有可能状态,矩形 B
代表事件 Y 发生所对应的所有可能状态,矩形 C 代表 A B 的交集,则:
边缘概率:矩形 A 或者矩形 B 的面积。
联合概率:矩形 C 的面积。
条件概率联合概率/对应的边缘概率,如:P (A | B)= 矩形 C 的面积/矩形 B
面积。
A BC
2.2 ABC 事件所对应概率的图形化表示
2.1.3 链式法则
条件概率公式 P (A | B) = P (AB)/P (B) 反映了事件 B 发生的条件下事件 A
生的概率。如果将其推广到三个事件 ABC,为了计算 P (A,B, C)可以运用两
2.1 概率论基础 51
P (A | B) = P (AB)/P (B),计算过程如下:
P (A,B, C) = P (A | B, C)P (B, C)
= P ( A | B,C)P (B | C)P (C) (2.5)
推广到 n 个事件,可以得到链式法则Chain Rule)的公式:
P (x
1
,x
2
,. . . ,x
n
) =
n
Y
i=1
P (x
i
| x
1
,. . . ,x
i1
) (2.6)
链式法则经常被用于对事件序列的建模。比如,在事件 A 与事件 C 相互独立时,
事件 ABC 的联合概率可以被表示为:
P (A,B, C) = P (A)P (B | A)P (C | A,B)
= P (A)P (B | A)P (C | B) (2.7)
2.1.4 贝叶斯法则
首先介绍一下全概率公式:全概率公式Law of Total Probability)是概率论中重
要的公式,它可以将一个复杂事件发生的概率分解成不同情况的小事件发生概率的
和。这里先介绍一个概念——划分。集 Σ 的一个划分事件 {B
1
,. . . ,B
n
} 指它
们满足
S
n
i=1
B
i
= SB
i
B
j
= , i, j = 1, . ..,n,i ̸= j此时事件 A 的全概率公式可以
被描述为:
P (A) =
n
X
k=1
P (A | B
k
)P (B
k
) (2.8)
举个例子,小张从家到公司有三条路分别为 abc选择每条路的概率分别为
0.50.30.2。令:
S
a
:小张选择 a 路去上班
S
b
:小张选择 b 路去上班
S
c
:小张选择 c 路去上班
S:小张去上班
然,S
a
S
b
S
c
S 分。 P (S
a
)=0.2
52 Chapter 2. 统计语言建模基础 肖桐 朱靖波
P (S
b
)=0.4P (S
c
)=0.7,那么事件 L:小张上班没有遇到拥堵情况的概率就是:
P (L) = P (L|S
a
)P (S
a
) + P (L|S
b
)P (S
b
) + P (L|S
c
)P (S
c
)
= P ( S
a
)P (S
a
) + P (S
b
)P (S
b
) + P (S
c
)P (S
c
)
= 0.36 (2.9)
贝叶斯法则Bayes’ Rule)是概率论中的一个经典公式,通常用于已知 P (A | B)
P (B | A)可以表述为: {B
1
,. . . ,B
n
} 是某个集合 Σ 的一个划分,A 为事件,
对于 i = 1,...,n,有如下公式:
P (B
i
| A) =
P (AB
i
)
P (A)
=
P (A | B
i
)P (B
i
)
P
n
k=1
P (A | B
k
)P (B
k
)
(2.10)
其中,等式右端的分母部分使用了全概率公式。进一步,
¯
B
表示事件
B
不发生的
情况,由上式,也可以得到贝叶斯公式的另外一种写法:
P (B | A) =
P (A | B)P (B)
P (A)
=
P (A | B)P (B)
P (A | B)P (B) + P ( A |
¯
B)P (
¯
B)
(2.11)
贝叶斯公式常用于根据已知的结果来推断使之发生的各因素的可能性。
2.1.5 KL 距离和熵
1. 信息熵
熵是热力学中的一个概念,同时也是对系统无序性的一种度量标准。在自然语
言处理领域也会使用到信息熵这一概念,比如描述文字的信息量大小。一条信息的
信息量可以被看作是这条信息的不确定性。如果需要确认一件非常不确定甚至于一
无所知的事情,那么需要理解大量的相关信息才能进行确认;同样的,如果对某件
事已经非常确定,那么就不需要太多的信息就可以把它搞清楚。如下就是两个例子,
实例 2.1 确定性和不确定性的事件
“太阳从东方升起”
“明天天气多云”
在这两句话中,“太阳从东方升起”是一件确定性事件(在地球上)几乎不需要
查阅更多信息就可以确认,因此这件事的信息熵相对较低;“明天天气多云”这件
事,需要关注天气预报,才能大概率确定这件事,它的不确定性很高,因而它的信息
熵也就相对较高。因此,信息熵也是对事件不确定性的度量。进一步,一个事件 X
2.1 概率论基础 53
自信息Self-information)的表达式为:
I( x) = log P (x) (2.12)
其中,x X 的一个取值,P (x) 表示 x 发生的概率。自信息用来衡量单一事件发生
时所包含的信息多少,当底数为 e 时,单位为 nats其中 1nats 是通过观察概率为 1/e
的事件而获得的信息量;当底数为 2 时,单位为 bits shannonsI(x) P (x) 的函
数关系如图?? 所示。
0 0.2 0.4 0.6 0.8 1
0
8
P (x)
I(x)
I(x) = log P (x)
2.3 自信息函数 I(x) 关于 P (x) 的曲线
自信息处理的是变量单一取值的情况。若量化整个概率分布中的不确定性或信
息量,可以用信息熵,记为 H(x)。其公式如下:
H(x) =
X
xX
[P (x)I(x)]
=
X
xX
[P (x)log(P (x))] (2.13)
一个分布的信息熵也就是从分布中得到的一个事件的期望信息量。比如,a
bcd 四支球队,四支队伍夺冠的概率分别是 P
1
P
2
P
3
P
4
,假设四只队伍的
实力未知或者实力相当,那么人们就很难对比赛结果做出预测。但是,如果这四只
球队中某一支球队的实力可以碾压其他球队,那么人们对比赛结果的预测就会很明
确。所以对于前面这种情况,预测球队夺冠的问题的信息量较高,信息熵也相对较
高;对于后面这种情况,因为结果是容易猜到的,信息量和信息熵也就相对较低。
此可以得知:分布越尖锐熵越低,分布越均匀熵越高。
2. KL 距离
如果同一个随机变量 X 上有两个概率分布 P (x) Q(x)那么可以使用 Kullback-
Leibler 距离 KL 距离KL Distance)来衡量这两个分布的不同(也称作 KL 散度)
54 Chapter 2. 统计语言建模基础 肖桐 朱靖波
这种度量就是相对熵Relative Entropy),其公式如下:
D
KL
(P Q) =
X
xX
[P (x)log
P (x)
Q(x)
]
=
X
xX
[P (x)(log P (x) log Q(x))] (2.14)
其中,概率分布 P (x ) 对应的每个事件的可能性。相对熵的意义在于:在一个事
件空间里,若用概率分布 Q(x) 编码 P (x)相比于用概率分布 P (x) 编码 P (x)
时信息量增加了多少。它衡量的是同一个事件空间里两个概率分布的差异。KL 距离
有两条重要的性质:
非负性,即 D
KL
(P Q) 0,等号成立条件是 P Q 相等。
不对称性 D
KL
(P Q) ̸= D
KL
(Q P )所以 KL 距离并不是常用的欧式空间
中的距离。为了消除这种不确定性,有时也会使用 D
KL
(P Q) + D
KL
(Q P )
作为度量两个分布差异性的函数。
3. 交叉熵
交叉熵Cross-entropy)是一个与 KL 距离密切相关的概念,它的公式是:
H(P, Q) =
X
xX
[P (x)log Q(x)] (2.15)
结合相对熵公式可知,交叉熵是 KL 距离公式中的右半部分。因此,当概率分布
P (x) 固定时,求关于 Q 的交叉熵的最小值等价于求 KL 距离的最小值。从实践的角
度来说,交叉熵与 KL 距离的目的相同:都是用来描述两个分布的差异。由于交叉熵
计算上更加直观方便,因此在机器翻译中被广泛应用。