Press "Enter" to skip to content

复旦大学邱锡鹏组:CNN-NER——极其简单有效的嵌套命名实体识别方法

 

©PaperWeekly 原创 · 作者 | 陆星宇

 

单位 | 复旦大学

 

研究方向 | 自然语言处理

 

本文介绍一下复旦大学 NLP 组的一篇新的 NER 论文。

 

 

论文标题:

 

An Embarrassingly Easy but Strong Baseline for Nested Named Entity Recognition

 

论文链接:

 

https://arxiv.org/abs/2208.04534

 

 

问题简介

 

命名实体识别(NER)是自然语言处理的一个基本任务,该问题考虑的识别并分类给定文本中表达对实体的引用的文本片段(span),也就是所谓的命名实体(NE)。

 

过去的命名实体识别主要考虑的是扁平命名实体识别(flat NER)。近年来有一些工作考虑了实体之间可能存在嵌套关系,由此对应地提出嵌套命名实体识别(nested NER)这一新任务,并尝试给出了一些解决方案。

 

具体来说,如下图(1)所示:“上海市红十字会”就是一个典型的包含嵌套命名实体的例子。其中“上海市”是地名、“红十字会”是组织名、“上海市红十字会”是组织名且嵌套了上述两个命名实体。

 

 

▲ 图(1) 嵌套命名实体示例

 

在嵌套命名实体识别任务中,虽然允许外层的命名实体嵌套内层的命名实体,但是并不允许命名实体之间的冲突(clash)。形象地说,就是不允许两个不同的命名实体之间首尾相交。

 

形式化地:

 

给定包含 个词的输入序列 ,嵌套命名实体识别任务旨在从输入序列 中提取出所有互不冲突的命名实体。其中每一个命名实体 可以被表示为三元组 , 和 分别表示其在序列中的起始和结束位置, 为实体类型, 为类型的总数。如下图(2)所示,我们定义实体 和实体 冲突当且仅当  或 。

 

 

▲ 图(2) 命名实体冲突

 

 

有关工作

 

过去一共主要有四类范式用来解决嵌套命名实体识别任务:

 

① 基于序列标注(sequence labeling)的框架;

 

② 基于超图(hypergraph)的框架;

 

③ 基于序列到序列(Seq2Seq)的框架;

 

④ 基于片段分类(span classification)的框架。

 

本文跟进了《 Named Entity Recognition as Dependency Parsing》这一论文的工作,同样采用了基于片段分类的解决方案。该论文提出采用起始和结束词来指明(pinpoint)对应片段,并利用双仿射解码器(Biaffine Decoder)来得到一个评分矩阵(score matrix),其元素(i , j)代表对应片段(开始位置为第 i 个词,结束位置为第 j 个词)为实体的分数。这一基于片段的方法在计算上易于并行,因此得到了广泛的采用。

 

考虑一共有 种不同类型的命名实体,对于每一个长度为 的输入序列,模型输出的评分矩阵的形状为 。

 

一方面我们可以将这个张量理解成一个 的方阵,其中方阵的每个位置的元素都是一个 维向量,可以用于表示该位置对应文本片段的命名实体类别分布。而这个 的方阵与输入序列的文本片段之间的映射是通过方阵元素的位置编码的,即使用方阵的第 i 行第 j 列的元素对应的 维向量来表示原输入序列的第 i 个词到第 j 个词组成文本片段对应的实体类别分布(在矩阵的下三角区域, ,对应的文本片段为第 j 个词到第 i 个词)。

 

下图(3)给出了一个形象的例子来帮助读者理解评分矩阵。

 

 

▲ 图(3) 对评分矩阵的解释

 

然而,本文作者在此基础上注意到了过往的工作忽视了相邻片段间的彼此联系,并通过对评分矩阵的观察分析发现了临近的片段具有非常明显的空间关联,如下图(4)所示:

 

 

▲ 图(4) 片段的空间关联图示

 

