一、概述
CRF(全称Conditional Random Fields), 条件随机场. 是给定输入序列的条件下, 求解输出序列的条件概率分布模型,在自然语言处理中得到了广泛应用。
CRF的优点:克服了HMM的输出独立性假设问题以及MEMM的标注偏置问题。
可以将 HMM 模型看作 CRF 模型的一种特殊情况,即所有能用 HMM 解决的问题,基本上也都能用 CRF 解决,并且 CRF 还能利用更多 HMM 没有的特征。
CRF 可以用前一时刻和当前时刻的标签构成的特征函数,加上对应的权重来表示 HMM 中的转移概率,可以用当前时刻的标签和当前时刻对应的词构成的特征函数,加上权重来表示 HMM 中的发射概率。
所以 HMM 能做到的,CRF 都能做到。
1、什么样的问题需要CRF模型
首先我们来看看什么样的问题解决可以用CRF模型。使用CRF模型时我们的问题一般有这两个特征:
- 我们的问题是基于序列的,比如时间序列,或者状态序列。
- 我们的问题中有两类数据,一类序列数据是可以观测到的,即观测序列;而另一类数据是不能观察到的,即隐藏状态序列,简称状态序列。
和HMM类似,在讨论CRF之前,我们来看看什么样的问题需要CRF模型。这里举一个简单的例子:
- 场景一:
- 假设我们有Bob一天从早到晚的一系列照片,Bob想考考我们,要我们猜这一系列的每张照片对应的活动,比如: 工作的照片,吃饭的照片,唱歌的照片等等。一个比较直观的办法就是,我们找到Bob之前的日常生活的一系列照片