条件随机场(Conditional Random Field, CRF)是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型。常常用于
标注问题。隐马尔科夫模型和条件随机场是自然语言处理中最重要的算法。CRF最重要的就是根据观测序列,把标记序列给推测出来。
概率无向图模型
概率无向图模型又称为马尔科夫随机场,是一个可以由无向图表示的联合概率分布。一些类似内容。
有一组随机变量
定义
马尔可夫性就是说,给定一些条件下,没有连接的节点之间是条件独立的。
成对马尔可夫性
设成对马尔可夫性是说,给定随机变量组
局部马尔可夫性
节点局部马尔可夫性认为,给定
全局马尔可夫性
节点集合全局马尔可夫性认为,给定
上面的3个马尔可夫性的定义是等价的。
概率无向图模型
设有联合概率密度概率图模型,或马尔可夫随机场。
实际上我们更关心怎么求联合概率密度,一般是把整体的联合概率写成若干个子联合概率的乘积,即进行因子分解。概率无向图模型最大的优点就是易于因子分解。
概率无向图因子分解
团与最大团
团:无向图中的一个子集,任何两个节点均有边连接。
最大团:无向图中的一个子集,任何两个节点均有边连接。不能再加入一个节点组成更大的团了。

如
因子分解
有无向图模型
其中规范化因子。势函数,是一个严格正函数。等式左右两端都取条件概率也是可以的。下文就是。
其中能量函数。
条件随机场的定义与形式
HMM的问题
这里是HMM的讲解 。HMM有下面几个问题
- 需要给出隐状态和观察符号的联合概率分布,即
发射概率,是生成式模型,也是它们的通病。 - 观察符号需要是离散的,可以枚举的,要遍历所有观察符号。如果是一个连续序列,则不行。
- 观察符号是独立的,没有观察相互之间的依赖关系。如一个句子的前后,都有关联才是。即
输出独立性假设问题。 - 无法考虑除了字词顺序以外的其它特征。比如字母为大小写,包含数字等。
标注偏置问题。
标注偏置问题,举例,是说有两个单词"rib-123"和"rob-456","ri"应该标记为"12","ro"应该标记为"45"。
$$ \begin {align} & P(12 \mid ri) = P(1 \mid r)P(2 \mid i, r=1) = P(1 \mid r) \cdot 1 = P(1 \mid r) \\ & P(45 \mid ro) = P(4 \mid r)P(5 \mid o, r=4) = P(4 \mid r) \cdot 1 = P(4 \mid r) \\ \end {align} $$ 由上面计算概率可知,ri标为12和 ro标为45的概率最终变成r标为1和4的概率。但是由于语料库中"rob"的出现次数很多,所以$P(4 \mid r) > P(1 \mid r)$ ,所以可能会一直把"rib"中的"i"标记为1,会导致标记出错。这就是标记偏置问题。 定义
条件随机场是给定随机变量线性链随机场,它可以用于标注问题。
条件随机场
则称
线性链条件随机场
则称线性链条件随机场。

HMM,每个观察状态只与当前的隐状态有关系,分离了关系。就像1个字1个字地向后讲。输出观察符号还需要条件独立。
线性链条件随机场, 每个状态都与整个序列有关系。即先想好了整句话,再依照相应的次序去说出来。更加直击语言模型的核心。
基本形式
两种特征函数
状态转移特征函数t,只依赖与当前和前一个位置,即
状态特征函数s,只依赖与当前位置
基础形式
设有线性链条件随机场参数化形式
其中规范化因子,如下
条件随机场完全由特征函数
简化形式
有
同一个特征函数,要在整个全局特征函数, **新的特征函数
所以新的条件随机场形式如下:
可以看出,格式和最大熵模型很像。条件随机场最重要的就是,根据观察序列,把标记序列给推测出来。
向量形式
向量化特征函数和权值
可以写成向量内积的形式
矩阵形式
为状态序列状态转移矩阵来表示状态转移的概率。

设
要求什么样的路径概率,则相乘相应的数值概率即可。那么这些矩阵里面的数值是怎么来的呢。有下面的矩阵定义 :
每一步转移的时候,由于
其中
所以非规范化条件概率可以通过矩阵的某些元素的乘积表示,有
其中规范化因子 是**
条件随机场的概率计算问题
主要问题是给定条件随机场
关键是求这些特征函数期望值,当模型训练好之后,去验证我们的模型。
前向后向算法
而前向变量
后向变量
可以得到
条件概率计算
位置是
位置
特征期望值计算
两个期望值和最大熵模型的约束条件等式 有点像。
特征函数
特征函数
通过前向和后向向量可以计算出两个概率,然后可以计算出相应的期望值。就可以与我们训练出的模型进行比较。
学习算法
条件随机场模型实际上是定义在时序数据上的对数线性模型,学习方法有极大似然估计和正则化的极大似然估计。具体的优化实现算法有:改进的迭代尺度法IIS、梯度下降法和拟牛顿法。
改进的迭代尺度法
这里是最大熵模型中的改进的迭代尺度算法。每次更新一个
已知经验分布
对数似然函数和最大熵算法的极大似然函数很相似,如下:
对数似然函数
数据
输入:特征函数
输出:模型参数
步骤:
1 赋初值
2 对所有
3 更新
算法S
对于不同的数据
所以可以直接解得
算法T
算法S中
使用前后向递推公式,可以算得
对于
其中,
对于
其中
拟牛顿法
预测算法
预测问题
给定条件随机场
其中路径
所以,为了求解最优路径,只需计算非规范化概率,即转换为下面的问题:
维特比算法
维特比变量
记忆路径
算法主体
输入:特征向量
输出:最优路径
步骤如下
初始化
递推
终止
返回路径
求得最优路径