CRF实现中文词性标注(1)——原理说明

写在前边

po上看到的一个大佬的博文,这篇博客也是学习大佬的文章。
文中图片也来自于参考博文。
参考链接:
CRF、有向图、无向图
大佬的图模型
大佬的CRF讲解
我的知乎专栏,小白要努力了哦
python 实现CRF,并用于序列标注参考代码
python-crf
simple_crf
在这里插入图片描述

图模型

在这里插入图片描述

背景

Naive Bayes
P ( X ∣ y ) = p ( x 1 ∣ y ) p ( x 2 ∣ y ) . . . . p ( x 3 ∣ y ) P(X|y) = p(x1|y)p(x2|y)....p(x3|y) P(Xy)=p(x1y)p(x2y)....p(x3y)
如果用图中的结点表示变量,边表示变量之间的关系,那么朴素贝叶斯就可以用下边的图表示。
在这里插入图片描述
最大熵模型
P ( y ∣ x ) = e x p ( ∑ i = 1 n w i f i ( x , y ) ) Z w ( x ) P(y|x) = \frac{exp(\sum_{i=1}^{n} w_{i} f_{i}(x,y ))}{Z_{w}(x)} P(yx)=Zw(x)exp(i=1nwifi(x,y))

Naive Bayes中使用的是条件概率,而最大熵中使用的是特征函数,二者的区别在于条件概率是有向的,而特征函数是无向的,所以有了将图模型分为有向图和无向图。

无向图

《统计学习方法》中定义
在这里插入图片描述
概率无向图中的联合概率分布P(Y)可以写作是图中所有最大团C上的函数
ψ c ( Y c ) \psi_{c}(Y_{c}) ψc(Yc)的乘积形式

P ( Y ) = 1 Z ∏ c ( ψ c ( y c ) ) Z = ∑ ∏ c ( ψ c ( y c ) \begin{aligned} P(Y) &= \frac{1}{Z} \prod_{c} (\psi_{c} (y_{c})) \\ Z &= \sum \prod_{c} (\psi_{c} (y_{c}) \end{aligned} P(Y)Z=Z1c(ψc(yc))=c(ψc(yc)
比如:
在这里插入图片描述

有向图

DAG(Directed acyclic graph),有向无环图。
DAG模型可以理解为联合概率等于每个节点在其父节点下的条件概率的累乘。
P ( Y ) = ∏ s = 1 S p ( y s ∣ Y π s ) P(Y) = \prod_{s = 1}^{S} p(y_{s} \mid Y_{\pi_{s}}) P(Y)=s=1Sp(ysYπs)
在这里插入图片描述

CRF

在这里插入图片描述
CRF(conditional Random Fields),条件随机场是一种无向图,是在给定随机变量X下,随机变量Y的马尔科夫随机场。
主要讨论用在序列标注中的线性链CRF。条件概率模型P(Y | X)中Y是输出变量,也称为状态序列或者标记序列或者隐序列,也就是未知的;X是观测序列,POS中的单词就是观测序列,词性就是状态序列。

  1. CRF的学习问题:
    用极大似然或者正则化的极大似然求得条件概率模型P(Y|X)
  2. 预测问题:
    输入序列x, 求解概率P(y|x) 最大的y序列

线性链CRF

在这里插入图片描述
x = (X1,X2,…Xn), Y = (Y1,Y2,…Yn)均为线性链表示的随机序列,在给定X的情况下,P(Y|X) 构成CRF,也就是满足马尔科夫性:
P ( Y i ∣ X , Y 1 , . . Y i − 1 , Y i + 1 , . . Y n ) = P ( Y i ∣ X , Y i − 1 , Y i + 1 ) P(Y_{i} \mid X,Y_{1}, ..Y_{i-1},Y_{i+1},..Y_{n}) = P(Y_{i} \mid X, Y_{i-1},Y_{i+1}) P(YiX,Y1,..Yi1,Yi+1,..Yn)=P(YiX,Yi1,Yi+1)

称P(Y|X)构成线性链条件随机场。

参数化形式

P ( y ∣ x ) = 1 Z ( x ) e x p ( ∑ i , k λ k t k ( y i , y i − 1 , x , i ) + ∑ i , l μ l s l ( y i , x , i ) ) Z ( x ) = ∑ y e x p ( ∑ i , k λ k t k ( y i , y i − 1 , x , i ) + ∑ i , l μ l s l ( y i , x , i ) ) \begin{aligned} P(y \mid x) &= \frac{1}{Z(x)} exp(\sum_{i,k} \lambda_{k} t_{k}(y_{i}, y_{i-1}, x,i) + \sum_{i,l} \mu_{l} s_{l}(y_{i}, x, i)) \\ Z(x) &= \sum_{y} exp(\sum_{i,k} \lambda_{k} t_{k}(y_{i}, y_{i-1}, x,i) + \sum_{i,l} \mu_{l} s_{l}(y_{i}, x, i)) \end{aligned} P(yx)Z(x)=Z(x)1exp(i,kλktk(yi,yi1,x,i)+i,lμlsl(yi,x,i))=yexp(i,kλktk(yi,yi1,x,i)+i,lμlsl(yi,x,i))

其中t是定义在边上的特征函数,称为转移特征,依赖于前一个和当前位置;s是定义在节点上的特征函数,称为状态特征,只依赖于当前位置; λ , μ \lambda,\mu λ,μ是对应的权重。t和s都依赖于位置,所以都是局部特征,通常取值为0或者1,满足特征函数取值1,不满足取值0。
CRF完全由特征函数和权值决定。

简化形式

参数化形式中的CRF的特征函数与位置有关,也就是局部特征。CRF的简化形式是对同一个特征,将其在各个位置求和,这样就把局部特征转化为了全局特征。
首先定义K1个转移特征和K2个状态特征。

  • 特征函数f定义为:
    f k ( y i − 1 , y i , x , i ) = { t k ( y i − 1 , y i , x , i ) k = 1 , 2 , 3.. K 1 s l ( y i , x , i ) k = k 1 + l , l = 1 , 2 , . . K 2 } f_{k}(y_{i-1},y_{i}, x, i ) = \begin{Bmatrix} t_{k}(y_{i-1},y_{i}, x, i ) \quad & k = 1,2,3..K1\\ s_{l}(y_{i}, x, i ) \quad &k = k1 + l, l = 1,2,..K2 \end{Bmatrix} fk(yi1,yi,x,i)={ tk(yi1,yi,x,i)sl(yi,x,i)k=1,2,3..K1k=k1+l,l=1,2,..K2}
  • 在各个位置求和:
    f k ( x , y ) = ∑ i = 1
  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值