BiLSTM中的CRF层(二)CRF层

前言:

本文翻译,原文地址: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层。如下图所示,w_{0}被预测为B-Person的分数是1.5

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

LabelIndex
B-Person0
I-Person1
B-Organization2
I-Organization3
O4

我们使用x_{iyj}表示发射分数。i是单词索引,y_{j}是标签索引。例如,上图中,x_{i=1,y_{j}=2}=x_{w1,B-Organization}=0.1表示单词w_{1}被预测为B-Organization的分数是0.1。

2. Transition Score(转移分数)

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

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

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

  • 句子的第一个单词应该是“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.

 

 

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值