自然语言处理序列模型——CRF条件随机场

原创 精选
人工智能 自然语言处理
在之前介绍的概率有向图模型,如HMM,即贝叶斯网络,相对应的概率无向图模型就称为马尔可夫网络或者马尔可夫随机场(MRF),本篇文章所介绍的CRF就是马尔可夫随机场的一种。

在之前对序列模型中的​​HMM(隐马尔可夫模型)​​进行掌握以后,有必要对另外一个序列模型CRF进行掌握,因为这两个模型都是自然语言处理序列模型中的核心模型。在之前介绍的概率有向图模型,如HMM,即贝叶斯网络,相对应的概率无向图模型就称为马尔可夫网络或者马尔可夫随机场(MRF),本篇文章所介绍的CRF就是马尔可夫随机场的一种。

1.马尔可夫随机场

马尔可夫随机场也叫马尔可夫网络,同时也是一种无向图模型。在概率图模型的基础上,针对无向图模型,首先需要对无向图模型的基础概念进行一定程度上的掌握。

1.1. MRF相关概念

无向图模型MRF所特有的一些概念如下:

  • 团:图中的节点子集,并且其中任意两个节点之间都有边连接;
  • 极大团:为一个团,并且加入任何一个其他的节点都不能再形成团,例如下图中,该图中的团一共有{1,2},{1,3},{2,3},{2,4},{3,4},{3,5},{3,6},{1,3},{1,2,3},{2,3,4};其中极大团为{1,2,3},{2,3,4},{3,5},{3,6};

  • 势函数(也称因子Factor):定义在变量子集上的非负实函数,用于定义概率分布函数。在马尔可夫随机场中,多个变量之间的联合概率分布可以基于团分解为多个势函数的乘积,每个势函数仅仅与一个团相关。
  • 特征函数:通常情况下都是一些实数值函数,它是用来刻画数据的一些可能成立的经验特性。例如下式就是一个特征函数:

1.2. Hammersley-Clifford定理

在对于势函数与团相关理论掌握的基础上,由此引申出随机场的基础定理,即Hammersley-Clifford定理。该定理的具体定义为:对于具有N个变量的马尔可夫随机场,已知变量为 ),这些变量中所有团所构成的集合为T,同时与团 对应的变量集合记作 ,则其对应的联合概率为:

上式中, 就是与团S所对应的势函数,其作用为对团 中的变量关系进行建模。 为规范化因子,其难以计算,在普遍情况下,无需计算出 的精确值。在针对于团 不是极大团的情况时,由于非极大团必定属于某个极大团的性质,所以还是可以用极大团进行计算来替代非极大团的联合概率,即:

上式中的 就是所有极大团的集合。Hammersley-Clifford定理是随机场的基础定理,其为马尔可夫随机场被表达为正概率分布的充分必要条件。针对于1.1中的示例图,其联合概率就为:

1.3. 分离集与马尔科夫性

在对各种马尔可夫性进行掌握前,首先需要理解分离集的概念。分离集的定义为:设A、B、C都是马尔可夫随机场中的节点集合,如果从集合A中的节点到集合C中的节点都必须要经过集合B中的节点,那么就可以称集合A和集合C被集合B给分离,其中集合B就为分离集。如下图所示:

有了分离集合的概念,对下面几种马尔可夫性的理解就相对简单了,马尔可夫性的定义为:当一个随机过程在给定当前状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态,即只要给定了当前状态,未来状态是与过去状态无关的,也是条件独立的,该随机过程也就具有了马尔可夫性。同理,在马尔可夫随机场中,马尔可夫性可解释为当前状态看作为无向图中的一个节点,过去状态就是与当前状态节点有边连接的其他节点。针对于马尔可夫性和下图,又有:

  • 全局马尔可夫性:节点集合A,C是无向图中被节点集合B分开的任意结点集合,则在给定随机变量YB的条件下,随机变量YA和YC条件独立。如上图中节点1,2就与节点6,7条件独立。
  • 局部马尔可夫性:设X是无向图中任意一个结点,T是与X有边相连的所有结点,无向图中其他剩余结点为S,则给定随机变量YT的条件下,随机变量YX和YS条件独立。如上图的节点2,与2连接的节点为1和5,即给定节点1和5的情况下,那么节点2就与剩下的节点3,4,6,7条件独立。
  • 成对马尔可夫性:设无向图中V和C是任意两个没有边直接连接的结点,图中其他结点的集合记做S,则给定随机变量YS的条件下,随机变量YV和YC条件独立。如上图中2和6两个节点之间没有边直接连接,那么剩余其他节点为1,3,4,5,7,给定这些节点的情况下,节点2和节点6条件独立。

综上可知,这三种马尔可夫性相互之间是关联等价的,通过全局马尔可夫性可以得到局部马尔可夫性,通过局部马尔可夫性也可得到成对马尔可夫性,通过成对马尔科夫性又可以推出全局马尔可夫性。因此只要满足三种性质的一种的无向图就称为马尔可夫随机场(MRF)。

2.条件随机场——CRF

通过上述阐述,读者们可以对马尔可夫随机场,即马尔可夫无向图有了基本的掌握与理解。在此基础上,本文就引出条件随机场CRF。

2.1.CRF

由上述可知,CRF模型是无向图模型的一种,但是其与马尔可夫随机场(MRF)有所不同,主要区别在于MRF模型是生成模型,而CRF模型是判别式模型,其是对条件分布进行建模。两者之间也存在关联,即CRF是有条件的马尔可夫随机场,也就是在给定随机变量的条件下的马尔可夫随机场。

