一、隐马尔可夫模型
机器学习最重要的任务,是根据一些已观察到的证据(例如训练样本)来对感兴趣的未知变量(例如类别标记)进行估计和推测。概率模型(probabilistic) 提供了一种描述框架,将学习任务归结于计算变量的概率分布。在概率模型中,利用已知变量推测出来未知变量的分布称为 “推断”(inference),其核心是如何基于可观测变量推测出未知变量的条件分布。具体来说,假定关心的变量集合为Y,可观测变量集合为O,其他变量集合为R,“生成式”(generative) 模型考虑联合分布
P
(
Y
,
R
,
O
)
P(Y,R,O)
P(Y,R,O),“判别式”(discriminative) 模型考虑条件分布
P
(
Y
,
R
∣
O
)
P(Y,R|O)
P(Y,R∣O)。给定一组观测变量值,推断就是要由
P
(
Y
,
R
,
O
)
P(Y,R,O)
P(Y,R,O)或
P
(
Y
,
R
∣
O
)
P(Y,R|O)
P(Y,R∣O)得到条件概率分布
P
(
Y
∣
O
)
P(Y|O)
P(Y∣O)。
直接利用概率求和规则消去变量R显然不可行,因为即便每个变量仅有两个取值的简单问题,其复杂度已至少是
O
(
2
∣
Y
∣
+
∣
R
∣
)
O(2^{|Y|+|R|})
O(2∣Y∣+∣R∣)。另一方面,属性变量之间往往存在复杂的联系,因此概率模型的学习,即基于训练样本来估计变量分布往往相对困难。为了便于研究高效的推断和学习算法,需有一套能简介紧凑地表达变量间关系的工具。
概率图模型(probabilistic graphical model) 是一类用图来表达变量相关关系的概率模型。它以图为表示工具,最常见的是用一个结点表示一个或一组随机变量,结点之间的边表示变量间的概率相关关系,即 “变量关系图”。根据边的性质不同,概率图模型可大致分为两类:第一类是使用有向无环图表示变量间的依赖关系,称为有向图模型或 贝叶斯网(Bayesian network);第二类是使用无向图表示变量间的相关关系,称为无向图模型或马尔可夫网(Markov network)。
隐马尔可夫模型(Hidden Markov,简称HMM) 是结构最简单的动态贝叶斯网(dynamic Bayesian network),这是一种著名的有向图模型,主要用于时序数据模型,在语音识别、自然语言处理等领域有广泛应用。
如上图所示,隐马尔可夫模型中的变量可分为两组。第一组是状态变量
{
y
1
,
y
2
,
⋯
,
y
n
}
\{ y_1,y_2,\cdots,y_n\}
{y1,y2,⋯,yn},其中
y
i
∈
Y
y_i\in \mathcal Y
yi∈Y表示第i时刻的系统状态。通常假定状态变量是隐藏、不可被观测的,因此状态变量亦称隐变量(hidden variable)。第二组是观测变量
{
x
1
,
x
2
,
⋯
,
x
n
}
\{x_1,x_2,\cdots,x_n\}
{x1,x2,⋯,xn},其中
x
i
∈
X
x_i\in \mathcal X
xi∈X表示第i时刻的观测值。在隐马尔可夫模型中,系统通常在多个状态
{
s
1
,
s
2
,
⋯
,
s
N
}
\{s_1,s_2,\cdots,s_N\}
{s1,s2,⋯,sN}之间转换,因此状态变量
y
i
y_i
yi的取值范围
Y
\mathcal Y
Y(称为 状态空间)通常是有N个可能取值的离散空间。观测变量
x
i
x_i
xi可以是离散型也可以是连续型,为了便于讨论,仅考虑离散性观测变量,并假定其取值范围
X
\mathcal X
X为
{
o
1
,
o
2
,
⋯
,
o
M
}
\{o_1,o_2,\cdots,o_M\}
{o1,o2,⋯,oM}.
上图中的箭头表示了变量间的依赖关系。在任一时刻,观测变量的取值仅依赖于状态变量,即
x
t
x_t
xt由
y
t
y_t
yt确定,与其他状态变量及观测变量的取值无关。同时,t时刻的状态
y
t
y_t
yt仅依赖于t-1时刻的状态
y
t
−
1
y_{t-1}
yt−1,其余n-2个状态无关。这就是所谓的 “马尔可夫链”(Markov chain),即:系统下一时刻的状态仅由当前状态决定,不依赖于以往的任何状态。基于这种依赖关系,所有变量的联合概率分布为
P
(
x
1
,
y
1
,
⋯
,
x
n
,
y
n
)
=
P
(
y
1
)
P
(
x
1
∣
y
1
)
∏
i
=
1
n
P
(
y
i
∣
y
i
−
1
)
P
(
x
i
∣
y
i
)
P(x_1,y_1,\cdots,x_n,y_n) = P(y_1)P(x_1|y_1)\prod_{i=1}^nP(y_i|y_{i-1})P(x_i|y_i)
P(x1,y1,⋯,xn,yn)=P(y1)P(x1∣y1)i=1∏nP(yi∣yi−1)P(xi∣yi)
除了结构信息,欲确定一个隐马尔可夫模型还需以下三组参数:
- 状态转移概率:模型在各个状态间转换的概率,通常记为矩阵
A
=
[
a
i
j
]
N
×
N
\pmb A = [a_{ij}]_{N\times N}
AAA=[aij]N×N,其中
a i j = P ( y t + 1 = s j ∣ y t = s i ) , 1 ≤ i , j ≤ N a_{ij} = P(y_{t+1}=s_j|y_t=s_i),\quad 1\le i,j\le N aij=P(yt+1=sj∣yt=si),1≤i,j≤N - 输出观测概率:模型根据当前状态获得各个观测值的概率,通常记为矩阵
B
=
[
b
i
j
]
N
×
M
\pmb B = [b_{ij}]_{N\times M}
BBB=[bij]N×M,其中
b i j = P ( x t = o j ∣ y t = s i ) , 1 ≤ i ≤ N , 1 ≤ j ≤ M b_{ij} = P(x_t=o_j|y_t=s_i),\quad 1\le i\le N,1\le j \le M bij=P(xt=oj∣yt=si),1≤i≤N,1≤j≤M
表示在任意时刻t,若状态为 s i s_i si,则观测值 o j o_j oj被获取的概率。 - 初始状态概率:模型在初始时刻各状态出现的概率,通常记为
π
=
(
π
1
,
π
2
,
⋯
,
π
N
)
\pmb {\pi}=(\pi_1,\pi_2,\cdots,\pi_N)
πππ=(π1,π2,⋯,πN),其中
π i = P ( y 1 = s i ) , 1 ≤ i ≤ N \pi_i = P(y_1=s_i),\quad 1\le i \le N πi=P(y1=si),1≤i≤N
表示模型的初始状态为 s i s_i si的概率。
通过指定状态空间 Y \mathcal Y Y、观测空间 X \mathcal X X和上述三组参数,就能确定一个隐马尔可夫模型,通常用其参数 λ = [ A , B , π ] \lambda=[\pmb A,\pmb B,\pmb \pi] λ=[AAA,BBB,πππ]来指代。给定隐马尔可夫模型 λ \lambda λ,它按如下过程产生观测序列 { x 1 , x 2 , ⋯ , x n } \{x_1,x_2,\cdots,x_n\} {x1,x2,⋯,xn}:
- 设置t=1,并根据初始状态概率 π \pmb \pi πππ选择初始状态 y 1 y_1 y1;
- 根据状态 y t y_t yt和输出观测概率 B \pmb B BBB选择观测变量取值 x t x_t xt;
- 根据状态 y t y_t yt和转移状态矩阵 A \pmb A AAA转移状态模型,即确定 y t + 1 y_{t+1} yt+1
- 若t<n,设置t=t+1,并转到第2步,否则停止
其中
y
t
∈
{
s
1
,
s
2
,
⋯
,
s
N
}
y_t\in \{s_1,s_2,\cdots,s_N\}
yt∈{s1,s2,⋯,sN}和
x
t
∈
{
o
1
,
o
2
,
⋯
,
o
M
}
x_t\in \{o_1,o_2,\cdots,o_M\}
xt∈{o1,o2,⋯,oM}分别为第t时刻的状态和观测值。
在实际应用中,常关注隐马尔可夫模型的三个基本问题:
- 给定模型 λ = [ A , B , π ] \lambda=[\pmb A,\pmb B,\pmb \pi] λ=[AAA,BBB,πππ],如何有效计算其产生观测序列 x = { x 1 , x 2 , ⋯ , x n } \pmb x = \{x_1,x_2,\cdots,x_n\} xxx={x1,x2,⋯,xn}的概率 P ( x ∣ λ ) P(\pmb x|\lambda) P(xxx∣λ)?换言之,如何评估模型与观测序列之间的匹配程度?
- 给定模型 λ = [ A , B , π ] \lambda=[\pmb A,\pmb B,\pmb \pi] λ=[AAA,BBB,πππ]和观测序列 x = { x 1 , x 2 , ⋯ , x n } \pmb x = \{x_1,x_2,\cdots,x_n\} xxx={x1,x2,⋯,xn},如何找到与此观测序列最匹配的状态序列 y = { y 1 , y 2 , ⋯ , y n } \pmb y = \{y_1,y_2,\cdots,y_n\} yyy={y1,y2,⋯,yn}?换言之,如何根据观测序列推断出隐藏的模型状态?
- 给定观测序列 x = { x 1 , x 2 , ⋯ , x n } \pmb x = \{x_1,x_2,\cdots,x_n\} xxx={x1,x2,⋯,xn},如何调整模型参数 λ = [ A , B , π ] \lambda=[\pmb A,\pmb B,\pmb \pi] λ=[AAA,BBB,πππ]使得该序列出现的概率 P ( x ∣ λ ) P(\pmb x|\lambda) P(xxx∣λ)最大?换言之,如何训练模型使其能最好地描述观测数据?
上述问题在现实应用中非常重要。例如许多任务需根据以往的观测序列 { x 1 , x 2 , ⋯ , x n − 1 } \{x_1,x_2,\cdots,x_{n-1}\} {x1,x2,⋯,xn−1}来推断当前时刻最有可能的观测值 x n x_n xn,这显然可转化为求取概率 P ( x ∣ λ ) P(\pmb x|\lambda) P(xxx∣λ),即上述第一个问题;在语音识别等任务中,观测值为语音信号,隐藏状态为文字,目标就是根据观测信号来推断最有可能的状态序列(即对应文字),即上述第二个问题;在大多数现实应用中,人工指定模型参数已变得越来越不可行,如何根据训练样本学得最优的模型参数,恰是上述第三个问题。基于上式得条件独立性,隐马尔可夫模型得这三个问题均能高效求解。
二、马尔可夫随机场
马尔可夫随机场(Markov Random Field,简称MRF) 是典型得马尔可夫网,这是一种著名得无向图模型。图中每个结点表示一个或一组变量,结点之间得边表示两个变量之间的依赖关系。马尔可夫随机场有一组 势函数(potential function),亦称 “因子”(factor),这是定义在变量子集上的非负实函数,主要用于定义概率分布函数。
图中显示出一个简单的马尔可夫随机场。对于图中结点的一个子集,若图中任意两结点间有边连接,则称该结点子集为一个 “团”(clique)。若在一个团中加入另外任何一个结点都不再形成团,则称该团为 “极大团”(maximal clique);换言之,极大团就是不能被其他团所包含的团。例如,在上图中
{
x
1
,
x
2
}
,
{
x
1
,
x
3
}
,
{
x
2
,
x
4
}
,
{
x
2
,
x
5
}
,
{
x
2
,
x
6
}
,
{
x
3
,
x
5
}
,
{
x
5
,
x
6
}
,
\{x_1,x_2\},\{x_1,x_3\},\{x_2,x_4\},\{x_2,x_5\},\{x_2,x_6\},\{x_3,x_5\},\{x_5,x_6\},
{x1,x2},{x1,x3},{x2,x4},{x2,x5},{x2,x6},{x3,x5},{x5,x6},和
{
x
2
,
x
5
,
x
6
}
\{x_2,x_5,x_6\}
{x2,x5,x6},并且除了
{
x
2
,
x
5
}
,
{
x
2
,
x
6
}
,
{
x
5
,
x
6
}
,
\{x_2,x_5\},\{x_2,x_6\},\{x_5,x_6\},
{x2,x5},{x2,x6},{x5,x6},之外都是极大团;但是,因为
x
2
,
x
3
x_2,x_3
x2,x3之间缺乏连接,
{
x
1
,
x
2
,
x
3
}
\{x_1,x_2,x_3\}
{x1,x2,x3}并不构成团。显然,每个结点至少出现在一个极大团中。
在马尔可夫随机场中,多个变量之间的联合概率分布能基于团分解为多个因子的乘积,每个因子仅与一个团相关。具体来说,对于n个变量
x
=
{
x
1
,
x
2
,
⋯
,
x
n
}
\pmb x=\{x_1,x_2,\cdots,x_n\}
xxx={x1,x2,⋯,xn},所有团构成的集合为
C
\mathcal C
C,与团
Q
∈
C
Q\in \mathcal C
Q∈C对应的变量集合记为
x
Q
\pmb x_Q
xxxQ,则联合概率
P
(
x
)
P(x)
P(x)定义为
P
(
x
)
=
1
Z
∏
Q
∈
C
ψ
Q
(
x
Q
)
P(\pmb x) = \frac{1}{Z}\prod_{Q\in \mathcal C}\psi_Q(\pmb x_Q)
P(xxx)=Z1Q∈C∏ψQ(xxxQ)
其中
ψ
Q
\psi_Q
ψQ为与团Q对应的势函数,用于对于团Q中的变量关系进行建模,
Z
=
∑
x
∏
Q
∈
C
ψ
Q
(
x
Q
)
Z=\sum_{\operatorname x}\prod_{Q\in \mathcal C}\psi_Q(\operatorname x_Q)
Z=∑x∏Q∈CψQ(xQ)为规范化因子,以确保
P
(
x
)
P(\operatorname x)
P(x)是被正确定义的概率。在实际应用中,精确计算Z通常非常困难,但许多任务往往不需获得Z的精确值。
显然,若变量个数较多,则团的数目将会很多(例如,所有相互连接的两个变量都会构成团),这就意味着上式会有很多乘积项,显然会给计算带来负担。注意到若团
Q
Q
Q不是极大团,则它必被一个极大团
Q
∗
Q^*
Q∗所包含,即
x
Q
⊆
x
Q
∗
\operatorname x_Q\subseteq \operatorname x_{Q^*}
xQ⊆xQ∗;这意味着变量
x
Q
\operatorname x_Q
xQ变量之间的关系不仅体系在势函数
ψ
Q
\psi_Q
ψQ中,还体现在
ψ
Q
∗
\psi_{Q^*}
ψQ∗中。于是,联合概率密度
P
(
x
)
P(\operatorname x)
P(x)可基于极大团定义。假定所有极大团构成的集合为
C
∗
\mathcal C^*
C∗,则有
P
(
x
)
=
1
Z
∗
∏
Q
∈
C
∗
ψ
Q
(
x
Q
)
P(\operatorname x) = \frac{1}{Z^*}\prod_{Q\in \mathcal C^*}\psi_Q(\operatorname x_Q)
P(x)=Z∗1Q∈C∗∏ψQ(xQ)
其中
Z
∗
=
∑
x
∏
Q
∈
C
∗
ψ
Q
(
x
Q
)
Z^* = \sum_{\operatorname x}\prod_{Q\in \mathcal C^*}\psi_Q(\operatorname x_Q)
Z∗=∑x∏Q∈C∗ψQ(xQ)为规范化因子。例如上图中
x
=
{
x
1
,
x
2
,
⋯
,
x
6
}
\operatorname x = \{x_1,x_2,\cdots,x_6\}
x={x1,x2,⋯,x6},联合概率分布
P
(
x
)
P(\operatorname x)
P(x)定义为
P
(
x
)
=
1
Z
ψ
12
(
x
1
,
x
2
)
ψ
13
(
x
1
,
x
3
)
ψ
24
(
x
2
,
x
4
)
ψ
35
(
x
3
,
x
5
)
ψ
256
(
x
2
,
x
5
,
x
6
)
P(\operatorname x) = \frac{1}{Z} \psi_{12}(x_1,x_2) \psi_{13}(x_1,x_3) \psi_{24}(x_2,x_4) \psi_{35}(x_3,x_5) \psi_{256}(x_2,x_5,x_6)
P(x)=Z1ψ12(x1,x2)ψ13(x1,x3)ψ24(x2,x4)ψ35(x3,x5)ψ256(x2,x5,x6)
在马尔可夫随机场中如何得到“条件独立性”呢?同样借助“分离”的概念,如上图所示,若从结点集A中的结点到结点B中的结点都必须经过结点集C中结点,则称结点集A和B被结点集C分离,C称为 “分离集”(separating set)。对马尔可夫随机场,有
- “全局马尔可夫性”(global Markov property):给定两个变量子集的分离集,则这两个变量子集条件独立。
也就是说,如上图中若令A,B和C对应的变量集分别为 x A , x B , x C \operatorname x_A,\operatorname x_B,\operatorname x_C xA,xB,xC,则 x A ⊥ x B ∣ x C \operatorname x_A \perp \operatorname x_B|\operatorname x_C xA⊥xB∣xC.
由全局马尔可夫性可得到两个有用的推论:
- 局部马尔可夫性(local Markov property):给定某变量的邻接变量,则该变量条件独立于其他变量。形式化地说,令V为图的结点集, n ( v ) n(v) n(v)为结点 v v v在图上的邻接结点, n ∗ ( v ) = n ( v ) ∪ v n^*(v) = n(v)\cup {v} n∗(v)=n(v)∪v,有 x v ⊥ x V / n ∗ ( v ) ∣ x n ( v ) \operatorname x_v\perp \operatorname x_{V/n*(v)}|\operatorname x_{n(v)} xv⊥xV/n∗(v)∣xn(v)
- 成对马尔可夫性(pairwise Markov property):给定所有其他变量,两个非邻接变量条件独立。形式地说,令图的结点集和边集分别为V和E,对图中的两个结点 u u u和 v v v,若 ⟨ u , v ⟩ ∉ E \langle u , v\rangle\notin E ⟨u,v⟩∈/E,则 x u ⊥ x v ∣ x V / ⟨ u , v ⟩ \operatorname x_u\perp \operatorname x_v|\operatorname x_{V/\langle u , v\rangle} xu⊥xv∣xV/⟨u,v⟩
现在来考察马尔可夫随机场中的势函数。显然,势函数
ψ
Q
(
x
Q
)
\psi_Q(\operatorname x_Q)
ψQ(xQ)的作用是定量刻画变量集
x
Q
\operatorname x_Q
xQ中变量之间的相关关系,它应该是非负函数,且在所偏好的变量取值上有较大函数值。例如,假定下图中的变量均为二值变量,若势函数为
ψ
A
C
(
x
A
,
x
C
)
=
{
1.5
,
if
x
A
=
x
C
;
0.1
,
otherwise
,
ψ
B
C
(
x
B
,
x
C
)
=
{
0.2
,
if
x
B
=
x
C
;
1.3
,
otherwise
,
\begin{aligned} &\psi_{AC}(x_A,x_C) = \begin{cases} 1.5,\quad \operatorname{if} \operatorname x_A = \operatorname x_C;\\ 0.1,\quad \operatorname{otherwise}, \end{cases}\\ &\psi_{BC}(x_B,x_C) = \begin{cases} 0.2,\quad \operatorname{if} \operatorname x_B = \operatorname x_C;\\ 1.3,\quad \operatorname{otherwise}, \end{cases}\\ \end{aligned}
ψAC(xA,xC)={1.5,ifxA=xC;0.1,otherwise,ψBC(xB,xC)={0.2,ifxB=xC;1.3,otherwise,
则说明该模型偏好变量
x
A
\operatorname x_A
xA与
x
C
\operatorname x_C
xC拥有相同的取值,
x
B
\operatorname x_B
xB与
x
C
\operatorname x_C
xC拥有不同的取值;换言之,在该模型中
x
A
\operatorname x_A
xA与
x
C
\operatorname x_C
xC正相关,
x
B
\operatorname x_B
xB与
x
C
\operatorname x_C
xC负相关。令
x
A
\operatorname x_A
xA与
x
C
\operatorname x_C
xC相同且
x
B
\operatorname x_B
xB与
x
C
\operatorname x_C
xC不同的变量值指派将取得较高的联合概率。
为了满足非负性,指数函数常被用于定义势函数,即
ψ
Q
(
x
Q
)
=
e
−
H
Q
(
x
Q
)
\psi_Q(\operatorname x_Q) = e^{-H_Q(\operatorname x_Q)}
ψQ(xQ)=e−HQ(xQ)
H
Q
(
x
Q
)
H_Q(\operatorname x_Q)
HQ(xQ)是一个定义在变量
x
Q
\operatorname x_Q
xQ上的实值函数,常见形式为
H
Q
(
x
Q
)
=
∑
u
,
v
∈
Q
,
u
≠
v
α
u
v
x
u
x
v
+
∑
v
∈
Q
β
v
x
v
H_Q(\operatorname x_Q) = \sum_{u,v\in Q,u\ne v}\alpha_{uv}x_ux_v+\sum_{v\in Q}\beta_vx_v
HQ(xQ)=u,v∈Q,u=v∑αuvxuxv+v∈Q∑βvxv
其中
α
u
v
\alpha_{uv}
αuv和
β
v
\beta_v
βv是参数。上式中的第二项仅考虑单结点,第一项则考虑每一对结点的关系。
三、条件随机场
条件随机场(Conditional Random Field,简称CRF) 是一种判别式无向图模型。生成式模型是直接对联合分布进行建模,而判别式模型则是对条件分布进行建模。前面介绍的隐马尔可夫模型和马尔可夫随机场都是生成式模型,而条件随机场则是判别式模型。
条件随机场试图对多个变量在给定观测值后的条件概率进行建模。具体来说,若令
x
=
{
x
1
,
x
2
,
⋯
,
x
n
}
\operatorname x = \{x_1,x_2,\cdots,x_n\}
x={x1,x2,⋯,xn}为观测序列,
y
=
{
y
1
,
y
2
,
⋯
,
y
n
}
\operatorname y = \{y_1,y_2,\cdots,y_n\}
y={y1,y2,⋯,yn}为与之相应的标记序列,则条件随机场的目标是构建条件概率模型
P
(
y
∣
x
)
P(\operatorname y|\operatorname x)
P(y∣x)。需注意的是,标记变量
y
\operatorname y
y可以是结构型变量,即其分量之间具有某种相关性。例如在自然语言处理的词性标注任务中,观测数据为语句(即单次序列),标记为相应的词性序列,具有线性序列结构,如下图(a);在语法分析任务中,输出标记则是语法树,具有树形结构,如图(b).
令
G
=
⟨
V
,
E
⟩
G=\langle V,E\rangle
G=⟨V,E⟩表示结点与标记变量y中元素一 一对应的无向图,
y
v
y_v
yv表示与结点
v
v
v对应的标记变量,
n
(
v
)
n(v)
n(v)表示结点
v
v
v的邻接结点,若图G的每个变量
y
v
y_v
yv都满足马尔可夫性,即
P
(
y
v
∣
x
,
y
V
/
v
)
=
P
(
y
v
∣
x
,
y
n
(
v
)
)
P(y_v|\operatorname x, \operatorname y_{V/{v}}) = P(y_v|\operatorname x, \operatorname y_{n(v)})
P(yv∣x,yV/v)=P(yv∣x,yn(v))
则
(
x
,
y
)
(\operatorname x, \operatorname y)
(x,y)构成一个条件随机场。
理论上来说,图G可具有任意结构,只要能表示标记变量之间的条件独立性关系即可。但在现实应用中,尤其是对标记序列建模时,最常用的仍是下图所示的链式结构,即 “链式条件随机场”(chain-structured CRF)。下面主要讨论这种条件随机场。
与马尔可夫随机场定义联合概率的方式类似,条件随机场使用势函数和图结构上的团来定义条件概率
P
(
y
∣
x
)
P(\operatorname y|\operatorname x)
P(y∣x)。给定观测序列
x
\operatorname x
x,上图所示的链式条件随机场主要包含两种关于标记变量的团,即单个标记变量
{
y
i
}
\{y_i\}
{yi}以及相邻的标记变量
{
y
i
−
1
,
y
i
}
\{y_{i-1},y_i\}
{yi−1,yi}。选择合适的势函数,即可得到条件概率定义。在条件随机场中,通过选用指数势函数并引进特征函数(feature function),条件概率被定义为
P
(
y
∣
x
)
=
1
Z
exp
(
∑
j
∑
i
=
1
n
−
1
λ
j
t
j
(
y
i
+
1
,
y
i
,
x
,
i
)
+
∑
k
∑
i
=
1
n
μ
k
s
k
(
y
i
,
x
,
i
)
)
P(\operatorname y|\operatorname x) = \frac{1}{Z}\operatorname{exp}\Bigg(\sum_j\sum_{i=1}^{n-1}\lambda_jt_j(y_{i+1},y_i,\operatorname x,i)+ \sum_k\sum_{i=1}^n\mu_ks_k(y_i,\operatorname x,i)\Bigg)
P(y∣x)=Z1exp(j∑i=1∑n−1λjtj(yi+1,yi,x,i)+k∑i=1∑nμksk(yi,x,i))
其中
t
j
(
y
i
+
1
,
y
i
,
x
,
i
)
t_j(y_{i+1},y_i,\operatorname x,i)
tj(yi+1,yi,x,i)是定义在观测序列的两个相邻标记位置上的 转移特征函数(transition feature function),用于刻画相邻标记变量之间的相关关系以及观测序列对它们的影响,
s
k
(
y
i
,
x
,
i
)
s_k(y_i,\operatorname x,i)
sk(yi,x,i)是定义在观测序列的标记位置
i
i
i上的 状态特征函数(status feature function),用于刻画观测序列对标记变量的影响,
λ
j
\lambda_j
λj和
μ
k
\mu_k
μk为参数,
Z
Z
Z为规范化因子,用于确保上式是正确定义的概率。
显然,要使用条件随机场,还需定义合适的特征函数。特征函数通常是实值函数,以刻画数据的一些很可能成立或期望成立的经验特性。以上图(a)的词性标注任务为例,若采用特征转移函数
t
j
(
y
i
+
1
,
y
i
,
x
,
i
)
=
{
1
,
if
y
i
+
1
=
[
P
]
,
y
i
=
[
V
]
and
x
i
=
"
k
n
o
c
k
"
0
,
otherwise
t_j(y_{i+1},y_i,\operatorname x,i) = \begin{cases} 1,\quad \operatorname{if} y_{i+1} = [P],y_i=[V] \operatorname{and} x_i="knock"\\ 0,\quad \operatorname{otherwise} \end{cases}
tj(yi+1,yi,x,i)={1,ifyi+1=[P],yi=[V]andxi="knock"0,otherwise
则表示第
i
i
i个观测值
x
i
x_i
xi为单词“knock”时,相应的标记
y
i
y_i
yi和
y
i
+
1
y_{i+1}
yi+1很可能分别为[V]和[P]。若采用状态特征函数
s
k
(
y
i
,
x
,
i
)
=
{
0
,
if
y
i
=
[
V
]
and
x
i
=
"
k
n
o
c
k
"
0
,
otherwise
s_k(y_i,\operatorname x,i) = \begin{cases} 0,\quad \operatorname{if} y_i=[V] \operatorname{and} x_i="knock"\\ 0,\quad \operatorname{otherwise} \end{cases}
sk(yi,x,i)={0,ifyi=[V]andxi="knock"0,otherwise
则表示观测值
x
i
x_i
xi为单词“knock”时,它所对应的标记很可能为[V].
对比发现,条件随机场和马尔可夫随机场均使用团上的势函数定义概率,两者在形式上没有显著区别;但条件随机场处理的是条件概率,而马尔可夫随机场处理的是联合概率
四、学习与推断
基于概率图模型定义的联合概率分布,能对目标变量的边际分布(marginal distribution) 或以某些可观测变量为条件的条件分布进行推断。条件分布已经接触很多,例如在隐马尔可夫模型中要估算观测序列
x
\operatorname x
x在给定参数
λ
\lambda
λ下的条件概率分布。边际分布则是指对无关变量求和或积分后得到结果,例如在马尔可夫网中,变量的联合分布被表示为极大团的势函数乘积,于是,给定参数
Θ
\Theta
Θ求解某个变量
x
x
x的分布,就变成对联合分布中其他无关变量进行积分的过程,这称为 “边际化”(marginalization)。
对概率图模型,还需确定具体分布的参数,这称为参数估计或参数学习问题,通常使用极大似然估计或最大后验概率估计求解。但若将参数视为待推测的变量,则参数估计过程和推断十分相似,可以“吸收”到推断问题中。因此,下面只讨论概率图模型的推断方法。
具体来说,假设图模型所对应的变量集
x
=
{
x
1
,
x
2
,
⋯
,
x
N
}
\operatorname x=\{x_1,x_2,\cdots,x_N\}
x={x1,x2,⋯,xN}能分为
x
E
\operatorname x_E
xE和
x
F
\operatorname x_F
xF两个不相交的变量集,推断问题的目标就是计算边际概率
P
(
x
F
)
P(\operatorname x_F)
P(xF)或条件概率
P
(
x
F
∣
x
E
)
P(\operatorname x_F|\operatorname x_E)
P(xF∣xE)。由条件概率定义有
P
(
x
F
∣
x
E
)
=
P
(
x
E
,
x
F
)
P
(
x
E
)
=
P
(
x
E
,
x
F
)
∑
x
F
P
(
x
E
,
x
F
)
P(\operatorname x_F|\operatorname x_E)=\frac{P(\operatorname x_E,\operatorname x_F)}{P(\operatorname x_E)} = \frac{P(\operatorname x_E,\operatorname x_F)}{\sum_{\operatorname x_F}P(\operatorname x_E,\operatorname x_F)}
P(xF∣xE)=P(xE)P(xE,xF)=∑xFP(xE,xF)P(xE,xF)
其中联合概率
P
(
x
E
,
x
F
)
P(\operatorname x_E,\operatorname x_F)
P(xE,xF)可基于概率图模型获得,因此,推断问题的关键就是如何高效地计算边际分布,即
P
(
x
E
)
=
∑
x
F
P
(
x
E
,
x
F
)
P(\operatorname x_E)=\sum_{\operatorname x_F}P(\operatorname x_E,\operatorname x_F)
P(xE)=xF∑P(xE,xF)
概率图模型的推断方法大致可分为两类:第一类是精确推断方法,希望能计算出目标变量的边际分布或条件分布的精确值;遗憾的是,一般情形下,此类算法的计算复杂度随着极大团规模的增长呈指数级增长,适用范围有限。第二类是近似推断方法,希望在较低的时间复杂度下获取原问题的近似解;此类方法在现实任务中更常用。本节介绍两种代表性的精确推断方法。
1.变量消去
精确推断的实质是一类动态规划算法,它利用图模型所描述的条件独立性来消去计算目标概率值所需的计算量。变量消去法是最直观的精确推断算法,也是构建其他精确推断算法的基础。
先以图(a)中的有向图模型为例来介绍工作流程。
假定推断目标是计算边际概率
P
(
x
5
)
P(x_5)
P(x5)。显然,为了完成此目标,只需通过加法消去变量
{
x
1
,
x
2
,
x
3
,
x
4
}
\{x_1,x_2,x_3,x_4\}
{x1,x2,x3,x4},即
P
(
x
5
)
=
∑
x
4
∑
x
3
∑
x
2
∑
x
1
P
(
x
1
,
x
2
,
x
3
,
x
4
)
=
∑
x
4
∑
x
3
∑
x
2
∑
x
1
P
(
x
1
)
P
(
x
2
∣
x
1
)
P
(
x
3
∣
x
2
)
P
(
x
4
∣
x
3
)
P
(
x
5
∣
x
3
)
\begin{aligned} P(x_5) &= \sum_{x_4}\sum_{x_3}\sum_{x_2}\sum_{x_1}P(x_1,x_2,x_3,x_4)\\ &= \sum_{x_4}\sum_{x_3}\sum_{x_2}\sum_{x_1}P(x_1)P(x_2|x_1)P(x_3|x_2)P(x_4|x_3)P(x_5|x_3) \end{aligned}
P(x5)=x4∑x3∑x2∑x1∑P(x1,x2,x3,x4)=x4∑x3∑x2∑x1∑P(x1)P(x2∣x1)P(x3∣x2)P(x4∣x3)P(x5∣x3)
不难发现,若采用
{
x
1
,
x
2
,
x
3
,
x
4
}
\{x_1,x_2,x_3,x_4\}
{x1,x2,x3,x4}的顺序计算加法,则有
P
(
x
5
)
=
∑
x
3
P
(
x
5
∣
x
3
)
∑
x
4
P
(
x
4
∣
x
3
)
∑
x
2
P
(
x
3
∣
x
2
)
∑
x
1
P
(
x
2
∣
x
1
)
P
(
x
1
)
=
∑
x
3
P
(
x
5
∣
x
3
)
∑
x
4
P
(
x
4
∣
x
3
)
∑
x
2
P
(
x
3
∣
x
2
)
m
12
(
x
2
)
\begin{aligned} P(x_5) &= \sum_{x_3}P(x_5|x_3)\sum_{x_4}P(x_4|x_3)\sum_{x_2}P(x_3|x_2)\sum_{x_1}P(x_2|x_1)P(x_1)\\ &= \sum_{x_3}P(x_5|x_3)\sum_{x_4}P(x_4|x_3)\sum_{x_2}P(x_3|x_2) m_{12}(x_2) \end{aligned}
P(x5)=x3∑P(x5∣x3)x4∑P(x4∣x3)x2∑P(x3∣x2)x1∑P(x2∣x1)P(x1)=x3∑P(x5∣x3)x4∑P(x4∣x3)x2∑P(x3∣x2)m12(x2)
其中
m
i
j
(
x
j
)
m_{ij}(x_j)
mij(xj)是求加过程的中间结果,下标
i
i
i表示此项是对
x
i
x_i
xi求加的结果,下标
j
j
j表示此项中剩下的其他变量。显然,
m
i
j
(
x
j
)
m_{ij}(x_j)
mij(xj)是关于
x
j
x_j
xj的函数。不断执行此过程可得
P
(
x
5
)
=
∑
x
3
P
(
x
5
∣
x
3
)
∑
x
4
P
(
x
4
∣
x
3
)
m
23
(
x
3
)
=
∑
x
3
P
(
x
5
∣
x
3
)
m
43
(
x
3
)
m
23
(
x
3
)
=
m
35
(
x
5
)
\begin{aligned} P(x_5) &= \sum_{x_3}P(x_5|x_3)\sum_{x_4}P(x_4|x_3)m_{23}(x_3)\\ &=\sum_{x_3}P(x_5|x_3)m_{43} (x_3)m_{23}(x_3) &=m_{35}(x_5) \end{aligned}
P(x5)=x3∑P(x5∣x3)x4∑P(x4∣x3)m23(x3)=x3∑P(x5∣x3)m43(x3)m23(x3)=m35(x5)
显然,最后的
x
35
(
x
5
)
x_{35}(x_5)
x35(x5)是关于
x
5
x_5
x5的函数,仅与变量
x
5
x_5
x5的取值有关。
事实上,上述方法对无向图模型同样适用。不妨忽略图(a)中的箭头将其看作一个无向图模型,有
P
(
x
1
,
x
2
,
x
3
,
x
4
,
x
5
)
=
1
Z
ψ
12
(
x
1
,
x
2
)
ψ
23
(
x
2
,
x
3
)
ψ
34
(
x
3
,
x
4
)
ψ
35
(
x
3
,
x
5
)
P(x_1,x_2,x_3,x_4,x_5) = \frac{1}{Z}\psi_{12}(x_1,x_2)\psi_{23}(x_2,x_3)\psi_{34}(x_3,x_4)\psi_{35}(x_3,x_5)
P(x1,x2,x3,x4,x5)=Z1ψ12(x1,x2)ψ23(x2,x3)ψ34(x3,x4)ψ35(x3,x5)
其中
Z
Z
Z为规范化因子。边际分布
P
(
x
5
)
P(x_5)
P(x5)可这样计算:
P
(
x
5
)
=
1
Z
∑
x
3
ψ
35
(
x
3
,
x
5
)
∑
x
4
ψ
34
(
x
3
,
x
4
)
∑
x
2
ψ
23
(
x
2
,
x
3
)
∑
x
1
ψ
12
(
x
1
,
x
2
)
=
1
Z
∑
x
3
ψ
35
(
x
3
,
x
5
)
∑
x
4
ψ
34
(
x
3
,
x
4
)
∑
x
2
ψ
23
(
x
2
,
x
3
)
m
12
(
x
2
)
=
⋯
=
1
Z
m
35
(
x
5
)
\begin{aligned} P(x_5) &= \frac{1}{Z}\sum_{x_3}\psi_{35}(x_3,x_5)\sum_{x_4}\psi_{34}(x_3,x_4)\sum_{x_2}\psi_{23}(x_2,x_3)\sum_{x_1}\psi_{12}(x_1,x_2)\\ &= \frac{1}{Z}\sum_{x_3}\psi_{35}(x_3,x_5)\sum_{x_4}\psi_{34}(x_3,x_4)\sum_{x_2}\psi_{23}(x_2,x_3)m_{12}(x_2)\\ &=\cdots\\ & = \frac{1}{Z}m_{35}(x_5) \end{aligned}
P(x5)=Z1x3∑ψ35(x3,x5)x4∑ψ34(x3,x4)x2∑ψ23(x2,x3)x1∑ψ12(x1,x2)=Z1x3∑ψ35(x3,x5)x4∑ψ34(x3,x4)x2∑ψ23(x2,x3)m12(x2)=⋯=Z1m35(x5)
显然,通过利用乘法对加法的分配律,变量消去法把多个变量的积的求和问题,转化为对部分变量交替进行求积与求和问题。这种转化使得每次的求和与求积运算限制在局部,仅与部分变量有关,从而简化了计算。
变量消去法有一个明显的缺点:若需计算多个边际分布,重复使用变量消去法将造成大量的冗余计算。例如在图(a)的贝叶斯网上,假定在计算
P
(
x
5
)
P(x_5)
P(x5)之外还希望计算
P
(
x
4
)
P(x_4)
P(x4),若采用
{
x
1
,
x
2
,
x
5
,
x
3
}
\{x_1,x_2,x_5,x_3\}
{x1,x2,x5,x3}的顺序,则
m
12
(
x
2
)
m_{12}(x_2)
m12(x2)和
m
23
(
x
3
)
m_{23}(x_3)
m23(x3)的计算是重复的
2.信念传播
信念传播(Belief Propagation)算法将变量消去法中的求和操作看作一个消息传递过程,较好地解决了求解多个边际分布时的重复计算问题。具体来说,变量消去法通过求和操作
m
i
j
(
x
j
)
=
∑
x
i
ψ
(
x
i
,
x
j
)
∏
k
∈
n
(
i
)
/
j
m
k
i
(
x
i
)
m_{ij}(x_j)=\sum_{x_i}\psi(x_i,x_j)\prod_{k\in n(i)/j}m_{ki}(x_i)
mij(xj)=xi∑ψ(xi,xj)k∈n(i)/j∏mki(xi)
消去变量
x
i
x_i
xi,其中
n
(
i
)
n(i)
n(i)表示结点
x
i
x_i
xi的邻接结点。在信念传播算法中,这个操作被看作从
x
i
x_i
xi向
x
j
x_j
xj传递了一个消息
m
i
j
(
x
j
)
m_{ij}(x_j)
mij(xj)。变量消去过程就能描述为图(b)所示的消息传递过程。不难发现,每次消息传递操作仅与变量
x
i
x_i
xi及其邻接结点直接相关,换言之,消息传递相关的计算被限制在图的局部进行。
在信念传播算法中,一个结点仅在接收到来自其他所有结点的消息后才能向另一个结点发送消息,且结点的边际分布正比于它所接受接收消息的乘积,即
P
(
x
i
)
∝
∏
k
∈
n
(
i
)
m
k
i
(
x
i
)
P(x_i)\propto \prod_{k\in n(i)}m_{ki}(x_i)
P(xi)∝k∈n(i)∏mki(xi)
例如在图(b)中,结点
x
3
x_3
x3要向
x
5
x_5
x5发送消息,必须事先受到来自结点
x
2
x_2
x2和
x
4
x_4
x4的消息,且传递到
x
5
x_5
x5的消息
m
35
(
x
5
)
m_{35}(x_5)
m35(x5)恰为概率
P
(
x
5
)
P(x_5)
P(x5)。
若图结构中没有环,则信念传播算法经过两个步骤即可完成所有消息传递,进而能计算所有变量上的边际分布:
- 指定一个根结点,从所有叶结点开始向根结点传递消息,直到根结点收到所有邻接结点的消息;
- 从根结点开始向叶结点传递消息,直到所有叶结点均收到消息
令 x 1 x_1 x1为根结点,则 x 4 x_4 x4和 x 5 x_5 x5为叶结点。以上两步消息传递的过程如图所示。此时图的每条边上都有方向不同的两条消息,基于这些消息和上式即可获得所有变量的边际概率。
5.近似推断
精确推断方法通常需要很大的计算开销,因此在现实应用中近似推断方法更为常用。近似推断方法大致可分为两大类:第一类是采样(sampling),通过使用随机化方法完成近似;第二类是使用确定性近似完成近似推断,典型代表为变分推断(variational inference)。
5.1 MCMC采样
在很多任务中,我们关心某些概率分布并非因为对这些概率分布本身感兴趣,而是要基于它们计算某些期望,并且还可能进一步基于这些期望做出决策。例如对上述的贝叶斯网,进行推断的目的可能是为了计算变量
x
5
x_5
x5的期望。若直接计算或逼近这个期望比推断概率分布更容易,则直接操作无疑将使推断问题的求解更为高效。
采样法正是基于这个思路。具体来说,假定我们的目标是计算函数
f
(
x
)
f(x)
f(x)在概率密度函数
p
(
x
)
p(x)
p(x)下的期望
E
p
[
f
]
=
∫
f
(
x
)
p
(
x
)
d
x
\mathbb E_p[f] = \int f(x)p(x)dx
Ep[f]=∫f(x)p(x)dx
则可根据
p
(
x
)
p(x)
p(x)抽取一组样本
{
x
1
,
x
2
,
⋯
,
x
N
}
\{x_1,x_2,\cdots,x_N\}
{x1,x2,⋯,xN},然后计算
f
(
x
)
f(x)
f(x)在这些样本上的均值
f
^
=
1
N
∑
i
=
1
N
f
(
x
i
)
\hat f = \frac{1}{N}\sum_{i=1}^N f(x_i)
f^=N1i=1∑Nf(xi)
以此来近似目标期望
E
[
f
]
\mathbb E[f]
E[f]。若样本
{
x
1
,
x
2
,
⋯
,
x
N
}
\{x_1,x_2,\cdots,x_N\}
{x1,x2,⋯,xN}独立,基于大数定律,这种通过大量采样的办法就能获得较高的近似精度。问题的关键是如何采样。对概率图模型来说,就是如何高效地基于图模型所描述的概率分布来获取样本。
概率图模型中最常用的采样技术是 马尔可夫链蒙特卡罗(Markov Chain Monte Carlo,简称MCMC)方法。给定连续变量
x
∈
X
x\in X
x∈X的概率密度函数
p
(
x
)
p(x)
p(x),
x
x
x在区间A中的概率可计算为
P
(
A
)
=
∫
A
p
(
x
)
d
x
P(A)=\int_A p(x)dx
P(A)=∫Ap(x)dx
若有函数
f
:
X
↦
R
f:X\mapsto \mathbb R
f:X↦R,则可计算
f
(
x
)
f(x)
f(x)的期望
p
(
f
)
=
E
p
[
f
(
X
)
]
=
∫
x
f
(
x
)
p
(
x
)
d
x
p(f) = \mathbb E_p[f(X)] = \int_x f(x)p(x)dx
p(f)=Ep[f(X)]=∫xf(x)p(x)dx
若
x
x
x不是单变量而是一个高维多元变量
x
\operatorname x
x,且服从一个非常复杂的分布,则对上式求积分通常很困难。为此,MCMC先构造出服从
p
p
p分布的独立同分布随机变量
x
1
,
x
2
,
⋯
,
x
N
x_1,x_2,\cdots,x_N
x1,x2,⋯,xN,再得到上式得无偏估计
p
~
(
f
)
=
1
N
∑
i
=
1
N
f
(
x
i
)
\tilde p(f)=\frac{1}{N}\sum_{i=1}^N f(\operatorname x_i)
p~(f)=N1i=1∑Nf(xi)
然而,若概率密度函数
p
(
x
)
p(\operatorname x)
p(x)很复杂,则构造服从
p
p
p分布得独立同分布样本也很困难。MCMC方法得关键就是在于通过构造“平稳分布为
p
p
p的马尔可夫链”来产生样本:若马尔可夫链运行时间足够长(即收敛到平稳状态),则此时产出的样本
x
\operatorname x
x近似服从于分布
p
p
p。如何判断马尔可夫链到达平稳状态呢?假定平稳马尔可夫链T的状态转移概率(即从状态
x
\operatorname x
x转移到状态
x
′
\operatorname x'
x′)的概率为
T
(
x
′
∣
x
)
T(\operatorname x'|\operatorname x)
T(x′∣x),t时刻状态的分布为
p
(
x
t
)
p(\operatorname x^t)
p(xt),则若在某个时刻马尔可夫链满足平稳条件
p
(
x
t
)
T
(
x
t
−
1
∣
x
)
=
p
(
x
t
−
1
)
T
(
x
∣
x
t
−
1
)
p(\operatorname x^t)T(\operatorname x^{t-1}|\operatorname x) = p(\operatorname x^{t-1})T(\operatorname x|\operatorname x^{t-1})
p(xt)T(xt−1∣x)=p(xt−1)T(x∣xt−1)
则
p
(
x
)
p(\operatorname x)
p(x)是该马尔可夫链的平稳分布,且马尔可夫链在满足该条件时已收敛到平稳状态。
也就是说,MCMC方法先设法构造一条马尔可夫链,使其收敛至平稳分布恰为待估计参数的后验分布,然后通过这条马尔可夫链产生符合后验分布的样本,并基于这些样本来进行估计。这里马尔可夫链转移概率的构造至关重要,不同的构造方法将产生不同的MCMC算法。
Metropolis-Hastings(简称 MH) 算法是MCMC的重要代表。它基于 “拒绝采样”(reject sampling) 来逼近平稳分布
p
p
p。
上图所示,算法每次根据上一轮采样结果
x
t
−
1
\operatorname x^{t-1}
xt−1来采样获得候选状态样本
x
∗
\operatorname x^*
x∗,但这个候选样本会以一定的概率被“拒绝”掉。假定从状态
x
t
−
1
\operatorname x^{t-1}
xt−1到状态
x
∗
\operatorname x^*
x∗的转移概率为
Q
(
x
∗
∣
x
t
−
1
)
A
(
x
∗
∣
x
t
−
1
)
Q(\operatorname x^*|\operatorname x^{t-1})A(\operatorname x^*|\operatorname x^{t-1})
Q(x∗∣xt−1)A(x∗∣xt−1),其中
Q
(
x
∗
∣
x
t
−
1
)
Q(\operatorname x^*|\operatorname x^{t-1})
Q(x∗∣xt−1)是用户给定的先验概率,
A
(
x
∗
∣
x
t
−
1
)
A(\operatorname x^*|\operatorname x^{t-1})
A(x∗∣xt−1)是
x
∗
x^*
x∗被接受的概率。若
x
∗
x^*
x∗最终收敛到平稳状态,则有
p
(
x
t
−
1
)
Q
(
x
∗
∣
x
t
−
1
)
A
(
x
∗
∣
x
t
−
1
)
=
p
(
x
∗
)
Q
(
x
t
−
1
∣
x
∗
)
A
(
x
t
−
1
∣
x
∗
)
p(\operatorname x^{t-1})Q(\operatorname x^*|\operatorname x^{t-1})A(\operatorname x^*|\operatorname x^{t-1}) = p(\operatorname x^*)Q(\operatorname x^{t-1}|\operatorname x^*)A(\operatorname x^{t-1}|\operatorname x^*)
p(xt−1)Q(x∗∣xt−1)A(x∗∣xt−1)=p(x∗)Q(xt−1∣x∗)A(xt−1∣x∗)
于是,为了达到平稳状态,只需接受率设置为
A
(
x
∗
∣
x
t
−
1
)
=
min
(
1
,
p
(
x
∗
)
Q
(
x
t
−
1
∣
x
∗
)
p
(
x
t
−
1
)
Q
(
x
∗
∣
x
t
−
1
)
)
A(\operatorname x^*|\operatorname x^{t-1}) = \operatorname{min}\bigg(1,\frac{p(\operatorname x^*)Q(\operatorname x^{t-1}|\operatorname x^*)}{p(\operatorname x^{t-1})Q(\operatorname x^*|\operatorname x^{t-1})}\bigg)
A(x∗∣xt−1)=min(1,p(xt−1)Q(x∗∣xt−1)p(x∗)Q(xt−1∣x∗))
吉布斯采样(Gibbs sampling) 有时被视为MH算法的特例,它也使用马尔可夫链来获取样本,而该马尔可夫链的平稳分布也是采样的目标分布
p
(
x
)
p(\operatorname x)
p(x)。具体来说,假定
x
=
{
x
1
,
x
2
,
⋯
,
x
N
}
\operatorname x = \{x_1,x_2,\cdots,x_N\}
x={x1,x2,⋯,xN},目标分布为
p
(
x
)
p(\operatorname x)
p(x),在初始化
x
\operatorname x
x的取值后,通过循环执行如下步骤来完成采样:
(1)随机或以某个次序选取某变量
x
i
x_i
xi
(2)根据
x
\operatorname x
x中除
x
i
x_i
xi外的变量的现有取值,计算条件概率
p
(
x
i
∣
x
i
ˉ
)
p(x_i|\operatorname x_{\bar i})
p(xi∣xiˉ),其中KaTeX parse error: Undefined control sequence: \x at position 52: …x_1,x_2,\cdots,\̲x̲_{i-1},x_{i+1},…
(3)根据
p
(
x
i
∣
x
i
ˉ
)
p(x_i|\operatorname x_{\bar i})
p(xi∣xiˉ)对变量
x
i
x_i
xi采样,用采样值代替原值。
5.2 变分推断
变分推断通过使用已知简单分布来逼近需推断的复杂分布,并通过限制近似分布的类型,从而得到一种局部最优、但具有确定解的近似后验分布。
在学习变分推断之前,我们先介绍概率图模型一种简洁的表示方法——盘式记法(plate notation)。下图给出了一个简单的例子。图(a)表示N个变量
{
x
1
,
x
2
,
⋯
,
x
N
}
\{x_1,x_2,\cdots,x_N\}
{x1,x2,⋯,xN}均依赖于其他变量
z
\pmb z
zzz。在图(b)中,相互独立的、由相同机制生成的多个变量被放在一个方框(盘)内,并在方框中标出类似变量重复出现的个数N;方框可以嵌套。通常用阴影标注出已知的、能观察到的变量。在很多学习任务中,对属性变量使用盘式记法将使得图表示非常简洁。
在上图(b)中,所有能观测到的变量
x
x
x的联合概率密度函数是
p
(
x
∣
Θ
)
=
∏
i
=
1
N
∑
z
p
(
x
i
,
z
∣
Θ
)
p(\operatorname x|\Theta) = \prod_{i=1}^N \sum_z p(x_i,\pmb z|\Theta)
p(x∣Θ)=i=1∏Nz∑p(xi,zzz∣Θ)
所对应的对数似然函数为
ln
p
(
x
∣
Θ
)
=
∑
i
=
1
N
ln
{
∑
z
p
(
x
i
,
z
∣
Θ
)
}
\operatorname{ln} p(\operatorname x|\Theta) = \sum_{i=1}^N \operatorname{ln}\bigg\{\sum_z p(x_i,\pmb z|\Theta)\bigg\}
lnp(x∣Θ)=i=1∑Nln{z∑p(xi,zzz∣Θ)}
其中
x
=
{
x
1
,
x
2
,
⋯
,
x
N
}
\operatorname x = \{x_1,x_2,\cdots,x_N\}
x={x1,x2,⋯,xN},
Θ
\Theta
Θ是
x
\operatorname x
x与
z
\operatorname z
z服从的分布参数。
一般来说,上图所对应的推断和学习任务主要是由观察到的变量
x
\operatorname x
x来估计隐变量
z
\operatorname z
z和分布参数变量
Θ
\Theta
Θ,即求解
p
(
z
∣
x
,
Θ
)
p(\operatorname z|\operatorname x,\Theta)
p(z∣x,Θ)和
Θ
\Theta
Θ。
概率模型的参数估计通常以最大化对数似然函数为手段。对上式可使用EM算法:在E不,根据t时刻的参数
Θ
t
\Theta^t
Θt对
p
(
z
∣
x
,
Θ
t
)
p(\operatorname z|\operatorname x,\Theta^t)
p(z∣x,Θt)进行推断,并计算联合似然函数
p
(
z
,
x
∣
Θ
)
p(\operatorname z,\operatorname x|\Theta)
p(z,x∣Θ);在M步,基于E步的结果进行最大化寻优,即对关于变量
Θ
\Theta
Θ的函数
Q
(
Θ
;
Θ
t
)
\mathcal Q(\Theta;\Theta^t)
Q(Θ;Θt)进行最大化从而求取
Θ
t
+
1
=
arg max
Θ
Q
(
Θ
;
Θ
t
)
=
arg max
Θ
∑
z
p
(
z
∣
x
,
Θ
t
)
ln
p
(
z
∣
x
,
Θ
)
\begin{aligned} \Theta^{t+1} &= \underset{\Theta}{\operatorname {arg \ max}}\mathcal Q(\Theta;\Theta^t)\\ &=\underset{\Theta}{\operatorname {arg \ max}} \sum_{\operatorname z}p( \operatorname z|\operatorname x,\Theta^t)\operatorname{ln} p(\operatorname z|\operatorname x,\Theta) \end{aligned}
Θt+1=Θarg maxQ(Θ;Θt)=Θarg maxz∑p(z∣x,Θt)lnp(z∣x,Θ)
上式中的
Q
(
Θ
;
Θ
t
)
\mathcal Q(\Theta;\Theta^t)
Q(Θ;Θt)实际上是对数联合似然函数
ln
p
(
z
∣
x
,
Θ
)
\operatorname{ln} p(\operatorname z|\operatorname x,\Theta)
lnp(z∣x,Θ)在分布
p
(
z
∣
x
,
Θ
t
)
p( \operatorname z|\operatorname x,\Theta^t)
p(z∣x,Θt)下的期望,当分布
p
(
z
∣
x
,
Θ
t
)
p( \operatorname z|\operatorname x,\Theta^t)
p(z∣x,Θt)与变量
z
\operatorname z
z的真实后验分布相等时,
Q
(
Θ
;
Θ
t
)
\mathcal Q(\Theta;\Theta^t)
Q(Θ;Θt)近似于对数似然函数。于是,EM算法最终可获得稳定的参数
Θ
\Theta
Θ,而隐变量
z
\operatorname z
z的分布也能通过该参数获得。
需注意的是,
p
(
z
∣
x
,
Θ
t
)
p( \operatorname z|\operatorname x,\Theta^t)
p(z∣x,Θt)未必是隐变量
z
\operatorname z
z服从的真实分布,而只是一个近似分布。若将这个近似分布用
q
(
z
)
q(\operatorname z)
q(z)表示,则不难验证
ln
p
(
x
)
=
L
(
q
)
+
KL
(
q
∣
∣
p
)
\operatorname{ln} p(x) = \mathcal L(q) + \operatorname{KL}(q||p)
lnp(x)=L(q)+KL(q∣∣p)
其中
L
(
q
)
=
∫
q
(
z
)
ln
{
p
(
x
,
z
)
q
(
z
)
}
d
z
KL
(
q
∣
∣
p
)
=
−
∫
q
(
z
)
ln
{
p
(
x
∣
z
)
q
(
z
)
}
d
z
\mathcal L(q) = \int q(\operatorname{z})\operatorname{ln}\bigg\{\frac{p(\operatorname x,\operatorname z)}{q(\operatorname z)}\bigg\}d\operatorname z\\ \operatorname{KL}(q||p) = -\int q(\operatorname{z})\operatorname{ln}\bigg\{\frac{p(\operatorname x|\operatorname z)}{q(\operatorname z)}\bigg\}d\operatorname z
L(q)=∫q(z)ln{q(z)p(x,z)}dzKL(q∣∣p)=−∫q(z)ln{q(z)p(x∣z)}dz
然而在现实任务中,E步对
p
(
z
∣
x
,
Θ
t
)
p( \operatorname z|\operatorname x,\Theta^t)
p(z∣x,Θt)的推断很可能因
z
\operatorname z
z模型复杂而难以进行,此时可借助变分推断。通常假设
z
\operatorname z
z服从分布
q
(
z
)
=
∏
i
=
1
M
q
i
(
z
i
)
q(\operatorname z) = \prod_{i=1}^M q_i(\operatorname z_i)
q(z)=i=1∏Mqi(zi)
即假设复杂的多变量
z
\operatorname z
z可拆解为一系列相互独立的多变量
z
i
\operatorname z_i
zi。更重要的是,可以令
q
i
q_i
qi分布相对简单或有很好的结构,假如假设
q
i
q_i
qi为指数族(exponential family)分布,此时有
L
(
q
)
=
∫
∏
i
q
i
{
ln
p
(
x
,
z
)
−
∑
i
ln
q
i
}
=
∫
q
j
ln
p
~
(
x
,
z
j
)
d
z
j
−
∫
q
j
ln
q
j
d
z
j
+
const
\begin{aligned} \mathcal L(q) &= \int \prod_i q_i\Bigg\{\operatorname{ln} p(\operatorname x,\operatorname z) - \sum_i \operatorname{ln}q_i\Bigg\}\\ & = \int q_j \operatorname{ln} \tilde p(\operatorname x,\operatorname z_j)d{\operatorname z_j}-\int q_j \operatorname {ln}q_jd{\operatorname z_j} + \operatorname{const} \end{aligned}
L(q)=∫i∏qi{lnp(x,z)−i∑lnqi}=∫qjlnp~(x,zj)dzj−∫qjlnqjdzj+const
其中
ln
p
~
(
x
,
z
j
)
=
E
i
≠
j
[
ln
p
(
x
,
z
)
]
+
const
E
i
≠
j
[
ln
p
(
x
,
z
)
]
=
∫
ln
p
(
x
,
z
)
∏
i
≠
j
q
i
d
z
i
\operatorname{ln} \tilde p(\operatorname x,\operatorname z_j) = \mathbb E_{i\ne j}[\operatorname{ln}p(\operatorname x,\operatorname z)] + \operatorname{const}\\ \mathbb E_{i\ne j}[\operatorname{ln}p(\operatorname x,\operatorname z)] = \int \operatorname{ln} p(\operatorname x,\operatorname z)\prod_{i\ne j} q_id\operatorname z_i
lnp~(x,zj)=Ei=j[lnp(x,z)]+constEi=j[lnp(x,z)]=∫lnp(x,z)i=j∏qidzi
我们关心的是
q
j
q_j
qj,因此可固定
q
i
≠
j
q_{i\ne j}
qi=j再对
L
(
q
)
\mathcal L(q)
L(q)最大。于是可知变量子集
z
j
z_j
zj所服从的最优分布
q
j
∗
q_j^*
qj∗应满足
ln
q
j
∗
(
z
j
)
=
E
i
≠
j
[
ln
p
(
x
,
z
)
]
+
const
\operatorname{ln} q_j^*(\operatorname z_j) = \mathbb E_{i\ne j}[\operatorname{ln}p(\operatorname x,\operatorname z)] + \operatorname{const}
lnqj∗(zj)=Ei=j[lnp(x,z)]+const
即
q
j
∗
(
z
j
)
=
exp
(
E
i
≠
j
[
ln
p
(
x
,
z
)
]
)
∫
exp
(
E
i
≠
j
[
ln
p
(
x
,
z
)
]
)
d
z
j
q_j^*(\operatorname z_j) = \frac{\operatorname{exp}(\mathbb E_{i\ne j}[\operatorname{ln}p(\operatorname x,\operatorname z)])}{\int \operatorname{exp}(\mathbb E_{i\ne j}[\operatorname{ln}p(\operatorname x,\operatorname z)])d\operatorname z_j}
qj∗(zj)=∫exp(Ei=j[lnp(x,z)])dzjexp(Ei=j[lnp(x,z)])
换言之,变量子集
z
j
\operatorname z_j
zj最接近真实情形的分布由上式给出。
显然,通过恰当地分割独立变量子集
z
j
\operatorname z_j
zj并选择
q
i
q_i
qi服从的分布,
E
i
≠
j
[
ln
p
(
x
,
z
)
]
\mathbb E_{i\ne j}[\operatorname{ln}p(\operatorname x,\operatorname z)]
Ei=j[lnp(x,z)]往往有闭式解,这使得基于上式能高效地对隐变量
z
\operatorname z
z进行推断。事实上,对变量
z
j
\operatorname z_j
zj分布
q
j
∗
q_j^*
qj∗进行估计时融合了
z
j
\operatorname z_j
zj之外的其他
z
i
≠
j
\operatorname z_{i\ne j}
zi=j的信息,这是通过联合似然函数
ln
p
(
x
,
z
)
\operatorname{ln}p(\operatorname x,\operatorname z)
lnp(x,z)在
z
j
\operatorname z_j
zj之外的隐变量分布上求期望得到的,因此亦称 “平均场”(mean field) 方法。
在实践中使用变分法时,最重要的是考虑如何对隐变量进行拆解,以及假设各变量子集服从何种分布,在此基础上套用上式的结论再结合EM算法可进行概率图模型的推断和参数估计。显然,若隐变量的拆解或变量子集的分布假设不当,将会导致变分法效率低、效果差。
六、话题模型
话题模型(topic model) 是一族生成式有向图模型,主要用于处理离散型的数据(如文本集合),在信息检索、自然语言处理等领域有广泛应用。隐狄利克雷分配模型(Latent Dirichlet Allocation,简称LDA)是话题模型的典型代表。
我们先来了解一下啊话题模型中的几个概念:词(word)、文档(document)和话题(topic)。具体来说,“词”是待处理数据的基本离散单元,例如在文本处理任务中,一个词就是一个英文单词或有独立意义的中文词。“文档”是待处理的数据对象,它由一组词组成,这些词在文档中是不计顺序的,例如一篇论文、一个网页都可看作一个文档;这样的表达方式称为“词袋”(bag-of-words)。数据对象只要能用词袋描述,就可使用话题模型。“话题”表示一个概念,具体表示为一系列相关的词,以及它们在该概念下出现的概率。
形象的说,如图所示,一个话题就像是一个箱子,里面装着在这个概念下出现概率较高的那些词。不妨假定数据集中一共包含K个话题和T篇文档,文档中的词来自一个包含N个词的词典。我们用T个N维向量
W
=
{
ω
1
,
ω
2
,
⋯
,
ω
T
}
\pmb W = \{\pmb \omega_1, \pmb \omega_2,\cdots,\pmb \omega_T\}
WWW={ωωω1,ωωω2,⋯,ωωωT}表示数据集(即文档集合),K个N维向量
β
k
(
k
=
1
,
2
,
⋯
,
K
)
\pmb \beta_k(k=1,2,\cdots,K)
βββk(k=1,2,⋯,K)表示话题,其中
ω
t
∈
R
N
\pmb \omega_t\in \mathbb R^N
ωωωt∈RN的第n个分量
ω
t
,
n
\omega_{t,n}
ωt,n表示文档t中词n的词频,
β
k
∈
R
N
\pmb \beta_k\in \mathbb R^N
βββk∈RN的第n个分量
β
k
,
n
\beta_{k,n}
βk,n表示话题k中词n的词频
在现实任务中可通过统计文档中出现的词来获得词频向量
w
i
(
i
=
1
,
2
,
⋯
,
T
)
w_i(i=1,2,\cdots,T)
wi(i=1,2,⋯,T),但通常并不知道这组文档谈论了哪些话题,也不知道每篇文档与哪些话题有关。LDA从生成式模型的角度来看待文档和话题。具体来说,LDA认为每篇文档包含多个话题,不妨用向量
Θ
t
∈
R
K
\Theta_t\in \mathbb R^K
Θt∈RK表示文档t中所包含的每个话题的比例,
Θ
t
,
k
\Theta_{t,k}
Θt,k即表示文档t中包含话题k的比例,进而通过下面的步骤由话题“生成”文档:
(1)根据参数为
α
\pmb \alpha
ααα的狄利克分布随机采样一个话题分布
Θ
t
\Theta_t
Θt
(2)按如下步骤生成文档中的N个词:
(a)根据
Θ
t
\Theta_t
Θt进行话题指派,得到文档t中词n的话题
z
t
,
n
z_{t,n}
zt,n
(b)根据指派的话题所对应的词频分布
β
k
\beta_k
βk随机采样生成词
上图演示出根据以上步骤生成文档的过程。显然,这样生成的文档自如地以不同比例包含多个话题,文档中的每个词来自一个话题,而这个话题是根据话题比例产生的。
上图描述了LDA的变量关系,其中文档中的词频
w
t
,
n
w_{t,n}
wt,n是唯一的已观测变量,它依赖于对这个词进行的话题指派
z
t
,
n
z_{t,n}
zt,n,以及话题所对应的词频
β
k
\beta_k
βk;同时,话题指派
z
t
,
n
z_{t,n}
zt,n依赖于话题分布
Θ
t
\Theta_t
Θt,
Θ
t
\Theta_t
Θt依赖于狄利克雷分布的参数
α
\alpha
α,而话题词频则依赖于参数
η
\eta
η
于是LDA模型对应的概率分布为
p
(
W
,
z
,
β
,
Θ
∣
α
,
η
)
=
∏
i
=
1
T
p
(
Θ
t
∣
α
)
∏
i
=
1
K
p
(
β
k
∣
η
)
(
∏
n
=
1
N
P
(
w
t
,
n
∣
z
t
,
n
,
β
k
)
P
(
z
t
,
n
∣
Θ
t
)
)
p(W,z,\beta,\Theta|\alpha,\eta)=\prod_{i=1}^T p(\Theta_t|\alpha)\prod_{i=1}^K p(\beta_k|\eta)\bigg(\prod_{n=1}^N P(w_{t,n}|z_{t,n},\beta_k)P(z_{t,n}|\Theta_t)\bigg)
p(W,z,β,Θ∣α,η)=i=1∏Tp(Θt∣α)i=1∏Kp(βk∣η)(n=1∏NP(wt,n∣zt,n,βk)P(zt,n∣Θt))
其中
p
(
Θ
t
∣
α
)
p(\Theta_t|\alpha)
p(Θt∣α)和
p
(
β
k
∣
η
)
p(\beta_k|\eta)
p(βk∣η)通常分别设置为以
α
\alpha
α和
η
\eta
η为参数的K维和N维狄利克雷分布,例如
p
(
Θ
∣
α
)
=
Γ
(
∑
k
α
k
)
∏
k
Γ
(
α
k
)
∏
k
Θ
t
,
k
α
k
−
1
p(\Theta|\alpha) = \frac{\Gamma(\sum_k \alpha_k)}{\prod_k \Gamma(\alpha_k)}\prod_k\Theta_{t,k}^{\alpha_k-1}
p(Θ∣α)=∏kΓ(αk)Γ(∑kαk)k∏Θt,kαk−1
其中
Γ
(
⋅
)
\Gamma(\cdot)
Γ(⋅)是Gamma函数。显然,
α
\alpha
α和
η
\eta
η是模型式的待确定的参数。
给定训练数据
W
=
{
w
1
,
w
2
,
⋯
,
w
T
}
\pmb W = \{w_1,w_2,\cdots,w_T\}
WWW={w1,w2,⋯,wT},LDA的模型参数可通过极大似然法估计,即寻找
α
\alpha
α和
η
\eta
η以最大化对数似然
L
L
(
α
,
η
)
=
∑
t
=
1
T
ln
p
(
w
t
∣
α
,
η
)
LL(\alpha,\eta)=\sum_{t=1}^T \operatorname{ln}p(w_t|\alpha,\eta)
LL(α,η)=t=1∑Tlnp(wt∣α,η)
但由于
p
(
w
t
∣
α
,
η
)
p(w_t|\alpha,\eta)
p(wt∣α,η)不易计算,上式难以直接求解,因此实践中常采用变分法求取近似解。
若模型已知,即参数
α
\alpha
α和
η
\eta
η已确定,则根据词频
w
t
,
n
w_{t,n}
wt,n来推断文档集所对应的话题结构(即推断
Θ
t
\Theta_t
Θt,
β
k
\beta_k
βk和
z
t
,
n
z_{t,n}
zt,n)可通过求解
p
(
z
,
β
,
Θ
∣
W
,
α
,
η
)
=
p
(
W
,
z
,
β
,
Θ
∣
α
,
η
)
p
(
W
∣
α
,
η
)
p(z,\beta,\Theta|W,\alpha,\eta) = \frac{p(W,z,\beta,\Theta|\alpha,\eta)}{p(W|\alpha,\eta)}
p(z,β,Θ∣W,α,η)=p(W∣α,η)p(W,z,β,Θ∣α,η)
然而由于分母上的
p
(
W
∣
α
,
η
)
p(W|\alpha,\eta)
p(W∣α,η)难以直接求解,因此在实践中常用吉布斯采样或变分法进行近似推断。