RFBFN: A Relation - First Blank Filling Network for Joint Relational Triple Extraction


本文前置知识:

RFBFN: A Relation - First Blank Filling Network for Joint Relational Triple Extraction

本文是论文RFBFN: A Relation-First Blank Filling Network for Joint Relational Triple Extraction的阅读笔记和个人理解, 论文来自ACL 2022.

Basic Idea

现有的RTE工作要么忽略了关系的语义信息, 要么抽取SubjectObject带有先后顺序:

针对上述两点, 作者希望提出一种兼顾关系间语义信息, 且不带有Subject和Object的预测顺序的模型.

RFBFN

Task Definition

输入一个包含[CLS] Token xcls 在内有n 个Token的句子X=(x1,x2,,xn), 任务目标为抽取出句子中所有可能的三元组T(X)=(ei,rij,ej), ei,ej 分别为代表Subject和Object的Token, rijR 为二者间的关系, R 为预先定义好的关系集.

Overview

按序分为三部分:

  1. Span - Level Encoder: 从输入文本中抽取出Span表示.
  2. Relation Detection Module: 预测句子中的潜在关系, 并过滤掉不相关的关系.
  3. Blank Filling Module: 用很多指明关系的模板作为输入, 预测该关系下对应的实体对.

将关系抽取任务建模为完形填空任务, 可以兼顾考虑关系的语义信息, 同时抽取出SubjectObject:

模型概览图如下:

Span - Level Encoder

Span - Level Encoder通过BERT来抽取句子中的Span表示. 令S=(s1,s2,,sns) 为输入句子X 中的所有Span, 则对于Span siS, 其表示hie 定义为:

hie=[xSTART(i)e;xEND(i)e;ϕ(xi)]

其中xSTART(i)e,xEND(i)e 为上下文感知的边界Token, ϕ(xi) 为跟Span长度相关的Embedding. 记Encoder输出的所有Span表示为HeRns×d, d 为Embedding维度.

然后分别将He 通过两个不同的FFN获得Span中的关系表示Herel 和实体表示Heent:

Herel=WrelHe+brelHeent=WentHe+bent

其中, Wrel,WentRd×d,brel,bentRd 均为可学习参数.

Relation Detection Module

与之前大多数对关系的处理方式不同, 之前大多同时考虑所有关系, 引入了相当多的冗余计算.

作者先抽取句子中关系的候选集, 然后在这些候选关系的基础上再做Subject和Object的预测.

SPN类似的, RFBFN使用Non - Autoregressive Decoder(NAD)并将关系作为二元分类问题抽取出来.

Potential Relation Extractor

具体的, NAD被输入多个可学习的Query Embedding QRnq×d, 其中nq 为句子中最大可能的关系数量. NAD涉及到的信息流如节初图所示.

用先前计算好的关系侧Span表示Herel 作为NAD的输入, NAD的输出为HrRnq×d. 第i 个输出hir 所对应的关系类型概率pir 由线性层后Softmax得到:

pir=Softmax(Wrhir+br)

其中WrR|R|×d,brR|R| 为可学习参数, |R| 为关系类型的总数. 因为存在Decoder输出的先后顺序问题, 和SPN一样的使用了二部图匹配损失.

Candidate Relation Judgement

在预测完句子中潜在的关系子集后, 需要过滤掉无关关系以有效生成模板.

Candidate Relation Judgement以NAD的输出表征Hr[CLS] 的Embedding作为输入, 以一个Mask向量M (其中的值都是布尔值)作为输出, 以确定该类型关系是否在该句子中成立:

M=σ(Ws[Hr;xclse]+bs)

其中Ws,bs 为可学习参数, σ 为Sigmoid激活函数. M 中的值越大, 该句子中包含该关系的置信度就越大.

在Potential Relation Extractor中, 由于使用的是Softmax, 所以每个Query Embedding一定都有一个对应的关系, 但对于这个句子并不一定真的成立, Candidate Relation Judgement的作用就是判断每个关系是否在该句子中成立.

