An Embarrassingly Easy but Strong Baseline for Nested Named Entity Recognition
ACL2022,复旦大学
总览
实体跨度有重叠的叫做nested entity,nested ner
经常使用的解决方法:span based method
这种方式忽略了分数矩阵中的空间关系
贡献
本文使用cnn对分数矩阵的空间关系进行建模
简单但是高效
相邻跨度之间具有特殊的相关性
提出针对三个嵌套的NER数据集的预处理脚本
将SPAN特征矩阵看作一幅图像
背景,相关工作
序列标注无法解决嵌套命名实体问题
mrc,pooling method span matrix,biaffine decoder
center span和周围span有特殊关系
Biaffine解码器(Dozat和Manning,2017)来获得3D特征矩阵,其中每个条目代表一个跨度。然后,我们将该特征矩阵看作一幅图像,并利用卷积神经网络(CNN)对跨度之间的局部相互作用进行建模。
矩阵布局:
- 矩阵中标注了句子中的词汇:Is₁ New₂ York₃ University₄ in₅ United₆ States₇。
- 列和行分别表示片段的起始和结束词汇。
片段表示:
- 矩阵中的每个单元格 (i,j) 代表从词汇 i 开始,到词汇 j 结束的片段。
- 例如,单元格 (2-4) 表示片段 “New York University”。
图例:
- o(中心片段):正在检查的中心片段。
- a(后端词汇与中心片段冲突):与中心片段的结束部分重叠的片段。
- b(前端词汇与中心片段冲突):与中心片段的起始部分重叠的片段。
- c(包含中心片段):包含整个中心片段的片段。
- d(被中心片段包含):完全在中心片段内的片段。
- e(无冲突):与中心片段不重叠的片段。
图例说明:
- 说明了如何阅读片段及其关系。例如,片段 “New York” (2-3) 被包含在片段 “New York University” (2-4) 内。
- 矩阵中用不同颜色和注释来表示不同的关系。
示例:
- 片段 (1-3) “Is New York” 被标注为 a,因为它与中心片段的结束部分重叠。
- 片段 (2-3) “New York” 被标注为 d,因为它被中心片段包含。
- 片段 (2-4) “New York University” 被标注为 o,因为它是中心片段。
- 片段 (2-5) “New York University in” 被标注为 c,因为它包含中心片段。
标注方式
BIO or Span?谁才是NER任务的天花板——BIO篇 - 墨天轮 (modb.pro)
一元标注
BIO方法的本质就是使用序列标注的思想来做命名实体识别,而序列标注的方案一般都是使用[B、I、O]或者[B、I、O、E、S]来表示每个标签的类别。
- BIO:B 即 begin ,表示实体开始的字符,I 即 inside,表示为实体的一部分,O 即 outside,表示不是实体字符。
- BIOES:E 即 end,表示实体字符的结束,S 即 single, 表示单个字为实体。
当然表示方式多种多样,也有将标签扩充成更多类别的标注方案,但是本质上都是序列标注的思想,来预测每个token的类别,这里就不展开了。BIO方法应该是在做NER任务的入门方法,因为它十分简单,直接预测每个token的类别来达到识别实体的目的,一般的做法是通过模型去编码token的上下文的语义信息来达到对这个token进行预测,早期的做法是用bi-lstm去编码文本,然后接softmax进行分类,随着预训练模型的快速发展,现在的BIO方法的baseline一般都是 BERT + CRF + softmax,CRF(条件随机场)主要是对那些预测不合理的token类别进行一个纠正,比如说BIOES标注方案中的某个token被预测为B标签,其后面的token就不能被预测为S标签了。
指针标注
span多头标注
任务定义,具体方法和模型
实体可以相互重叠,但不同的实体不能有交叉边界”的描述,这实际上是一种较为特殊的情况,它介于上述两种情况之间。在这种情况下,实体可以有部分重叠,但重叠的部分必须是完整包含的关系,即一个实体完全包含在另一个实体中,或者两个实体之间没有重叠,不允许出现两个实体边界交叉的情况。这种规则确保了实体边界的清晰性和一致性,避免了实体识别中的歧义。
对于一个有n个标记的句子,有n(n+1)/2个有效跨度。
基于Juntao Yu, Bernd Bohnet, and Massimo Poesio. 2020. Named entity recognition as dependency parsing.提出的方法
该方法将ner问题转换为跨度分类问题,每个有效跨度都有一个实体标签
首先使用编码器(encoder)编码输入
H = Encoder(X),
H ∈ Rn×d,d is the hidden size
使用bert,For the
word tokenized into several pieces, we use max-
pooling to aggregate from its pieces’ hidden states.
没有将特征输入biltsm等,之后使用multi-head Biaffine de-
coder获取score matrix
数据集结果
ACE2005,2004,Genia三个数据集
baseline:“W2NER”, “SG” and “Triaffine"
BioBERT-base
AadmW optimizer
transformers package for the pre-
trained model
超参数:
总结,思考
性能提高可能是因为cnn找到了更多的嵌套实体
过CNN利用相邻跨度之间的空间相关性可以帮助建模找到更多嵌套实体。实验表明,不同的标记化确实会影响性能。因此,有必要确保所有比较基线使用相同的标记化。为了便于以后的比较,为三个嵌套的NER数据集发布了一个新的预处理脚本。
对cnn加注意力机制,上下文等,提高准确度
如果不是完整包含的实体???
需要去看看multi-head双仿射变换的论文和讲解,需要看一看之前的span工作,比如w2ner等