CRF的基本定义为:设X和Y是随机变量, 是给定X条件下Y的条件概率分布。若随机变量Y构成一个无向图的马尔可夫随机场,则称条件概率分布 为CRF。对应于马尔可夫性可理解为,如果随机变量Y构成一个无向图,且图中每一个变量Y,都满足马尔可夫性(至少满足全局马尔可夫性、局部马尔可夫性、成对马尔可夫性中一种),则称 为CRF。其中X为输入变量,即需要标注的观测序列,Y为输出变量,表示状态或标记序列。在自然语言处理领域中,普遍的输入变量X和输出变量Y具有相同图结构。

2.2.CRF线性链

在实际应用中,对于CRF的使用最多的情况是线性链CRF,线性链的结构如下所示:

一般地,当X和Y具有相同图结构时,线性链结构就变为如下所示:

在上图中,X就为观测序列,Y就为状态序列。同时在给定随机变量序列X的条件下,如果随机变量序列Y相对于序列X的条件概率分布P(YIX)构成条件随机场,那么可得随机变量Y也满足马尔可夫性。公式表达为:

即Y当前状态只与相连接的前后两个状态有关,而与其他状态相互独立,为线性连接的关系。此时称P(YIX)为条件随机场,相应的,X为输入或者观测序列,Y为输出或者状态序列。

2.3. CRF相关计算

当选定好势函数后,这里选取指数函数,通过引入特征函数,可以得到条件概率为:

其中,tk和 sk分别为特征函数,tk定义为边上的特征函数,也叫转移特征,它依赖于当前节点和前一个节点; sk定义为结点上的特征函数,也叫状态特征,只依赖于当前结点。一般情况下,tk和sk的取值为1或者0,即满足特征条件时为1,不满足则为0。λkμk分别为tk和sk所对应的权值。Z(x)为规范化因子,来保证P(YIX)为概率分布。

对于上述公式的理解,通过一个简单例子可以更好地去掌握。例如设输入观测序列X X3X1X2X3对应的状态序列Y为Y1Y2Y3,其中Y1Y2Y3 的取值为1或者2。对于第一条连接边,设特征和权值为:

对应的特征函数为:

根据上式,同时给定相对应的权重 可写出:

由此可计算状态为 的非规范化条件概率为(不需要除以规范化因子Z) 。

3.CRF模型解决的三种问题类型

相较于之前的HMM模型,CRF模型同样需要解决三种问题,分别为概率计算问题、预测问题和学习问题。

  • 概率计算问题:针对于概率计算问题,通常情况给定的已知信息是CRF模型的条件概率分布P(YIX)、观测序列X和状态序列Y,求解目标为某一条件概率以及相对应的数学期望。求解的方法基本就是前向后向计算方法。
  • 预测问题:针对于预测问题,通常情况给定的已知信息是CRF模型的条件概率分布P(YIX)、观测序列X,求解目标为使得条件概率最大的状态序列Y,即求解观测序列所对应的状态。求解方法基本是函数计算。
  • 学习问题:学习问题也叫模型训练求解参数问题,通过给定的数据集(观测序列和状态序列等)来求解CRF模型所需要的参数,通常用到的方法就是模型训练常用的尺度迭代方法(如梯度下降算法等)。

4.总结

相较于HMM模型,CRF模型计算的过程更为复杂,但是对于整体把握CRF模型的影响并不大,只需要在思路上明白CRF模型和HMM模型在实际应用中所需要解决的三种问题即可,针对于特定问题中给定的已知条件来实现求解目标。

在自然语言处理领域,对于概率统计模型的掌握其实也就是对于HMM模型和CRF模型的掌握。虽然,HMM和CRF模型流行于在自然语言处理领域使用深度学习技术之前,但是还是那句话,目前针对于自然语言处理领域深度学习技术的瓶颈问题,不妨换个思维,考虑下概率统计模型来处理,也许能取得不错的效果。

作者介绍

稀饭,51CTO社区编辑,曾任职某电商人工智能研发中心大数据技术部门,做推荐算法。目前攻读智能网络与大数据方向的研究生,主要擅长领域有推荐算法、NLP、CV,使用代码语言有Java、Python、Scala。

责任编辑:华轩 来源: 51CTO
相关推荐

2022-04-11 09:30:00

自然语言HMM深度学习

2017-05-05 15:34:49

自然语言处理

2021-09-03 12:01:07

模型自然语言

2021-05-13 07:17:13

Snownlp自然语言处理库

2018-02-27 09:32:13

神经网络自然语言初探

2020-04-24 10:53:08

自然语言处理NLP是人工智能

2024-02-05 14:18:07

自然语言处理

2021-05-17 09:00:00

自然语言人工智能技术

2017-10-19 17:05:58

深度学习自然语言

2017-03-24 13:40:44

机器学习模型神经

2021-05-18 07:15:37

Python

2024-04-24 11:38:46

语言模型NLP人工智能

2023-08-07 08:41:45

自然语言模型因果推理

2017-04-17 15:03:16

Python自然语言处理

2021-06-28 10:10:42

人工智能AI自然语言

2023-08-04 10:18:15

2023-05-30 14:39:34

ChatGPT-4NLP

2020-02-25 12:00:53

自然语言开源工具

2020-02-25 23:28:50

工具代码开发

2021-11-12 15:43:10

Python自然语言数据
点赞
收藏

51CTO技术栈公众号