OneRel: Joint Entity and Relation Extraction with One Module in One Step


本文前置知识:

OneRel: Joint Entity and Relation Extraction with One Module in One Step

本文是论文OneRel:Joint Entity and Relation Extraction with One Module in One Step的阅读笔记和个人理解, 论文来自AAAI 2022.

Basic Idea

现有的RTE方法经常将其分解为几个步骤, 使得其比较好抽取. 然而, 这种分解常常忽视了三元组是互相关联的整体, 当前方法常存在误差累计信息冗余的问题. 例如:

它们分别对应着:

在本文中, 作者希望将三元组抽取视为一种细粒度三元组分类任务, 用单模单步的方式解决上述问题.

OneRel

Task Definition

对于给定的$L$ 个Token的句子$\mathcal{S}=\set{w_1, w_2, \dots, w_l}$ 以及$K$ 个已经定义好的关系$\mathcal{R}=\set{r_1, r_2, \cdots, r_K}$, RTE的目标为识别出句子$\mathcal{S}$ 中的所有$N$ 个三元组$\mathcal{T}=\left\{\left(h_{i}, r_{i}, t_{i}\right)\right\}_{i=1}^{N}$, $h_{i}, t_i$ 分别为由连续Tokens构成的Span而组成的头实体和尾实体.

Relation Specific Horns Tagging

作者设计了一个分类器, 来对$(w_{i,}r_{k,}w_j)$ 所有可能的组合来做分类, 也就是维护一张$\boldsymbol{M}^{L \times K \times L}$ 的三维表存储分类结果.

Tagging

作者设计标签时, 以BIE(Begin, Inside, End)为出发点.

如果将头实体和尾实体的BIE组合则需要9种标签, 实际上不需要这么多.

作者使用3种有效标签, 来标注头尾实体并建立二者的关联:

  • HB - TB: 标注头实体的头和尾实体的头.
  • HB - TE: 标注头实体的头和尾实体的尾.
  • HE - TE: 标注头实体的尾和尾实体的尾.
  • NULL: 啥也不是.

例如:

由于它构成三元组的形状只需要三个支点, 因此也被作者称为关系特化的山羊角标注法(Rel - Spec Horns Tagging).

作者认为这种标注策略有三好:

  1. 用3种标签而不是9种缩小了搜索空间.
  2. 稀疏的表$\boldsymbol{M}$ 有大量的负样本.
  3. $\boldsymbol{M}$ 的稀疏性保证了解码速度.

Decoding

解码的判定逻辑就是按照顺序往下找:

  1. 找HB - TB.
  2. 如果同一行的下一个标签是HB -TE, 就向下找.
  3. 找到HE - TE, 形成一对三元组.

Scoring - based Classifier

首先Encoder的特征抽取部分大家都是老生常谈了, 每个Token$d$ 维的Token Embedding$\boldsymbol{e}_{i}$ 可以由BERT得到:

$$
\left\{\boldsymbol{e}_{1}, \boldsymbol{e}_{2}, \ldots, \boldsymbol{e}_{L}\right\}=B E R T\left(\left\{\boldsymbol{x}_{1}, \boldsymbol{x}_{2}, \ldots, \boldsymbol{x}_{L}\right\}\right)
$$

$\boldsymbol{x}_{i}$ 为每个Token的输入表示.

接着, 作者按照作者的原思路, 继续穷举所有句子中可能的$\left(\boldsymbol{e}_{i}, \boldsymbol{r}_{k}, \boldsymbol{e}_{j}\right)$ 组合($\boldsymbol{r}_{k}$ 为随机初始化的关系Embedding), 用神经网络弄一个三元组打分分类器, 判定$\left(\boldsymbol{e}_{i}, \boldsymbol{r}_{k}, \boldsymbol{e}_{j}\right)$ 是否成立就好. 但是作者认为这样有两个缺陷:

  1. 简单的分类器不能充分使得实体和关系间的交互, 且难以建模三元组的结构化信息.
  2. 做$L \times K \times L$ 次分类很耗时.

所以作者提出了另一种思路, 受启发于KGE里的HOLE的打分函数:

$$
f_{r}(h, t)=\boldsymbol{r}^{T}(\boldsymbol{h} \star \boldsymbol{t})
$$

其中$\boldsymbol{h}, \boldsymbol{t}$ 分别为头尾实体的表示, $\star$ 为循环卷积操作. HOLE挖掘了两实体间的关联. 在作者的模型中, 将$\star$ 重定义为拼接后非线性投影:

$$
\boldsymbol{h} \star \boldsymbol{t}=\phi\left(\boldsymbol{W}[\boldsymbol{h} ; \boldsymbol{t}]^{T}+\boldsymbol{b}\right)
$$

其中$\boldsymbol{W} \in \mathbb{R}^{d_{e} \times 2d}$, $\boldsymbol{b}$ 为可训练参数, $d_e$ 代表头尾实体对表示的维度, $[;]$ 为拼接操作, $\phi(\cdot)$ 为ReLU激活函数. 作者认为这样有三好:

  1. 新设计的打分函数可以和Encoder无缝衔接.
  2. 从实体特征到实体对特征维度可以由$\boldsymbol{W}$ 改变.
  3. 非对称性, 即$[\boldsymbol{h} ; \boldsymbol{t}] \neq[\boldsymbol{t} ; \boldsymbol{h}]$.

