全连接条件随机场_一文理解条件随机场CRF

写在前面:

本文先写的渣英文再渣翻译,请见谅。

Intro2 Conditional Random Field(CRF)

1.1 CRF能用来做什么?

CRF 是一个序列化标注算法(sequence labeling algorithm),接收一个输入序列如

并且输出目标序列
,也能被看作是一种seq2seq模型。这里使用大写 X,Y 表示序列。例如,在词性标注任务中,输入序列为一串单词,输出序列就是相应的词性。

0437dce21d9e38de51c881c1291511cd.png

除了词性标注之外,CRF还可以用来做chunking,命名实体识别等任务。一般地,输入序列

被称为
observations,
叫作
states。于是我们可以将简单版linear CRF的图模型表达出来。(后文会解释为什么是简化)

4088eff58d310bb06b2ddde2419289d3.png

1.2 What is conditional random field?

Random 指的是随机变量

and
.
Conditional 指的是条件概率 Conditional probability. 这就意味着CRF是一个判别式模型。通常,判别式模型 discriminative model 计算条件概率,而生成式模型 generative model 计算联合概率分布。我们先从隐马尔科夫模型(HMM)入手理解这两种模型的区别,然后从HMM推广出CRF。

1.3 HMM, a Generative model

给定一个观测序列observations, HMM models joint probability

. 还是以词性标注任务举例。

and
指输入单词序列,和输出词性序列。 公式首先应用了贝叶斯公式展开,随后 HMM 做了3个假设进行公式化简:由词之间 conditionally independent 得到
, 由probability of a word is only dependent on its own tag 得到发射概率 emission probability
, and Markov assumption: 使用bi-gram近似得到转移概率 Transition probability

这些假设使得HMM能够计算出给定一个词和它可能的词性的联合概率分布。换句话说,HMM假设了两类特征,一是当前词词性与上一个词词性的关系,以及当前词语和当前词性的关系,分别对应着转移概率和发射概率。HMM的学习过程就是在训练集中学习这两个概率矩阵(大小为

)。

稍不同于linear CRF,HMM可以用有向图模型来表示,因为states与observations之间存在着明显的依赖关系。

c37ecfb9d699dff66fe898014147c750.png

Conditional Random Field

2.1 From HMM to CRF

和HMM不同的是,CRF并没有做出上述的假设,CRF使用feature function来更抽象地表达特征,使得他不再局限于HMM的两类特征。一个特征函数可以表示为

其中
表示 input sequence,
为当前的位置,
是当前state,
表示前一个state。但是只有在linear CRF中
表示前一个state,事实上它可以有更丰富的表达。例如特征函数可以表示当前的state与任意一个observation或者 state甚至future state的关系。也就是说,特征方程的存在允许CRF有十分自由的特征表达,
可以是
。这也就是条件随机场中场所代表的意义/为了简化,我们使用
来表示CRF的概率分布函数,

where

是normalization term, and
表示feature function的个数,
为输入序列的长度,
为特征函数的权重。
The primary advantage of CRFs over HMMs is their conditional nature, resulting in the relaxation of the independence assumptions that required by HMMs. Additionally, CRFs can have arbitrary weights.

得到分布函数之后,我们只需要用最大似然估计估计参数

。假设 Training samples:
为训练集的序列数量,如m个句子。

Negative Conditional Log-Likelihood:

求偏导后,就可以应用优化方法如 Stochastic Gradient Descent 迭代优化
是学习率 :

第一项是与当前observation和真实state相关,第二项是对于所有可能状态输出,当前模型输出值。

为所有可能的state。训练过程的细节会在最后一节写。

为了更好理解CRF, 我们从CRF出发得到HMM模型,For each HMM transition probability

, 定义形如
相应的 transition features,令
and
. 令权重

相似地, for each HMM emission probability

, 定义形如
相应的emission features,令
and
。令权重为
.
A CRF can be considered as a generalization of HMM or we can say that a HMM is a particular case of CRF where constant probabilities are used to model state transitions(e.g., we learn transition matrix in HMM which is constant).