Blank Filling Module

实体对抽取被作者建模为识别上下文中的Span并填入模板的空中. 作者为每个候选关系类型建立待填充的模板(缺失处用[MASK]表示), 当实体被识别时需要填入Subject和Object的对应槽位.

Relation Template Generation

每种关系的模板由关系的语义信息和Subject, Object槽位组成.

例如关系leaderName 对应着模板[MASK] is the leader of [MASK]. 作者认为该关系模板蕴含着关系的语义信息, 对RTE很重要, 具体模板的构成形式如下:

Tr=(m1r,t1r,t2r,,tntr,m2r)

其中m1r 代表Subject的空槽, m2r 代表Object的空槽, t1r,t2r,,tntr 为关系r 的Token. 每种关系模板被复制k 次, 之间用[SEP] 拼接. 其中k 比句子中预设好的三元组数量稍微大一点的数, 这样能抽取出同种关系下的多个实体对.

将Relation Template复制多次和多个Query Embedding从形式上来说是一样的.

Entity Pair Extractor

对于给定的关系模板和Span表示H¯=[Heent;xclse], Entity Pair Extractor的作用在于抽取模板中对应的实体对. 作者同样使用和关系抽取时一样的NAD作为特征抽取器. NAD涉及到的信息流如节初图所示.

在每层Transformer Decoder Layer中, 多头自注意力建模了空槽语义关系的关联, 多头跨注意力建立了Span信息模板之间的关联.

经过NAD处理后, 空槽表示为HrblkR2k×d, Span对每种关系r 下的第i 个槽位的表示由下式获得:

hi,rb=tanh(Wb1H¯+Wb2hi,rblk+bb)

其中Wb1,Wb2Rd×d,bbRb 为可学习参数. 对于多余出来的不需要填入实体的槽位, 答案被设置为[CLS].

最后用Softmax来获得句子中应该填入槽位的实体的概率:
pi,rb=Softmax(ubThi,rb)
其中ubRd 为可学习参数, 作者使用基于Span的方法抽取实体对, 所以实体可以在不使用指针网络或序列标注时被同时抽取.

其实本质仍然是指针网络, 只不过从Token Level换成了Span Level.

Joint Training

作者的模型分为关系检测实体对抽取两个任务. 作者以多任务学习联合训练该模型, 即共享Encoder.

预测实体对时, 作者根据实体在文本中的出现的顺序排序, 然后用交叉熵计算实体对抽取的损失:

Lent=r=1ndi=12klogpi,rb(yi,rb)

其中yi,rb 为实体Span的Ground Truth, nd 为检测到的关系数.

但是对于关系就不一样了, 同样由于使用NAD, 在句子中检测出的关系是不应该具有顺序特性的, 所以使用与SPN相同的二部图匹配损失, 穷举出所有预测出的关系顺序, 找到一种与Ground Truth相匹配的最小Cost顺序π:
π=argminπΠ(nq)(i=1IqI(yir)pπ(i)r(yir))

其中Π(nq) 为全排列策略空间, yir 为关系的Ground Truth, I(yri) 为指示函数, 若yir,I(yir)=1, 否则为0. 关系侧的Loss定义为最优排序下的交叉熵:
Lrel=i=1nqlogpπ(i)r(yir)

二部图匹配损失详见SPN.

最后对两个任务的Loss做个加权:
L=λLent+(1λ)Lrel

实验中作者将λ 设为0.5, 即视两个任务同等重要, 且二者学习难度相同.

Experiments

详细的实验参数请参照原论文.

Datasets

作者选用两个常用数据集NYT和WebNLG的精准匹配和部分匹配版本做为实验数据集, 统计数据如下:

Main Results

在上述数据集上主要实验结果如下:

看起来RFBFN的Precision和Recall都比其他模型更要均衡一些, 所以相对应的F1也偏高一点.

