ACL 2020 | CASREL: 不受重叠三元组影响的关系抽取方法

2021-02-01 12:22:42 浏览数 (1)

今天为大家分享的文章是ACL 2020录用的一篇关于关系抽取的文章,是吉林大学人工智能学院常毅教授团队的研究成果。针对目前既存模型处理重叠关系三元组(多个关系三元组共享同一个实体)效果不好的问题,提出了一种新的级联二元标注框架——CASREL。不同于以往模型将关系建模为实体的离散标签(即将关系抽取作为分类任务处理),作者从一个新的视角审视这个问题,认为可以在一句话中将关系建模成一个使头实体映射到尾实体的函数。这样我们只需要找出尽可能多的三元组即可,而以往关系分类任务中却存在许多关系被遗漏的问题。

1

背景

从一开始的先识别实体再对每个实体对进行关系分类的流水线式方法,再到基于特征的模型和神经网络模型开始采用联合学习实体和关系的方法,在关系抽取任务上取得越来越好的表现,但是在多三元组实体重叠场景下却都不能有效处理。下图是一句话中三种不同的重叠三元组情形:

上图中Normal表示三元组之间无重叠;EPO表示两个实体有两个完全不同的关系的情形, 实体“Quentin Tarantino“ 和 实体”Django Unchained“既有Act_in关系,也有”Direct_movie“关系;SEO表示一个实体参与到了多个关系中的情形, 即实体“Jackie R.Brown”与实体“Washington”有“Birth_place”关系, 也与实体“United States of Americal”存在“Birth_place”关系。

无论是2018年提出的带copy机制的Seq2Seq模型,还是2019年提出的使用GCN建模关系图,他们都是把关系作为离散的标签再对实体对进行分类。主要问题有两个:一是很多实体对之间不存在关系(类别分布不均衡问题),二是同一个实体参与到不同的关系时分类器会混乱(即多三元组重叠问题)。所以作者认为与其学习关系分类器 (s表示头实体,o表示尾实体,r表示关系),不如学习关系特定的尾实体标注器 ,即对于每一个头实体s,我们将它进行所有关系特定标注器 的映射,找出正确的尾实体o。当然若对于指定头实体s,在某个关系的特定标注器映射下,找不到正确的尾实体,则认为s在该关系下映射到了“null”型尾实体。

2

模型

(1) Formulation

作者首先提出了一个formulation(如下图所示),对于来自训练集D的给定标注句子xj中,存在一系列的潜在重叠三元组

,作者希望最大化训练集D的数据似然性。

上面的formulation中s表示指定头实体,表示Tj中以s为头实体的三元组,R是所有可能关系的集合,表示在Tj中除了s所引导的关系外的其他关系,表示“null”型尾实体。公式1到公式2运用了基于条件概率定义的乘法公式,公示3表示对于指定头实体s,所有关系要么将他映射到某个真实的尾实体,要么映射到“null”型尾实体。

(2) The CASREL Framework

基于上述formulation,作者提出了新的标记方案:先定义一个头实体标注器,找寻句子中所有可能的头实体,再定义关系特定标注器,对于每个找到的头实体,使用所有关系的关系特定标注器找到相关的关系和对应的尾实体。新的标记框架CASREL如下图所示:

1.BERT编码

作者使用BERT模型来提取文本特征信息,由于作者在这次工作中每次输入的是单一的句子,而不是句子对,所以作者没有使用BERT的segmentation embedding。

2. Subject Tagger

级联解码器包括一个头实体标注器和一系列关系特定尾实体标注器。

头实体标注器用来识别所有可能的头实体。头实体的开始和结束都用1表示,不是边界的字符用0表示。对于多个头实体检测,采用邻近原则,某个开始位置为1的字符到其后最近的结束位置为1的字符之间的词就是一个头实体。通过下面公式计算字符是头实体边界的可能性:

表示权重,

表示偏置,

是sigmoid激活函数,是输入句子中第i个字符的编码表示,当计算的结果超过某个阈值时则认为是边界,标记为1,否则为0。

在给定一个句子表示x的情况下,头实体标注器优化以下似然函数确定头实体s的范围:

L是句子的长度,如果z是true则

,否则为0。

是句子x的第i个字符的头实体开始位置的二进制标记,

是头实体结束位置的二进制标记,参数

3.Relation-specific Object Taggers

