BilSTM 实体识别_BiLSTM-CRF summary

这篇文章是对《Bidirectional LSTM-CRF Models for Sequence Tagging》的一个总结,先上链接:https://arxiv.org/pdf/1508.01991.pdf

1. 概述

这篇论文是百度2015年发表的,它并不是对LSTM进行创新,也不是对CRF进行创新,而是提出了将两种方法结合的方式实现序列标注任务,并达到了当时的state of the art。BI-LSTM-CRF的优势在于可以有效地使用过去和未来的特征,这一点归功于双向LSTM的结构,同时它还可以通过CRF使用sentence level的标注信息(这里的sentence level我到后面再解释)。最后模型不仅鲁棒性强,而且对词嵌入的依赖较小。

2. 基本介绍

序列标注任务包括POS(词性标注)、chunking(组块分析:标出句子中的短语块)、NER(命名实体识别),文中的实验也是基于这三个经典的任务进行验证的。目前大多序列标注模型都是线性统计模型,例如HMM、MEMM、CRF等,文中作者提出了多种基于神经网络的序列标注模型,这些模型包括LSTM网络、BI-LSTM网络、LSTM-CRF和BI-LSTM-CRF。

这篇paper的主要contribution:

  1. 系统地比较了上述提到的模型在NLP标注数据集上的性能
  2. BI-LSTM-CRF首次应用于NLP标准数据集上,并且在三个经典的序列标注任务中,该模型精度达到了state of the art
  3. 实验验证了BI-LSTM-CRF具有鲁棒性并且对词嵌入的依赖较小

3. 模型介绍

3.1 LSTM(Long Short-Term memory)网络

在介绍LSTM网络之前,需要先提一下RNN(Recurrent neural networks),RNN是一类用于处理序列数据的神经网络,目前在语言模型和语音识别任务上都取得了不错的结果。RNN一个显著的优势是可以利用历史信息预测当前输出,下图是一个RNN结构。

2e91fc33b45e8d6588310cf43108bc58.png

一个简单的RNN结构包括输入层x,隐藏层h和输出层y。上图表示的是一个NER任务,每一个单词被标注为人名、地名、机构名、其他实体与非实体,其中B-,I-标签用于标注实体的开始和中间位置,文中还举了个例子:句子EU rejects German call to boycott British lamb 应该标注为B-ORG O B-MISC O O O B-MISC O O.

输入层表示时刻t的特征,可以是独热编码、密集向量特征或是离散特征。与前馈网络相比,RNN引入了前一个隐藏状态和当前隐藏状态的连接关系,其隐藏层和输入层的公式如下:

U、W、V是模型参数,f(z)和g(z)分别是sigmoid函数和softmax函数。

LSTM是在RNN的基础上提出的,是RNN的一种改进方式。当序列长度较长时,RNN容易出现梯度消失的问题,即RNN只能有短期记忆,LSTM网络通过精妙的门控制将短期记忆与长期记忆结合起来,并且一定程度上解决了梯度消失的问题。

bd44018fe6aedfafd7fd04a1d944b756.png

论文中LSTM的图结构上不是很清晰,我一般会用上面的图对其结构进行分析。公式如下:

其中i表示输入门,f表示遗忘门,o表示输出门,C表示神经元状态。下图为LSTM序列标注模型:

cbb6fc8f51341a6bfbbbc7a403343d78.png

3.2 双向LSTM网络

BI-LSTM是对LSTM的改进,从下图可以观察出该网络能够有效的利用过去和未来的特征。

e83b3ac109a2fc72829b9d1d0aa3a09e.png

3.3 CRF网络

在预测当前标签时,有两种方法可以利用相邻的标签信息。第一种是先预测每个时间步的标签分布,然后使用类似波束的解码方式来找到最佳标签序列。最大熵分类器和MEMM属于这一种工作机制。第二种是关注整个句子而不是单个位置的信息,CRF就属于这一类。实验表明,CRF通常可以获得更高的标注精度。

cac9dbf9f4641b7e089c6bc3f36edf1d.png

3.4 LSTM-CRF网络

将LSTM与CRF结合生成LSTM-CRF模型,该模型同时具有两者的优势,即具备捕捉到输入的过去特征和句子级的标签信息的能力。CRF层有状态转移矩阵作为参数,该层可以使用过去和未来的标签信息来预测当前标签,这与双向LSTM相似。文中并没有具体介绍两个部分是如何进行连接的,所以我又去搜索了一些资料:

要了解原理,必须知道损失函数是如何构建的!!CRF层的损失函数包括了两种类型的分数:Emission score和Transition score,这两个分数是CRF层的核心概念。

3.4.1 Emission score

这个分数来自LSTM层,如下图所示黄色框内的即为emission score,

被标注为B-Person的分数为1.5。

4092edd99e6d80074e42291e10e069a2.png

为了方便说明,每个标签可以用下表的索引值表示:

a393bacadb75906448d325bc8cfccd03.png

接下来会用

