CRF原理的理解与举例分析

1.以词性标注为例说明CRF的任务目标

句子BobdrankcoffeeatStarbucks
可能的标注1名词动词名词介词名词
可能的标注2名词动词动词介词名词

一个长度为k的句子,有m种词性,则有 k m k^m km种可能的标注方法。针对上述例子,第一种显然优于第二种,因为动词+动词这种形式一般不符合语法。

CRF做的事情就是给这 k m k^m km种可能的标注方法打分,找出其中评分最好的那个标注序列。打分基于CRF算法定义的特征函数,上述所说的动词+动词或者动词+名词,既可以理解成一种特征函数。

打分的方法就是定义一个特征函数的集合,用这个集合给序列打分,即把集合中所有特征函数对序列的打分加和。

2.CRF的特征函数

特征函数接受4个参数:

  • 句子s
  • i:代表当前观察的是句子的第i个单词
  • l i l_i li:句子中第i个单词的词性
  • l i − 1 l_{i-1} li1句子中第i-1个单词的词性

f ( s , i , l i − 1 , l i ) = { 0 当 前 输 入 不 符 合 该 特 征 1 当 前 输 入 符 合 该 特 征 f(s,i,l_{i-1},l_{i}) = \begin{cases} 0 & 当前输入不符合该特征 \\ 1 & 当前输入符合该特征 \end{cases} f(s,i,li1,li)={01

如当前特征函数为动词+名词,如果当前第i-1和第i个单词分别为动词和名称则函数值为1,否则为0

3. 从特征函数到概率

针对每个特征函数 f j f_j fj都有对应的权重 λ j \lambda_j λj(这个权重是trainable的)。则用定义的特征函数集合,对一个标注序列的打分如下:
s c o r e ( l ∣ s ) = ∑ j = 1 m ∑ i = 1 n λ j f j ( s , i , l i − 1 , l i ) score(l|s) = \sum_{j=1}^{m}\sum_{i=1}^{n}\lambda_jf_j(s,i,l_{i-1},l_i) score(ls)=j=1mi=1nλjfj(s,i,li1,li)
外层求和每一个特征函数和权重乘积的和,内层求句子中每个位置特征函数和权重乘积的和

序列标注的概率可以认为是该序列的分数所有可能序列分数的比值。

进行指数化和标准化后: e x p ( s c o r e ( l ∣ s ) ) ∑ l ′ ∈ l a l l e x p ( s c o r e ( l ′ ∣ s ) ) \frac{exp(score(l|s))}{\sum_{l'\in l_{all}}exp(score(l'|s))} llallexp(score(ls))exp(score(ls))

4. VS逻辑回归

CRF是逻辑回归的序列化版本

5. VS HMM

HMM: p ( l ∣ s ) = ∏ i p ( l i ∣ l i − 1 ) p ( w i ∣ l i ) p(l|s) = \prod_i p(l_i|l_{i-1}) p(w_i|l_i) p(ls)=ip(lili1)p(wili)
取log化以后: l o g p ( l ∣ s ) = ∑ i l o g p ( l i ∣ l i − 1 ) + l o g p ( w i ∣ l i ) logp(l|s) = \sum_ilogp(l_i|l_{i-1}) + logp(w_i|l_i) logp(ls)=ilogp(lili1)+logp(wili)

如果把HMM中的log部分看成是CRF中的权重 λ \lambda λ,则HMM是由发射概率和转移概率两种特征的CRF。

因此可以认为HMM等价于CRF的一种特例。

显然CRF比HMM强大:

  1. CRF可以定义数量更多,种类更丰富的特征函数。
  2. 权重不需要像HMM那样是log形式的,可以是任意值。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值