ML-13-5条件随机场(CRF-Conditional Random Field)

Posted yifanrensheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ML-13-5条件随机场(CRF-Conditional Random Field)相关的知识,希望对你有一定的参考价值。

目录

  1. 知识串讲
  2. HMM VS MEMM
  3. 从随机场到马尔科夫随机场
  4. 条件随机场(CRF)
  5. MRF因子分解定理
  6. 线性链条件随机场(Linear-CRF)

一句话简介:条件随机场(Conditional Random Fields, 以下简称CRF)是给定一组输入序列条件下另一组输出序列的条件概率分布模型(是给定随机变量X条件下,随机变量Y的马尔科夫随机场。)。可以作为一种软分类模型,在自然语言处理中得到了广泛应用。和HMM很相似,去掉了HMM中的齐次Markov假设和观测序列的独立假设。

   

一、知识串讲

对于解决分类任务的模型,我们可以将其划分为硬模型和软模型。

技术图片

1.1、分类硬模型

即为输出即为确值(对于二分类就是0 or 1)

  1. SVM(支持向量机):最大支持向量的几何间隔驱动的;
  2. PLA(感知机模型):误分类驱动的
  3. LDA(线性判别模型):类间大,类内小

1.2 分类软模型

即为输出是概率,这里可以再进一步细分为:

1.2.1 一个分支--概率生成模型

是对P(X,Y)进行建模。

朴素贝叶斯(Naive Bayes)朴素贝叶斯这里之所以叫"朴素",是因为这里做了一个比较强的假设,就是在给定y的情况下,xi与xj是相互独立的,因此可以简写NB假设为:P(X|y=1/0)=∏P(xi|y=1/0)

隐马尔科夫(Hidden Markov Model),当朴素贝叶斯模型中的Y从0/1扩展到Seq(序列),那么,模型便扩展为了隐马尔科夫模型(HMM)。这里面也有2个假设:

  1. 齐次Markov假设
  2. 观测独立假设

1.2.2 另一个分支--概率判别模型

是对P(Y|X)进行建模。

逻辑回归(Logistics Regression)/SoftMax Regression。这类问题是对于P(y|x)进行建模的,利用最大熵思想(Maximum Entropy Model)驱动模型。(PS:在最大熵原则下,如果给定均值和方差,那么Gaussian Dist熵最大)

1.2.3 MEMMMaximum Entropy Markov Model)最大熵马尔科夫模型

这是结合了最大熵+HMM的优点的一个模型,属于概率判别模型,这与HMM的模型有点像,但是区别在于:

  1. HMM是生成模型,是对P(X,Y)进行建模;MEMM是判别模型,是对P(Y|X)进行建模;
  2. 在HMM中,观测变量是隐变量的输出;在MEMM中,观测变量变成输入了;
  3. HMM中是有观测独立假设的;在MEMM中,并不是观测独立的(直观理解:在词性标注任务上,给x2标注的词性y2并不单单与x2有关,也与上下文x1、x3有关,因此假设更加合理。

MEMM的著名问题(缺点):

Label Bias Problem(标注偏差问题):原因是因为局部归一化。

1.2.4 CRFCondition Random Field)条件随机场模型

为了打破MEMM的标注偏差问题,将MEMM中的有向变成了无向,解决了局部归一化问题,变成了全局归一化。

二、HMM VS MEMM

2.1 HMM模型理解

HMM可以理解为是泛化的GMM、或是泛化的NB模型。其是属于一个概率生成模型。模型参数可以用一个三元组表示:

λ=(π,A,B),其中:π表示初始状态;A表示状态转移矩阵(就是Yt转移到Yt+1的概率);B表示发射矩阵(就是Y"射"到X的概率)。

HMM具有2个假设,(1)齐次1阶马尔科夫;(2)观测独立假设。下面对着两个强假设进行加以解释说明:

2.1.1 齐次1阶马尔科夫

