序列标注: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

结构简介

mark

  • 第一层:表示层

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

  • 第二层: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模型的参数,最终获得标签序列的概率。

【注】

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

img

CRF层详解

原理

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

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

  • CRF层中有一个转移概率矩阵 A , A i , j 代表 t a g I 转移到 t a g j 的转移概率。

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

    mark

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

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

    mark

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

    mark

  • 将损失函数定义为 l o g ( p ( y | X ) ) ,利用梯度下降法进行学习。

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

    • 采用该方法计算:对于到词 w i + 1 的路径,先把到词 w i l o g ( e S ( X , y ) ) 算出,因为

    mark

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

  • 利用维特比算法进行预测。

作用

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

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

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

【采用CRF层的原因】

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

【参考资料】

猜你喜欢

转载自blog.csdn.net/tiweeny/article/details/81437808
今日推荐