条件随机场 (conditional random fields )模型

来源:互联网 发布:上海plc编程培训学校 编辑:程序博客网 时间:2024/05/18 03:26

条件随机场模型是由Lafferty在2001年提出的一种典型的判别式模型。它在观测序列的基础上对目标序列进行建模,重点解决序列化标注的问题条件随机场模型既具有判别式模型的优点,又具有产生式模型考虑到上下文标记间的转移概率,以序列化形式进行全局参数优化和解码的特点,解决了其他判别式模型(如最大熵马尔科夫模型)难以避免的标记偏置问题。

条件随机场模型(conditional random fields )是一种无向图模型,它是在给定需要标记的观察序列的条件下,计算整个标记序列的联合概率分布,而不是在给定当前状态条件下,定义下一个状态的状态分布。即给定观察序列O,求最佳序列S。

—预备知识
  —产生式模型和判别式模型(Generative model vs. Discriminative model)
—概率图模型

(1)机器学习方法的两种分类:产生式模型和判别式模型


假定输入x, 类别标签y


—产生式模型(生成模型)估计联合概率 P(x, y), 因可以根据联合概率来生成样本 —: HMMs
—判别式模型(判别模型)估计条件概率 P(y|x), 因为没有x的知识,无法生成样本,只能判断分类: SVMs,CRF,MEM
  举例:(o和s分别代表观察序列和标记序列)
(1,0), (1,0), (2,0), (2, 1)
产生式模型:

1)p(x, y):P(1, 0) = 1/2, P(1, 1) = 0, P(2, 0) = 1/4, P(2, 1) = 1/4.

 2)构建o和s的联合分布p(s,o)

3)产生式模型中,观察序列作为模型的一部分;

4)产生式模型:无穷样本==》概率密度模型 = 产生模型==》预测

判别式模型:

1)P(y|x):P(0|1) = 1, P(1|1) = 0, P(0|2) = 1/2, P(1|2) = 1/2
2)构建o和s的条件分布p(s|o)
3)判别式模型中,观察序列只作为条件,因此可以针对观察序列设计灵活的特征。
4)判别式模型:有限样本==》判别函数 = 预测模型==》预测
    一般认为判别型模型要好于生成型模型,因为它是直接根据数据对概率建模,而生成型模型还要先求两个难度相当的概率
概率图模型
1)用图的形式表示概率分布
2)基于概率论中贝叶斯规则建立起来的,解决不确定性问题,可以用于人工智能、 数据挖掘、 语言处理文本分类等领域
     图模型是表示随机变量之间的关系的图,图中的节点表示随机变量,缺少边表示条件独立假设。因此可以对联合分布提供一种紧致表示
3)根据边是否有方向,有两种主要的图模型
无向图:亦称马尔科夫随机场(Markov Random Fields, MRF’s)或马尔科夫网络(Markov Networks)
有向图:亦称贝叶斯网络(Bayesian Networks)或信念网络(Belief Networks, BN’s).
混合图模型,有时称为链图(chain graphs)
例如:其中有两个概念:位置(site),相空间(phase space)。“位置”好比是一亩亩农田;“相空间”好比是种的各种庄稼。我们可以给不同的地种上不同的庄稼,这就好比给随机场的每个“位置”,赋予相空间里不同的值。所以,俗气点说,随机场就是在哪块地里种什么庄稼的事情。
—简单地讲,随机场可以看成是一组随机变量的集合(这组随机变量对应同一个样本空间)。当给每一个位置中按照某种分布随机赋予相空间的一个值之后,其全体就叫做随机场。(当然,这些随机变量之间可能有依赖关系,一般来说,也只有当这些变量之间有依赖关系的时候,我们将其单独拿出来看成一个随机场才有实际意义。)
  4)具有马尔科夫性质
5)体现了一个思想:离当前因素比较遥远(这个遥远要根据具体情况自己定义)的因素对当前因素的性质影响不大。
   

1 链式条件随机场模型的图结构

clip_image002

2 条件随机场模型的分解式

clip_image004

clip_image006

2 原理:

(1)目标函数:基于最大熵原则进行建模,定义样本条件熵

clip_image008

(2)约束条件:

以团为单位定义特征clip_image010

约束特征的样本期望与模型期望相同:

clip_image012

另外:

clip_image014

(3)求解:运用拉格朗日乘数法,求解出条件随机场的分布形式如下:

clip_image016

4 CFR与HMM的比较

一般序列分类模型常常采用隐马模型(HMM), 像基于类的中文分词, 但隐马模型中存在两个假设: 输出独立性假设和马尔可夫性假设.


 其中, 输出独立性假设要求序列数据严格相互独立才能保证推导的正确性, 而事实上大多数序列数据不能 被表示成一系列独立事件.


 而条件随机场则使用一种概率图模型, 具有表达长距离依赖性和交叠性特征的能力, 能够较好地解决标注(分类)偏置等问题的优点, 而


且所有特征可以进行全局归一化, 能够求得全局的最优解。


CRF就像一个反向的隐马尔可夫模型(HMM),两者都是用了马尔科夫链作为隐含变量的概率转移模型,只不过HMM使用隐含


