分类目录:《深入理解机器学习》总目录
条件随机场(Conditional Random Field,CRF)是一种判别式无向图模型,在《概率图模型(Probabilistic Graphical Model):隐马尔可夫模型(Hidden Markov Model,HMM)》中提到过,生成式模型是直接对联合分布进行建模,而判别式模型则是对条件分布进行建模,《概率图模型(Probabilistic Graphical Model):隐马尔可夫模型(Hidden Markov Model,HMM)》和《概率图模型(Probabilistic Graphical Model):马尔可夫随机场(Markov Random Field,MRF)》介绍的隐马尔可夫模型和马尔可夫随机场都是生成式模型,而条件随机场则是判别式模型。
条件随机场试图对多个变量在给定观测值后的条件概率进行建模。具体来说,若令
x
=
{
x
1
,
x
2
,
⋯
,
x
n
}
x=\{x_1, x_2, \cdots, x_n\}
x={x1,x2,⋯,xn}为观测序列,
y
=
{
y
1
,
y
2
,
⋯
,
y
n
}
y=\{y_1, y_2, \cdots, y_n\}
y={y1,y2,⋯,yn}为与之相应的标记序列,则条件随机场的目标是构建条件概率模型
P
(
y
∣
x
)
P(y|x)
P(y∣x)。需注意的是,标记变量
y
y
y可以是结构型变量,即其分量之间具有某种相关性。例如在自然语言处理的词性标注任务中,观测数据为语句(即单词序列),标记为相应的词性序列,具有线性序列结构,如下左图所示;在语法分析任务中,输出标记则是语法树,具有树形结构,如下右图所示。
令
G
=
(
V
,
E
)
G=(V, E)
G=(V,E)表示结点与标记变量
y
y
y中元素一一对应的无向图,
y
v
y_v
yv表示与结点
v
v
v对应的标记变量,
n
(
v
)
n(v)
n(v)表示结点的邻接结点,若图
G
G
G的每个变量
y
v
y_v
yv功都满足马尔可夫性,即:
P
(
y
v
∣
x
,
y
v
\
{
v
}
)
=
P
(
y
v
∣
x
,
y
n
(
v
)
)
P(y_v|x,y_{v\backslash\{v\}})=P(y_v|x, y_{n(v)})
P(yv∣x,yv\{v})=P(yv∣x,yn(v))
则 ( y , x ) (y, x) (y,x)构成一个条件随机场。
理论上来说,图
G
G
G可具有任意结构,只要能表示标记变量之间的条件独立性关系即可。但在现实应用中,尤其是对标记序列建模时,最常用的仍是下图所示的链式结构,即“链式条件随机场”(Chain-structured CRF)。下面我们主要讨论这种条件随机场。
与马尔可夫随机场定义联合概率的方式类似,条件随机场使用势函数和图结构上的团来定义条件概率
P
(
y
∣
x
)
P(y|x)
P(y∣x)。给定观测序列
x
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(y|x)=\frac{1}{Z}\exp(\sum_j\sum_{i=1}^{n-1}\lambda_jt_j(y_{i+1}, y_i, x, i)+\sum_k\sum_{i=1}^{n}\mu_ks_k(y_i, x, i))
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, x, i) tj(yi+1,yi,x,i)是定义在观测序列的两个相邻标记位置上的转移特征函数(Transition Feature Function),用于刻画相邻标记变量之间的相关关系以及观测序列对它们的影响, s k ( y i , x , i ) s_k(y_i, x, i) sk(yi,x,i)是定义在观测序列的标记位置上的状态特征函数(Status Feature Function),用于刻画观测序列对标记变量的影响, λ j \lambda_j λj和 μ k \mu_k μk为参数, Z Z Z为规范化因子,用于确保上式是正确定义的概率。
显然,要使用条件随机场,还需定义合适的特征函数。特征函数通常是实值函数,以刻画数据的一些很可能成立或期望成立的经验特性,以词性标注任务为例,若采用转移特征函数:
t
j
(
y
i
+
1
,
y
i
,
x
,
i
)
=
{
1
,
if
y
i
+
1
=
[
P
]
,
y
i
=
[
V
]
,
x
i
=
"learning"
0
,
otherwise
t_j(y_{i+1}, y_i, x, i)=\left\{ \begin{aligned} 1 &,\text{if} \ y_{i+1}=[P], y_i=[V], x_i=\text{"learning"}\\ 0 &,\text{otherwise} \end{aligned} \right.
tj(yi+1,yi,x,i)={10,if yi+1=[P],yi=[V],xi="learning",otherwise
则表示第
i
i
i个观测值
x
x
x为单词“learning”时,相应的标记
y
i
y_i
yi和
y
i
+
1
y_{i+1}
yi+1很可能分别为
V
V
V和
P
P
P。若采用状态特征函数:
s
k
(
y
i
,
x
,
i
)
=
{
1
,
if
y
i
=
[
V
]
,
x
i
=
"learning"
0
,
otherwise
s_k(y_i, x, i)=\left\{ \begin{aligned} 1 &,\text{if} \ y_i=[V], x_i=\text{"learning"}\\ 0 &,\text{otherwise} \end{aligned} \right.
sk(yi,x,i)={10,if yi=[V],xi="learning",otherwise
则表示观测值 x i x_i xi为单词learning时,它所对应的标记很可能为 V V V。
对比上面两个特征函数可以看出,条件随机场和马尔可夫随机场均使用团上的势函数定义概率,两者在形式上没有显著区别;但条件随机场处理的是条件概率,而马尔可夫随机场处理的是联合概率。
参考文献:
[1] 周志华. 机器学习[M]. 清华大学出版社, 2016.