机器学习笔记:线性链条件随机场(CRF)

0 引入:以词性标注为例

  • 比如我们要对如下句子进行标注:
    • “小明一把把把把住了”
  • 那么我么可能有很多种词性标注的方法,中间四个“把”,可以是“名词+名词+动词+名词”,可以是“名词+动词+动词+名词”等多种形式。

那么,哪种标注序列最有可能是正确的呢?

  • 我们如果可以给每一个标注序列进行打分,打分越高的表示这个标注序列越靠谱,那么就会容易的多。打分最高的就是最可能的标注序列。

  • 对于标注序列问题,我们可以设计一组特征函数
    • (比如动词后面接动词,那么给他一个很负的分数;动词后面接名词,可以给0.8左右的分数之类)
    • 用这个特征函数集合来为一个标注序列打分,并据此选出最靠谱的标注序列
    • 也就是说,每一个特征函数都可以用来为一个标注序列评分
      • 把集合中所有特征函数对同一个标注序列的评分综合起来,就是这个标注序列最终的评分值

1 特征函数

  • 线性链CRF 中的特征函数接受四个参数:
    • 句子s(在前面的样例中是需要标注词性的句子)
    • i(句子s中第i个单词)
    • l_i(要评分的标注序列给第i个单词标注的词性)
    • l_{i-1}(要评分的标注序列给第i-1个单词标注的词性)

  • 定义好一组特征函数后,我们要给每个特征函数f_j赋予一个权重\lambda_j
    • 对于一个句子s,和一种可能的标注序列l
    • 我们利用特征函数集对其评分
      • 机器学习笔记:线性链条件随机场(CRF)_第1张图片 
  •  对这个分数进行指数化和标准化,我们就可以得到选择标注序列l的概率值p(l|s)
    • 类似于softmax

2 和HMM的对比

机器学习笔记&Python笔记:HMM(隐马尔科夫模型)_UQI-LIUWJ的博客-CSDN博客

HMM可以看成一种特殊的线性链CRF

  • 我们考虑一个HMM
    • 状态集合(隐藏状态):$S = {s_1, s_2, \ldots, s_N}$
    • 观测集合(可见观测):$O = {o_1, o_2, \ldots, o_M}$
    • 初始化概率:P(s_i),初始状态为s_i的概率
    • 状态转移概率:P(s_j | s_i)
    • 观测转移概率:$P(o_k | s_i)$
  • 定义HMM观测序列的联合概率为:
  • 线性链CRF的概率
      • Z(O)是归一化常数(softmax的分母)
      • \lambda_{ij},\mu_i 是模型的权重参数
      • \mathbf{1}(\cdot)是特征函数
        • 第一个式子相当于i*j个特征函数组成的集合
          • 每一个特征函数评价前一个隐藏状态是j,后一个隐藏状态是i的情况
        • 第二个式子相当于i个特征函数组成的集合
          • 当前时刻隐藏状态是i,观测状态是Ot的情况
  • 现在令
    • \lambda_{ij} = \log P(s_i | s_j)
      • 那么\lambda_{ij} \cdot \mathbf{1}(s_t=i,s_{t-1}=j)=\log P(s_i | s_j)\cdot \mathbf{1}(s_t=i,s_{t-1}=j)
        • 进而等于\log P(s_t=i | s_{t-1}=j) 【只有s_t=i,s_{t-1}=j时指示函数才为1,其余情况指示函数为0】
        • \sum_{i,j}\log P(s_t=i | s_{t-1}=j) =\log P(s_t|s_{t-1})
    • \mu_i = \log P(o_{\mathbf{O}_t} | s_i)
      • 那么\mu_i \cdot \mathbf{1} (s_t=i,o_{o_t})= \log P(o_{\mathbf{O}_t} | s_i) \cdot \mathbf{1} (s_t=i,o_{o_t})
        • 进而等价于\log P(o_{\mathbf{O}_t} | s_t=i)【只有s_t=i,且观测值为O_{o_t}时指示函数才为1,其余情况指示函数为0】
        • \sum_i \log P(o_{\mathbf{O}_t} | s_t=i)=\log P(o_{\mathbf{O}_t} | s_t)
    • 所以P(S|O)=\frac{1}{Z(O)} \exp (\sum_{t=1}^T \log P(s_t|s_{t-1})+\sum_{t=1}^T \log P(o_{\mathbf{O}_t} | s_t))
      • \frac{1}{Z(O)} \prod _{t=1}^T P(s_t|s_{t-1})\prod _{t=1}^T P(o_{\mathbf{O}_t} | s_t)
      • 这样也就把线性链CRF桥接到HMM中了
    • 所以HMM可以看成一种特殊情况的线性链CRF
      • CRF要比HMM更加强大
        • CRF可以定义数量更多,种类更丰富的特征函数
        • CRF可以使用任意的权重
          • 将对数HMM模型看做CRF时,特征函数的权重由于是log形式的概率,所以都是小于等于0的
          • 在CRF中,每个特征函数的权重可以是任意值

你可能感兴趣的:(笔记)