论文解读系列 | 01:【NER】W2NER (AAAI 2022)

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,5000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 2022 AAAI论文《Unified Named Entity Recognition as Word-Word Relation Classification》介绍了一个统一NER的SOTA模型W2NER,该模型在14个包含**扁平实体、重叠实体和非连续**实体的数据集(8个英文 + 6个中文)上,均取得了**SOTA**的结果(F1指标)。W2NER将NER问题视为词词关系分类,为此引入两种词词关系:NNW(Next-Neighboring-Word)和 THW-\*(Tail-Head-Word-\*)。具体而言,构造一个 2D 的词词关系网格。

更多、更及时内容欢迎微信公众号围观:小窗幽记机器学习

基本信息

论文标题:
Unified Named Entity Recognition as Word-Word Relation Classification

论文地址:
https://arxiv.org/abs/2112.10070

论文代码:
https://github.com/ljynlp/W2NER

简介

NER 任务主要有三种类型:Flat(扁平)、overlapped(重叠或嵌套)、discontinuous(非连续),越来越多的研究致力于将它们统一起来。此前的 SOTA方案主要基于 Span 和 Seq2Seq 模型, 不过这类方法很少关注边界,可能会导致后续的偏移。2022 AAAI的论文《Unified Named Entity Recognition as Word-Word Relation Classification》介绍了一个统一NER的SOTA模型W2NER,该模型在14个包含扁平实体、重叠实体和非连续实体的数据集(8个英文 + 6个中文)上,均取得了SOTA的结果(F1指标)。W2NER将NER问题视为词词关系分类,为此引入两种词词关系:NNW(Next-Neighboring-Word)THW-*(Tail-Head-Word-*)。具体而言,构造一个 2D 的词词关系网格,然后使用多粒度 2D 卷积以更细致地抽取网格表示。最后,使用一个 共同预测器(co-predictor) 来推理词-词关系。

多类型NER抽取方法

多类型NER抽取方法大致可以分为4种:

  1. 序列标注方法
  2. 基于超图
  3. 基于sequence-to-sequence的生成方法
  4. 基于span的方法,比如指针网络或token 对的形式

1). 基于序列标注

序列标注方法比较常用,给每一个 Token 一个标签(比如BIO标注标准中的一个标签)。输入序列会使用已有的表征框架(如 CNN、LSTM、Transformer等) 表征成序列特征,再过一层CRF以得到各个Token的标签结果。对于多类型NER,可以将「多分类」改为「多标签分类」或将多标签拼成一个标签。前者不容易学习,而且预测出来的 BI 可能都不是一个类型的;而后者则容易导致标签增加,且很稀疏。虽有不少研究,比如《A Neural Layered Model for Nested Named Entity Recognition》提到的动态堆叠平铺 NER 层来识别嵌套实体;《Recognizing Continuous and Discontinuous Adverse Drug Reaction Mentions from Social Media Using LSTM-CRF》的 BIOHD 标注范式(H 表示多个实体共享的部分,D 表示不连续实体中不被其他实体共享的部分),注意 H 和 D 都是实体的 Label,标注时会和 BI 结合使用,如 DB,DI,HB,HI。但总的来说较难设计一个不错的标注 Scheme。

序列标注方法可以很好解决扁平实体的问题,对于嵌套实体通过修改标注可以勉强解决,但是会增加模型复杂度;而面对不连续实体序列标注方法无法解决。所以在只存在扁平实体的情况下,可以选择序列标注的方法,这边推荐一下复旦邱锡鹏老师团队的tener方法,使用transofrmer改进结构的模型。

2). 基于超图
基于超图的方法首次在《Joint Mention Extraction and Classification with Mention Hypergraphs》中提出,用于解决重叠NER问题,后续也被用于不连续实体。这类方法在推理时容易被虚假结构和结构歧义问题影响。

3). 基于 Seq2Seq

seq2Seq用于NER首次出现于《Multilingual Language Processing From Bytes》,输入句子,输出所有实体的开始位置、Span 长度和标签。其他后续应用包括:

  • 使用增强的 BILOU 范式解决重叠 NER 问题。
  • 基于 BART 通过Seq2Seq+指针网络生成所有可能的实体开始-结束位置和类型序列。

但是这种方法存在解码效率低Seq2Seq架构固有的暴露偏差(exposure bias)问题。所谓暴露偏差问题是指训练时使用上一时间步的真实值作为输入;而预测时,由于没有标签值,只能使用上一时间步的预测作为输入。由于模型都是把上一时间步正确的值作为输入,所以模型不具备对上一时间步的纠错能力。如果某一时间步出现误差,则这个误差会一直向后传播。