齐次的理解:就是在马尔科夫链{y1,y2,…,yn}中,马氏链中的任意yt转移到yt+1所服从的概率分布是相同的,这个就叫做齐次。(PS:在链中的任意节点yt,其取值有K多种可能且都是离散的,这里所说的相同的概率分布:是指这K种不同状态之间相互转移的概率,这个是相同不变的)用标准化的语言来说:P(yt|yt+1)这个转移概率与时间t无关。

1阶的理解:在马尔科夫链{y1,y2,…,yn}中:1阶Markov的通俗理解:y3只与y2有关,y2只与y1有关;之所以说是1阶,也就是关联链条的长度为1;如果是2阶的话,y5只与y3和y4与y2是无关的。1阶Markov的假设目的是简化计算,因为计算链条变短了。

齐次1阶Markov用数学表达可以表示成:

技术图片

2.1.2 观测独立假设

用通俗的表述可以理解为:在给定Yt的情况下,Xt与其他的Xk(k≠t)全都无关。用数学表达可以表示成:

技术图片

观测独立假设的目的还是简化计算,因为不考虑观测序列的内联关系了。

观测独立假设的来源,其实算得上是从NB上扩展来的(因为HMM算是NB的泛化,[Y从0/1扩展到Seq])。例如,判断一个邮件是否为垃圾邮件,经典NB模型解决的垃圾邮件分类问题。

这里我们就做的假设是:每个单词之间是相互独立,当然这个假设是不太合理的,因为一句话中的词语肯定是有着一定语言学上的内在联系的。

2.2 HMM建模

在概率图模型圈出最小单元,如图所示:(可以很明显看出的是观测独立假设),这样根据这个最小单元,我们就很容易可以写出HMM的建模数学表示。

技术图片

建模对象为:P(X,Y|λ)——注意:生成模型建模的是联合概率分布

技术图片

2.3 MEMM模型理解

MEMM打破了HMM的观测独立假设,那么,我们来看MEMM是怎么打破的,还是画出MEMM的最小单元,如下图(图的上半部分和下半部分表示意思相同,就是X映射到Y,个人理解:上半部分更能体现观测独立假设被打破,更符合模型定义,下半部分为了和HMM对比使用)。

技术图片

这图与HMM的最小单元非常相似,唯一的区别在于:对于X与Y之间的发射箭头进行了反转。这时候我们看:给定Y2,这时候x1与x2是否还是独立了么?

这是一个显然的"V"字型结构,head-to-head,在给定Y2的情况下,这时候,x1与x2这个路径就是个连通的了,所以就不再独立了(不科学的解释:y2相当于x1和x2的孩子,给定出孩子,这两个个体更加有联系了)。于此同时,这样的处理,模型就不再是一个概率生成模型了,就变成了一个概率判别模型了。

2.4 MEMM建模

建模对象:P(Y|X,λ)——注意:判别模型建模的是条件概率分布

技术图片

2.5 MEMM特点

1)打破了观测独立假设,处理的因为:对于待标注的序列而言,事实上,序列的内容本不是独立的,也就是说,打破观测独立性会使得模型变得更加合理

2)为什么说在这里,判别式的模型比生成式模型要好?因为:任务驱动的,在这样的序列标注任务上,在给定一个待标注序列,我们更关注的是标注的是什么,因此,对于这样的任务我们只需要对条件概率建模就可以了,而去求联合概率分布就将问题复杂化了(计算也复杂化)。

2.6 MEMM的缺点

它的主要缺点是会造成Label Bias Problem,(在John Lafferty论文中,指出了MEMM会造成Label Bias Problem问题)。

在最小单元我们把它当成一个系统,系统从yt−1到yt的这样一个转移用数学可以表示成一个函数,是受yt−1、yt与xt共同作用的一个函数,系统对外是有一定能量的,这个函数被称为Mass Score,而且是大于0的。但是问题出现在:这个Mass Score被局部归一化了。条件概率熵越小,那么对于观测值的考虑越少(有时间看一下John Lafferty的论文)

