【Learning Notes】线性链条件随机场(CRF)原理及实现

1. 概述

条件随机场(Conditional Random Field, CRF)是概率图模型(Probabilistic Graphical Model)与区分性分类( Discriminative Classification)的一种接合,能够用来对“结构预测”(structured prediction,e.g. 序列标注)问题进行建模。

如图1,论文 [1] 阐释了 CRF 与其他模型之间的关系。


图1. CRF 与 其他机器学习模型对比【src

本文我们重点关注输入结点独立的“线性链条件随机场”(Linear-Chain CRF)(如图2)的原理与实现。线性链 CRF 通过与双向 LSTM(Bi-LSTM)的接合,可以用来建模更一般的线性链 CRF(图3),提高模型的建模能力。


图2. 简单的线性链 CRF【src


图3. 一般性线性链 CRF【src

2. CRF 算法

2.1 模型形式化

给定长度为 m m 的序列, 以及状态集 S 。 对于任意状态序列 (s1,,sm),siS ( s 1 , ⋯ , s m ) , s i ∈ S , 定义其“势”(potential)如下:

ψ(s1,,sm)=i=1mψ(si1,si,i) ψ ( s 1 , … , s m ) = ∏ i = 1 m ψ ( s i − 1 , s i , i )

我们定义 s0 s 0 为特殊的开始符号 。这里对 s , s S , i 1 , , m ,势函数 ψ(s,s,i)0 ψ ( s , s ′ , i ) ≥ 0 。也即,势函数是非负的,它对序列第 i i 位置发生的 s s s ′ 的状态转移都给出一个非负值。

根据概率图模型的因子分解理论[1],我们有:

p(s1,,sm|x1,,xm)=ψ(s1,,sm)s1,,smψ(s1,,sm) p ( s 1 , … , s m | x 1 , … , x m ) = ψ ( s 1 , … , s m ) ∑ s 1 ′ , … , s m ′ ψ ( s 1 ′ , … , s m ′ )

Z=s1,,smψ(s1,,sm) Z = ∑ s 1 ′ , … , s m ′ ψ ( s 1 ′ , … , s m ′ ) 为归一化因子。

同 HMM 类似,CRF 也涉及三类基本问题:评估(计算某一序列的似然值)、解码(给定输入,寻找似然最大的序列)及训练(根据数据估计 CRF 的参数),解决这三个问题也都涉及前向算法、后向算法及 Viterbi 算法。

CRF 的势函数类似于概率,只不过没有归一化,因此这里介绍的 CRF 前向算法、Viterbi 算法、后向算法,同 HMM 基本一致。

2.2 前向算法

定义:

α(i,s)=s1,,si1ψ(s1,,si1,s) α ( i , s ) = ∑ s 1 , … , s i − 1 ψ ( s 1 , … , s i − 1 , s )

表示,以 s s 结尾的长度为 i 的子序列的势。

显然, α(1,s)=ψ(,s1,1) α ( 1 , s ) = ψ ( ∗ , s 1 , 1 )

根据定义,我们有如下递归关系:

α(i,s)=sSα(i1,s)×ψ(s,s,i) α ( i , s ) = ∑ s ′ ∈ S α ( i − 1 , s ′ ) × ψ ( s ′ , s , i )

归一化因子可以计算如下:

Z=s1,,smψ(s1,sm)=sSs1,,sm1ψ(s1,sm1,s)=sSα(m,s) Z = ∑ s 1 , … , s m ψ ( s 1 , … s m ) = ∑ s ∈ S ∑ s 1 , … , s m − 1 ψ ( s 1 , … s m − 1 , s ) = ∑ s ∈ S α ( m , s )

对于给定的序列 (s1,,sm) ( s 1 , ⋯ , s m ) ,其中条件概率(似然)可以计算:

p(s1,,sm|x1,,xm)=mi=1ψ(si1,si,i)sSα(m,s) p ( s 1 , … , s m | x 1 , … , x m ) = ∏ i = 1 m ψ ( s i − 1 , s i , i ) ∑ s ∈ S α ( m , s )

* 通过前向算法,我们解决了评估问题,计算和空间复杂度为 O(m|S

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值