Logistic Regression vs CRF

除了与HMM相似,CRF还可以看成序列化的logistic regression。他们都是判别式模型。Given input

with
dimensions
and two classes
。若
and
之间是线性相关. The log-odds can be written in mathematical form where we denote
,
s are weights.

我们再来看一下standard logistic function,这是一个sigmoid function, mapping

:

可以看到他们是几乎一样的,如果令

。LR根据参数
进行分类。
if satisfying
.

24d574f78ed6baca0af94da7977e1db7.png

要理解CRF和LR的关系和CRF为什么是判别式模型,就要先理解LR。

对于一个二分类任务, 用bayes rule计算

将式子展开后,能用standard LR 表示。生成式模型估计 class conditionals

,从而决定
的值来分类,但是LR 没有对class conditionals进行估计,转而通过
近似估计
。若将二分类推广到
的多分类问题, multinominal LR could be written as:

上式也被叫做normalized exponential 或 softmax,显然

。和二分类问题相似,在LR中,仍有
。但若将
替换成特征函数,这就和CRF的分布函数形式相符了。

In practice

3.1 Feature template

crf++ 和 sklearn crfsuite 都是现成的CRF工具包。这里用crf++举例说明。

实际使用中,我们需要先定义自己的特征模板Feature template,然后特征模板会生成特征函数。训练集通常用是CoNLL格式,如下图,表格内容是对特征模板的解析。

cf097ec8ffba4049d436cfad2da95c28.png

这样的输入序列能被写作

。对于第一个一个模板U01, "%x[0,1]", CRF++ automatically generates a set of feature functions (func1 ... funcN)如:
func1 = if (output = B-NP and feature="U01:DT") return 1 else return 0
func2 = if (output = I-NP and feature="U01:DT") return 1 else return 0
func3 = if (output = O and feature="U01:DT") return 1  else return 0
...
funcXX = if (output = B-NP and feature="U01:NN") return 1  else return 0
funcXY = if (output = O and feature="U01:NN") return 1  else return 0

一个模板会生成

个特征函数, 其中
输出类别的情况数目 and
是expanded feature的所有可能的情况数目。

举个栗子, 一个用于NP chunking的训练集有两个句子"The cat is lovely. Montreal is a city." 对应的词性标注是 DT NN VBZ RB . NNP VBZ DT NN . 。chunking labels 应为 B-NP I-NP O O O B-NP O O O O 其中 B-NP, I-NP,O叫做"BIO" annotation,分别表示 begin,inside,outside of a noun phrase。假设有两个 unigram feature templates 为"U01%:x[0,1]" and "U02%:x[0,0]", we will go through the training samples token by token. 值得注意的是,在这个训练集中我们只有3种labels,5种词性标注, 和7个token types。

For the first token The, 3*5 and 3*7 feature functions will be generated for "U01" and "U02".

3.2 Weight Learning

训练的目的是为每个特征函数赋上权重

。我们知道,一个uni-gram特征模板会为整个训练集生成
个特征函数。但是这些特征函数在一个训练样本
中只有其中
个会起作用,
恰好为特征模板的数量,虽然它们一共有
个。他们的关系可以表示为:

根据2.1中求得对一个

的偏导数,若训练集与前一节相同,对于一个训练样本
能得到:

where

and
are abbreviations since they share the same structure as
. Then
will be updated with
.

References

Lafferty, John, Andrew McCallum, and Fernando CN Pereira. "Conditional random fields: Probabilistic models for segmenting and labeling sequence data." (2001).

Another crf tutorial for NLP

Why Do We Need Conditional Random Fields?

what are conditional random fields

CRF与LR,生成式模型与判别式模型

CMU:从Bayes到LR到CRF

理解公式推导

从LR到CRF

MIT:从HMM到CRF的理解以及训练过程

buffalo:关于LR到CRF的推演

关于目标分布函数的优化

原始论文的解释

CRF与其他相关模型的比较

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值