前言:

本文翻译,原文地址:https://createmomo.github.io/2017/09/23/CRF_Layer_on_the_Top_of_BiLSTM_2/

上一节中《BiLSTM中的CRF层(一)简介》,CRF层可以加入一些约束来保证最终预测结果是有效的。这些约束可以在训练数据时被CRF层自动学习得到。

约束一般有如下:

  • 句子的开头应该是“B-”或“O”,而不是“I-”。
  • “B-label1 I-label2 I-label3…”,在该模式中,类别1,2,3应该是同一种实体类别。比如,“B-Person I-Person” 是正确的,而“B-Person I-Organization”则是错误的。
  • “O I-label”是错误的,命名实体的开头应该是“B-”而不是“I-”。
  • ...

有了这些约束,非法的预测序列将会被减少。

下面将会介绍为什么CRF能够学习到这些约束。

二、CRF层

在CRF层损失函数中,有两种类型的分数,这两种是理解CRF的关键。

1.  Emission score(发射分数)

Emission score(发射分数)来自BiLstm层。如下图所示,BiLSTM中的CRF层(二)CRF层被预测为B-Person的分数是1.5

BiLSTM中的CRF层(二)CRF层

为了更方便的解释,我们给每个类别一个索引,如下表所示:

Label Index
B-Person 0
I-Person 1
B-Organization 2
I-Organization 3
O 4

我们使用BiLSTM中的CRF层(二)CRF层表示发射分数。BiLSTM中的CRF层(二)CRF层是单词索引,BiLSTM中的CRF层(二)CRF层是标签索引。例如,上图中,BiLSTM中的CRF层(二)CRF层表示单词BiLSTM中的CRF层(二)CRF层被预测为B-Organization的分数是0.1。

2. Transition Score(转移分数)

我们使用BiLSTM中的CRF层(二)CRF层代表转移分数。比如,BiLSTM中的CRF层(二)CRF层表示由标签B-Person到标签I-Person的转移分数是0.9。因此,我们有一个所有类别间的转移分数矩阵。为了使转移分数矩阵更具鲁棒性,我们加上START 和 END两类标签。START代表一个句子的开始(不是句子的第一个单词),END代表一个句子的结束。

下表是加上START和END标签的转移分数矩阵例子。

BiLSTM中的CRF层(二)CRF层

如上表格所示,转移矩阵已经学习到一些有用的约束条件:

  • 句子的第一个单词应该是“B-” 或 “O”,而不是“I”。(从“START”->“I-Person 或 I-Organization”的转移分数很低)
  • “B-label1 I-label2 I-label3…”,在该模式中,类别1,2,3应该是同一种实体类别。比如,“B-Person I-Person” 是正确的,而“B-Person I-Organization”则是错误的。(“B-Organization” -> “I-Person”的分数很低)
  • “O I-label”是错误的,命名实体的开头应该是“B-”而不是“I-”。

那么要如何才能得到这个转移矩阵呢?

实际上,转移矩阵是BiLSTM-CRF模型的一个参数。在训练模型之前,你可以随机初始化转移矩阵的分数。这些分数将随着训练的迭代过程被更新,换句话说,CRF层可以自己学到这些约束条件。

下一篇:

下一篇将会介绍CRF的Loss函数

参考文档:

[1] Lample, G., Ballesteros, M., Subramanian, S., Kawakami, K. and Dyer, C., 2016. Neural architectures for named entity recognition. arXiv preprint arXiv:1603.01360.

 

 

相关文章: