题目
Multi-Grained Named Entity Recognition
多粒度命名实体识别
作者
University of Illinois at Chicago,Tencent Medical AI Lab,Alibaba Group,University at Buffalo,Zhejiang Lab
摘要
主要提出MGNER框架(Multi-Grained Named Entity Recognition).相对于一般的实体识别任务,MGNER发现与识别多跨度的实体,无论是非重叠的或者完全嵌套的。
它由检测器与分类器组成。检测器用来找出所有可能的词段,分类器用于对实体的分类。
另外,上下文信息与自关注机制应应用到整个框架中。
MGNER可识别的NER是不分是否重叠或完全嵌套的,全部通杀。
解决问题
一般的实体识别是一个序列标注任务,这个只解决非重叠性的NER问题,对于Nested的实体就无能为力了,可是在现实的情况,这种nested的情况占42%这样的比重;
MGNER的直观思想:首先检测多层粒度的实体,然后利用一个分类去对预定义好的分类进行分类。
MGNER包括五个模块:Word Processor, Sentence Processor, Entity Processor,
Detection Network, and Classifification Network.
模型【Detector && Classifier】
Word Processor: 主要是用来抽取每个token在语义层上的词表达;输入K个token(t1,t2,…,tk),输出的表达为
,其中wk是词embedding[GloVe],pk为POS嵌套,ck上字符级的嵌套[character LSTM]。
词表达输出结果为xk.
Sentence Processor:主要是学习一个句子的上下文表达,这个是语言的编码。
句子表达时,加入预训练模型ELMo,
其中,
句子表达的结果为fk.
Detection Network: 首先枚举所有的可能的word片段,然后识别哪里是实体,哪里不是实体。
这个引入了一个超参数R,这个参数表示实体的词的长度,用来平衡性能问题的。这里设置R=6,如下的枚举:
对于每个token,
损失函数:
Entity Processor:实体的表达,对句子的上下文C进行了关注网络的权重分配组合,权重计算为:
上下文组合:
实体表达的最终输出:
Classifification Network:
分类的损失函数:
数据集:
本任务:ACE-2004,ACE-2005
传统的NER任务:CoNLL-2003
实验结果:
对于一传统的连接性NER也是有很大的优势的:
总结
文章提出的方法思路还是比较清晰的,把实体识别过程分成两个阶段,这里看成是两个任务,一个任务把所有的token列出来,然后检测是否是一个实体;第二阶段,对于这些实体进行分类,把它们归属到预定义分类中。整体看起来,这个方法内容真的很多,感觉可以进一步去化简一下这个模型,另外,这里对于所以实体的枚举方法,是一个十分耗性能的一个环节,另外,论文对于R的选取值没有进行一个讨论,效果也性能都没有提及。
参考
[1] Xia, Congying, et al. “Multi-Grained Named Entity Recognition.” arXiv preprint arXiv:1906.08449 (2019).
[2] https://github.com/congyingxia/Multi-Grained-NER
happyprince, https://blog.csdn.net/ld326/article/details/108326503