为了能够更好地理解它的问题所在,这里举一个比较极端的例子。

技术图片

比如,我们训练好了这样的一个模型,现有一个观测序列是[r,i,b]。

在状态0时,由于P(4|0)>P(1|0),所以我们选择从0→4转移路径;问题出现在了第二步转移上:由于P(5|4)=1,是受到了局部归一化的影响,从4状态转移仅有1条路径选择,其转移的条件概率为1,其所具有的熵值为0。

【为什么从4状态向5转移的条件概率为1?---正是因为MEMM在每一步转移的概率都是要做局部归一化的,也就是说,从4状态向外转移的所有的情况加和要为1,在这里,仅有1中转移情况,所以P(5|4)】

在这种情况下,无论观测值为什么,都不会影响4→5的转移,但是,这样标注出来的序列0→4→5→3,[r,o,b]就与客观事实不符了,这也就是问题的所在。

所以,为了解决局部归一化的问题,CRF取消了Y序列的转移方向,也就是取消了局部归一化,改变为了全局归一化。

三、从随机场到马尔科夫随机场

3.1 随机场RF

  首先,我们来看看什么是随机场。"随机场"的名字取的很玄乎,其实理解起来不难。随机场是由若干个位置组成的整体,当给每一个位置中按照某种分布随机赋予一个值之后,其全体就叫做随机场。还是举词性标注的例子:假如我们有一个十个词形成的句子需要做词性标注。这十个词每个词的词性可以在我们已知的词性集合(名词,动词...)中去选择。当我们为每个词选择完词性后,这就形成了一个随机场。

3.2 马尔科夫随机场MRF

了解了随机场,我们再来看看马尔科夫随机场。马尔科夫随机场是随机场的特例,它假设随机场中某一个位置的赋值仅仅与和它相邻的位置的赋值有关,和与其不相邻的位置的赋值无关。继续举十个词的句子词性标注的例子: 如果我们假设所有词的词性只和它相邻的词的词性有关时,这个随机场就特化成一个马尔科夫随机场。比如第三个词的词性除了与自己本身的位置有关外,只与第二个词和第四个词的词性有关。 

【说明1:1、概率无向图模型(probabilistic undirected graphical model)又称为马尔科夫随机场(Markov Random Field),或者马尔科夫网络。也就是说,两个节点之间并没有明确的前后以及方向关系,两个节点之间存在相互作用,与更远出的点没有关系。 2、有向图模型通常被称为信念网络(belief network)或者贝叶斯网络(Bayesian network)。 对于这个我们要稍加区分。】

【说明2:MRF常用于图像方面——图像分割。图像是一个典型的马尔科夫随机场,在图像中每个点可能会和周围的点有关系有牵连,但是和远处的点或者初始点是没有什么关系的,离这个点越近对这个点的影响越大。这个很好理解,图像中这个像素点是黑色的,那个很有可能周围也是黑色的像素,但是并不能够推断出距离这个像素点远的像素点们也是黑的。当然这个附近,也就是这个领域的范围和大小,是由我们自己去决定的。】

四、条件随机场(CRF)

理解了马尔科夫随机场,再理解CRF就容易了。CRF是马尔科夫随机场的特例,它假设马尔科夫随机场中只有X和Y两种变量,X一般是给定的,而Y一般是在给定X的条件下我们的输出。这样马尔科夫随机场就特化成了条件随机场。在我们十个词的句子词性标注的例子中,X是词,Y是词性。因此,如果我们假设它是一个马尔科夫随机场,那么它也就是一个CRF。

对于CRF,我们给出准确的数学语言描述:设X与Y是随机变量,P(Y|X)是给定X时Y的条件概率分布,若随机变量Y构成的是一个马尔科夫随机场,则称条件概率分布P(Y|X)是条件随机场。

五、MRF因子分解定理

技术图片