变量生成可观测状态,其生成概率有标注集统计得到,是一个生成模型;而CRF反过来通过可观测状态判别隐含变量,其概率亦通


过标注集统计得来,是一个判别模型。由于两者模型主干相同,其能够应用的领域往往是重叠的,但在命名实体、句法分析等领域


CRF更胜一筹。当然你并不必须学习HMM才能读懂CRF,但通常来说如果做自然语言处理,这两个模型应该都有了解。 


CRF详细的介绍和公式推导推荐这个PPT教程:http://wenku.baidu.com/view/f32a35d2240c844769eaee55.html。 

另外推荐一篇HMM应用于中文分词的一篇易读的入门教程,非常形象:http://blog.sina.com.cn/s/blog_68ffc7a40


100uebv.html 

下面仅针对专门做自然语言处理的同学做一个快速形象的上手简介,并指出最重要的特征。这里假设你已经有基本的自然语言


处理概念和马尔科夫链的基本知识。CRF本质上是隐含变量的马尔科夫链+可观测状态到隐含变量的条件概率。说隐含变量和可观测


状态很抽象,我们以词性标注为例(如果你不知道什么是词性标注,请百度一下),在词性标注中词性标签就是隐含变量,具体的


词语就是可观测状态,词性标注的目的是通过可观测到的一个个单词推断出来每个单词应该被赋予的词性标签。下文将用词性标签


和词语代替上述两个名词。 

先说马尔科夫链,这里体现了CRF的随机场特征(准确的说是马尔科夫随机场)。这里CRF和HMM都假设词性标签是满足马


尔科夫性的,即当前词性仅和上一个词性有概率转移关系而与其它位置的词性无关,比如形容词后面跟形容词的概率是0.5,跟修饰


性“的”的概率为0.5,跟动词的概率为0。因此,通过在一个标注集上进行统计,我们很容易得到一个概率转移矩阵,即任意词性A


后紧邻任意词性B的概率都可以被统计出来。对HMM来说这部分就结束了,对CRF来说,可以在二维条件转移矩阵基础上再增加一


维词语特征,如“当AB相邻,A是动词且B单词长度超过3时,B是名词的概率是xx"。大家可能注意到了马尔科夫链的窗口为1,即它


仅考虑上1个词,这不见得是最合理的。这其实是一个对特征稀疏问题的折中,可以想象仅对两个词性AB统计P(B|A)能够得到很多数


据的反馈,而如果统计长度为6的窗口,如P(G | ABCDEF)就会遇到数据稀疏的问题,因为很可能序列ABCDEF根本就没有在数据集


中出现过.数据稀疏对机器学习的影响是巨大的,因此马尔科夫链实际以损失一定全局信息的基础上换来了更饱满的数据,实验证明


这笔交易在词性标注时是赚的。 

再说词性与词语直接的映射概率,这里体现了CRF的条件特征。如果是HMM,这里会直接统计词性-->单词的条件概率矩阵,


比如 ”动词“ 生成 ”发射“ 的概率可能为1.5%,而生成”微软“ 的概率为0. 然后对于每一种可能的词性序列结合与条件概率相


乘就能得到每一个候选序列的生成概率,然而取概率最高的作为标注结果即可。而CRF正好反过来,CRF通过发掘词语本身的特征


(如长度,大小写,匹配特定词表等,也可以包括词语本身),把每个词语转化成为一个一维特征向量(vector),然后对于每个特征


计算特征到词性的条件概率,这样每个词语对候选词性的条件概率即为所有特征条件概率的加和。比如我们假设特征向量只有两


个,且P ( ”词语长度>3" --> 名词词性)的概率为0.9, P("词语位于句子末尾“ --> 名词词性)概率为0.4,且一个词恰好满足这


两个特征,则其为名词的条件概率为 (0.9 + 0.4) / 2 = 0.65. 这样,CRF根据这个条件转移数值再结合词性的马尔科夫特性,就可以


使用与HMM类似的方法寻找最优的词性标注序列了。 


优点:

(1)CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息。特征设计灵活(与ME一样) ————与HMM比较

(2)同时,由于CRF计算全局最优输出节点的条件概率,它还克服了最大熵马尔可夫模型标记偏置(Label-bias)的缺点。 ­­————与MEMM比较

(3)CRF是在给定需要标记的观察序列的条件下,计算整个标记序列的联合概率分布,而不是在给定当前状态条件下,定义下一个状态的状态分布。

————与ME比较

缺点:训练代价大、复杂度高

5 应用

 条件随机场理论(CRFs)可以用于序列标记、数据分割、组块分析等自然语言处理任务中。在中文分词、中文人名识别、歧义消解等汉语自然语言处理任务中都有应用,表现很好。

在线性链CRF上, 这个计算任务可以用一般的Viterbi算法来有效地完成.

目前我发现的关于CRF的实现有:

* CRF++(http://crfpp.sourceforge.net/)

* Pocket CRF(http://sourceforge.net/project/showfiles.php?group_id=201943)

关于CRF简介及代码实现的网址:http://www.inference.phy.cam.ac.uk/hmw26/crf/#software

条件随机场(CRF)识别命名实体



0 0