天天看点

HMM & CRFHMMCRF

主要介绍HMM和CRF在NER序列标注问题中的应用。

HMM

  • 例子:O O B I I I(我在浙江大学),状态序列是【O O B I I I】,观测序列是【我在浙江大学】

    属于生成模型,包含隐变量,要对x(状态)和y(观测)联合建模,即P(X,Y)。

  • 两个假设
    • 齐次马尔可夫假设:当前状态只有前一个状态有关,与其他状态和观测值无关
    • 观测独立性假设:当前观测值只跟当前状态有关,跟其他状态无关也跟其他观测值无关
  • 五元素

    观测集合:所有组成句子的字的集合A

    状态集合这里是S={B,I,O}(一般还隐式包括start和end两个特殊状态)

    发射概率:每个状态转移到每个字的概率P(Ai|Sj)

    状态转移概率:状态之间转移的概率P(Si|Sj)

    初始概率:每个状态作为第一个状态的概率

  • 训练

    分两种,一种是训练集包括句子和标注结果(大多数序列标注任务),这个时候用统计下五元素即可。第二种是只有观测序列,要用baum-welch算法预估参数。

  • 概率计算:给定观测集合,发射概率,状态转移概率、初始概率计算该观测集合出现的概率(计算所有可能的状态序列对应的观测集合的联合概率和):前向算法
  • 解码:给定马尔可夫模型和一个观测序列,判断最可能的状态序列:Viterbi算法

CRF

  • 例子 :我在浙江大学(O O B I I I),观测序列是【我在浙江大学】,状态序列是【O O B I I I】;X是【我在浙江大学】,Y是【O O B I I I】

    直接对P(Y|X)建模,属于给定输入序列对输出序列的判别模型,给定句子x(观测),判断标注序列的概率y(状态)

  • 概率计算:给定条件随机场P(Y|X)和输入序列x和输出序列y,计算在当前时刻t观测值为k的概率:前向算法
  • 解码:给定CRF模型和一个状态序列,判断最可能的观测序列:Viterbi算法

继续阅读