融合异构因子与 Triaffine 机制用于嵌套命名实体识别

2022-04-06
5分钟阅读时长

嵌套实体由于其组合性而在许多领域中出现,目前广泛使用的序列标记框架难以识别嵌套实体。一个自然的解决方案是将任务视为词区间(Span)分类问题。为了学习更好的跨表示和提高分类性能,有效地集成可能有助于嵌套实体识别的内部标记、边界、标签和相关跨度等异构因素是至关重要的。为了融合这些异质因素,我们提出了一种新的三仿射机制,包括三仿射注意和评分。三仿射注意使用边界和标签作为查询,并使用内部标记和相关 span 作为键和跨度表示的值。三仿射评分与分类的边界和词区间表示相互作用。

1、介绍

命名实体识别(Named Entity Recognition,NER)是从文本中提取实体的自然语言处理基础任务。

image-20220401111309045

图 1:一个 GENIA 数据集中的嵌套实体示例句子。

本文的贡献主要概括为以下三点:

  • 提出异构因子(标记(Token)、边界(Boundaries)、标签(Label)、相关词区间(Related Spans))应该被考虑进 span-based 的嵌套实体识别中。
  • 本文提出了一种基于三仿射机制的三仿射分类方法,该方法融合了上述非均匀因子的跨度表示和分类。
  • 实验表明我们提出的方法比现有的 span-based 方法获得了更好的表现,并在 GENIA 和 KBP17 数据集上达到了领先水平(State-of-the-arts,SoTA)。

2、相关工作

嵌套命名实体识别的方法并没有一个统一的范例。本文主要关注的是 Span-based 方法,因为它跟本文更加接近。

代码和模型在在:https://github.com/GanjinZero/Triaffine-nested-ner

3、提出的方法

image-20220401111653777

图 2:网络的总体架构图。绿色立方体表示三仿射注意力。蓝色方块表示三仿射得分。橙色箭头表示边界信息。蓝色箭头表示内部标记或相关的区间信息。对于每个词区间,我们有黄色的头部和尾部表示,以及不同颜色的标签级别词区间表示。灰色表示 None 类。

image-20220401111754036

图 3:三仿射注意力,三仿射得分,以及 三仿射得分分解的可视化

3.1、三仿射变换(Depp Triaffine Transformation )

三仿射定义是,通过输入三个向量 $\mathbf{u}、\mathbf{v}、\mathbf{w}\in \mathbb R^d$ 和一个张量 $\mathcal{W}\in \mathbb R^{d+1}\times\mathbb R^d \times \mathbb R^{d+1}$ ,应用 MLP 转换输入向量,然后计将向量和张量乘法输出一个标量。拼接的常量 1 是为了保留双仿射转换信息。 $$ \mathbf{u}'=\begin{bmatrix} \text{MLP}_a(\mathbf{u}) \\ 1 \end{bmatrix},\mathbf{v}'=\begin{bmatrix} \text{MLP}_c(\mathbf{v}) \\ 1 \end{bmatrix} \tag 1 $$

$$ \mathbf{w}'=\text{MLP}_b(\mathbf{w}) \tag 2 $$ $$ \text{TriAff}(\mathbf{u},\mathbf{v},\mathbf{w},\mathcal{W})=\mathcal{W}\times_1 \mathbf{u}' \times_2 \mathbf{w}'\times_3 \mathbf{v}' \tag 3 $$

其中 $\times_n$ 是模式 n 的向量乘法,$\text{MLP}_t$ 是 $t$ 层 MLP ($\text{MLP}_0$ 相当于恒等映射)。张量 $\mathcal{W}$ 是使用高斯分布均值为 0 方差为 $\sigma^2$ 初始化。本论文提出的方法中,$\mathbf{u}$ 和 $\mathbf{v}$ 代表的是头和尾的边界表示。$\mathbf{w}$ 代表的是词区间表示。三仿射注意力和仿射得分分别表示为 $\{\mathcal{W}_r\}$,$\{\mathcal{V}_r\}$,它们将注意力权重和不同的标签的得分分开。

3.2、文本编码(Text Encoding)

对于输入文本 $X=[x_1,x_2,\dots,x_N]$ 的 N 个 词,第一步使用预训练模型生成上下文嵌入 $X^c_i$, $$ X^c_i,x^c_2,\dots,x^c_N = \text{PLM}(x_1,x_2,\dots,x_N) \tag 4 $$ 然后,将上下文嵌入 $x^c_i$ 和词嵌入 $x^w_i$,声音嵌入 $x^p_i$ 和字符嵌入 $x^{ch}_i$ 进行拼接,然后输入到 BiLSTM 得到词表示 $\{h_i\}$。

3.3、词区间表示的三仿射注意力(Triaffine Attention for Span Representations)

为了融合不同的因素以获得更好的此区间表示,本文提出了三仿射注意机制(图 3)。为了将词与标签以及边界交互,我们使用三仿射注意力 $\alpha_{i,j,k,r}$ 和区间 $(i,j)$ 学习标签级别的区间表示 $h_{i,j,r}$:

$$ \begin{align} s_{i,j,k,r} &=\text{TriAff}(\mathbf h_i,\mathbf h_j,\mathbf h_k,\mathcal{W}_r)\tag 5\\ \alpha_{i,j,k,r} &=\frac{\exp(s_i,j,k,r)}{\sum^j_{k'=i}\exp(s_i,j,k',r)}\tag 6 \\ \mathbf h_{i,j,r} &=\sum^j_{k=i}\alpha_{i,j,k,r}\text{MLP}(\mathbf h_k) \tag 7 \end{align} $$

