<知识库的构建> 3-2 条件随机场 Condition Random Field

引自Fabian Suchanek的讲义。

 

总结:主要讲述条件随机场在NERC上的应用,即当条件和条件之间是互相依赖的时候就需要使用到条件随机场。需要理解条件随机场的定义,邻居如何形成clique,条件随机场进行矢量化的条件:即场内所有proba都大于0,条件随机场内的clique形成链时如何计算proba即把Ci部分换成当前Y和Y的predecessor,条件随机场的2种特殊形式,即当条件随机场中每个X的势是相同时(即把i放入势函数内,因为每个X的势都一样,只需要知道是对X中的哪一个单词进行计算),和当条件随机场需要根据features来计算势函数的值(W*F) ,以此计算条件随机场的log可能性,即用log函数套在exp之外,进行不断化简。

 

建议再看此文之前先了解下马尔科夫随机场,博文链接:http://www.cnblogs.com/mengzizhao/p/8381982.html

 

我们之前做的NERC,都是假设条件与条件之间是没有互相依赖关系的,若条件与条件之间有互相依赖关系的话,就要使用条件随机场。

 

条件随机场是马尔科夫随机场的一种特殊情况,举个例子:

P(Y|X1,X2,X3,Y2,Y3) = P(Y| X1,X2,X3,Y2),则说明Y与Y3无关。

 

CRF的定义:一系列的随机变量可以生成一个条件随机场

P(Yi|X1,……,Xn,Y1,…Yi-1,Yi+1,……,Yn) = P(Yi|N(Yi))

N(Yi) 表示Yi的邻居,此式子表示Yi只由Yi的邻居决定。

 

邻居Neighbors:

什么样的变量可以做邻居:互相可以影响的

我们可以把邻居映射到无向图中,则邻居与邻居之间可以相连,形成无向图

举个例子:若Y1,Y2,Y3,是邻居,Y4,Y5是邻居,则可以画出如下的图:

最大的Clique就是左边这个,边为3条。

 

矢量化的条件随机场Factorizable CRF:当所有概率全部大于0时,此CRF即可以被矢量化

在本章中,CRF是应用于NERC的,所以我们可以把X向量理解为corpus向量,Y向量理解为标签向量。是势函数,即关于向量x,y的势。Ci代表的是Clique i。如何计算势,我们后面再讲。

 

条件随机场链CRF Chain:在CRF中,若邻居图是一条链,则叫CRF链,所以此时,CRF clique图中只有两个成员,即Yi-1和Yi,也就是本身和其predecessor。

我们之前的概率函数为:

此时Ci = {Yi-1,Yi}

 

CRF有几种特殊情况:

1 - 每个成分的势都一样时,我们可得

所以此时可以把i放进括号里面,即要知道该成分在X向量中的位置,即对应语料库中哪一个词。

 

2 - 带features的CRF

我们在NERC章节学到statistical NERC方法中如何用函数表示features,即f(X,i,y) 。此时我们有一个features的向量,即F,并且也定义了每个feature的权重,即w,此时势函数的定义为:

所以我们可得

 

CRF log 可能性 likehood:

 

使likehood最大化,得到对于X最好的Y:

 

log(z)与最大值无关,可以去掉,所以我们有

 

若我们一个Y只有一个label,那么可化简为:

posted @ 2018-01-29 19:12  赵梦子  阅读(154)  评论(0编辑  收藏  举报