4). 基于Span

基于 Span 的方法将 NER 问题转为 Span 级别的分类问题,具体方法包括:

  • 枚举所有可能的 Span,再判断他们是否是有效的 Mention。
  • 使用 Biaffine Attention 来判断一个 Span 是 Mention 的概率。
  • 将 NER 问题转为 MRC 任务,提取实体作为答案 Span。
  • 两阶段方法:使用一个过滤器和回归器生成 Span 的建议,然后进行分类。
  • 将不连续的 NER 转为从基于 Span 的实体片段图中找到完整的子图。

这类方法全枚举所有可能spans,因此受到最大span长度和模型复杂度的影响,尤其是对于长span实体。

总的来说,简单的NER 任务目前一般使用序列标注就可以解决,多类型NER效果较好的还是基于 Span 的方法。

NER->词词关系分类

现有大多数NER工作主要考虑更准确的实体边界识别,W2NER作者在仔细重新思考了三种不同类型NER的共同特征后,觉得统一 NER的瓶颈更多在于实体词之间相邻关系的建模。这种邻接相关性本质上描述了文本片段之间的语义连通性,尤其对于重叠和不连续的部分起着关键作用。如下图 a 所示:

image.png

因此,文章提出一种词-词关系分类架构——W2NER,通过对实体边界和实体词之间相邻关系进行建模。具体来说,预测两种类型的关系,如上图 b 所示。

  • NNW:这类关系可以解决实体词识别,指示两个 Token 在一个实体中是否相邻。比如aching-> in

  • THW-*:这类关系主要用以检测实体边界和和实体类型,指示两个 Token 是尾部还是头部, * 标签则对应实体的类型。比如legs->aching, Symptom,意味着尾部是legs,头部是aching,实体类型是Symptom

那W2NER如何将NER问题转为词-词关系分类问题?以下为例:

image.png

词之间的关系包括以下几种类型:

  • NONE:表示词对之间没有任何关系
  • NNW:词对属于一个实体 Mention的一部分,网格中特定行的 token 在列中有一个连续的 token
  • THW-*:THW 关系表示网格中 token 是一个实体 mention 的尾部,网格中 token 是一个实体 mention 的头部* 表示实体类型。

Figure 1中的例子的网格化结果如Figure 2 所示。Figure 1 中的两个实体:aching in legsaching in shoulders,可以通过Figure 2 中的 NNW 关系(aching→in)、(in→legs)和(in→shoulders)和 THW 关系(legs→aching,Symptom)和(shoulders→aching,Symptom)解码得出。

而且NNWTHW关系还暗示 NER 的其他影响,比如NNW关系将同一不连续的实体片段关联起来(如 aching in 和 shoulders),也有利于识别实体词(相邻的)和非实体词(不相邻的)。至于THW关系则有助于识别实体的边界。

W2NER模型框架

整体的网络架构如下图所示:

image.png

总的来说,W2NER由3部分组成。首先用 BERT 和 LSTM 抽取输入句子的上下文特征,然后过一个2D 卷积层对词-词关系进行建模和表征,以用于后续的词对关系分类。最后再过一个联合预测器(Co-Predictor)对词-词关系进行推理并产生所有可能的实体 Mention,其中 Biaffine 分类器和 MLP 被联合使用以获得更好的词对分类结果。

Encoder Layer:

  1. 输入 Bert ,得到 sub-word representation(因为英文使用 word piece的方式,每个token都会被分割成word piece)
  2. 使用 max pooling 得到 word representations
  3. 输入到 Bi-LSTM 得到最终 word representations

Convolution Layer:
Encoder层之后接的是卷积层以进一步对抽取的特征进行细化,因为 2D 卷积能很好地处理二维的网格关系,具体又包括三个模块:

  • Conditional Layer Normalization(CLN),即带归一化的condition layer。使用CLN以生成词对表示
  • BERT 风格的网格表征以进一步丰富词对表示
  • 多粒度膨胀卷积以捕获远近词之间的交互

CLN 部分:
$$
\mathbf{V}{i j}=\operatorname{CLN}\left(\mathbf{h}{i}, \mathbf{h}{j}\right)=\gamma{i j} \odot\left(\frac{\mathbf{h}{j}-\mu}{\sigma}\right)+\lambda{i j} \
\gamma{ij} = \mathbf{W}{\alpha} hi + \mathbf{b}{\alpha} \
\lambda{ij} = \mathbf{W}{\beta} hi + \mathbf{b}{\beta} \
\mu=\frac{1}{d{h}} \sum{k=1}^{d{h}} h{j k}, \
\quad \sigma=\sqrt{\frac{1}{d{h}} \sum{k=1}^{d{h}}\left(h{j k}-\mu\right)^{2}}
$$