然后用所有关系表示$\boldsymbol{R} \in \mathbb{R}^{d_{e}\times 4K}$ 同时计算所有Token对$(w_i, w_j)$ 所对应的$(w_{i,}r_{k,}w_j)_{k=1}^K$, $4$ 为分类标签, 所以作者的方法最后归结为:

$$
\boldsymbol{v}_{\left(w_{i}, r_{k}, w_{j}\right)_{k=1}^{K}}=\boldsymbol{R}^{T} \phi\left(\operatorname{drop}\left(\boldsymbol{W}\left[\boldsymbol{e}_{i} ; \boldsymbol{e}_{j}\right]^{T}+\boldsymbol{b}\right)\right)
$$

其中$\boldsymbol{v}$ 为得分向量, $\operatorname{drop}(\cdot)$ 为Dropout.

尽管计算方式不怎么稀奇, 但是从KGE和三元组分类这个角度出发来解释倒是有点新颖.

作者认为, 由于把表分类矩阵设为$\boldsymbol{R} \in \mathbb{R}^{d_{e}\times 4K}$, 一次性可以处理所有关系, 所以处理步数实际上为$L \times 1 \times L$, 要强于TPLinker.

这个地方我也不是太确定, 对于作者的说法, 我寻思这不还是$L \times K \times L$ 的填表分类么?

TPLinker使用$2|R|+1$的表来标注(EH-ET只使用了一张), 而OneRel使用$|R|$ 的表来标注, 因为OneRel在标签设计上规避了不同类型标签重叠的可能性. 我认为这种说法要更具有说服力.

最后把得分向量做个Softmax:

$$
P\left(\mathrm{y}_{\left(w_{i}, r_{k}, w_{j}\right)} \mid \mathcal{S}\right)=\operatorname{Softmax}\left(\boldsymbol{v}_{\left(w_{i}, r_{k}, w_{j}\right)}\right)
$$

训练损失函数为多分类交叉熵:

$$
\mathcal{L}_{\text {triple }}=-\frac{1}{L \times K \times L} \times \sum_{i=1}^{L} \sum_{k=1}^{K} \sum_{j=1}^{L} \log P\left(\mathrm{y}_{\left(w_{i}, r_{k}, w_{j}\right)}=g_{\left(w_{i}, r_{k}, w_{j}\right)} \mid \mathcal{S}\right)
$$

其中$g_{(w_{i,}r_{k}, w_{j})}$ 为Golden Label.

Experiments

仍然是NYT, NYT*, WebNLG, WebNLG* 四个数据集, 统计信息如下:

Main Results

OneRel在四个数据集上的部分匹配和精准匹配结果如下:

OneRel - 指的是将分类器替换成$\boldsymbol{W}[\boldsymbol{e_i};\boldsymbol{r_{k}};\boldsymbol{e_j}]+\boldsymbol{b}$, 也就是使用简单的线性分类器. OneRel完全体达到了现在的SOTA, 看起来OneRel - 和完全体还是有一定差距.

Detailed Results on Complex Scenarios

OneRel在不同类型三元组的表现如下:

OneRel在大多数情况下表现良好.

Results on Different Sub - tasks

按照预测三元组的不同部分区分, 结果如下:

OneRel在关系预测上比之前的模型都要强挺多, 实体预测也不弱, 在NYT*上的实体预测能力和SPN相当.

Model Efficiency

论文在前面说了OneRel的速度比TPLinker快, 在这里作者做了个实验证明下:

WebNLG*上差距挺明显的, NYT*上差距并不是特别大.

我猜这里实现差异因素占了一大部分, 当时TPLinker跑关系是用的循环然后再运算的, 而OneRel直接做的并行张量运算. NYT*的关系数量比WebNLG*少得多, 所以二者相差也不大. 我更倾向于OneRel的效率高原因是因为用的表少.

Topology Structure of Relations

既然往KGE靠边了, 使用了关系Embedding, 自然而然就能想到对它做可视化来证明模型有效. 下面是NYT上24中关系在T - SNE下的降维可视化图:

从图上来看确实语义相似的Embedding靠的比较近. 不过这种可视化图也只能从直觉上显示性能, 并不是绝对的.

Summary

总体来说, OneRel其实没有什么亮点, 实质上属于一种填表式RTE模型, 文章中所称的单模单步有点牵强. 这回OneRel了, 但是没有很OneRel.

一般来说, Table - Filling based model的Decoder部分会设计的比较简单, 真正发挥作用的是如何建立表标签.

OneRel相较于TPLinker来说, 相差并不大. 不用建立多张表, 使用了更精炼的标注策略, 当然也付出了相应的代价.

事实上, 需要在每个token后多添加一个[unused1]来避免单个token的实体抽取问题. 这点作者在文章中未提起过.


文章作者: DaNing
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 DaNing !
评论
 上一篇
DirectRel: Relational Triple Extraction - One Step is Enough DirectRel: Relational Triple Extraction - One Step is Enough
Relational Triple Extraction: One Step is Enough本文是论文Relational Triple Extraction: One Step is Enough 的阅读笔记和个人理解, 论文来自IJ
2022-08-31
下一篇 
Pytorch学习: Pytorch Lightning Pytorch学习: Pytorch Lightning
Pytorch学习: Pytorch LightningPytorch Lightning是在Pytorch基础上封装的框架, 号称”Pytorch里的Keras”, 如官网所述, 它具有灵活, 解耦, 易于复现, 自动化, 扩展性好等优点
2022-08-14
  目录