一、条件随机场是什么?
什么是条件随机场?我们先从它的命名开始说起,为什么是条件随机场这么奇怪的名字,为什么不叫飞机场、火葬场?通常数学上的命名是简单而直白的,大家听我一一解释。
条件
“条件”指的是:输出的结果是依照条件概率分布 P(Y|X)
来计算的 ,其中,
X = (X1, X2, ..., Xn)
是输入的观测序列,也就是词序列Y = (Y1, Y2, ..., Yn)
是输出的标注序列,也就是标注结果
随机场
给若干位置按照某种分布赋予一个值,其全体就叫随机场。
又出现新的问题了,若干位置、某种分布是什么?请看下面的例子。
举个例子
假设我们已经通过 CRF 标注好了这样一句话。
词序列 | 我 | 爱 | 北 | 京 | 天 | 安 | 门 |
---|---|---|---|---|---|---|---|
标注结果 | O | O | B-LOC | I-LOC | B-LOC | I-LOC | I-LOC |
那么
-
输入词序列就是:(我, 爱, 北, 京, 天, 安, 门)
-
输出标注结果为:(O, O, B-LOC, I-LOC, B-LOC, I-LOC, I-LOC)
-
输入输出经过某个分布
P(Y|X)
,线性链条件随机场(Linear-CRF)公式如下
二、条件随机场作用
从上面那个例子,我们可以了解到,条件随机场的在 NLP 领域的作用就是:标注(或者,命名实体识别)
从公式中我们可以看到,当前的标注结果 y
,还会参考上一个标注的结果 y_i-1
。也就是说,CRF 在标记数据的时候,会考虑前一个数据的标记信息,这对于解析句子语法结构来说是得天独厚的优势(例如:动词后面不能跟动词)。而这一点,是普通的分类器难以做到的。
三、线性链条件随机场的“进化”过程
前面突然出现一个线性链条件随机场
,前人是怎么一步步改进得到的呢?
3.1 随机场->马尔可夫随机场
首先,我们来看看什么是随机场。“随机场”的名字取的很玄乎,其实理解起来不难。随机场是由若干个位置组成的整体,当给每一个位置中按照某种分布随机赋予一个值之后,其全体就叫做随机场。还是举词性标注的例子:假如有一个十个词形成的句子需要做词性标注。这十个词每个词的词性可以在已知的词性集合(名词,动词…)中去选择。当我们为每个词选择完词性后,这就形成了一个随机场。
了解了随机场,我们再来看看马尔科夫随机场。马尔科夫随机场是随机场的特例,它假设随机场中某一个位置的赋值仅仅与和它相邻的位置的赋值有关,和与其不相邻的位置的赋值无关。继续举十个词的句子词性标注的例子: 如果我们假设所有词的词性只和它相邻的词的词性有关时,这个随机场就特化成一个马尔科夫随机场。比如第三个词的词性除了与自己本身的位置有关外,只与第二个词和第四个词的词性有关。通常一个概率无向图模型,又称为马尔可夫随机场。
3.2 马尔可夫随机场->条件随机场
CRF 是马尔可夫随机场的特例,它假设马尔科夫随机场中只有 X
和 Y
两种变量, X
一般是给定的,而Y 一般是在给定 X 的条件下的输出。这样马尔科夫随机场就特化成了条件随机场。在我们十个词的句子词性标注的例子中,X
是词,Y
是词性。因此,如果我们假设它是一个马尔科夫随机场,那么它也就是一个 CRF。
对于 CRF,给出准确的数学语言描述:设 X 与 Y 是随机变量,P(Y|X) 是给定 X 时 Y 的条件概率分布,若随机变量 Y 构成的是一个马尔科夫随机场,则称条件概率分布 P(Y|X) 是条件随机场。
3.3 条件随机场->线性链条件随机场
注意在 CRF 的定义中,我们并没有要求 X 和 Y 有相同的结构。
而实现中,我们一般都假设X和Y有相同的结构,即:
X和Y有相同的结构的CRF就构成了线性链条件随机场(Linear chain Conditional Random Fields,简称 Linear-CRF)
3.4 对比
描述 | |
---|---|
随机场 | 随机场是由若干个位置组成的整体,当给每一个位置中按照某种分布随机赋予一个值之后,其全体就叫做随机场 |
马尔科夫随机场 | 马尔科夫随机场是随机场的特例,它假设随机场中某一个位置的赋值仅仅与和它之前的位置的值有关,和与其不相邻的位置的赋值无关 |
条件随机场 | CRF 是马尔科夫随机场的特例,它假设马尔科夫随机场中只有 X 和 Y 两种变量,X 一般是给定的,而 Y 一般是在给定X的条件下的输出 |
线性链条件随机场 | X 和 Y 有相同的结构的 CRF 就构成了线性链条件随机场 |
学有余力的同学,想要挑战自己,可以看看下面链接1里的公式哈。
参考链接1:条件随机场CRF(一)从随机场到线性链条件随机场-博客园-刘建平Pinard
参考链接2:CRF条件随机场的原理、例子、公式推导和应用-知乎刘启林