机器学习基础之无痛理解CRF条件随机场

词性标注问题

就是给一个句子中的每个单词注明词性。比如这句话:“Jackson sang at stage”,注明每个单词的词性后是这样的:“Jackson(名词)sang(动词)at(介词)stage(名词).”

(名、动、介、名)就是一个标注序列,还有许多其他的标注序列,例如(名、动、动、名),只不过对于上面的句子,前一个标注更靠谱,后一个不怎么好,这个好与不好的评价如何衡量呢?答:就是用一系列特征函数对这些标注序列进行评分。

比如,第二个序列中,两个动词相邻在大多数句子中都是不常出现的,所以可以定义一个特征函数:当相邻单词均为动词时就输出负值,这个负值最终会算入某标注序列的最终评分中。

特征函数的定义

对于某个特征函数 f j ( s , i , l i , l i − 1 ) f_j(s,i,l_i,l_{i-1}) fj(s,i,li,li1)

输入:

  • s s s:被标注的句子
  • i i i:被标注句子的第 i i i个单词
  • l i l_i li:标注序列的第 i i i个标注
  • l i − 1 l_{i-1} li1:第 i − 1 i-1 i1个标注

输出:0或1,0表示标注序列不符合这个特征,1表示符合

这里的特征函数只考虑当前词语和前一个词语的标注,进行评判,这样建立的CRF也称线性链CRF,是最简单的一种CRF

分数与概率

对于某个句子 s s s,存在很多可能的标注序列 l l l,要形成一个条件随机场,就定义一组特征函数 f j f_j fj,对每个标注序列进行评分,得分最高的就是句子 s s s的最终标注结果。

对于句子 s s s,标注序列 l l l的分数为 s c o r e ( l ∣ s ) = ∑ j = 1 m ∑ i = 1 n λ j f j ( s , i , l i , l i − 1 ) score(l|s)=\sum_{j=1}^m\sum_{i=1}^n\lambda_jf_j(s,i,l_i,l_{i-1}) score(ls)=j=1mi=1nλjfj(s,i,li,li1)

其中 λ j \lambda_j λj为相应特征函数 f j f_j fj的权重,对这个分数进行指数化和标准化:
p ( l ∣ s ) = e x p [ s c o r e ( l ∣ s ) ] ∑ l ′ e x p [ s c o r e ( l ′ ∣ s ) ] p(l|s)=\frac{exp[score(l|s)]}{\sum_{l'}exp[score(l'|s)]} p(ls)=lexp[score(ls)]exp[score(ls)]

特征函数定义的几个例子

f 1 ( s , i , l i , l i − 1 ) f_1(s,i,l_i,l_{i-1}) f1(s,i,li,li1):当 l i l_i li是副词且第 i i i个单词以 l y ly ly结尾时,输出1,否则输出0,其权重应当为正,且权重越大,越倾向于采用那些将以 l y ly ly结尾的单词标注为副词的标注序列

f 2 ( s , i , l i , l i − 1 ) f_2(s,i,l_i,l_{i-1}) f2(s,i,li,li1):当 i = 1 i=1 i=1 l i l_i li为动词且 s s s ? ? 结尾时,输出1,否则0,权重应为正数,且越大越倾向于采用将问句的首次标为动词的序列

f 3 ( s , i , l i , l i − 1 ) f_3(s,i,l_i,l_{i-1}) f3(s,i,li,li1):当 l i − 1 l_{i-1} li1为介词, l i l_i li为名词时,输出1,否则0,权重应为正数,且越大越说明我们认为介词后应当为名词

f 4 ( s , i , l i , l i − 1 ) f_4(s,i,l_i,l_{i-1}) f4(s,i,li,li1):当 l i − 1 , l i l_{i-1},l_i li1,li均为介词时,输出1,否则0,权重应为负数,且绝对值越大越倾向于不认可介词后仍为介词的标注序列

与其他几种模型的比较

1、与逻辑回归

实际上,CRF是逻辑回归的序列化版本,逻辑回归是用于分类的对数线性模型,条件随机场是用于序列化标注的对数线性模型。

2、与HMM

HMM也可解决词性标注问题,它是一种生成模型,已知句子 s s s,生成对其词性的标注 l l l,计算生成此标注的概率:
p ( l , s ) = p ( l 1 ) ∏ i p ( l i ∣ l i − 1 ) p ( w i ∣ l i ) p(l,s)=p(l_1)\prod_ip(l_i|l_{i-1})p(w_i|l_i) p(l,s)=p(l1)ip(lili1)p(wili)
其中 p ( l i ∣ l i − 1 ) p(l_i|l_{i-1}) p(lili1)是转移概率,例如 l i − 1 l_{i-1} li1为形容词, l i l_i li为名词,此时的 p p p表示形容词后是名词的概率; p ( w i ∣ l i ) p(w_i|l_i) p(wili)是发射概率,例如 l i l_i li是动词, w i w_i wi是单词"run",此时的 p p p表示在是动词的状态下,是单词"run"的概率

CRF比HMM强大,可解决更多问题。实际上,对上面HMM模型取对数,可得:
l o g   p ( l , s ) = l o g   p ( l 1 ) + ∑ i l o g   p ( l i ∣ l i − 1 ) + ∑ i l o g   p ( w i ∣ l i ) log\ p(l,s)=log\ p(l_1)+\sum_ilog\ p(l_i|l_{i-1})+\sum_ilog\ p(w_i|l_i) log p(l,s)=log p(l1)+ilog p(lili1)+ilog p(wili)
可见它是CRF的一种特殊形式,对于每一个转移概率,可以定义特征函数 f x , y ( s , i , l i , l i − 1 ) f_{x,y}(s,i,l_i,l_{i-1}) fx,y(s,i,li,li1),当 l i = y , l i − 1 = x l_i=y,l_{i-1}=x li=y,li1=x时为1,其权重为 w x , y = l o g   p ( l i = y ∣ l i − 1 = x ) w_{x,y}=log\ p(l_i=y|l_{i-1}=x) wx,y=log p(li=yli1=x),对于发射概率也可类似定义

所以可以说每一个HMM模型都等价于某个CRF,CRF可定义的特征函数类型更多,能表达的模型也就更丰富。HMM模型的局部性在于:当前的单词只依赖于当前的标签,当前的标签只依赖于前一个标签。而CRF却可以着眼于整个句子 s s s定义具有全局性的特征函数,如特征函数 f 2 f_2 f2

将对数HMM模型看做CRF时,特征函数的权重由于是log函数形式的概率,所以都是小于等于0的,而且概率还要满足相应的限制,但CRF可以使用任意的权重,无限制

参考博文:https://zhuanlan.zhihu.com/p/104562658

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值