论文地址:https://www.aclweb.org/anthology/2020.emnlp-main.127/
代码地址(Pytorch):https://github.com/DreamInvoker/GAIN
Background
这篇paper也是继承了EoG模型,主要解决三个问题:1.一个relation的subject与object可能位于不同的sentence,不能仅仅利用一个句子来得到relation;2.同一个entity可能会出现在不同的sentence当中,因此需要利用cross-sentence context information,从而更好的表示entity;3.很多relation需要logical reasoning(main issue)。为此提出了GAIN模型。个人认为这篇paper的模型比较优雅,挺好的。
Abstract
在本文中,我们提出了图聚合和推理网络Graph Aggregation-and-Inference Network (GAIN),一种识别长段落中这种关系的方法。GAIN构造了两个图,一个是层次图(MG),一个是实体层次图(EG)a heterogeneous mentionlevel graph (MG) and an entity-level graph (EG).。前者捕获不同提及之间的复杂交互,后者聚合相同实体的潜在提及。基于这些图,我们提出了一种新的路径推理机制来推断实体之间的关系。在公共数据集DocRED上的实验表明,GAIN比以前的最新技术有了显著的性能改进(F1上为2.85)。
1 Introduction
最近, Yao et al. (2019) 提出了一个大规模的人工注释文档级RE数据集DocRED,将句子级RE推进到文档级,其中包含大量的关系事实。我们从DocRED dev集合中随机抽取100个文档,并手动分析Yao et al. (2019)提出的基于BiLSTM的模型预测的不良案例bad cases。
如表1所示,句间错误类型和逻辑推理错误类型在所有不良案例中所占比例较大,分别为53.5%和21.0%。因此,本文旨在解决这些问题,更好地从文档中提取关系。
文档级RE中以前的工作不考虑推理,或仅使用基于图的或分层的神经网络以隐式方式进行推理。本文提出了一种用于文档级关系抽取的图聚合推理网络。它旨在直接应对上述挑战。GAIN构建了一个异构的提级图,该图具有两种类型的节点,即mention节点和文档节点,以及三种不同类型的边,即实体内边、实体间边和文档边,以获取文档中实体的上下文信息。然后,我们将图形卷积网络应用于HMG,以获得每次mention的文档感知表示。实体级图(EG)是通过合并HMG中引用同一实体的提及来构建的,在此基础上,我们提出了一种新的路径推理机制。这种推理机制允许我们的模型推断实体之间的多跳关系。
总之,我们的主要贡献如下:
- 我们提出了一种新的方法——图聚合推理网络,它采用了双图设计。
- 我们引入了一个异构的Mention-level Graph (MG),它带有一个基于图的神经网络,用于对文档中不同提及之间的交互进行建模,并提供文档感知提及表示document-aware mention representations。
- 我们引入了实体级图Entity-level Graph (EG),并为实体间的关系推理提出了一种新的路径推理机制
2 Task Formulation
task definition:给定一篇含有N个sentence的documnt:$D= \{s_i\}^N_{i=1}$,$s_i=\{w_j\}^M_{j=1}$,以及P个entity:$\xi=\{e_i\}^P_{i=1}$,$e_i=\{m_j\}^Q_{j=1}$,其中$e_i$表示第$i$个entity,$m_j$表示第$i$个entity的第$j$个mention。我们的目标是提取$\xi$中entity之间的relation。$\{(e_i, r_{ij}, e_j)|e_i, e_j∈ \xi, r_{ij}∈ R\}$,其中$R$是预定义的关系类型集。
本文将实体$e_i$与$e_j$之间的关系$r_{ij}$定义为句间关系,当且仅当$S_{e_i}∩S_{e_j}=∅$,其中$S_{e_i}$表示含有$e_i$提及的句子。$S_{e_i}∩S_{e_j}\ne ∅$时$r_{ij}$定义为句内关系。We also define K-hop relational reasoning as predicting relation $r_{ij}$ based on a K-length chain of existing relations,with $e_i$ and $e_j$ being the head and tail of the reasoning chain, i.e., $e_i → (r_1)e_m →(r_2) . . . e_n → (r_K)e_j⇒ ei→ (r_{ij})e_j$.
3 Graph Aggregation and Inference Network (GAIN)
图2:GAIN的总体架构。首先,上下文编码器使用输入文档来获得每个单词的上下文表示。然后,利用提及节点和文档节点构造提及层次图。应用GCN后,将图转化为实体级图,在实体级图中识别实体间的路径进行推理。最后,分类模块根据上述信息对目标关系进行预测。不同的实体有不同的颜色。提及节点中的数字$i$表示它属于第$i$句。
GAIN模型分为四部分:encoding module、mention-level graph aggregation module、entity-level graph aggregation module、classification module。
encoding module:这一部分主要是将document中的word经过编码,得到contextual representation。给定有n个word的document:$\cal D=\{w_i\}_{i=1}^{n}$,然后将word embedding与type embedding以及coreference embedding进行concat,得到final word embedding,即:
$x_i=[E_w(w_i);E_t(t_i);E_c(c_i)]$
其中,ti与ci是wi对应的named entity type id与entity id,对于那些不属于任何entity的word,我们引入None type。得到final word embedding之后,我们将其输入到一个encoder当中(BISLTM/BERT etc),得到这一层的输出:
$[g_1,...,g_n]=Encoder([x_1,...,x_n])$
mention-level graph aggregation module:这个graph的构建主要是对mention之间的关系进行建模。在mention-level graph当中,node set:mention node与document node。mention node就是表示每一个mention,document node是一个虚拟节点,主要是为了对document information进行建模,同时也是视其为一个中继节点,让不同mention之间的交互变得更加容易。edge set:intra-entity edge、inter-entity edge、document edge。intra-entity edge是让同一个entity的mention彼此连接;inter-entity edge是让一个句子内的不同entity的mention之间进行连接;document edge是让所有的mention与document node进行连接。
构建好graph之后,GAIN模型使用与GCNN中同样的GCN,如下:
$h^{(l+1)}_{u}=\sigma(\sum_{k\in{\cal K}}\sum_{v\in \cal N_k(u)}W^{(l)}_kh^{(l)}_v+b^{(l)}_k)$
where $\cal K$ are different types of edges,$\cal N_k(u)$ denotes neighbors for node u connected in k-th type edge
但是这种虽然很接近WL-test,但是会存在范数不收敛的情况,这个真的不需要考虑一下吗?