1. 条件随机场简述
1.1 条件随机场定义
设X,Y为两个随机变量,若由Y构成的无向图(随机变量为结点,变量之间的依赖关系为边)满足全局马尔科夫性(即构成马尔科夫随机场),即
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)为条件随机场。
理解:从左至右看就是每个结点基于图中其他结点的条件概率,等于这个结点基于他的相邻结点的条件概率。换句话说就是,每个结点的概率只与他的邻居有关。
线性链条件随机场便是给定的X,Y的长度相同(假设X={x1,x2,…,xn}, Y={y1,y2,…,yn})是的特殊情况下的条件随机场,为方便计算,我们后面都是以线性链条件随机场为例。
2. 条件随机场的参数化形式(LinearCRF为例)
设P(Y|X)为线性链条件随机场,y,x分别为Y,X的取值,则有:
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
)
)
P(y|x) = \frac {1}{Z(x)} exp(\sum_{i,k}\lambda_k~t_k(y_{i-1},y_i,x,i) +\sum_{i,l}\mu_l~s_l(y_i,x,i))
P(y∣x)=Z(x)1exp(i,k∑λk tk(yi−1,yi,x,i)+i,l∑μl sl(yi,x,i))
其中
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
)
)
Z(x)=\sum_y exp(\sum_{i,k}\lambda_k~t_k(y_{i-1},y_i,x,i) +\sum_{i,l}\mu_l~s_l(y_i,x,i))
Z(x)=∑yexp(∑i,kλk tk(yi−1,yi,x,i)+∑i,lμl sl(yi,x,i))
我们一个一个来理解。CRF有两个特征:
一个特征是本身的状态, 所以我们有第一个特征函数:
s
l
(
y
i
,
x
,
i
)
s_l(y_i,x,i)
sl(yi,x,i)
一个特征是对前一个状态的依赖,所以我们有第二个特征函数:
t
k
(
y
i
−
1
,
y
i
,
x
,
i
)
t_k(y_{i-1},y_i,x,i)
tk(yi−1,yi,x,i)
λ k , μ l \lambda_k ~,~\mu_l λk , μl显然就是每个特征函数对应的权重参数,也是我们要学习的参数。
e x p ( ) exp() exp()是一个加法乘法转换的常规操作, Z(x)是一个规范化因子,作用是限制P(y|x)为1。
3. 条件随机场简化形式
第一个特征函数为
t
k
(
y
i
−
1
,
y
i
,
x
,
i
)
t_k(y_{i-1},y_i,x,i)
tk(yi−1,yi,x,i),我们叫它“转移特征”(从i-1转移到i),设其特征数量为
K
1
K_1
K1
第二个特征函数为
s
l
(
y
i
,
x
,
i
)
s_l(y_i,x,i)
sl(yi,x,i),我们叫它“状态特征”( i 时刻的状态), 设其特征数量为
K
2
K_2
K2
总特征数量为
K
=
K
1
+
K
2
K=K_1+K_2
K=K1+K2
原来的条件随机场的参数形式有两个特征函数,现在我们将他们合并一个新的特征函数(其实就是直接concate):
f
k
(
y
,
x
)
=
∑
i
=
1
n
f
k
(
y
i
−
1
,
y
i
,
x
,
i
)
f_k(y,x) = \sum_{i=1}^{n}f_k(y_{i-1},y_i,x,i)
fk(y,x)=i=1∑nfk(yi−1,yi,x,i)
其中n为序列的长度
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):k=1,2,...,K1sl(yi,x,i):k=K1+l, l=1,2,...,K2
相应的,权重也会合并:
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:k=1,2,...,K1μl:k=K1+l, l=1,2,...,K2
合并后的参数和相应权重就构成了新的表达形式:
P
(
y
∣
x
)
=
1
Z
(
x
)
e
x
p
(
∑
k
=
1
K
w
k
f
k
(
y
,
x
)
)
P(y|x) = \frac {1}{Z(x)} exp(\sum_{k=1}^{K}w_kf_k(y,x))
P(y∣x)=Z(x)1exp(k=1∑Kwkfk(y,x))
其中
Z
(
x
)
=
∑
y
e
x
p
(
∑
k
=
1
K
w
k
f
k
(
y
,
x
)
)
Z(x)=\sum_y exp(\sum_{k=1}^{K}w_kf_k(y,x))
Z(x)=y∑exp(k=1∑Kwkfk(y,x))
我们以
w
w
w表示权重向量,
F
(
y
,
x
)
F(y,x)
F(y,x)表示全局特征向量:
w
=
(
w
1
.
w
2
,
.
.
.
,
w
K
)
T
w = (w_1.w_2,...,w_K)^T
w=(w1.w2,...,wK)T
F
(
y
,
x
)
=
(
f
1
(
y
,
x
)
,
f
2
(
y
,
x
)
,
.
.
.
,
f
K
(
y
,
x
)
)
T
F(y,x)=(f_1(y,x),f_2(y,x),...,f_K(y,x))^T
F(y,x)=(f1(y,x),f2(y,x),...,fK(y,x))T
便可表达成向量内积形式,也就是我们最终的简化形式:
P
w
(
y
∣
x
)
=
e
x
p
(
w
⋅
F
(
y
,
x
)
)
Z
w
(
x
)
其
中
Z
w
(
x
)
=
∑
y
e
x
p
(
w
⋅
F
(
y
,
x
)
)
P_w(y|x) = \frac{exp(w\cdot F(y,x))}{Z_w(x)} ~其中 Z_w(x)=\sum_y exp(w\cdot F(y,x))
Pw(y∣x)=Zw(x)exp(w⋅F(y,x)) 其中Zw(x)=y∑exp(w⋅F(y,x))
4. 条件随机场的矩阵形式
我们设一个线性链条件随机场
P
w
(
y
∣
x
)
P_w(y|x)
Pw(y∣x),在长度为n的标记序列y的首尾添加标记
y
0
=
s
t
a
r
t
,
y
n
+
1
=
e
n
d
y_0=start,y_{n+1}=end
y0=start,yn+1=end,现在我们尝试用一个m阶矩阵来表示一个x取值的可能的状态(所以m为所有y可能的取值个数):
M
i
(
x
)
=
[
M
i
(
y
i
−
1
,
y
i
∣
x
)
]
=
[
e
x
p
(
W
i
(
y
i
−
1
,
y
i
∣
x
)
)
]
=
[
e
x
p
(
∑
k
=
1
K
w
k
f
k
(
y
i
−
1
,
y
i
,
x
,
i
)
)
]
M_i(x)=[M_i(y_{i-1},y_i |x)]=[exp(W_i(y_{i-1},y_i|x))]=[exp(\sum_{k=1}^Kw_kf_k(y_{i-1},y_i,x,i))]
Mi(x)=[Mi(yi−1,yi∣x)]=[exp(Wi(yi−1,yi∣x))]=[exp(k=1∑Kwkfk(yi−1,yi,x,i))]
这是什么?
给定的观测序列x和标记序列y,
M
i
(
y
i
−
1
,
y
i
∣
x
)
M_i(y_{i-1},y_i|x)
Mi(yi−1,yi∣x)实际上是
y
i
y_i
yi基于x的未规范化的条件概率,也不难得出序列y基于序列x的条件概率:
P
w
(
y
∣
x
)
=
∏
i
=
1
n
+
1
M
i
(
y
i
−
1
,
y
i
∣
x
)
Z
w
(
x
)
P_w(y|x) = \frac {\prod ^{n+1}_{i=1} M_i(y_{i-1},y_i|x)}{Z_w(x)}
Pw(y∣x)=Zw(x)∏i=1n+1Mi(yi−1,yi∣x)
其中
Z
w
(
x
)
=
(
M
1
(
x
)
M
2
(
x
)
.
.
.
M
n
+
1
(
x
)
)
s
t
a
r
t
,
s
t
o
p
Z_w(x)=(M_1(x)M_2(x)...M_{n+1}(x))_{start,stop}
Zw(x)=(M1(x)M2(x)...Mn+1(x))start,stop
参考资料:
统计学习方法 李航