本次分享一篇关于三元组关系抽取的paper
1、前言
这次聊一篇2022年EMNLP会议上的论文,题目是《UniRel: Unified Representation and Interaction for Joint Relational Triple Extraction》。核心思路很直接:在做三元组(s, r, o)抽取时,把实体和关系放到一起表征和交互。具体实现上,用的还是当前主流的table filling方式,只不过把学习目标拆成了三种交互关系来预测——实体之间的关系(s, o)、实体跟关系类型的关系(s|o, r)、关系类型跟实体的关系(r, s|o)。下面这张图能说明白。

2、模型

上图是模型结构。大致思路是:把文本和关系类别拼接起来作为输入序列,然后生成一个表征table矩阵。矩阵里每个位置(单元格)表示是否存在定义的关系(论文里称为Interaction Map),存在就是1,不存在就是0。这样预测任务就变成了一个表格填充的二分类问题。解码时根据表格预测结果加上规则,就能解析出三元组。
2.1 三元组关系抽取任务定义
给定一段输入文本 (长度为序列长度),抽取任务就是从文本中识别出所有关系三元组。其中 是三元组数量,分别对应第 组的主实体、关系、客实体。所有主实体和客实体构成实体集合 ,关系集合为 ,是关系类型数量。
2.2 表征学习
首先,所有关系类型的名称都用核心词来表示。比如关系“/business/company/founders”用“founders”表示,“is capital of”就用“capital”表示。然后把预测文本和所有关系类别的核心词拼接起来,形成新序列,输入到表征模型(比如BERT)进行学习:

2.3 交互关系定义
论文把三元组关系 (s, r, o) 拆成三种子关系来表示和预测:首先是实体之间的关系定义:

用指示函数表示两个实体是否存在关系,存在为1,不存在为0。考虑到实体关系的对称性,定义如下。接着是实体与关系的定义,文中定义了两种类型:
用 表示主实体e与关系类型r是否存在关系,用
表示客实体e与关系类型r是否存在关系。
以上就是论文定义的三种交互关系,结合模型图很容易理解。相比其他表格填充方法,这篇论文的不同点在于:1)让关系label参与了表征;2)预测任务转成了三个子类型,但本质上还是单元格二分类。
2.3 交互关系预测
上面定义的交互关系可以看成优化目标的真实值,那对应的预测值怎么算呢?文中取BERT最后一层多头注意力机制中的Q、K矩阵,求和得到交互表(Interaction Map),再加一个sigmoid函数:
其中 就是预测的表格,T是多头数量。
2.4 优化函数
优化函数就是个二分类交叉熵:
3、实验结果
主要看看论文提出的UniRel方法在实验上的表现。实验是在NYT和WebNLG两个数据集上做的,数量不算多。结果如下:

对比的都是常见关系抽取模型。可以看出:1)UniRel在NYT数据集上提升明显,F1值有将近1个点的提升;在WebNLG上,F1值提升了0.4个点。2)UniRel_unused表示用BERT词表中的[unused]来替代关系类别的核心词,结果在WebNLG上影响非常大,说明有效表征关系类型的语义信息确实重要。3)UniRel_separate表示文本和关系label分开表征不拼接在一起,预测效果差了不少,说明拼接在一起能起到交互促进作用。
有几个值得思考的方向:1)文中没有和很熟悉的GPLinker模型做对比。2)既然关系类型的语义信息很重要,文中只用一个单词来代表,如果用多个单词会不会效果更好?3)WebNLG数据集有171种关系类型,相当于原始输入序列长度增加了170以上,这样会让预测的表格更稀疏。
4、结语
这次分享的比较新的关系抽取方法,亮点在于让关系类型参与表征和交互学习,起到了促进作用。论文的开源代码在 https://github.com/wtangdev/UniRel ,有兴趣的话可以在自己的业务场景里试试看效果。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名