Press "Enter" to skip to content

论文浅尝 – ACL2020 | 一种用于关系三元组提取的级联二进制标记框架

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

论文笔记整理:窦春柳,天津大学硕士。

 

 

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

 

动机

 

首先作者提出了问题,传统的关系抽取是不能很好的解决三元组重叠, 如下 图 。从图中可以发现,传统的关系抽取针对Normal 类型的数据还是可以的,但是针对EPO和SEO的情况就 不理想 。尽管像这样的问题已经有人做了很多研究,但是仍然存在很多的问题,他们都把每个实体对的关系看作离散的,这样导致会导致模型学习很困难,原因有两点:第一点,数据分布不均衡,第二点, 针对重叠的标签,如果在训练数据很少的情况下,分类器很难去正确的分类。

 

 

亮点

 

本文 采用全新的视角代替以往分类的视角,将关系建模为 S 到 O 的映射函数。提出一个全新的框架:CASREL。

 

概念及模型

 

CASREL框架抽取三元组(subject, relation, object)主要包含两个步骤,三个部分。

 

两个步骤

 

1、 要识别出句子中的 subject 。

 

2、 要根据识别出的 subject, 识别出所有有可能的 relation 以及对应的 object。

 

三个部分

 

1、 BERT-based encoder module: 可以替换为不同的编码框架,主要对句子中的词进行编码,论文最终以BERT为主,效果很强。

 

2、 subject tagging module:目的是识别出句子中的 subject。

 

3、 relation-specific object tagging module:根据 subject,寻找可能的 relation 和 object。

 

其中 a 是 Encoder, b 和 c 称为 Cascade Decoder。

 

 

1) BERT Encoder

 

对句子编码,获取每个词的隐层表示,可以采用 BERT 的任意一层,另外这部分是可以替换的,例如用LSTM替换BERT。

 

2)Subject Tagger

 

对 BERT Encoder 获取到的词的隐层表示解码,构建两个二分类分类器预测 subject 的 start 和 end 索引位置,对每一个词计算其作为 start 和 end 的一个概率,并根据某个阈值,大于则标记为1,否则标记为0。公式如下:

 

 

如框架图中所示,Jackie 被标记为 start,R 既不是 start 也不是 end, Brown 被标记为 end,其他的类似。在这里采用了最近匹配的原则,即与 jackie 最近的一个 end 词是 Brown, 所以 Jackie R. Brown 被识别为一个subject。文中并未考虑前面位置的情况。

 

3)Relation-specific Object Taggers

 

这部分会同时识别出subject的relation和相关的object。

 

解码的时候比 Subject Tagger 不仅仅考虑了 BERT 编码的隐层向量, 还考虑了识别出来的 subject 特征,即下图。vsub 代表 subject 特征向量,若存在多个词,将其取向量平均,hn 代表 BERT 编码向量。

 

对于识别出来的每一个 subject, 对应的每一种关系会解码出其 object 的 start 和 end 索引位置,与 Subject Tagger 类似,公式如下:

 

 

理论分析

 

实验

 

验证CASREL框架效果采用的是两个公开的数据集,NYT 和 WebNLG。具体的实验效果如下 。

 

 

其中 CASREL 分别采用了 随机初始化参数的BERT编码端、 LSTM 编码端以及预训练 BERT 编码端,实验结果主要说明以下结论:

 

1、 CASREL 框架确实有效,三种编码结构的效果都是要远高于其他的模型性能。

 

2、 采用预训练 BERT 之后,CASREL 框架更是逆天。

 

 

总结

 

本文 为了解决三元组重叠的情况,提出了新的关系抽取的方法,cascade binary taging framework(CasRel),和传统的关系抽取不同,传统的关系抽取是通过两个实体来抽取(离散的)关系标签,但在这里通过CasRel框架来抽取实体及实体间的关系,最终效果得到了很大的提升。

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注