框架中高层的标记模型由一系列关系特定尾实体标注器组成,每个关系对应一个关系特定尾实体标注器,每个关系特定尾实体标注器结构上和头实体标注器是一样的,也是由尾实体开始位置和结束位置组成。针对每一个头实体, 遍历所有的关系r, 为每一个关系r都确定相应的尾实体, 如果尾实体不存在,则用“null”型尾实体表示。同头实体标记器一样,我们也要计算每个字符成为尾实体开始或结束位置的可能性来确定该字符的开始和结束位置的标记(0或1),如下所示:

是头实体标注器检测到的第k个头实体的编码向量表示,

是句子第i个字符的编码表示。针对每个头实体,作者对于所有关系重复在整个句子x上计算上面公式,从而为每个头实体找出每个关系下可能存在的尾实体。由于头实体通常有多个字符组成,而且

的加法要顺利进行,两者维度需保持一致,所以我们取头实体开始与结束字符之间的平均向量表示作为

在给定一个句子表示x和头实体s的情形下,某个关系r的尾实体标注器需要优化以下似然函数以确定尾实体o的范围:

是句子x第i个字符尾实体标注器开始位置的标记,

是句子x第i个字符尾实体标注器结束位置的标记,=。对于

=

“null”型尾实体,==0(对于所有i)。比如,选定头实体“Jackie R.Brown”,“Work_in”关系并不存在于头实体“Jackie R.Brown”与候选尾实体“Washington”之间,所以此时“Jackie R.Brown”在“Work_in”关系中对应于“null”型尾实体,则“Work_in”关系特定尾实体标注器所有字符开始、结束位置全为0。

4. Data Log-likelihood Objective

作者将前文提到的formulation中的公式(3)取对数,得到对数似然函数目标

如下:

参数=

是头实体标注器要优化的似然函数,是尾实体标注器要优化的似然函数。作者在shuffle后的mini-batches上使用Adam随机梯度下降最大化

来训练模型。

3

实验

作者采用NYT和WebNLG数据集来进行实验,针对关系三元组的不同的重叠形式,作者将两个数据集分别划分成三类,划分情况如下:

作者在上述数据集上将CASREL模型与几个当前最强的模型进行比较,结果如下图所示:

从上图中可以看出,CASREL模型在三种评估标准(精确率Prec、召回率Rec、F1分数)上比所有的基准有压倒性的优势,并且在NYT和WebNLG数据集上,相比于CopyRRL,分别实现了17.5%和30.2%的F1得分提升。作者甚至在处理一开始的文本编码上,也进行了消融实验:参数随机初始化的BERT、使用预训练的Glove embedding的LSTM模型、预训练的BERT。在这个消融实验中我们也可以看出来,使用随机初始化的BERT或者基于Glove embedding的LSTM模型来编码,CASREL模型也比当前最好模型要表现得好,可见级联二进制标注方法确实有效。

从图中还可以看出当前这些基准模型在NYT数据集上的表现优于在WebNLG数据集上的表现,这是由于NYT数据集三元组类型多为Normal类型,而WebNLG数据集的三元组却多为EPO和SEO类型,作者提出的CASREL模型却在两个数据集上都取得了稳定且有竞争力的表现,说明CASREL模型解决重叠三元组问题确实有效。

为了进一步研究CASREL模型解决重叠三元组问题的能力,作者在不同三元组重叠类型的句子上做了两个拓展实验并与基准模型进行比较。

下图实验结果表明基准模型在Normal,EPO,SEO三种形式上的F1得分逐渐下降,而CASREL模型却在三种三元组重叠类型的句子中都取得了优异的表现。

作者为了验证CASREL模型对含有不同三元组个数的句子的处理能力,将句子按三元组个数分成五类,将CASREL模型与基准模型对比,实验结果如下图所示,与基准模型相比,CASREL模型受句子中三元组个数增加的影响最小,而且F1分数在两个数据集上最大的提升来自于最困难的一类( )。

4

结论

在关系抽取任务上,不同于以往将关系建模为实体对的离散标签,作者提出了一个新的级联二进制标注框架CASREL模型,将关系建模为一个从头实体映射到尾实体的函数,这样就将以往的分类任务变成了找寻三元组的问题。CASREL模型能在不受重叠三元组问题影响下,同时提取出句子中的多个关系三元组。作者在两个广泛使用的数据集(NYT和WebNLG)上进行了大量的实验,实验结果充分表明CASREL模型在各种情形下都有着比基准模型更为优异的性能,尤其是在处理重叠三元组问题上。

参考资料

https://arxiv.org/pdf/1909.03227.pdf

https://github.com/weizhepei/CasRel

0 人点赞