首先,我们来看看什么是随机场
。随机场是由若干个位置组成的整体,当给每一个位置中按照某种分布随机赋予一个值之后,其全体就叫做随机场。以词性标注为例:假如我们有一个十个词组成的句子需要做词性标注,这十个词每个词的词性可以在我们已知的词性集合(名词,动词…)中去选择。当我们为每个词选择完词性后,这就形成了一个随机场。
了解了随机场,我们再来看看马尔科夫随机场
。若随机变量Y的联合概率分布P(Y)代表的无向图G=(V,E)的每个节点均满足马尔科夫性,则G是一个马尔科夫随机场。马尔科夫随机场是随机场的特例,它假设随机场中某一个位置的赋值仅仅与和它相邻的位置
的赋值有关,和与其不相邻的位置的赋值无关。继续举十个词的句子词性标注的例子: 如果我们假设所有词的词性只和它相邻的词的词性有关时,这个随机场就特化成一个马尔科夫随机场。比如第三个词的词性除了与自己本身的位置有关外,只与第二个词和第四个词的词性有关
。马尔可夫随机场(Markov random field)就是概率无向图模型(Probabilistic undirected graphical model),表示一个联合概率分布。
理解了马尔科夫随机场,再理解CRF就容易了。CRF是马尔科夫随机场的特例,它假设马尔科夫随机场中只有X和Y两种变量
,X一般是给定的,而Y一般是在给定X的条件下我们的输出。这样马尔科夫随机场就特化成了条件随机场。在我们十个词的句子词性标注的例子中,X是词(输入的观测序列),Y是词性(输出的标记序列或状态序列)。因此,如果我们假设它是一个马尔科夫随机场,那么它也就是一个CRF。
一、条件随机场的定义
1. 条件随机场
对于CRF,我们给出准确的数学语言描述:
CRF假设马尔科夫随机场中只有X和Y两种变量,X一般是给定的,而Y一般是在给定X的条件下我们的输出。设
X
=
(
X
1
,
X
2
,
.
.
.
,
X
n
)
X=(X_1,X_2,...,X_n)
X=(X1,X2,...,Xn)与
Y
=
(
Y
1
,
Y
2
,
.
.
.
,
Y
n
)
Y=(Y_1,Y_2,...,Y_n)
Y=(Y1,Y2,...,Yn)是随机变量,P(Y|X)是给定X时Y的条件概率分布。若随机变量Y构成一个由无向图G=(V, E)表示的马尔可夫随机场【即
P
(
Y
v
∣
X
,
Y
w
,
w
≠
v
)
=
P
(
Y
v
∣
X
,
Y
w
,
w
∼
v
)
P(Y_v|X,Y_w,w\neq v)=P(Y_v|X,Y_w,w\sim v)
P(Yv∣X,Yw,w=v)=P(Yv∣X,Yw,w∼v)对任意节点 v
都成立】,则称条件概率分布P(Y|X)
是条件随机场。
其中,
w
≠
v
w\neq v
w=v 表示 w 是除 v 以外的所有节点
,
w
∼
v
w\sim v
w∼v表示 w 是与 v 相连接的所有节点
。
条件随机场是一种判别式无向图模型
,它是对条件分布进行建模。而HMM是生成式模型
,生成式模型是直接对联合分布进行建模。
2. 线性链条件随机场(Linear chain Conditional Random Fields, linear-CRF)
注意在CRF的定义中,我们并没有要求X和Y有相同的结构。而实现中,我们一般都假设X和Y有相同的结构,即:
X
=
(
X
1
,
X
2
,
.
.
.
X
n
)
,
Y
=
(
Y
1
,
Y
2
,
.
.
.
Y
n
)
X =(X_1,X_2,...X_n),\;\;Y=(Y_1,Y_2,...Y_n)
X=(X1,X2,...Xn),Y=(Y1,Y2,...Yn)
线性链条件随机场的定义为:
若X和Y均为线性链表示的随机变量序列
,在给定随机变量序列X的情况下,随机变量Y的条件概率分布P(Y|X)构成条件随机场,即满足马尔科夫性(只和相邻变量有关):
P ( Y i ∣ X , Y 1 , . . . , Y i − 1 , Y i + 1 , . . . , Y n ) = P ( Y i ∣ X , Y i − 1 , Y i + 1 ) , i = 1 , . . . , n P(Y_i|X,Y_1,...,Y_{i-1},Y_{i+1},...,Y_n)=P(Y_i|X,Y_{i-1},Y_{i+1}),\quad i=1,...,n P(Yi∣X,Y1,...,Yi−1,Yi+1,...,Yn)=P(Yi∣X,Yi−1,Yi+1),i=1,...,n
则称P(Y|X)为线性链条件随机场
。
如下图所示的结构:X和Y有相同的结构的CRF就构成了线性链条件随机场
。
3. 线性链条件随机场的参数化形式
对于上一节讲到的linear-CRF,我们如何将其转化为可以学习的机器学习模型呢?这是通过特征函数
和其权重系数
来定义的。什么是特征函数呢?
在linear-CRF中,特征函数分为两类:
- 第一类是定义在
Y节点上的节点特征函数(状态特征)
,这类特征函数只和当前节点有关
,记为:
s l ( y i , x , i ) , l = 1 , 2 , . . . L s_l(y_i, x,i),\;\; l =1,2,...L sl(yi,x,i),l=1,2,...L
其中L是定义在该节点的节点特征函数的总个数
,i是当前节点在序列的位置。
- 第二类是定义在
Y上下文的局部特征函数(转移特征)
,这类特征函数只和当前节点和上一个节点有关
,记为:
t k ( y i − 1 , y i , x , i ) , k = 1 , 2 , . . . K t_k(y_{i-1},y_i, x,i),\;\; k =1,2,...K tk(yi−1,yi,x,i),k=1,2,...K
其中K是定义在该节点的局部特征函数的总个数
,i是当前节点在序列的位置。之所以只有上下文相关的局部特征函数,没有不相邻节点之间的特征函数,是因为我们的linear-CRF满足马尔科夫性。
无论是节点特征函数还是局部特征函数,它们的取值只能是0或者1。即满足特征条件或者不满足特征条件。同时,我们可以为每个特征函数赋予一个权值,用以表达我们对这个特征函数的信任度。假设 s l s_l sl的权重系数是 μ l \mu_l μl, t k t_k tk的权重系数是 λ k \lambda_k λk,则linear-CRF由我们所有的 s l , μ l , t k , λ k s_l, \mu_l, t_k, \lambda_k sl,μl,tk,λk共同决定。
此时我们得到了linear-CRF的参数化形式
如下:
P
(
y
∣
x
)
=
1
Z
(
x
)
e
x
p
(
∑
i
,
k
λ
k
t
k
(
y
i
−
1
,
y
i
,
x
,
i
)
+
∑
i
,
l
μ
l
s
l
(
y
i
,
x
,
i
)
)
(1.3.1)
P(y|x) = \frac{1}{Z(x)}exp\Big(\sum\limits_{i,k} \lambda_kt_k(y_{i-1},y_i, x,i) +\sum\limits_{i,l}\mu_ls_l(y_i, x,i)\Big)\tag{1.3.1}
P(y∣x)=Z(x)1exp(i,k∑λktk(yi−1,yi,x,i)+i,l∑μlsl(yi,x,i))(1.3.1)
其中,分子是非规范化条件概率
,Z(x) 为规范化因子:
Z
(
x
)
=
∑
y
e
x
p
(
∑
i
,
k
λ
k
t
k
(
y
i
−
1
,
y
i
,
x
,
i
)
+
∑
i
,
l
μ
l
s
l
(
y
i
,
x
,
i
)
)
(1.3.2)
Z(x) =\sum\limits_{y} exp\Big(\sum\limits_{i,k} \lambda_kt_k(y_{i-1},y_i, x,i) +\sum\limits_{i,l}\mu_ls_l(y_i, x,i)\Big)\tag{1.3.2}
Z(x)=y∑exp(i,k∑λktk(yi−1,yi,x,i)+i,l∑μlsl(yi,x,i))(1.3.2)
回到特征函数本身,每个特征函数定义了一个linear-CRF的规则,则其系数定义了这个规则的可信度。所有的规则和其可信度一起构成了我们的linear-CRF的最终的条件概率分布。
4. 线性链条件随机场实例
这里我们给出一个linear-CRF用于词性标注的实例,为了方便,我们简化了词性的种类。假设输入的都是三个词的句子,即
X
=
(
x
1
,
x
2
,
x
3
)
X=(x_1, x_2, x_3)
X=(x1,x2,x3),输出的词性标记为
Y
=
(
y
1
,
y
2
,
y
3
)
Y=(y_1,y_2,y_3)
Y=(y1,y2,y3),其中
Y
∈
{
1
(
名
词
)
,
2
(
动
词
)
}
Y \in \{1(名词), 2(动词)\}
Y∈{1(名词),2(动词)}。此外,设局部特征函数
t
k
t_k
tk、节点特征函数
s
l
s_l
sl和对应的权重
λ
k
,
μ
k
\lambda_k,\mu_k
λk,μk如下:
t
1
=
t
1
(
y
i
−
1
=
1
,
y
i
=
2
,
x
,
i
)
,
i
=
2
,
3
,
λ
1
=
1
t_1 =t_1(y_{i-1} = 1, y_i =2,x,i), \;\;i =2,3,\;\;\lambda_1=1
t1=t1(yi−1=1,yi=2,x,i),i=2,3,λ1=1(注:t函数只和当前i和上一个节点i-1有关,所以i可以取2,3
)
t
2
=
t
2
(
y
1
=
1
,
y
2
=
1
,
x
,
2
)
,
λ
2
=
0.5
t_2 =t_2(y_1 = 1, y_2 =1,x,2),\;\;\lambda_2=0.5
t2=t2(y1=1,y2=1,x,2),λ2=0.5(注:其实这里i也可以取2,3但是由于其他情况λ2取值为0,省略了。详见下。
)
t
3
=
t
3
(
y
2
=
2
,
y
3
=
1
,
x
,
3
)
,
λ
3
=
1
t_3 =t_3(y_2 = 2, y_3 =1,x,3),\;\;\lambda_3=1
t3=t3(y2=2,y3=1,x,3),λ3=1
t
4
=
t
4
(
y
1
=
2
,
y
2
=
1
,
x
,
2
)
,
λ
4
=
1
t_4 =t_4(y_1 = 2, y_2 =1,x,2),\;\;\lambda_4=1
t4=t4(y1=2,y2=1,x,2),λ4=1
t
5
=
t
5
(
y
2
=
2
,
y
3
=
2
,
x
,
3
)
,
λ
5
=
0.2
t_5 =t_5(y_2 = 2, y_3 =2,x,3),\;\;\lambda_5=0.2
t5=t5(y2=2,y3=2,x,3),λ5=0.2
s
1
=
s
1
(
y
1
=
1
,
x
,
1
)
,
μ
1
=
1
s_1=s_1(y_1=1,x,1),\mu_1=1
s1=s1(y1=1,x,1),μ1=1
s
2
=
s
2
(
y
i
=
2
,
x
,
i
)
,
i
=
1
,
2
,
μ
2
=
0.5
s_2=s_2(y_i=2,x,i),\;\;i=1,2,\;\;\mu_2=0.5
s2=s2(yi=2,x,i),i=1,2,μ2=0.5
s
3
=
s
3
(
y
i
=
1
,
x
,
1
)
,
i
=
2
,
3
,
μ
3
=
0.8
s_3=s_3(y_i=1,x,1),\;\;i=2,3,\;\;\mu_3=0.8
s3=s3(yi=1,x,1),i=2,3,μ3=0.8
s
4
=
s
4
(
y
3
=
2
,
x
,
1
)
,
μ
4
=
0.5
s_4=s_4(y_3=2,x,1),\;\;\mu_4=0.5
s4=s4(y3=2,x,1),μ4=0.5
上面只标记出局部特征函数
t
k
t_k
tk、节点特征函数
s
l
s_l
sl取值为1的情况,实际上所有情况概括如下:
t
k
(
y
i
−
1
,
y
i
,
x
,
i
)
=
{
1
y
i
−
1
=
m
,
y
i
=
n
,
x
,
i
(
i
=
2
,
3
,
m
=
1
o
r
2
,
n
=
1
o
r
2
)
0
其
他
t_k(y_{i-1},y_i,x,i)=\begin{cases} 1 & y_{i-1}=m,y_i=n,x,i(i=2,3,m=1\ or\ 2,n=1\ or\ 2)\\ 0 & 其他 \end{cases}
tk(yi−1,yi,x,i)={10yi−1=m,yi=n,x,i(i=2,3,m=1 or 2,n=1 or 2)其他
权重为0对计算条件随机场没有影响,所以取值为0的情况直接省略了。
问:求标记(1,2,2)的非规范化条件概率(下面的CRF基本问题1)。
答:其实这里CRF的参数已经给出了,直接代入linear-CRF的参数化公式,我们就可以求得非规范化条件概率:
P
(
y
∣
x
)
∝
e
x
p
[
∑
k
=
1
5
λ
k
∑
i
=
2
3
t
k
(
y
i
−
1
,
y
i
,
x
,
i
)
+
∑
l
=
1
4
μ
l
∑
i
=
1
3
s
l
(
y
i
,
x
,
i
)
]
P(y|x) \propto exp\Big[\sum\limits_{k=1}^5\lambda_k\sum\limits_{i=2}^3t_k(y_{i-1},y_i, x,i) + \sum\limits_{l=1}^4\mu_l\sum\limits_{i=1}^3s_l(y_i, x,i) \Big]
P(y∣x)∝exp[k=1∑5λki=2∑3tk(yi−1,yi,x,i)+l=1∑4μli=1∑3sl(yi,x,i)]
将(1,2,2)带入上式得到:
P
(
y
1
=
1
,
y
2
=
2
,
y
3
=
2
∣
x
)
∝
e
x
p
(
3.2
)
P(y_1=1,y_2=2,y_3=2|x) \propto exp(3.2)
P(y1=1,y2=2,y3=2∣x)∝exp(3.2)
5. 线性链条件随机场的简化形式
在上几节里面,我们用 s l s_l sl表示节点特征函数,用 t k t_k tk表示局部特征函数,同时也用了不同的符号表示权重系数,导致表示起来比较麻烦。其实我们可以对特征函数稍加整理,将其统一起来。
假设我们在某一节点我们有
K
1
K_1
K1个局部特征函数和
K
2
K_2
K2个节点特征函数,总共有
K
=
K
1
+
K
2
K=K_1+K_2
K=K1+K2个特征函数。我们用一个特征函数
f
k
(
y
i
−
1
,
y
i
,
x
,
i
)
f_k(y_{i-1},y_i, x,i)
fk(yi−1,yi,x,i) 来统一表示如下:
f
k
(
y
i
−
1
,
y
i
,
x
,
i
)
=
{
t
k
(
y
i
−
1
,
y
i
,
x
,
i
)
k
=
1
,
2
,
.
.
.
K
1
s
l
(
y
i
,
x
,
i
)
k
=
K
1
+
l
,
l
=
1
,
2...
,
K
2
f_k(y_{i-1},y_i, x,i)= \begin{cases} t_k(y_{i-1},y_i, x,i) & {k=1,2,...K_1}\\ s_l(y_i, x,i)& {k=K_1+l,\; l=1,2...,K_2} \end{cases}
fk(yi−1,yi,x,i)={tk(yi−1,yi,x,i)sl(yi,x,i)k=1,2,...K1k=K1+l,l=1,2...,K2
对
f
k
(
y
i
−
1
,
y
i
,
x
,
i
)
f_k(y_{i-1},y_i, x,i)
fk(yi−1,yi,x,i) 在各个序列位置求和
得到:
f
k
(
y
,
x
)
=
∑
i
=
1
n
f
k
(
y
i
−
1
,
y
i
,
x
,
i
)
f_k(y,x) = \sum\limits_{i=1}^nf_k(y_{i-1},y_i, x,i)
fk(y,x)=i=1∑nfk(yi−1,yi,x,i)
同时我们也统一
f
k
(
y
i
−
1
,
y
i
,
x
,
i
)
f_k(y_{i-1},y_i, x,i)
fk(yi−1,yi,x,i) 对应的权重系数
w
k
w_k
wk如下:
w
k
=
{
λ
k
k
=
1
,
2
,
.
.
.
K
1
μ
l
k
=
K
1
+
l
,
l
=
1
,
2...
,
K
2
w_k= \begin{cases} \lambda_k & {k=1,2,...K_1}\\ \mu_l & {k=K_1+l,\; l=1,2...,K_2} \end{cases}
wk={λkμlk=1,2,...K1k=K1+l,l=1,2...,K2
这样,我们的linear-CRF的参数化形式简化为
:
P
(
y
∣
x
)
=
1
Z
(
x
)
e
x
p
∑
k
=
1
K
w
k
f
k
(
y
,
x
)
(1.5.1)
P(y|x) = \frac{1}{Z(x)}exp\sum\limits_{k=1}^Kw_kf_k(y,x)\tag{1.5.1}
P(y∣x)=Z(x)1expk=1∑Kwkfk(y,x)(1.5.1)
其中,Z(x)为规范化因子:
Z
(
x
)
=
∑
y
e
x
p
∑
k
=
1
K
w
k
f
k
(
y
,
x
)
(1.5.2)
Z(x) =\sum\limits_{y}exp\sum\limits_{k=1}^Kw_kf_k(y,x)\tag{1.5.2}
Z(x)=y∑expk=1∑Kwkfk(y,x)(1.5.2)
对比一下化简前的公式(1.3.1)和(1.3.2),其实就是统一了两个函数和两个权重。
如果将(1.5.1)和(1.5.2)两式中的
w
k
w_k
wk与
f
k
f_k
fk的用向量表示,即:
w
=
(
w
1
,
w
2
,
.
.
.
w
K
)
T
F
(
y
,
x
)
=
(
f
1
(
y
,
x
)
,
f
2
(
y
,
x
)
,
.
.
.
f
K
(
y
,
x
)
)
T
w=(w_1,w_2,...w_K)^T\;\;\; F(y,x) =(f_1(y,x),f_2(y,x),...f_K(y,x))^T
w=(w1,w2,...wK)TF(y,x)=(f1(y,x),f2(y,x),...fK(y,x))T
则linear-CRF的参数化形式简化为内积形式如下:
P
w
(
y
∣
x
)
=
e
x
p
(
w
⋅
F
(
y
,
x
)
)
Z
w
(
x
)
=
e
x
p
(
w
⋅
F
(
y
,
x
)
)
∑
y
e
x
p
(
w
⋅
F
(
y
,
x
)
)
P_w(y|x) = \frac{exp(w \cdot F(y,x))}{Z_w(x)} = \frac{exp(w \cdot F(y,x))}{\sum\limits_{y}exp(w \cdot F(y,x))}
Pw(y∣x)=Zw(x)exp(w⋅F(y,x))=y∑exp(w⋅F(y,x))exp(w⋅F(y,x))
6. 线性链条件随机场的矩阵形式
假设 P w ( y ∣ x ) P_w(y|x) Pw(y∣x)是由内积形式给出的线性链条件随机场,表示对给定观测序列x,相应的标记序列y的条件概率。矩阵形式需要引进特殊的起点状态 y 0 = s t a r t y_0=start y0=start和终点状态 y n + 1 = s t o p y_{n+1}=stop yn+1=stop,这时 P w ( y ∣ x ) P_w(y|x) Pw(y∣x)可以通过矩阵形式表示。
这里,先引入一个新的量 M i ( y i − 1 , y i ∣ x ) M_i(y_{i-1},y_i|x) Mi(yi−1,yi∣x):
M i ( y i − 1 , y i ∣ x ) = exp ∑ k = 1 K w k f k ( y i − 1 , y i , x , i ) , i = 1 , 2 , . . . , n + 1 M_i(y_{i-1},y_i|x)=\exp\sum_{k=1}^Kw_kf_k(y_{i-1},y_i,x,i),\quad i=1,2,...,n+1 Mi(yi−1,yi∣x)=exp∑k=1Kwkfk(yi−1,yi,x,i),i=1,2,...,n+1
看一下,这个量融合了参数和特征,是一个描述模型的比较简洁的量;其次,不难发现,这个量相比于原来的非规范化概率 P ( Y = y ∣ x ) ∝ exp ∑ k = 1 K w k f k ( y , x ) P(Y=y|x)\propto\exp\displaystyle\sum_{k=1}^Kw_kf_k(y,x) P(Y=y∣x)∝expk=1∑Kwkfk(y,x) ,少了对位置的内层求和【 f x ( y , x ) 内 部 有 个 求 和 操 作 f_x(y,x)内部有个求和操作 fx(y,x)内部有个求和操作】,换句话说这个量是针对于某个位置 i (及其前一个位置 i-1 )的。
那么,假设状态序列的状态存在 m 个可能的取值
,对于任一位置 i = 1,2,…,n+1 ,定义一个 m 阶方阵:
M
i
(
x
)
=
[
exp
∑
k
=
1
K
f
k
(
y
i
−
1
,
y
i
,
x
,
i
)
]
m
×
m
=
[
M
i
(
y
i
−
1
,
y
i
∣
x
)
]
m
×
m
(1.6.1)
\begin{aligned}M_i(x)&=[\exp\sum_{k=1}^Kf_k(y_{i-1},y_i,x,i)]_{m\times m}\\&=[M_i(y_{i-1},y_i|x)]_{m\times m}\end{aligned} \tag{1.6.1}
Mi(x)=[expk=1∑Kfk(yi−1,yi,x,i)]m×m=[Mi(yi−1,yi∣x)]m×m(1.6.1)
又因为有等式: ∏ i [ exp ∑ k = 1 K w k f k ( y i − 1 , y i , x , i ) ] = exp ( ∑ k = 1 K w k ∑ i f k ( y i − 1 , y i , x , i ) ) \displaystyle\prod_i\biggl[\exp\sum_{k=1}^Kw_kf_k(y_{i-1},y_i,x,i)\biggr]=\exp\biggl(\sum_{k=1}^Kw_k\sum_i f_k(y_{i-1},y_i,x,i)\biggr) i∏[expk=1∑Kwkfk(yi−1,yi,x,i)]=exp(k=1∑Kwki∑fk(yi−1,yi,x,i))成立,这样,给定观测序列x,标记序列y的非规范化概率可以通过n+1个矩阵的乘积 ∏ i = 1 n + 1 M i ( y i − 1 , y i ∣ x ) \prod_{i=1}^{n+1}M_i(y_{i-1},y_i|x) ∏i=1n+1Mi(yi−1,yi∣x)表示,于是,规范化之后的条件概率 P w ( y ∣ x ) P_w(y|x) Pw(y∣x)是:
P w ( Y = y ∣ x ) = 1 Z w ( x ) ∏ i = 1 n + 1 M i ( y i − 1 , y i ∣ x ) (1.6.2) P_{\textbf w}(Y=y|x)=\frac{1}{Z_{\textbf w}(x)}\prod_{i=1}^{n+1}M_i(y_{i-1},y_i|x) \tag{1.6.2} Pw(Y=y∣x)=Zw(x)1i=1∏n+1Mi(yi−1,yi∣x)(1.6.2)
其中,
1
Z
w
(
x
)
\frac{1}{Z_{\textbf w}(x)}
Zw(x)1为规范化因子,是n+1个矩阵的乘积的(start,stop)元素:
Z
w
(
x
)
=
(
M
1
(
x
)
M
2
(
x
)
⋯
M
n
+
1
(
x
)
)
(
s
t
a
r
t
,
s
t
o
p
)
(1.6.3)
Z_{\textbf w}(x)=(M_1(x)M_2(x)\cdots M_{n+1}(x))_{(start,stop)} \tag{1.6.3}
Zw(x)=(M1(x)M2(x)⋯Mn+1(x))(start,stop)(1.6.3)。
规范化因子 Z w ( x ) Z_{\textbf w}(x) Zw(x) 是这 n+1 个矩阵的乘积矩阵的索引为 (???,???) 的元素。 Z w ( x ) Z_{\textbf w}(x) Zw(x) 它就等于以 start 为起点、以 stop 为终点的所有状态路径的非规范化概率 ∏ i = 1 n + 1 M i ( y i − 1 , y i ∣ x ) \prod_{i=1}^{n+1}M_i(y_{i-1},y_i|x) ∏i=1n+1Mi(yi−1,yi∣x)之和(证明略)。
7. 线性链条件随机场的矩阵形式实例
给定一个线性链条件随机场,n = 3 ,状态的可能取值为 1 和 2 。设
y
0
=
s
t
a
r
t
=
1
,
y
n
+
1
=
s
t
o
p
=
1
y_0 = start = 1, y_{n+1} = stop = 1
y0=start=1,yn+1=stop=1 ,且 M 矩阵在 i = 1,2,...,n+1 的值已知
,求状态序列以 start 为起点、以stop为终点的所有状态路径的非规范化
及规范化概率
。
M
1
(
x
)
=
(
a
01
a
02
0
0
)
,
M
2
(
x
)
=
(
b
11
b
12
b
21
b
22
)
M_1(x)=\begin{pmatrix}a_{01} & a_{02}\\0&0\end{pmatrix},\quad M_2(x)=\begin{pmatrix}b_{11} & b_{12}\\b_{21} & b_{22}\end{pmatrix}
M1(x)=(a010a020),M2(x)=(b11b21b12b22)
M
3
(
x
)
=
(
c
11
c
12
c
21
c
22
)
,
M
4
(
x
)
=
(
1
0
1
0
)
M_3(x)=\begin{pmatrix}c_{11} & c_{12}\\c_{21} & c_{22}\end{pmatrix},\quad M_4(x)=\begin{pmatrix}1 & 0\\1 & 0\end{pmatrix}
M3(x)=(c11c21c12c22),M4(x)=(1100)
【注: M 1 ( x ) M_1(x) M1(x)只有一行是因为从start在引入的时候就确定了只有一种可能,而 a 01 a_{01} a01和 a 02 a_{02} a02也分别表示到位置1的两个状态的概率。 M 4 ( x ) M_4(x) M4(x)只有一列则是因为stop也只有一个可能,并且前一个位置3的两种状态只能到位置4的这一个状态,所以概率肯定为1,此外如果我们假设stop=1,那 M 4 ( x ) M_4(x) M4(x)就是只有第二列元素且全为1$】
解:
首先如下图所示就是例子中的先行链条件随机场,从 start 到 stop 有八种不同的序列组合:y=(1,1,1), y=(1,1,2), … , y=(2,2,2),而对应的各个路径的非规范化概率
分别是:
a
01
b
11
c
11
,
a
01
b
11
c
12
,
a
01
b
12
c
21
,
a
01
b
12
c
22
a_{01}b_{11}c_{11},\ a_{01}b_{11}c_{12},\ a_{01}b_{12}c_{21},\ a_{01}b_{12}c_{22}
a01b11c11, a01b11c12, a01b12c21, a01b12c22
a
02
b
21
c
11
,
a
02
b
21
c
12
,
a
02
b
22
c
21
,
a
02
b
22
c
22
a_{02}b_{21}c_{11},\ a_{02}b_{21}c_{12},\ a_{02}b_{22}c_{21},\ a_{02}b_{22}c_{22}
a02b21c11, a02b21c12, a02b22c21, a02b22c22
然后按照式(1.6.3)计算规范化因子,通过计算矩阵乘积
M
1
(
x
)
M
2
(
x
)
M
3
(
x
)
M
4
(
x
)
M_1(x)M_2(x)M_3(x)M_4(x)
M1(x)M2(x)M3(x)M4(x),可得第一行第一列的元素为:
a
01
b
11
c
11
+
a
01
b
11
c
12
+
a
01
b
12
c
21
+
a
01
b
12
c
22
+
a
02
b
21
c
11
+
a
02
b
21
c
12
+
a
02
b
22
c
21
+
a
02
b
22
c
22
a_{01}b_{11}c_{11}+a_{01}b_{11}c_{12}+a_{01}b_{12}c_{21}+a_{01}b_{12}c_{22}+a_{02}b_{21}c_{11}+a_{02}b_{21}c_{12}+a_{02}b_{22}c_{21}+a_{02}b_{22}c_{22}
a01b11c11+a01b11c12+a01b12c21+a01b12c22+a02b21c11+a02b21c12+a02b22c21+a02b22c22
很显然等于从start到stop所有路径的非规范化概率之和。即要求的规范化因子
。
二、条件随机场的三个基本问题
- 条件随机场的概率计算问题,即给定 linear-CRF的条件概率分布P(y|x), 在给定输入序列x和输出序列y时,计算条件概率 P ( Y i = y i ∣ x ) P(Y_i=y_i|x) P(Yi=yi∣x)和 P ( Y i − 1 = y i − 1 , Y i = y i ∣ x ) P(Y_{i-1}=y_{i-1}, Y_i=y_i|x) P(Yi−1=yi−1,Yi=yi∣x)以及对应的期望。
- 条件概率最大的输出序列预测问题,即给定 linear-CRF的条件概率分布P(y|x),和输入序列x, 计算使条件概率最大的输出序列y。类似于HMM,使用维特比算法可以很方便的解决这个问题。
- 条件随机场模型参数学习问题,即给定训练数据集X和Y,学习linear-CRF的模型参数 w k w_k wk和条件概率 P w ( y ∣ x ) P_w(y|x) Pw(y∣x),这个问题的求解比HMM的学习算法简单的多,普通的梯度下降法,拟牛顿法都可以解决。
三、linear-CRF和HMM的比较
linear-CRF模型和HMM模型有很多相似之处,尤其是其三个典型问题非常类似,除了模型参数学习的问题求解方法不同以外,概率估计问题和解码问题使用的算法思想基本也是相同的。同时,两者都可以用于序列模型,因此都广泛用于自然语言处理的各个方面。
现在来看看两者的不同点。
- 最大的不同点是linear-CRF模型是判别模型,而HMM是生成模型,即linear-CRF模型要优化求解的是条件概率 P ( y ∣ x ) P(y|x) P(y∣x),而HMM要求解的是联合分布 P ( x , y ) P(x,y) P(x,y)。
- 第二,linear-CRF是利用最大熵模型的思路去建立条件概率模型,
对于观测序列并没有做马尔科夫假设
。而HMM是在对观测序列做了马尔科夫假设的前提下建立联合分布的模型
参考:
THE END.