😄 CRF之前跟人生导师:李航学习过,这里结合自己的理解,精简一波CRF,总结一下面试中高频出现的要点。个人觉得没网上说的那么复杂,我看网上很大部分都是一长篇先举个例子,然后再说原理。没必要原理其实不难,直接从原理下手更好理解。
文章目录
- 1、概率无向图(马尔可夫随机场)?
- 2、条件随机场?
- 2.1、局部马尔可夫性:
- 2.2、何为特征函数?特征函数干嘛用的?:
- 3、CRF三大问题:
- 4、面试高频题
- 4.1、HMM与CRF的 共性 and 差异?
- 4.2、CRF缺点:
1、概率无向图(马尔可夫随机场)?
概率无向图模型,即马尔可夫随机场。反正可以理解,比如标注序列任务中,你的标签为图中的节点。边表示标签之间的依赖关系。【具体到CRF里,这个图就是下面的线性链条件随机场那个图了。而局部马尔可夫性就是指当前状态依赖于与其相连的前后状态。注:相邻的状态其实构成了一个最大团。】且成对的、局部的、全局的马尔可夫性的定位其实是等价的。
2、条件随机场?
条件随机场是给定随机变量X(即观测:输入文本)条件下,随机变量Y(即状态:输出标签)的马尔可夫随机场。
2.1、局部马尔可夫性:
- 对于任意一个节点v,在给定其他所有节点w (w≠v)时,v的分布等价于给定与v相连的所有节点时的v的分布。
通常所说的条件随机场即线性链条件随机场,如下:
- 和Yi 相连的只有Yi-1 和Yi+1。
- 注:上面公式的这个样子,即给定x下y的联合概率分布的计算。其实是由Hammersley-Clifford定理定义的,即概率无向图模型(马尔可夫随机场)的联合概率分布,可以定义成这个形式。【李航-218页】
- 上面是CRF的参数化形式,将特征函数统一表示成f,简化一下上述公式可得如下:
- 很明显上面可以转成w向量和f向量内积的形式,那就再简化下,哎哟真好看~:
2.2、何为特征函数?特征函数干嘛用的?:
- 转移特征函数:依赖于当前和前一位置。如可以定义为动词后面若接了名词,那转移特征就为1,否则为0。
- 状态特征函数:依赖于当前位置。如当前位置在句首用了名称,那状态特征就为1,否则为0。
所以上述CRF的公式相当于,给定整个观测序列x的条件下,利用一堆特征函数即评价模版,来对当前标记序列(即预测的标签序列)打分即规范化的条件概率。
3、CRF三大问题:
- 概率计算问题:前向-后向算法
- 学习算法问题:极大似然估计,正则化的极大似然估计。【从前面CRF的公式我们可知,每个特征函数前面会有个权重,那CRF的学习其实就是去学习更新这个权重的,是不是大悟了?😄】
具体地,目标就是极大化似然函数,然后通过梯度下降or拟牛顿法等来更新权重。对数似然函数如下:
至于这个似然为什么长这个样,其实和以往我们了解的似然的表示是等价的,可以参考我的推导链接:对于最大熵中极大似然估计的似然函数的理解(为什么长指数形式这个样子)
- 预测算法问题:维特比算法。【和HMM里的类似了,维特比思想就是,前向累加概率(HMM里是累积因为HMM里有状态转移概率)去求转移到最后的状态的整个标注 (状态) 序列的概率最大路径,在计算的过程中,同时保存转移到当前状态的前一状态,这样方便当找到了概率最大的路径时从最后一个状态返回去找前一状态。进而来生成最优路径序列。】- 看李航-234页例子很好懂,套公式慢慢算而已。维特比算法可用动态规划解决。
4、面试高频题
4.1、HMM与CRF的 共性 and 差异?
- 共性:应用场景都常用来做序列标注任务,像词性标注。
- 差异:
HMM最大的缺点就是由于齐次马尔可夫假设:状态的转移过程中当前状态只与前一状态相关问题,导致其不能考虑上下文的特征,限制了特征的选择,还有就是观测独立性假设当前观测只依赖于当前状态,这2个假设过强;同时也带来了标记偏见的问题(label bias);
CRF:综合了上下文相关特性(只需要满足 局部马尔可夫性就好,即当前状态依赖于与其相连的状态,即前后状态),通过降低假设的方式,提升模型效果;;CRF模型在结合多种特征方面的存在优势,CRF的性能更好,更常用。CRF模型 属于判别式模型,在序列标注任务上,效果优于 生成式模型HMM;
4.2、CRF缺点:
- 训练模型的时间比HMM长,且获得的模型稍大。
- 特征的选择和优化是影响结果的关键因素。特征选择问题的好与坏,直接决定了系统性能的高低。