其中$\mathbf{V}$是单词对表征矩阵,$\mathbf{V}_{i,j}$可以看作词$x_i$ 和$x_j$ 的词表征($\mathbf{h}_i$ 和 $\mathbf{h}_j$)的组合。由于NNWTHW具有方向性,所以可以将$x_i$视为$xj$的条件。$\gamma{ij}$和$\lambda_{ij}$是超参数,而$\mathbf{h}i$是这2个参数的条件。$\mu$和$\sigma$分别是均值和标准差,而$h{jk}$表示$\mathbf{h}_j$的第$k$个维度。

BERT-Style的网格表示效仿BERT的3种表征,也对应引入3种张量表示:词信息(CLN)表征(对应BERT中的token embedding) 、词对的相对位置信息(对应BERT中的 position embedding)和用于区分网格上下三角的区域信息(对应BERT中的 segment embedding)。其中表示词信息的表征来自于前一个模块CLN的输出结果,即$\mathbf{V}$。而词对之间相对位置关系$\mathbf{E}^d$和区域信息$\mathbf{E}^t$。

再将3个张量拼接输入到MLP层进行降维和信息融合,以此得到网格表征,至此网格表征具有位置-区域敏感的特点。再接一个多粒度膨胀卷积(粒度=1,2,3),用以捕获不同距离词的交互信息。最后将三个膨胀卷积结果拼起来得到最终的词对网格表征$\mathbf{Q}$。

Co-Predictor Layer:
这个步骤主要是利用MLP对上述卷积层得到的网格表征预测词对关系。由于之前的研究表明使用双仿射预测器(Biaffine Predictor)可以提升MLP预测器在关系分类上的性能,所以文章也使用2个Predictor进行词对的关系分类,然后合并后作为最后输出结果。

1) Biaffine Predictor
词对$(x_i,xy)$之间的Biaffine分类器关系得分计算如下:
$$
\begin{aligned}
\mathbf{s}
{i} &=\operatorname{MLP}{2}\left(\mathbf{h}{i}\right) \
\mathbf{o}{j} &=\operatorname{MLP}{3}\left(\mathbf{h}{j}\right) \
\mathbf{y}
{i j}^{\prime} &=\mathbf{s}{i}^{\top} \mathbf{U o}{j}+\mathbf{W}\left[\mathbf{s}{i} ; \mathbf{o}{j}\right]+\mathbf{b}
\end{aligned}
$$
其中$\mathbf{s}_i$和 $\mathbf{o}_j$ 分别表示第$i$和第$j$个词的主语表征和宾语表征。注意:计算$\mathbf{s}_i$和$\mathbf{o}_j$的输入就是前面的词表征,即是$h$而不是卷积后的结果,卷积这部分特征被丢给了MLP Predictor。

2) MLP Predictor
对于卷积层得到的特征结果$\mathbf{Q}$再使用一个MLP计算词对之间的关系得分:
$$
\mathbf{y}{i j}^{\prime\prime}=\operatorname{MLP}(\mathbf{Q}{ij})
$$

词对关系最终的概率得分:
$$
\mathbf{y}{i j}=\operatorname{Softmax}( \mathbf{y}{i j}^{\prime} + \mathbf{y}_{i j}^{\prime\prime})
$$

Decoding:
模型最终得到的结果是词和词之间的关系(既需要确定词的边界,也需要确定词之间的关系),可以看作有向图。Decoding的目标是使用 NNW 关系在图中查找从一个单词到另一个单词的某些路径。每条路径对应于一个实体 Mention。THW信息一方面有助于识别 NER的类型和边界,另一方面还可以用作消除歧义的辅助信息。

image.png

如Figure 4所示几个例子:

  • a:两条路径对应平铺的实体,THW 关系表示边界和类型。

  • b:如果没有 THW 关系,则只能找到一条路径(ABC),而借助 THW关系 可以找到嵌套的 BC。

  • c:包含两条路径:ABC 和 ABD,NNW 关系有助于连接不连续的span AB 和 D。

  • d:如果只使用 THW 关系,将会识别到 ABCD 和 BCDE,如果只使用 NNW 则会找到四条路径,结合起来才能识别到正确的实体:ACD 和 BCE。

Loss:
$$
\mathcal{L}=-\frac{1}{N^{2}} \sum{i=1}^{N} \sum{j=1}^{N} \sum{r=1}^{|\mathcal{R}|} \hat{\mathbf{y}}{i j}^{r} \log \mathbf{y}_{i j}^{r}
$$

