1 条件随机场概述;
条件随机场CRF是自然语言处理的基础模型,广泛应用于中文分词、命名实体识别、词性标注等标注场景。
1.1 条件随机场场景
假设有一系列照片,我们要去给打标签,在吃饭或是在跑步等等,一张照片上只有张着的嘴巴,他可能是在吃饭也可能是在唱歌,这时候单单依靠照片本身的信息,不足以准确的判断照片中的人的行为。但是如果把这些照片按照时间的顺序来排列起来,它的前一张照片是在吃饭,那有极大的可能这张嘴也是在吃饭。将每一个行为都看成一个随机场,如果找到当前行为前后的行为,有助于当前时刻行为分类,这就是条件随机场的思想。
1.2 自然语言处理中的条件随机场
随机场是由若干个位置组成的整体,当给每一个位置中按照某种分布随机赋予一个值之后,其全体就叫做随机场。假如我们有一个十个词形成的句子需要做词性标注。这十个词每个词的词性可以在我们已知的词性集合(名词,动词…)中去选择。当我们为每个词选择完词性后,这就形成了一个随机场。
自然语言处理中的词性标注(POS Tagging)就是适合CRF使用的场景。词性标注的目标是给出一个句子中每个词的词性(名词,动词,形容词等)。而这些词的词性往往和上下文的词的词性有关,因此,可以使用CRF来处理。
2 CRF的形式化表示;
CRF中包含大量的数学推导运算,理解非常复杂,所以先理清CRF的核心要点:
- CRF是判别模型,是黑箱模型,不关心概率分布情况,只关心输出结果。
- CRF使用特征函数给不同的标注网络打分,根据分数选出可能性最高的标注网络。
- CRF模型的计算过程,使用的是以e为底的指数。这个建模思路和深度学习输出层的softmax是一致的。先计算各个可能情况的分数,再进行softmax归一化操作。
3 CRF的公式化表示;
以上图“You are a lovely girl”为例:
-
在这段语句序列中,每个单词的转移特征为:
状态特征为:
两个相同词性相连记为负分:转移特征函数
把 a 标注成其他词性记为正分:状态特征函数 -
条件随机场的参数化定义为:
-
给每个特征函数不同的权重w,把转移特征
和状态特征
统一写表示为
- 则CRF公式可以简化为:
- 根据公式,可以计算出条件随机场模型在统计语料库中相邻词是否满足特征函数的频数,并依此给出
在给定的
,满足的特征函数越多,模型认为
越大。
4 深度理解条件随机场;
条件随机场可结合马尔科夫、隐马尔可夫模型理解,他们三者的区别如下:
- HMM -> MEMM: HMM模型中存在两个假设:一是输出观察值之间严格独立,二是状态的转移过程中当前状态只与前一状态有关。但实际上序列标注问题不仅和单个词相关,而且和观察序列的长度,单词的上下文,等等相关。MEMM解决了HMM输出独立性假设的问题。因为HMM只限定在了观测与状态之间的依赖,而MEMM引入自定义特征函数,不仅可以表达观测之间的依赖,还可表示当前观测与前后多个状态之间的复杂依赖。
- MEMM -> CRF:CRF不仅解决了HMM输出独立性假设的问题,还解决了MEMM的标注偏置问题,MEMM容易陷入局部最优是因为只在局部做归一化,而CRF统计了全局概率,在做归一化时考虑了数据在全局的分布,而不是仅仅在局部归一化,这样就解决了MEMM中的标记偏置的问题。使得序列标注的解码变得最优解。
- HMM、MEMM属于有向图,所以考虑了x与y的影响,但没将x当做整体考虑进去。CRF属于无向图,没有这种依赖性,克服此问题。