其中,x是个联合概率分布,它的维度是p维;ψ表示势函数;E表示能量函数;K表示最大团的个数;ci表示第i个最大团。

下面对上式子做一个小的变化:

技术图片

【说明:最大团定义? 通俗理解:就是在无向图中,任意一个子图中,每个节点都能相互的连通,我们就成这个子图为最大团。例如,有4个节点的线性链,[a—b—c—d]。在这个线性链中,最大团的个数就是:3个,即为[a—b],[b—c],[c—d]。具体可参考:https://www.jianshu.com/p/dabbc78471d7】

六、线性链条件随机场(Linear-CRF)

注意在CRF的定义中,我们并没有要求????有相同的结构。????有相同结构,即:

技术图片

这个时候,????有相同的结构的CRF就构成了线性链条件随机场。

技术图片

这个就很好理解了,再次回到10个词的句子词性标注问题上。构成句子的词X是有10个,要标注的词性Y也是有10个,这就是一个标准的linear-CRF。对于Linear-CRF的数学定义是:X=(x1,x2,..,xt,..,xT),Y=(y1,y2,..,yt,..,yT)均为线性链表示的随机变量序列,在给定随机变量序列X的情况下,随机变量Y的条件概率分布P(Y|X)构成条件随机场,即满足马尔科夫性:

技术图片

则称,P(Y|X)为线性链条件随机场。

6.1 Linear-CRF的参数化形式

从《MRF因子分解定理》部分的公式(3)出发:

技术图片

我们单独看线性链中的最大团,对于序列的第t个位置,可以分解上式(2)中的F(yt−1,yt,x1:T)分解为2个部分,即:x1:T对yt的影响以及yt−1、yt间的影响。数学化表示为:

技术图片

技术图片

然后,我们从更数学一点的角度来重新认识Linear-CRF的参数化形式。在linear-CRF中,特征函数分为两类(都是指示函数,即取值非0即1):

1.定义在??节点上的节点特征函数,这类特征函数只和当前节点有关,即为上面的yt,x1:T

技术图片

其中L是定义在该节点的节点特征函数的总个数,i是当前节点在序列的位置。

2.定义在??上下文的局部特征函数,这类特征函数只和当前节点和上一个节点有关,即为上面的yt−1,yt,x1:T

技术图片

其中K是定义在该节点的局部特征函数的总个数,i是当前节点在序列的位置。

【说明:之所以只有上下文相关的局部特征函数,没有不相邻节点之间的特征函数,是因为我们的linear-CRF满足马尔科夫性。】

无论是节点特征函数还是局部特征函数,它们的取值只能是0或者1即满足特征条件或者不满足特征条件。同时,我们可以为每个特征函数赋予一个权值,用以表达我们对这个特征函数的信任度。假设tk的权重系数是λk,sl的权重系数是μl,则linear-CRF的参数化形式为:

技术图片

Y表示的是标注序列,是一个列向量,长度为T;X表示的词语序列,也是一个列向量,长度也为T。

其中,Z(X)为规范化因子:

技术图片

6.2 Linear-CRF示例

这里给出一个小例子,方便更好的直观理解linear-CRF。假设输入的句子是三个词,X=(x1,x2,x3)。输出的词性标记为Y=(y1,y2,y3)。其中,yi∈Y,yi∈{1(名词),2(动词)}。

这里,只取出值为1的特征函数【这里取值为1的意思是这个特征函数在某些序列的位置成立,即针对函数t,s的值。如果这个特征函数在某些序列的位置不成立,那么t,s取值为0。对于t1函数,在i=1的时候,若不成立,那么此时t1=0,这样的特征函数我们没有标出。】:

技术图片

利用上面给出的linear-CRF参数化公式,带入:

技术图片

那么,求标记(1,2,2)的非规范化概率?【PS:非规范化就是不用除Z(X)】

技术图片

