序列标注:BiLSTM-CRF模型

概述

对于序列标注问题,目前BiLSTM-CRF模型是目前使用比较流行的方法。本文以Neural Architectures for Named Entity Recognition为例,讲解BiLSTM-CRF模型在命名实体识别任务上的应用,着重于CRF层的分析。

数据描述

假设数据集有两种实体类型:人物(Person)机构(Organization)。同时假设采用BIO标注体系。因此会有五种实体标签:

  • B-Person
  • I-Person
  • B-Organization
  • I-Organization
  • O

结构简介

序列标注:BiLSTM-CRF模型

  • 第一层:表示层

    将每个句子表示为词向量和字向量。

  • 第二层:BiLSTM层

    输入词向量和字向量到模型中的BiLSTM层,该层的输出是句子的每个词的所有标签的各自得分。

    【注】此处的标签的各自得分充当的是CRF模型中的非归一化的发射概率。

    在本例中就是五种标签的各自得分,如B-Person(1.5),I-Person(0.9),B-Organization(0.1),I-Organization(0.08),O(0.05)。

  • 第三层:CRF层

    该层使用BiLSTM层的输出——每个词的所有标签的各自得分,即(发射概率矩阵)以及转移概率矩阵,作为原始CRF模型的参数,最终获得标签序列的概率。

【注】

另一种结构图,表达含义相同。

序列标注:BiLSTM-CRF模型

CRF层详解

原理

  • BiLSTM层的输出是每个词的所有标签的各自得分,相当于每个词映射到标签的发射概率值。

    设BiLSTM层的输出矩阵为P,其中Pi,j代表词wi映射到tagj的非归一化概率,类比于CRF模型中的发射概率矩阵。

  • CRF层中有一个转移概率矩阵A,Ai,j代表tagI转移到tagj的转移概率。

  • 对于输入序列X对应的输出tag序列y,定义分数为

    序列标注:BiLSTM-CRF模型

    【注】每一个score对应一个完整的路径。

  • 利用Softmax函数,为每一个正确的tag序列y定义一个概率值(YX代表所有的tag序列,包括不可能出现的)

    序列标注:BiLSTM-CRF模型

  • 在训练中,最大化似然概率p(y|X)即可,利用对数似然

    序列标注:BiLSTM-CRF模型

  • 将损失函数定义为log(p(y|X))

【计算问题】

  • 对损失函数计算时,S(X,y)的计算简单,但log(eS(X,y))计算复杂,因为需要计算每一条可能路径的分数。

  • 采用该方法计算:对于到词wi+1的路径,先把到词wilog(eS(X,y))算出,因为

    序列标注:BiLSTM-CRF模型

  • 因此计算每一步的路径分数和直接计算全局分数相同,但可以大大减少计算时间。

【训练问题】

  • 利用梯度下降法进行学习,使得得到最优参数数θ,使得
    θ=argmaxθilog(P(xi|yi;θ))

【预测问题】

  • 利用维特比算法进行预测,求解最优路径
    y=argmaxyscore(x,y)

作用

在BiLSTM-CRF模型中,若没有CRF层也未必不可,在结构简介中已经简单描述BiLSTM层的输出,即为句子的每个词的所有标签的各自得分。若没有CRF层,直接选择BiLSTM层中最大的得分输出标签类型即可。

那么CRF层作用是什么?即如下:

  • 句子的开始单词的标签类型应该是BO,而不是I
  • 限制一些格式。如B-Person I-Person是合理的,B-Person I-Organization是不合理的

【采用CRF层的原因】

  • LSTM考虑的是输入序列X的上下文信息。CRF还可以考虑tag之间的依赖关系信息。

【参考资料】