于是,本文作者提出可以从另一个方面将这个张量理解成一张通道数为 (因为并不将其理解为分布向量,所以无需拘泥于 维)、长宽为 的图片, 进一步采用计算机视觉领域常用的卷积神经网络(CNN)来建模这种空间联系,最终得到了一个简单但颇具竞争力的嵌套命名实体解决方案,作者将其命名为 CNN-NER。

 

 

模型介绍

 

接下来对本文提出的 CNN-NER 模型架构进行一个简要的介绍。

 

首先使用编码器(Encoder)如 BERT 对输入序列进行编码。在通过 BERT 等编码器获得了上下文有关的词嵌入(embedding)后,过去的工作通常会将其与静态的词嵌入以及字符级别的嵌入拼接起来并送入 BiLSTM 中获得聚合的词表示,但本文为了让模型架构比较简单,既没有采用更多的嵌入也没有额外引入 LSTM 层。

 

然后仿照之前的工作,采用了多头双仿射解码器(multi-head Biaffine Decoder)获取表示所有可能的片段对应的特征矩阵。

 

接下来,从维度上考察特征矩阵,可以将其视作多通道的图片,于是采用若干个常见的卷积块提取特征矩阵的空间特征。

 

最后,通过感知器(perceptron)和 Sigmoid 函数预测对应片段是命名实体的“概率”。其模型结构如下图(5)所示。训练的损失函数采用的是常见的二元交叉熵(BCE)。

 

 

▲ 图(5) CNN-NER模型结构图

 

本文使用了与之前工作相同的方法解码模型输出的概率,即采用如下的贪心选择:

 

首先丢弃所有预测概率低于 0.5 的片段,然后按照预测概率从高到低对片段进行排序,然后依次选择当前预测概率最高的片段,如果其不与之前已经解码出的命名实体冲突,则将该片段解码成一个新的命名实体,否则将其丢弃。如此迭代进行就得到了模型预测的输入序列的所有互不冲突的命名实体。

 

 

实验结果

 

为了验证 CNN-NER 的有效性,作者在 ACE2004、ACE2005 和 Genia 这三个被广泛使用的嵌套命名实体识别数据集上进行了实验, 并采用常见的准确率(Precession)、召回率(Recall)以及 F 值(F-score)作为评价指标。作者选取了最新的一些论文中提出的模型,例如 W2NER、Span-level Graph、Boundary Smoothing 等作为基线(baseline),并且 为了公平比较都各自采取了与对应论文完全相同的数据和预处理方式,并且均使用了相同的分句进行对比 。

 

 

 

CNN-NER 采用 RoBERTa-base 作为编码器,分别在 ACE2004、ACE2005 数据集上取得了 87.31 和 87.42 的平均 F1 值;采用 BioBERT-base 作为编码器,在 Genia 数据集上取得了 80.33 的平均 F1 值。此外从实验结果来看,采用不同的分句方式进行预处理会影响模型的性能,因此作者开源了一个统一的预处理脚本,用于呼吁和促进今后的工作进行更方便、更公平的比较。

 

最终实验结果表明:在使用相同或更少的模型参数的情况下,CNN-NER 在上述三个数据集上均达到或者超过了基线的性能(采用 F1 值作为评价指标)。

 

进一步的消融实验表明:CNN-NER 中采用 CNN 建模文本片段之间的联系的确能够显着提高基于片段分类的嵌套命名实体识别模型的性能,对片段的空间关系进行更好的建模可能成为未来嵌套命名实体识别的一个新的研究方向。

 

 

总结

 

总的来说,本文的贡献主要为:

 

1. 揭 示了相邻的片段彼此之间具有特殊的联系,因此提出采用卷积神经网络建模片段间的交互。 尽管非常简单,但这一改进在三个广泛使用的嵌套命名实体识别数据集上均取得了可观的性能提升。

 

2. 发现了不一致的数据预处理方式对性能有所影响,因此实现并公开了一个针对这三个常见嵌套命名实体数据集的预处理脚本,推动未来的工作进行更方便、更直接、更公平的性能比较。

 

3 .  将片段的特征矩阵视作图片这一新颖视角可以启发后续进一步探索基于片段的嵌套命名实体识别方法。

 

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注