【说明:规范化因子Z(X)是考虑到全部的可能标注序列再一起做归一化的。比如一个序列中每个位置都有2种词性可能的话,那么,对于长度为3的序列Y,词性标注就是有2^3=8种可能。把这8种可能的P(Y|X)概率做加和,得到的就是规范化因子Z(X)。这个操作也是CRF不同于MEMM的地方,全局归一化】

6.3 Linear-CRF的简化表示

其实从示例也可以看出,特征函数整的有点复杂了,那我要是词性更多,句长更长,那得麻烦到啥程度啊,所以,还是要对特征函数进行整理,统一起来。

数值表示:假设,共有K=K1+K2个特征函数,其中,K1个局部特征函数tk,K2个节点特征函数sl。我们用1个特征函数fk(yi−1,yi,X,i)来统一表示:

技术图片

对fk(yi−1,yi,X,i)在各个序列位置求和得到:

技术图片

同时也统一fk(yi−1,yi,x,i)对应的权重系数wk:

技术图片

这样,Linear-CRF的简化表达式:

技术图片

其中,规范化因子:

技术图片

如果对fk(Y,X)和wk进行向量化表示,F(Y,X)和W都是K×1的列向量:

技术图片

那么Linear-CRF的向量内积形式可以表示为:

技术图片

6.5 线性链条件随机场的矩阵形式

将上一节统一后的linear-CRF公式加以整理,我们还可以将linear-CRF的参数化形式写成矩阵形式。为此我们定义一个m×m的矩阵M,m为y所有可能的状态的取值个数。M定义如下:

技术图片

技术图片

技术图片

其实这里Mi(x)是一个矩阵,矩阵里的每一个元素是Mi(yi−1,yi|x),而Mi(yi−1,yi|x)是一个m×m的矩阵中的某一个位置,矩阵的每一个位置(p,q)代表了yi−1=p,yi=q时的所有可行的特征函数的加权和并取指数。因此Mi(yi−1,yi|x)=exp(Wi(yi−1,yi|x)),其中Wi(yi−1,yi|x)就是yi−1=p,yi=q时的所有可行的特征函数的加权和.

6.5 Linear-CRF要解决的3个问题

三个问题和HMM问题非常类似:

 在隐马尔科夫模型HMM中,我们讲到了HMM的三个基本问题,而linear-CRF也有三个类似的的基本问题。不过和HMM不同,在linear-CRF中,我们对于给出的观测序列x是一直作为一个整体看待的,也就是不会拆开看(x1,x2,...),因此linear-CRF的问题模型要比HMM简单一些,如果你很熟悉HMM,那么CRF的这三个问题的求解就不难了。

   linear-CRF第一个问题是评估推断(Inference),即给定 linear-CRF的条件概率分布P(y|x), 在给定输入序列x和输出序列y时,计算条件概率P(yi|x)和P(yi−1,yi|x)以及对应的期望。

   linear-CRF第二个问题是学习(Learning),即给定训练数据集X和Y,学习linear-CRF的模型参数wk和条件概率Pw(y|x),这个问题的求解比HMM的学习算法简单的多,普通的梯度下降法,拟牛顿法都可以解决。

  linear-CRF第三个问题是解码(Decoding),即给定 linear-CRF的条件概率分布P(y|x),和输入序列x, 计算使条件概率最大的输出序列y。类似于HMM,使用维特比算法可以很方便的解决这个问题。

具体到下一节进行讨论。 

七、常见问题

7.1 什么样的问题需要CRF模型?

这里举一个简单的例子:假设我们有Bob一天从早到晚的一系列照片,Bob想要我们猜这一系列的每张照片对应的活动,比如: 工作的照片,吃饭的照片,唱歌的照片等等。一个比较直观的办法就是,我们找到Bob之前的日常生活的一系列照片,然后找Bob问清楚这些照片代表的活动标记,这样我们就可以用监督学习的方法来训练一个分类模型,比如逻辑回归,接着用模型去预测这一天的每张照片最可能的活动标记。