边界表示 $(\mathbf h_i,\mathbf h_j)$ 和标签级别参数 $(\mathcal W)$ 可以看作注意力的 Queries,然后词($\mathbf h_k$)可以看作 Keys 和 Values。和一般的注意力机制(加法或乘法注意力)相比,三仿射注意力在异构 Queries 和 Keys 上允许高阶交互。

3.4、交叉区间表示的三仿射注意力(Triaffine Attention for Cross-span Representations)

受在嵌套设置中区间级别交互的启发,我们融合了相关区间的信息到交叉区间的表示中。我们把区间的边界和标签看作是注意的 Queries,相关区间(包含自身)看作是 Keys 和 Values 来获得交叉区间表示。跟式 (7) 类似,我们使用三仿射注意力 $\beta_{i,j,g,r}$ 获取区间 $(i,j)$ 的交叉区间表示 $h^c_{i,j,r}$。

$$ \begin{align} q_{i,j,g,r} &=\text{TriAff}(\mathbf h_i,\mathbf h_j,\mathbf h_{i_g,j_g,r},\mathcal W_r) \tag 8 \\ \beta_{i,j,g,r}&=\frac{\exp(q_{i,j,g,r})}{\sum_{g'}\exp(q_{i,j,g',r})} \tag 9\\ \mathbf h^c_{i,j,r}&=\sum_g\beta_{i,j,g,r}\text{MLP}(\mathbf h_{i_g,j_g,r}) \tag{10} \end{align} $$

其中 $\left\{(i_g,j_g)\right\}$ 是相关区间,一个可以枚举所有区间的相关的区间,我们将在第 3.6 章节介绍如何选择它们。

3.5、区间分类的三仿射得分(Triaffine Scoring for Span Classification)

为了对区间进行实体分类,我们在交叉区间表示的基础上计算了标签级别的分数。由于边界信息已经在前人(Yu et al., 2020; Fu et al., 2021)的工作中被证明是有效的,我们在区间分类上通过三仿射得分直接利用了边界信息和交叉区间表示。特别地,我们为标签 $r$ 使用边界 $\mathbf h_i,\mathbf h_j$ 和交叉区间表示 $\mathbf h^c_{i,j,r}$ 评估了区间 $(i,j)$ 的对数概率 $p^c_{i,j,r}$ 。 $$ p^c_{i,j,r}=\text{TriAff}(\mathbf h_i,\mathbf h_j,\mathbf h^c_{i,j,r},\mathcal V_r) \tag{11} $$ 由于 $\mathbf h^c_{i,j,r}$ 是由 $\mathbf h_{i_g,j_g,r}$ 组成的,因此当且仅当在 $\mathbf h^c_{i,j,r}$ 上的 MLP 转换层是 0 的时候,我们可以分解式(11)为下面的形式:

$$ \begin{align} t_{i,j,g,r}&=\text{TriAff}(\mathbf h_i,\mathbf h_j,\mathbf h_{i_g,j_g,r},\mathcal V_r) \tag{12} \\ p^c_{i,j,r}&=\sum_g\beta_{i,j,g,r}t_{i,j,g,r} \tag{13} \end{align} $$

图(3b)和(3c)展示了三仿射得分机制和这个分解。我们同时也应用类似的分解在辅助区间分类任务上,它应用三仿射得分在边界表示和中间区间表示 $\mathbf h_{i,j,r}$ 上来评估对数概率 $p_{i,j,r}$ 作为中间预测。

3.6、训练和推理

在实践中,考虑所有区间之间的交互既昂贵又无信息价值。因此,我们提出了一个辅助任务来对中间区间表示进行分类。然后,我们基于最大对数概率 $p_{i,j}=\max^R_{r=1}p_{i,j,r}$ 进行排行,然后保留 top-$m$ 个区间 $\{(i_l,j_l)\}^m_{l=1}$ 作为候选。我们通过考虑保留下来的区间所有的交互来计算交叉区间表示 $\mathbf h^c_{i_l,j_l,r}$,再评估分类 logits $p^c_{i_l,j_l,r}$ 。因此,在我们的模型中有个两组预测 $\{p_{i,j,r}\}_{i\le i\le N}$ 和 $\{p^c_{i_l,j_l,r}\}_{1\le l \le m}$。$\{p_{i,j,r}\}$ 是从所有可能的区间计算来的,而 $\{p^c_{i_l,j_l,r}\}$ 只是从 top-$m$ 区间计算来的。

在训练阶段,我们联合最小化两组交叉熵损失:

$$ \begin{align} \mathcal L_{aux} &= -\frac1{N(N+1)}\sum_{i,j}\log\frac{\exp(p_{i,j,r_{ij}})}{\sum_r\exp(p_{i,j,r})} \tag {14}\\ \mathcal L_{main} &= -\frac1m\sum_{1\le l \le m}\log\frac{\exp(p^c_{i_l,j_l,r_{i_l,j_l}})}{\sum_r\exp(p^c_{i_l,j_l,r})} \tag {15}\\ \mathcal L &= \mu_{aux}\mathcal L_{aux}+\mathcal L_{main} \tag {16} \end{align} $$

其中 $r_{ij}$ 是区间 $(i,j)$ 的标签。

在训练和推理阶段,$\{p_{i,j,r}\}$ 都是基于监督信号 $\mathcal L_{aux}$ 来选择高可能性的区间。我们使用 $\{p^c_{i_l,j_l,r}\}$ 赋值标签 $\tilde{r}_{i_l,j_l}=\arg_r\max p^c_{i_l,j_l,r}$ 来选择区间,其他区间赋予 None 类型。


参考

Avatar

YISH

这个人很懒,什么都没有