飞道的博客

Chinese NER Using Lattice LSTM论文笔记

439人阅读  评论(0)

如何帮助理解本文

了解Basic LSTM的基本原理,最好能进行公式的推导

什么是命名实体识别?

命名实体识别(Named Entity Recognition,NER)是NLP中一项非常基础的任务。NER是信息提取、问答系统、句法分析、机器翻译等众多NLP任务的重要基础工具。命名实体识别的准确度,决定了下游任务的效果,是NLP中非常重要的一个基础问题。举个例子:

命名实体识别的任务就是从文本中自动提取出各种类型的命名实体,如上图的人名实体、机构实体、地点实体等。
**

中文命名实体识别的两种方案

**
1.基于中文字的方法
即以每一个中文字为一个单位进行标注和训练,不需要对文本进行分词,但是基于字符的方案存在无法利用词与词之间的语义信息,影响了命名实体识别的效果。

如上图所示,首先将字符通过Embedding生成对应的向量,即x,然后通过特征提取网络如双向LSTM模型生成c,在通过CRF进行解码输出最后的结果。

2.基于中文词的方法
即以中文词为一个单位进行标注和训练,需要首先对文本进行分词,再形成对应的词向量,这种方法考虑了词语的语义信息,但是分词错误会造成NER识别的效果,例如对于 “南京市长江大桥”,正确的分词应该为 “南京市” “长江大桥”,但是如果分词分为“南京” “市长” “江大桥”,就会影响到命名实体划分的边界判断从而影响到NER的效果。

那么如何避免分词造成的错误又可以充分利用词语的语义信息,作者提出了一种新的模型结构Lattice LSTM(网格的LSTM),如下图:

Lattice LSTM是在基于字方法的基础上融合了词语的语义信息,首先作者提出了一个具有先验信息的词典D,词典中的此覆盖的实体数量越多,对模型的效果越好,对一个输入的文本,首先从词典中匹配出这句话中的词,词典中包含的词全部提取出来,为了提升检索效率,文章采用了一种树形结构进行检索,trie,(来自retrieval), 又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点所对应的键才有相关的值。树结构如下图所示:

对于字符信息采取与基于字的方法提取特征,对于从字典中匹配的词如何融入到字单元中的呢?(本文的重点)例如“南京”这一个词,会将南京的词信息融入到最后一个字的cell里面即“京”的cell中,每一个词在LSTM中会形成一个通路,当然并不是所有的词都要融入进去,具体哪一个词融入到字符信息中去由模型自己来学习到。这里有一点就是每一个词信息的通路在模型中会增加一个门控单元来控制是否将词信息融入进去,图中并没有画出。

对于南京市长江大桥这句话对应的字粒度和词粒度表如上图所示。

实验结果与结论


Lattice LSTM在OntoNotes、MSRA、Weibo等数据集上均超过了基于字和基于词的方法,达到了State of the art的结果。

Lattice LSTM模型随着句子长度的增加,F1降低较少证明模型效果在句子长度方面的鲁棒性更强。

Lattice LSTM能更好的利用词典中的信息,上表是相较于基于字的方法随着词典覆盖实体数目的增加错误率也随之下降。

关键点、创新点

1.有效利用词典进行增强
2.解决了中文NER的边界划分问题
3.NER的识别效果不依赖于分词
4.引入Lattice LSTM结构
5.融合字词的动态表示

本文的缺点

1.因为增加了一个额外的memory cell来存储词信息,训练测试效率低。
2.迁移相差,Lattice LSTM是LSTM模型的改造,避免不了LSTM不能并行化的缺点。
3.虽然融合词信息,但依然存在信息缺失的现象,只把词信息融合到词的结尾,例如南京市,只有“市”利用了词信息,而南和京并没有利用到。

以上是个人学习笔记,笔者不才,存在疏漏或者错误的地方多多指正,一起讨论,共同进步!


转载:https://blog.csdn.net/qq_38957497/article/details/115681315
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场