简介
在命名实体识别(后简称NER)中,迄今绝大多数模型都使用神经网络和条件随机场结合的方法实现。所以,需要稍微了解一下CRF的原理。
NER是自然语言处理中一个非常基础的任务,简单的说,就是识别句中的成份。比如"小明去学校",其中“小明”是人名,“去”是动词,“学校”是地点。如果把字当作处理单元,“学”字是动词还是地点,不仅取决于该字的意思,还取决于它的上下文。
CRF可用于解决序列问题(前后状态存在相关性),比如根据第i-1个字来判断第i个字所充当的成份。当CRF与神经网络共同工作时,神经网络负责提取词义,CRF将词义与上下文结合,以实现更准确地判断。
原理
这里涉及很多概念,比如最大团、马尔可夫性、马尔可夫链等等,本文不做展开,以免过长、过于复杂。
直奔主题,CRF最大的特点是它使用了特征函数。可以把特征函数想象成对输入x提取多个特征,每个特征函数提取一个特征。
序列中共有T个时间步(NER句中有T个字),用i遍历每一时间步(每个字),共有M个特征函数(提取M个特征),用k遍历每个特征函数,特征函数用f表示,其权重用λ表示,不同特征函数的权重各不相同。特征函数是事先定义好的,权重是训练中学出来的。
特征函数的输入包含观测序列x(NER里的句子),状态序列y(成份)的第i-1和第i个位置,以及具体位置的索引i。
上面公式也常常表示成:
它把前式中的特征函数f拆成了两部分,第一部分是当前项与上下文的关系,第二部分是具体词x与词的成份y之间的关系。两部分有各自的特征函数及权重。
我们看到CRF写成啥样的都有,但无论用什么字符表示,拆成一部分或两部分,其原理都是一样的。
最常见的CRF公式如下,它用于计算:文本序列x的条件下出现成份序列y的概率。
其中,Z(x)用于归一化:
公式也被简化成:
其中的w是训练求得的模型参数。这么看,就像是一个求参数w的回归问题。
隐马尔可夫模型与条件随机场
隐马尔可夫模型(HMM)与条件随机场模型(CRF)常放在一起比较,这是由于它们实现的功能基本一致。
HMM 公式如下:
对比公式可以看出:
- 相同:二项者考虑了前项y-1对后项y的影响,以及x对y的影响。
- 差异:HMM求联合概率p(y,x),CRF求条件概率p(y|x)。
- 差异:HMM仅考虑x->y,yi-1->yi的转移关系。
- 差异:CRF引入了事先设定好的特征函数,计算特征函数时还加入了整个x,考虑到了整句上下文对该点成份的影响。
参考
如何用简单易懂的例子解释条件随机场(CRF)模型?它和HMM有什么区别?
NLP --- 条件随机场CRF(预测算法详解)