在不用预训练模型的时候比PRGC结果要好, 主要的提升来自于Recall, 我认为主要原因其一是RFBFN采用了Span Level的方式而非PRGC中Token Level的方式抽取实体, 可能会有一些提升, 再者是Fill in the Blanks的方式可能更契合BERT原来的预训练任务.

Detailed Results on Complex Scenarios

在NYT, WebNLG部分匹配上按照不同类型区分的F1 Score如下:

RFBFN几乎全面优于Baseline模型.

Results on Different Subtasks

在NYT, WebNLG部分匹配上各个子任务的实验结果如下:

在NYT*上性能被实体识别拖了后腿, 但在WebNLG*上相反, 作者将其归因于后者的关系种类众多.

Analysis

Ablation Study

在WebNLG*消融实验结果如下:

它们分别对应着如下改动:

  • - Relation Detection Module: 直接移除Relation Detection Module, 假设句子中所有关系都成立, 喂给Entity Pair Extractor. 因为WebNLG* 关系太多了, 作者只选了正样本和30%的负样本.
  • - Candidate Relation Judgement: 直接移除Candidate Relation Judgement, 即忽略Relation Detection Module里面抽取出的错误关系.
  • - Relation Template Generation: 把Relation Template换成Relation Embedding.
  • - NA Entity Pair Extractor: 替换NAD里面的Unmasked Self Attention为Casual Mask, 即按序生成Subject和Object.
  • - Joint Training: 不再共享Encoder, 使用两个独立的Encoder做训练.

影响最大的是Relation Detection Module和NA Entity Pair Extractor. Entity Pair Extractor更倾向于从正确的关系模板中抽取实体, 所以喂进去负样本时表现下降很严重(体现在Precision上), 让Non - Autoregressive变成Autoregressive去生成Subject和Object也显示出了不同时抽取带来的不一致性.

关于Relation Template Generation的影响, 作者特地做了个Case Study:

使用Relation Embedding的模型不能正确理解关系的语义信息, 相反Relation Template可以.

Visualization

假设一句子中的三元组Ground Truth为(Brom, club, Arnhem)(Brom, club, Graafschap), 输入Entity Pair Extractor的关系类型为club, Entity Pair Extractor中的Attention Score Heatmap如下:

能够看到不同的槽位可以把Attention放到对应关系下的实体上.

按理说最后两个[MASK]应该把注意力放到[CLS]上才对, 因为Label中设定多余的槽位答案为[CLS].

当然也可能有一种解释, [CLS] 本身就是反映句子语义的, 所以在这里注意力分散是因为[CLS] 与句子本身的语义相似, 所以对无论是Attend到[CLS] 还是分散到其他地方都是合理的.

Summary

我认为RFBFN算是SPN的一种改进, 是一个类似与PRGC的Pipeline模型, 先抽取关系, 然后根据关系构造出模板, 通过完形填空的方式抽取出实体. 它将SPN里的NADecoder Layer同时应用到了关系侧实体侧.

由于使用NAD, 多次采用穷举的方法解决每个步骤的抽取问题: 穷举Span, 穷举Relation(指Query Embedding), 穷举Entity Pair(指复制模板多次).

虽然最后取得了优越的性能, 但说实话看着工程量和计算量都挺大的, 尤其是Span的引入占大头, 算是拿时间换性能吧.


文章作者: DaNing
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 DaNing !
评论
0 comments here
 上一篇
Pytorch学习: Pytorch Lightning Pytorch学习: Pytorch Lightning
Pytorch学习: Pytorch LightningPytorch Lightning是在Pytorch基础上封装的框架, 号称”Pytorch里的Keras”, 如官网所述, 它具有灵活, 解耦, 易于复现, 自动化, 扩展性好等优点
2022-08-14
下一篇 
SPN: Joint Entity and Relation Extraction with Set Prediction Networks SPN: Joint Entity and Relation Extraction with Set Prediction Networks
Joint Entity and Relation Extraction with Set Prediction Networks本文是论文Joint Entity and Relation Extraction with Set Pred
2022-06-22