这种办法虽然是可行的,但却忽略了一个重要的问题,就是这些照片之间其实是有很大的时间顺序关系的,而用上面的方法则会忽略这种关系。比如我们现在看到了一张Bob闭着嘴的照片,那么这张照片我们怎么标记Bob的活动呢?比较难去打标记。但是如果我们有Bob在这一张照片前一点点时间的照片的话,那么这张照片就好标记了。如果在时间序列上前一张的照片里Bob在吃饭,那么这张闭嘴的照片很有可能是在吃饭咀嚼。而如果在时间序列上前一张的照片里Bob在唱歌,那么这张闭嘴的照片很有可能是在唱歌。

为了让我们的分类器表现的更好,可以在标记数据的时候,可以考虑相邻数据的标记信息。这一点,是普通的分类器难以做到的。而这一块,也是CRF比较擅长的地方。在实际应用中,自然语言处理中的词性标注(POS Tagging)就是非常适合CRF使用的地方。词性标注的目标是给出一个句子中每个词的词性(名词,动词,形容词等)。而这些词的词性往往和上下文的词的词性有关,因此,使用CRF来处理是很适合的,当然CRF不是唯一的选择,也有很多其他的词性标注方法。

7.2 CRFHMM比较(感觉面试较多提及)

7.2.1 异同点

相同点:linear-CRF模型和HMM模型有很多相似之处,尤其是其三个典型问题非常类似,除了模型参数学习的问题求解方法不同以外,概率估计问题和解码问题使用的算法思想基本也是相同的。同时,两者都可以用于序列模型,因此都广泛用于自然语言处理的各个方面。

不同点

  1. HMM是假定满足HMM独立假设。CRF没有,所以CRF能容纳更多上下文信息。
  2. CRF计算的是全局最优解,不是局部最优值。
  3. CRF模型是判别模型,而HMM是生成模型,即linear-CRF模型要优化求解的是条件概率 P (y|x),则HMM要求解的是联合分布P (y,x) 。
  4. linear-CRF是利用最大熵模型的思路去建立条件概率模型,对于观测序列并没有做马尔科夫假设。而HMM是在对观测序列做了马尔科夫假设的前提下建立联合分布的模型
  5. CRF计算量大于HMM

最后只有linear-CRF模型和HMM模型才是可以比较讨论的。但是linear-CRF是CRF的一个特例,CRF本身是一个可以适用于很复杂条件概率的模型,因此理论上CRF的使用范围要比HMM广泛的多。

7.2.2 一般而言,CRF优于HMM

其中一个原因是HMM只考虑前一个状态,而CRF是前后两个状态,考虑了前后之间的相互关系,而不是HMM的只考虑向前的关系。实际上CRF的优越性是以复杂度为代价的,除了线性链CRF和HMM还算结构差不多,算法复杂度勉强差不多以外,其他的CRF的模型都比HMM复杂很多。

另外:HMM的两个假设其实是你自己建模的时候假设出来的前提,也是计算简答的重要原因。如果你觉得这个前提对你的问题解决影响不大,那么尽可以用HMM来做。如果觉得这样做效果可能不好,或者不满足需求,那么可以考虑linear_CRF

另外: CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息,特征设计灵活。CRF需要训练的参数更多,与MEMM和HMM相比,它存在训练代价大、复杂度高的缺点。

参考文献

【1】视频学习: https://www.bilibili.com/video/BV19t411R7QU?from=search&seid=15737447831411320157

【2】以上视频的笔记: https://anxiang1836.github.io/2019/11/05/NLP_From_HMM_to_CRF/

【3】刘建平老师的理解: https://www.cnblogs.com/pinard/p/7048333.html

以上是关于ML-13-5条件随机场(CRF-Conditional Random Field)的主要内容,如果未能解决你的问题,请参考以下文章

条件随机场

条件随机场入门 条件随机场的预测算法

条件随机场入门 条件随机场的概率计算问题

条件随机场

条件随机场(crf)

CRF条件随机场总结