$N$ 表示句子中词数,$\hat{y}$是二元向量表示词对的真实关系 Label,$y$ 是预测的概率,$r$ 表示预先定义的关系集合中的第 r 个关系。可以看出,整个就是个词对分类问题。

小结

文章基于词-词关系分类,提出一个统一的实体框架 W2NER,关系包括 NNW 和 THW。框架在面对各种不同的 NER 时非常有效。另外,通过消融实验,发现以卷积为中心的模型表现良好,其他几个模块(网格表示和共同预测器Co-Predictor)也是有效的。总的来说,文章更加关注边界词和内部词之间的关系,另外 2D 网格标记方法也可以大大避免 Span 和序列标注模型中的缺点。

相关文章
|
2月前
|
自然语言处理 索引
使用BERT进行情感分析
【10月更文挑战第2天】
|
7月前
|
机器学习/深度学习 自然语言处理 PyTorch
[ELMo]论文实现:Deep contextualized word representations
[ELMo]论文实现:Deep contextualized word representations
58 1
|
机器学习/深度学习 自然语言处理 安全
Bert on ABSA、ASGCN、GAN、Sentic GCN…你都掌握了吗?一文总结情感分析必备经典模型(1)
Bert on ABSA、ASGCN、GAN、Sentic GCN…你都掌握了吗?一文总结情感分析必备经典模型
155 0
|
机器学习/深度学习 数据采集 自然语言处理
【Deep Learning A情感文本分类实战】2023 Pytorch+Bert、Roberta+TextCNN、BiLstm、Lstm等实现IMDB情感文本分类完整项目(项目已开源)
亮点:代码开源+结构清晰+准确率高+保姆级解析 🍊本项目使用Pytorch框架,使用上游语言模型+下游网络模型的结构实现IMDB情感分析 🍊语言模型可选择Bert、Roberta 🍊神经网络模型可选择BiLstm、LSTM、TextCNN、Rnn、Gru、Fnn共6种 🍊语言模型和网络模型扩展性较好,方便读者自己对模型进行修改
629 0
|
机器学习/深度学习 自然语言处理 数据挖掘
Bert on ABSA、ASGCN、GAN、Sentic GCN…你都掌握了吗?一文总结情感分析必备经典模型(2)
Bert on ABSA、ASGCN、GAN、Sentic GCN…你都掌握了吗?一文总结情感分析必备经典模型
257 1
|
机器学习/深度学习 自然语言处理
论文解读系列| 02:【NER】MarkBERT
MarkBERT 是一种考虑如何将词信息引入到模型的NER方案。MarkBERT基于字的模型,但巧妙地将词的边界信息融入模型,具体操作是将词之间插入边界marker。出现边界marker意味着前一个字符是词的尾部字符,而紧接着的字符是另一个词的起始字符。如此可以统一处理所有词,不存在词的OOV问题。
|
机器学习/深度学习 移动开发 知识图谱
论文解读系列| 03:【NER】FGN模型详解
汉字作为象形文字有其潜在的特殊字形信息,而这一点经常被忽视。FGN是一种将字形信息融入网络结构的中文NER方法。除了用一个新型CNN对字形信息进行编码外,该方法可以通过融合机制提取字符分布式表示和字形表示之间的交互信息。
|
机器学习/深度学习 自然语言处理 算法
论文解读系列| 05:【NER】SoftLexicon模型详解
SoftLexicon是一种简单而有效的将词汇信息纳入字符表示的方法。这种方法避免设计复杂的序列建模结构,并且对于任何NER模型,它只需要细微地调整字符表示层来引入词典信息。在4个中文NER基准数据集上的实验结果表明,该方法的推理速度比现有SOTA方法快6.15倍,性能更好。
|
机器学习/深度学习 自然语言处理 资源调度
论文解读系列| 06:【NER】LatticeLSTM模型详解
Lattice LSTM模型是基于词汇增强方法的中文NER的开篇之作。在该模型中,使用了字符信息和所有词序列信息,具体地,当我们通过词汇信息(词典)匹配一个句子时,可以获得一个类似Lattice的结构。这种方式可以避免因分词错误导致实体识别错误,在中文NER任务上有显著效果。
|
机器学习/深度学习 人工智能 自然语言处理
Unsupervised NMT、PBSMT、coarse-to-fine...你都掌握了吗?一文总结机器翻译必备经典模型(3)
Unsupervised NMT、PBSMT、coarse-to-fine...你都掌握了吗?一文总结机器翻译必备经典模型
207 0