概率图模型广泛应用于自然语言处理各个领域,也是机器学习里面最难的一部分内容之一,应用包括贝叶斯,HMM,CRF等等,初学者很难理清楚之间的关系。本文算是一个总结吧,有不妥之处,欢迎指正。,下面这个图来自《自然语言处理》教程。
可以看到贝叶斯网络都是有向的。马尔科夫网无向。贝叶斯适合为有单项依赖的数据建模,马尔科夫网适合实体之间相互依赖的建模,它们的核心差异是怎样表示Y=(y1,y2,...,yn)这个联合概率。
重点讲一讲NLP最重要的两个模型,隐马尔可夫模型与条件随机场,分析他们之间的关系。关于它们的建模公式与过程,网上有很多资料可以参考,我的github也有相应的资料可下载,欢迎大家访问:
https://github.com/lovesoft5/ml
隐马尔科夫模型是关于时序的概率模型,描述由一个含有隐藏的马尔科夫随机生成的不可观测的状态随机序列,再由各个状态生成一个观测而产生的随机序列过程,整个模型包含了三个分布,这也是建模过程就是要确定这3个分布,以及根据这3个分布进行预测。即 1)初始概率分布 2)状态转移概率 3)观测概率分布
隐马尔科夫模型是只依赖于每一个状态和它观察的对象,而条件随机场没有严格的独立假设条件,可以容纳任意的上下文信息,缺点就是复杂度高,这一点从条件睡机场模型的建模公式可以看到,隐马尔可夫模型是条件随机场的一个“特殊情况”,就是只考虑隐变量相邻的变量。一个很好理解的条件随机场定义: 设X是随机变量,P(Y|X)是给定X时Y的条件概率分布,若随机变量Y构成是一个马尔科夫随机场,则称条件概率分布P(Y|X)是条件随机场。
条件随机场可以很好的应用于词性标注(是不是某个名词,比如地名,人名)等问题,比如自然语言中:动词后面还是一个动词我们可以认为这是一个针对句子的特征函数,这样,我们就可以定义一个特征函数集合,用这个特征函数集合来标注一个序列并进行打分,以此来找出最靠谱的标注序列。也就是说,每一个特征函数都可以用来作为一个标注序列评分,把集合中所有的特征函数对同一个标注序列的评分综合起来就是这个标注序列的最终评分值。