BiLSTM中的CRF层(一)简介

 

BiLSTM中的CRF层详解

提纲

本篇文章包括以下几个部分:

  • 1.简介
  • 2.举例说明
  • 3.BILSMT+CRF实现

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


一、简介

在命名实体识别任务中,基于神经网络的方法是非常流行和常用的。论文《Neural Architectures for Named Entity Recognition》[1]基于词嵌入和字嵌入提出了一种BiLstm-CRF模型,本文将基于这篇论文来举例说明CRF层是如何起作用的。

如果你不知道BiLSTM和CRF,那么你只需要记住他们是命名实体识别中两个完全不同的网络层。

1. 数据

我们规定在数据集中有两类实体,人名和组织机构名称。所以,在我们的数据集中总共有5类标签:

  • B-Person (人名的开始部分)
  • I- Person (人名的中间部分)
  • B-Organization (组织机构的开始部分)
  • I-Organization (组织机构的中间部分)
  • O (非实体信息)

此外,假设输入句子x 是包含了5个单词的一句话(w0,w1,w2,w3,w4)。还有,在句子x中[w0,w1]是人名,[w3]是组织机构名称,其他都是“O”。

2. BiLSTM-CRF模型

简单介绍一下该模型。

首先,在句子x中每个单词被表征为向量形式(词向量或者字符向量)。字符嵌入向量一般选择随机初始化,而词嵌入向量一般可以使用预训练词向量。并且在整个训练过程中所有的嵌入向量都会被学习调整。

其次,BiLSTM-CRF的输入是词嵌入向量,输出是每个单词对应的预测标签。

(Tips:中文中词和英文词和字符表征不同,中文字符就是一个单词,英文字符是一个字母)

尽管不需要了解BiLSTM的实现细节,但为了更好的理解CRF层,我们还是需要知道一下BiLSTM的输出到底是什么意思。

如上图所示,BiLSTM层的输出表示每个单词对应各个类别的分数。如w_{0},BiLSTM节点的输出是1.5 (B-Person),0.9 (I-Person), 0.1 (B-Organization), 0.08 (I-Organization) 和0.05 (O)。这些分数将会是CRF层的输入。因此,所有的经BiLSTM层输出的分数将作为CRF层的输入,类别序列中分数最高的类别就是我们预测的最终结果。

3.没有CRF层会怎样

从上图可以发现,即使没有CRF层,仅仅训练一个BiLSTM模型也是可以作用于命名实体识别。

因为BiLSTM模型的结果是单词对应各类别的分数,我们可以选择分数最高的类别作为预测结果。如w_{0},“B-Person”的分数最高(1.5),那么我们可以选定“B-Person”作为预测结果。同样的,w_{1}是“I-Person”,w_{2}是“O”,w_{3}是 “B-Organization” ,w_{4}是 “O”。尽管我们在该例子中得到了正确的结果,但实际情况并不总是这样。来看下面的例子:

很明显,这个输出是不合法的,如“I-Organization I-Person” 和“B-Organization I-Person”等都是非法的输出。

4.CRF层约束力

当没有了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的Loss函数并举例说明CRF层是如何起作用的。

 

参考文档:

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值