条件随机场(CRF)理论及应用
http://x-algo.cn/index.php/2016/02/15/conditional-random-field-crf-theory-and-implementation/
条件随机场(CRF)是给定一组输入随机变量条件下,求另一组输出随机变量的条件概率分布的模型;其特点是假设输出随机变量构成马尔科夫随机场(后面解释),条件随机场可以用于不同的预测问题,对自然语言处理过程主要是线性(linear chain)条件随机场,这时,问题变成了由输入序列对输出序列预测的判别模型,形式为对数 线性模型,学习方法为极大似然估计或者正则化的极大似然估计。条件随机场和隐马类似,对应得得三个基本问题:概率计算问题、学习问题和预测问题。
文章目录 [展开]
概率无向图模型
概率无向图模型(probabilistic undirected graphical model)又称为马尔科夫随机场,是一个可以由无向图表示的联合概率分布。
定义:设有联合概率分布于P(Y),由无向图G=(V,E)表示,在图G中,节点表示随机变量,边表示随机变量之间的依赖关系。如果联合概率分布P(Y)满足成对、局部或全局马尔科夫性,就称此联合概率分布为概率无线图模型
成对、局部或全局马尔科夫性,大白话就是说每一个节点的分布只和有边相连的节点有关系。
概率无向图的因子分解
因子分解是建立在最大团的理论之上,这里先介绍最大团
定义(团和最大团):无向图G中任何两个节点均有边链接的节点自己称为团(clique)。若C是无向图的一个团,并且不能再加入任何一个G的节点使其成为一个更大的团,则称此C为最大团(maximal clique)。
下图中有两个节点组成的团有五个:{A,B},{B,C},{A,C},{C,D},{B,D};有两个最大团:{A,B,C},{B,C,D};而{A,B,C,D}不是一个团,因为A和D之间没有边。
定义(因子分解):将概率无向图模型的联合概率分布表示为其上最大团的随机变量的函数的乘机的形式的操作,成为概率无向图模型的因子分解(factorization)。
给定无向图模型G,其中C表示的是最大团, YCYC 表示C对应的随机变量,联合概率分布P(Y)可写作图中所有最大团C上的函数 φC(YC)φC(YC) 的乘积形式:
P(Y)=1Z∏CφC(YC)P(Y)=1Z∏CφC(YC)
其中Z是规范化因子:
Z=∑Y∏CφC(YC)Z=∑Y∏CφC(YC)
规范化因子保证P(Y)构成一个概率分布,函数 φCφC 称为势函数,这里要求势函数是严格正的,通常定义的为指数函数
φC(YC)=e−E(YC)φC(YC)=e−E(YC)
条件随机场的定义
定义(条件随机场):设X和Y是随机变量,P(Y|X)是在给定X的条件下的Y的条件分布,若随机变量Y构成一个无向图G=(V,E)表示的马尔科夫场,即:
P(Yv|X,Yw,w≠v)=P(Yv|X,Yw,w∼v)P(Yv|X,Yw,w≠v)=P(Yv|X,Yw,w∼v)
对任意的节点v成立,则称条件概率分布P(Y|X)为条件随机场。其中 w∼vw∼v 表示在图G=(V,E)中,节点v有边链接的所有节点w, w≠vw≠v 表示节点v以外的所有节点。
定义中并没有要求X和Y具有相同的图结构,现实中,一般假设X和Y具有相同的图结构。本文主要讨论下面两种线性链的情况。
根据定义,线性链的的条件随机场可以表示为(请不要纠结边界):
P(Yi|X,Y1,Y2,...,Yi−1,Yi+1,...,Yn)=P(Yi|X,Yi−1,Yi+1)P(Yi|X,Y1,Y2,...,Yi−1,Yi+1,...,Yn)=P(Yi|X,Yi−1,Yi+1)
线性条件随机场的参数化形式
线性条件随机场中每个最大团都包含两个节点,当前节点为i前一个节点为i-1。特征粒度是在最大团的粒度,并且是两个相邻节点{i-1, i}。一般来说特征分为两类,作用在边上的特征和作用在节点上的特征,边上的第m维特征用 tmtm 表示,节点上的第l维特征用 slsl 表示。每个团的特征向量为 (t1,t2,...,tm,...,tM,s1,s2,...sl,...,sL)(t1,t2,...,tm,...,tM,s1,s2,...sl,...,sL) ,为了表示方便,通常用 (f1,f2,...,fM,fM+1,....,fM+L)(f1,f2,...,fM,fM+1,....,fM+L) 表示;类似线性模型,每个特征都要学习出来一个权重 w=(w1,w2,...,wM+L)w=(w1,w2,...,wM+L) 。
用公式表示即为:
P(y|x)=1Z(x)exp∑Kk=1wkfk(y,x)P(y|x)=1Z(x)exp∑k=1Kwkfk(y,x)
Z(x)=∑yexp∑Kk=1wkfk(y,x)Z(x)=∑yexp∑k=1Kwkfk(y,x)
fk(y,x)=∑ni=1fk(yi−1,yi,x,i)fk(y,x)=∑i=1nfk(yi−1,yi,x,i)
条件随机场的概率计算问题
在已知参数和求给定观测序列的概率的时候,只需要依次从前到后计算每一个最大团的向量乘积即可。
条件随机场的学习算法
具体的实现算法有改进的迭代尺度法、梯度下降法以及拟牛顿法。
条件随机场的预测算法
预测算法和HMM类似,是维特比算法。
预测问题,就是从多个候选标注中挑选出来一种标注概率最高的。由于归一化因子不影响值的比较,所以只需要比较分子部分的『非规范化概率』。这个求最优的过程可以通过数学表示为:
maxy ∑ni=1w⋅Fi(yi−1,yi,x)maxy ∑i=1nw⋅Fi(yi−1,yi,x)
其中,
Fi(yi−1,yi,x)=(f1(yi−1,yi,x,i),f2(yi−1,yi,x,i),...,fk(yi−1,yi,x,i))TFi(yi−1,yi,x)=(f1(yi−1,yi,x,i),f2(yi−1,yi,x,i),...,fk(yi−1,yi,x,i))T
接下来就是使用维特比算法对每一个位置i,计算标注为 cjcj 的最大概率,对于每一个位置有多个可能的标注,定义 ϱi(j)ϱi(j) 表示第i个位置,标注序列是 cjcj 结束的最大概率,所以动态转移方程可以表示为:
ϱi(j)=max1≤l≤J{ϱi−1(l)+w⋅Fi(yi−1=l,yi=j,x)},l=1,2,3...Jϱi(j)=max1≤l≤J{ϱi−1(l)+w⋅Fi(yi−1=l,yi=j,x)},l=1,2,3...J
对第一个位置可以表示为:
ϱ1(j)=w⋅F1(y0=start,y1=j,x), j=1,2,...,Jϱ1(j)=w⋅F1(y0=start,y1=j,x), j=1,2,...,J
计算的时候记录一下路径就可以了。