条件随机场(Conditional Random Fields, 以下简称CRF)是给定一组输入序列条件下另一组输出序列的条件概率分布模型,在自然语言处理中得到了广泛应用。
HMM最大的缺点1》由于其输入独立性假设,导致不能考虑上下文特征,限制了特征的选择;2》在每一个节点都要进行归一化,所以只能找到局部最优解,同时也带来了标记偏见的问题(label bias)
条件随机场选择上下文相关特性;不在每一个节点进行归一化,而是所有特征进行全局归一化,可以求得全局的最优值
幼儿园级理解版本:简单易懂CRF
随机场:随机变量的集合,这些随机变量可能有依赖关系,给每一个位置中随机变量按照某种分布随机赋予一个值后,其全体就叫做随机场。
马尔科夫性质:一个随机变量序列按时间先后关系依次排开,第N个时刻的特征与第n-1个时刻的随机变量相关。
马尔科夫随机场MRF:具有马尔科夫性质随机场
条件随机场:给定MRF中每个随机变量下面还有观察值,要确定给定观察集合下,这个MRF的条件分布,也就是条件分布。它的条件分布形式完全类似于MRF的分布形式,只不过多了观察集合X.
通用角度看,CRF本质上是给定观察值集条件下的MRF。
HMM引入了马尔科夫假设,即当前时刻的状态只与其前一时刻的状态有关,HMM是一种生成式概率图模型,条件随机场(CRF)与HMM不同,是一种判别式的概率图模型。CRF是在给定一组变量的情况下,求解另一组变量的条件概率的模型。
设X与Y是一组随机变量,P(Y,X)是给定随机变量X情况下,随机变量Y的条件概率。若随机变量Y构成一个无向图G(V,E),当X与Y两个随机变量的概率分布满足如下的条件:
则称在给定随机变量序列X的情况下,随机变量序列Y的条件概率P(Y,X)构成条件随机场。
注意在CRF的定义中,我们并没有要求XX和YY有相同的结构。而实现中,我们一般都假设XX和YY有相同的结构,XX和YY有相同的结构的CRF就构成了线性链条件随机场(Linear chain Conditional Random Fields,以下简称 linear-CRF)。
在我们的十个词的句子的词性标记中,词有十个,词性也是十个,因此,如果我们假设它是一个马尔科夫随机场,那么它也就是一个linear-CRF。
生成式模型与判别式模型
生成式是从无穷样本中找到样本联合分布,产生模型进行预测,需要全局信息;利用先验知识,全面性,学习复杂
判别式是从有限样本中找到样本条件分布,通过样本判别进行预测;灵活,不能反映数据本身的特性
概率图模型:用图的形式表示随机变量之间依赖关系的概率模型。
有向图:贝叶斯网络 p(当前节点 | 父节点),先验概率下分布
无向图:马尔科夫随机场,团表示的联合概率分布
最大熵模型 (maximun entropy model MEM)
已知限定条件下估计未知的概率分布的最大值
有向图模型与无向图模型的对比
共同点:将复杂的联合分布分解为多个因子的乘积;
不同点:无向图因子是势函数,需要全局归一;有向图因子是概率分布、无需全局归一
无向图中势函数设计不受概率分布约束,设计灵活,但全局归一代价高;有向图模型无需全局归一,训练高效。
实战参考
NLP-入门实体命名识别(NER)+Bilstm-CRF模型原理Pytorch代码详解——最全攻略
实战理论指南:bilstm-CRF,CRF和bilstm的作用
假设,有两个实体类型 person和organization,数据集中有5个实体标签:
- B-Person
- I- Person
- B-Organization
- I-Organization
- O
此外,x是包含5个单词的句子,w0,w1,w2,w3,w4。更重要的是,在句子x中,[w0,w1]是一个Person实体,[w3]是一个Organization实体,其他都是“O”。
BIlstm层
从上图可以看出,bilstm输出的是每个实体标签的分数,这些分数作为CRF层的输入。CRF层中选择预测得分高的标签序列作为答案。
CRF层的作用是从训练数据中学到约束。CRF层可以向最终的预测标签添加一些约束,以确保它们是有效的。这些约束可以由CRF层在训练过程中从训练数据集自动学习。有了这些有用的约束,无效预测标签序列的数量将显著减少。
约束条件可以是:
- 句子中第一个单词的标签应该以“B-”或“O”开头,而不是“I-”
- “B-label1 I-label2 I-label3 I-…”,在这个模式中,label1、label2、label3…应该是相同的命名实体标签。例如,“B-Person I-Person”是有效的,但是“B-Person I-Organization”是无效的。
- “O I-label”无效。一个命名实体的第一个标签应该以“B-”而不是“I-”开头,换句话说,有效的模式应该是“O B-label
CRF层