CRF(Conditional random fields)条件随机场
其实我最想说的是这个!!! 战线拉得太长了。
CRF可以看做是MEMM的进阶版本,它们都是要对同一个概率进行建模:
p(y1,...,yn|x1,...xn)p(y1,...,yn|x1,...xn)
我们回看一下,MEMM是怎么建模的
p(s1,s2,...,sn|x1,x2,...,xn)=∏i=1np(si|s1,...,si−1,,x1,...,xn)=∏i=1np(si|si−1,,x1,...,xn)p(s1,s2,...,sn|x1,x2,...,xn)=∏i=1np(si|s1,...,si−1,,x1,...,xn)=∏i=1np(si|si−1,,x1,...,xn)
对于每一个p(si|si−1,,x1,...,xn)p(si|si−1,,x1,...,xn),有:
exp(w.ϕ(x1,...,xn,i,si−1,si)∑s,∈Sexp(w.ϕ(x1,...,xn,i,si−1,s′)exp(w.ϕ(x1,...,xn,i,si−1,si)∑s,∈Sexp(w.ϕ(x1,...,xn,i,si−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(s1,s2,...,sn|x1,x2,...,xn)=exp(w.Φ(x1,...,xn,i,si−1,si)∑s,∈Sexp(w.Φ(x1,...,xn,i,si−1,s′)
一看怎么和MEMM差不多啊,哈哈,有区别有区别,一个是ϕϕ一个是ΦΦ.
Φ(x1,...,xn,i,si−1,si)=∑j=1mϕ(x1,...,xn,i,si−1,si)Φ(x1,...,xn,i,si−1,si)=∑j=1mϕ(x1,...,xn,i,si−1,si)
这一部就是关键。CRF不是“步进式”的,对每个时刻挨个建模,它是一次性的建模整个序列!
望各位同道细思之。