表示emission score,
表示单词的索引,
表示标签的索引,举个栗子:

3.4.2 Transition score

表示转移分数,例如
表示从标签
转换至
的转移分数为0.9。因此所有标签之间的转换可用转移分数矩阵表示,为了使这个矩阵更具鲁棒性,可以添加两个标签START和END,下图为转移分数矩阵的示例:

436d6eba384049af38b3e4c6ed155e3c.png

这里的转移分数矩阵是整个模型的参数,是通过CRF层学习得到的,并不需要手动构建

3.4.3 Loss Function

CRF损失函数由实际路径得分和所有可能路径的总得分组成。 在所有可能的路径中,真实路径的得分最高。假设每个可能的路径都有一个分数

,总共有N个可能的路径,所有路径的总分数为
,CRF层的损失函数可以表示为下式:

在训练过程中,模型的参数值会不断更新,以增加真实路径得分的百分比。

  • 计算RealPath scores

公式中的
表示第
条路径的分数。
,如果RealPath为
“START B-Person I-Person O B-Organization O END”,则其Emission score和Transition score的计算非常简单:

  • 计算TotalPath score

计算所有路径的分数有一个非常简单的方法,就是将每条路径的分数都算出来然后再相加,当然这个方法肯定是很低效的,时间复杂度会非常高。高效的实现方法是动态规划,我在这里就不介绍了。。。

到这里。。模型的整个连接思路差不多就介绍完了~继续说论文

3.5 BI-LSTM-CRF网络

与LSTM-CRF网络相似,将双向LSTM网络和CRF网络结合起来,形成了BI-LSTM-CRF网络。 除了过去的输入特征和句子级别的标签信息,BILSTM-CRF模型可以使用将来的输入特征。这里我来补充一下我对句子级别信息的理解。。其实在3.4这个部分的图里也可以看出,即使不要CRF层,LSTM或者BI-LSTM也可以预测标签,那CRF层的作用是什么?

我在一篇博客中看到一个很好的解释:CRF layer can learn constrains from training data.这里的constrains指的是什么呢,下面举几个例子:

  1. 句子的第一个单词的标签必须是“B-"或者"O"开头,不能是"I-"开头
  2. "B-label1 I-label2 I-label3..",这里的label1,label2和label3必须是同个标签
  3. "O I-label”是不合理的,实体的标签必须以"B-"开头
  4. ……

简而言之,LSTM或者BI-LSTM可以学习输入到输出的映射关系,而CRF还可以学习标签之间的关系。这里的这些constrains是通过转移分数矩阵来学得的啦~继续继续

BI-LSTM-CRF的损失函数构建是和LSTM-CRF一样的,只是LSTM-CRF的Emission score是通过LSTM得到的,而在BI-LSTM-CRF网络中是通过BI-LSTM得到的。结构如下:

8bbd0626f02c383df39e85e6171664e7.png

文中还介绍了模型的训练过程,其实就是批训练的方式,然后先正向,再反向。。。

b7819bc0a6edc34f604b6c0c9f3a318e.png

4. 实验

4.1 数据集

作者测试了LSTM、BI-LSTM、CRF、LSTM-CRF和BI-LSTM-CRF模型在3个nlp序列标注任务上的性能,分别选取Penn TreeBank(PTB)为POS数据集,CoNLL 2000为chunking数据集,CoNLL 2003为NER数据集。

4.2 details

这里有值得一提的两个小细节:第一个是输入特征,实验并不是只用word embedding后的向量作为网络的输入特征,而是在其基础上加了spelling features和context features。第二个是特征的连接方式,如下图所示,直接将输入特征与输出层连接,这个思路其实和resnet中的residual很像了,并且这种连接方式可以加快网络的训练。

d4d78d4dc67463c7a8c278f490ea1fac.png

4.3 Results

8f29ad0f4d366dc94b4141da13af3940.png

对于不同的词嵌入方式,BI-LSTM-CRF在三个任务中都获得了最好的成绩(除了Random词嵌入的POS任务上),而且相比Conv-CRF,BI-LSTM-CRF对词嵌入的依赖更小。

接下来文中还将BI-LSTM-CRF在不同的任务中与已有的模型进行对比:

POS:

054eee7b598eb3aa8536b50db2dc2443.png

chunking:

8e6cd53f7d8fa3297a0d16341a2e7010.png

NER:

080c50596b711bfd6f39fd778ba80085.png

可以看出BI-LSTM-CRF模型在不同的任务中表现优异

5. 总结

CRF这一块的知识点其实还蛮难理解的,这一篇论文也让我对CRF有了更深的理解~很多细节的部分其实文中并没有提到,希望我对模型结合部分的解释大家能够看得懂,有不正确的地方也请大家批评指正

6. 参考文献

  1. 原文:https://arxiv.org/pdf/1508.01991.pdf
  2. 这篇博客将BI-LSTM-CRF模型原理解释的非常清晰:https://createmomo.github.io/2017/09/12/CRF_Layer_on_the_Top_of_BiLSTM_1/
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值