命名实体识别(2)

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.

CRF模型

在上一篇博文中我们介绍了HMM。我们知道,HMM之所以能够计算出给定一个词和它可能的标注的联合概率分布,是因为HMM假设了两类特征,一是当前词词性与上一个词词性的关系,二是当前词语和当前词性的关系,分别对应着状态转移矩阵和混淆矩阵。HMM的学习过程就是在训练集中统计这两个概率矩阵。

和HMM不同的是,CRF并没有做出上述的假设,CRF使用feature function来更抽象地表达特征,使得他不再局限于HMM的两类特征。一个特征函数可以表示为(f(X, i, y_i, y_{i-1})),其中(X)表示输入序列,(i)表示当前处理的位置,(y_i)表示当前词的标注(state), (y_{i-1})表示前一个词的标注。值得注意的是:只有在Linear CRF中,(y_{i-1})才表示前一个state,事实上它可以有更丰富的表达。例如特征函数可以表示当前的state与任意一个observation或者 state甚至future state的关系。也就是说,特征方程的存在允许CRF有十分自由的特征表达,(y_{i-1})可以是(y_{ipm {1,...,n}})。为了简化,我们暂且使用(y_{i-1})来展现CRF的概率分布函数:

CRF概率分布函数

公式中(j)表示特征函数的个数,(n)为输入序列的长度, (lambda _j)表示特征函数的权重。(Z(X))是用来归一化的(normalization),目的是让计算结果形成概率值。(Pr(Y|X,lambda))表示在权重为(lambda)的特征函数集的评估下,针对输入序列X,标注序列Y是正确结果的概率。与HMM一样,CRF将寻找对一组输入样本而言,正确概率最大的标注序列。

CRF训练

模型定义好之后,我们进一步定义损失函数:

(egin{align*} Loss(lambda , D) &= log left ( prod_{k=1}^{n} Pr left ( y^kmid x^k,lambda ight ) ight )\ &= -sum_{k=1}^m log left[ frac{1}{Z(x^m)} exp left (sum_i^n sum_j lambda_j f_j(x^m,i,y_i^m,y_{i-1}^m) ight ) ight ] end{align*})

这里(D)代表训练样本(m个序列):(D = [(x^1,y^1),(x^2,y^2),...,(x^m,y^m)])

三个求和符号从前往后分别迭代:训练样本,序列中的位置,特征函数

(lambda)求偏导后,我们就可以用常规的优化方法(如梯度下降)来迭代优化模型参数(lambda)

模型参数优化

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

CRF实践

crf++ 和 sklearn crfsuite 都是现成的CRF工具包,这里以crf++为例:

首先定义特征模板Feature template。特征模板包括Unigram和Bigram模板,它们分别生成CRF的状态特征函数(s_l(y_i,x,i))和转移特征函数(t_k(y_i, y_{i-1},x,i)),其中(y_i)是标签,(x)是观测序列,(i)是当前节点位置。特征模板具体的格式和意义可参考:crf++里的特征模板得怎么理解?

【未完待续】


【参考】

  1. 条件随机场CRF
  2. 一文理解条件随机场(CRF) ← 这篇写的真是好
  3. 如何用简单易懂的例子解释条件随机场(CRF)模型?它和HMM有什么区别?
  4. Introduction to Conditional Random Fields
  5. Sutton, Charles, and Andrew McCallum. "An introduction to conditional random fields." Machine Learning 4.4 (2011): 267-373.
原文地址:https://www.cnblogs.com/lokvahkoor/p/12804953.html