经典序列模型-HMM与CRF
HMM
HMM模型的输入和输出
- HMM(Hidden Markov Model),中文名是隐含马尔科夫模型,因俄国数学家马尔科夫而得名,一般以文本序列数据为输入,以该序列对应的隐含序列为输出
什么是隐含序列
- 序列数据中每个单元包含的隐性信息,这些隐性信息之间也存在一定的关联
如:
给定一段文本:“人生该如何起头”
看到的这句话可以叫做:观测序列
可以将这句话以词为单位进行划分得到:
["人生","该", "如何", "起头"]
则每个词对应的词性就是它的隐含序列,如:
["n", "r", "r", "v"]
HMM模型的作用
- 在NLP领域,HMM用来解决文本序列标注问题。如分词,词性标注,命名实体识别等都可以看作是序列标注问题
HMM模型使用过程简述
- HMM模型表示为:lambda = HMM(A, B, pi),其中A,B,pi都是模型的参数,分别称为:转移概率矩阵,发射概率矩阵和初始概率矩阵
- 训练HMM模型,语料是事先准备好的一定数量的观测序列及其对应的隐含序列,通过不断训练求得一组参数,使由观测序列到对应隐含序列的概率最大
- 在训练过程中,为了简化计算,马尔可夫提出了一种假设:隐含序列中每个单元的可能性只与上一个单元有关。这个假设就是著名的隐含假设
- 训练后,就得到了具备预测能力的新模型:lambda=HMM(A,B,pi),其中模型参数已经改变
- 之后给定输入序列(x1, x2, ..., xn),经过模型计算lambda(x1, x2, ..., xn)得到对应隐含序列的条件概率分布
- 最后,使用维特比算法从隐含序列的条件概率分布中找出概率最大的一条序列路径就是所需要的隐含序列:(y1, y2, ..., yn)
CRF
CRF模型的输入和输出
- CRF(Conditional Random Fields),中文名是条件随机场,同HMM一样,它一般也以文本列数据为输入,以该序列对应的隐含序列为输出
CRF模型的作用
- 同HMM一样,在NLP领域,CRF用来解决文本序列标注问题。如分词,词性标注,命名实体识别
CRF模型使用过程简述
- CRF模型表示为:lambda=CRF(w1, w2, ..., wn),其中w1到wn是模型参数
- 训练CRF模型,语料同样是事先准备好的一定数量的观测序列及其对应的隐含序列
- 与此同时还需要做人工特征工程,然后通过不断训练求得一组参数,使由观测序列到对应隐含序列的概率最大
- 训练后,就得到了具备预测能力的新模型:lambda = CRF(w1, w2,... , wn),其中的模型参数已经改变
- 之后给定输入序列(x1, x2, ..., xn),经过模型计算lambda(x1, x2, ..., xn)得到对应隐含序列的条件概率分布
- 最后,使用维特比算法从隐含序列的条件概率分布中找出概率最大的一条序列路径就是需要的隐含序列:(y1, y2, ..., yn)
HMM和CRF模型之间的差异
- HMM模型存在隐马假设,而CRF不存在,因此HMM计算速度要比CRF快很多,适用于对预测性能要求较高的场合
- 同样因为隐马假设,当预测问题中隐含序列单元不只与上一个单元有关时,HMM的准确率会大大降低,而CRF不受这样限制,准确率明显高于HMM
HMM和CRF的发展现状
- HMM和CRF模型曾在多种序列任务中表现出色,伴随NLP工程师度过漫长的一段时间
- 但由于近年来深度学习发展迅速,经典序列模型,如HMM和CRF,已经开始渐渐淡出人们的视野