CRF(Conditional random fields)条件随机场
其实我最想说的是这个!!! 战线拉得太长了。
CRF可以看做是MEMM的进阶版本,它们都是要对同一个概率进行建模:
p(y1,...,yn|x1,...xn)
p
(
y
1
,
.
.
.
,
y
n
|
x
1
,
.
.
.
x
n
)
我们回看一下,MEMM是怎么建模的
p(s1,s2,...,sn|x1,x2,...,xn)=∏i=1np(si|s1,...,si−1,,x1,...,xn)=∏i=1np(si|si−1,,x1,...,xn)
p
(
s
1
,
s
2
,
.
.
.
,
s
n
|
x
1
,
x
2
,
.
.
.
,
x
n
)
=
∏
i
=
1
n
p
(
s
i
|
s
1
,
.
.
.
,
s
i
−
1
,
,
x
1
,
.
.
.
,
x
n
)
=
∏
i
=
1
n
p
(
s
i
|
s
i
−
1
,
,
x
1
,
.
.
.
,
x
n
)
对于每一个 p(si|si−1,,x1,...,xn) p ( s i | s i − 1 , , x 1 , . . . , x n ) ,有:
exp(w.ϕ(x1,...,xn,i,si−1,si)∑s,∈Sexp(w.ϕ(x1,...,xn,i,si−1,s′)
e
x
p
(
w
.
ϕ
(
x
1
,
.
.
.
,
x
n
,
i
,
s
i
−
1
,
s
i
)
∑
s
,
∈
S
e
x
p
(
w
.
ϕ
(
x
1
,
.
.
.
,
x
n
,
i
,
s
i
−
1
,
s
′
)
可以看到,MEMM是一种“步进式的”,挨个对每个时刻建模,归一化也是局部归一化。那CRF跟MEMM比有什么区别,它厉害在什么地方呢?我们先给出CRF的建模方式:
p(s1,s2,...,sn|x1,x2,...,xn)=exp(w.Φ(x1,...,xn,i,si−1,si)∑s,∈Sexp(w.Φ(x1,...,xn,i,si−1,s′)
p
(
s
1
,
s
2
,
.
.
.
,
s
n
|
x
1
,
x
2
,
.
.
.
,
x
n
)
=
e
x
p
(
w
.
Φ
(
x
1
,
.
.
.
,
x
n
,
i
,
s
i
−
1
,
s
i
)
∑
s
,
∈
S
e
x
p
(
w
.
Φ
(
x
1
,
.
.
.
,
x
n
,
i
,
s
i
−
1
,
s
′
)
一看怎么和MEMM差不多啊,哈哈,有区别有区别,一个是 ϕ ϕ 一个是 Φ Φ .
Φ(x1,...,xn,i,si−1,si)=∑j=1mϕ(x1,...,xn,i,si−1,si)
Φ
(
x
1
,
.
.
.
,
x
n
,
i
,
s
i
−
1
,
s
i
)
=
∑
j
=
1
m
ϕ
(
x
1
,
.
.
.
,
x
n
,
i
,
s
i
−
1
,
s
i
)
这一部就是关键。CRF不是“步进式”的,对每个时刻挨个建模,它是一次性的建模整个序列!
望各位同道细思之。