GraphRel: Modeling Text as Relational Graphs for Joint Entity and Relation Extraction
这篇论文的目的是使用一个端到端的关系抽取模型,来实现命名实体与关系的联合信息抽取。使用图卷积神经网络(GCN) ,构建一个线性从属结构的模型来提取文本中的顺序特征与区域特征,并进一步地使用一个完整字词图谱抽取文本中的隐性词对的特征。作者还重点介绍了词对重叠关系的改进。数据集选择的是NYT和WebNLG,实体与关系抽取模型的F1值分别提高了3.2%和5.8%。
抽取实体关系三元组(Barack Obama, President Of, United States)在信息抽取中扮演着重要角色,尽管有很多关于这方面的研究,但是目前还没有一个统一的框架完全解决以下三个问题:
- 端到端的实体识别与关系抽取模型;
- 重叠关系的预测,比如共享同一实体识别的三元组;
- 考虑到关系之间的交互,特别是重叠关系之间的交互。
传统的方法是基于流水线的,先进行NER,然后再RE。该方法忽略了两个任务之间的相关性。考虑到上述方法的局限性,紧接着就提出了实体关系联合抽取的模型。刚开始的联合模型大多数严重依赖于特征工程,费时费力。
随着深度学习的兴起,基于NN的自动构建特征模型广泛用于关系抽取中。比如CNN、LSTM、tree-LSTM等。但是这些方法并不是端到端地联合抽取实体及关系,他们假定实体已经给定。
关系抽取的另一个挑战是如何考虑关系之间交互的问题,特别是重叠关系之间的交互。比如,(Barack Obama, President Of, United States) 可以被 (Barack Obama, Governance, United States)推断得到,这是关系重叠的其中一种情形,作者称之为EntityPairOverlap。另外一种情况是(BarackObama, PresidentOf, UnitedStates)可以被(Barack Obama, LiveIn, White House)和(White House, Presidential Palace, United States)推断得到,这是关系重叠的另外一种情形,称之为Single Entity Overlap。关系重叠是联合抽取任务的一大难点,事实上,17年ACL基于新颖的标志机制就完全放弃了关系重叠的问题。
- 17年ACL那篇没有考虑关系重叠的问题
- 目前大多数方法都没有考虑关系之间的交互性。
GCN抽取邻居节点的特征,并且将一个节点的信息传播到该节点最近的邻居节点,如图1所示,通过堆叠GCN层,GCN就可以捕捉到每个节点的区域特征。
GCN层通过使用以下等式考虑相邻节点的特征来检索新的节点特征:
其中μ是目标节点,N(u) 表示μ的邻域,包括μ本身;hvl表示节点u在第l层的隐藏特征;W和b是可学习的权重,将节点的特征映射到图中的相邻节点;h∈Rf,W∈Rfxf,b∈Rf,其中f是特征尺寸。
包含两阶段预测的GraphRel整体结构图如图2所示。在第一阶段,我们通过Bi-RNN和GCN抽取顺序和区域依赖特征。然后我们就可以预测实体和每个单词对之间的关系。在第二阶段,基于第一阶段的预测,我们对每种关系构建了完整的关系图,然后我们使用GCN融合每种关系的信息,并且考虑到了实体和关系之间的交互信息。
为了考虑到顺序和区域的依赖信息,我们首先通过Bi-RNN抽取顺序依赖特征,然后使用Bi-GCN进一步抽取区域依赖特征,最后我们就可以预测实体和每个单词对之间的关系。
以词向量和对应的词性标签向量作为原始的输入,然后经过Bi-LSTM抽取顺序依赖特征。
考虑到原始的句子是一个序列,没有显示的图结构,我们使用依存解析器为输入句子构造一颗依存树。我们使用依存树作为输入句子的邻接矩阵,接着通过GCN抽取区域依赖特征。
原始的GCN是无方向的,为了考虑到出入的词特征,这里使用了Bi-GCN:
通过Bi-LSTM和Bi-GCN,我们得到了每个词的特征,接下来就分别预测实体和关系。对于实体的预测,我们再经过一层LSTM,然后输出每个词的类别,具体的loss为eloss1p。对于关系的预测,我们会预测每个单词对之间的关系。对于单词对(w1,w2),我们计算给定关系r的得分,然后对所有关系(包括non关系)做一个softmax,得到每种关系的概率,关系预测的loss为 rloss1p :
第一阶段抽取的实体和关系是没有考虑到实体和关系之间的交互信息的。因此,为了考虑到实体和关系之间的交互信息以及所有单词对的隐式特征,我们提出了一个新颖的2阶段的关系加权的GCN用于关系预测。
经过第一阶段的预测,我们构建了每种关系的关系加权图,图的节点是每个单词,边表示单词之间的关系概率。如图3所示。
在第二阶段中,我们在每个关系图上采用bi-GCN,考虑不同关系的不同影响程度并聚合做为一个单词的综合特征。计算公式如下:
其中, Pr(u, v)表示单词对(u,r)之间关系为r的概率。V表示所有单词,R表示所有关系。首先遍历所有单词,然后对每个单词v,u和v之间在每种关系下都存在一个概率,然后通过这个概率进行加权求和。这样的话,对于每一个单词,它都考虑到了所有单词在关系加权下的信息。第二阶段的GCN不同关系下的权重信息,对每个单词抽取了更丰富的特征。得到新的单词特征后,接下来就是实体和关系的预测,与第一阶段是一样的,这里不再赘述,具体的loss分别为 eloss2p和rloss2p。
对于实体的预测,这里是做5分类(Begin,Inside,End,Single,Out),没有考虑实体类型。对于关系的预测,因为这里是对每个单词对去预测它们之间的关系,所以对于由多个单词组成的实体,其中的每个单词与另一个实体的所有单词都存在关系。比如,(United, Barack)、(United, Obama)、(States, Barack)、(States, Obama)都存在HasPresident关系。最终,总的loss计算公式如下,其中 α 是超参,用来调整两个阶段loss的权重:
因为关系抽取是对每个单词对都进行一个关系分类,所以对于由多个单词组成的实体对之间的关系预测就可能存在冲突,这里作者提出了三个方法:
- head prediction:对于由多个单词组成的实体对,只取每个实体最后一个单词之间的关系作为这两个实体对之间的关系。比如,实体关系三元组(Barack Obama, PresidentOf, United States)被正确识别出当且仅当Barack Obama和United States是实体,并且P(Obama,States)最大概率的关系为PresidentOf。其实这里称为tail prediction比较好,因为取的是实体的最后一个单词。
- average prediction:拿上个例子来说,存在四个单词对(United, Barack)、(United, Obama)、(States, Barack)、(States, Obama),那么就有四个关系概率向量,对这四个关系概率向量求平均然后取概率最大的作为三元组的关系。
- threshold prediction:与average不同,这里是对四个关系概率向量分别求概率最大的关系,然后统计每种关系的概率,比如PresidentOf出现两次,LocatedIn、LivedIn分别出现一次,那么对应的概率为50%、25%、25%,然后取最大的概率50%是否大于θ来调整关系的输出。
这一部分给出了GraphRel的实验结果。首先是实施细节、数据集和比较的baseline,然后展示两个数据集的定量结果,进行了详细的分析,并对不同类别的命名实体进行了分类,最后通过一个案例说明第二阶段的改进效果。
实现中,选择预训练的GloVe(300d) 作为固定的单词嵌入,然后将单词嵌入与可训练的POS嵌入(15d) 连接起来,作为每个单词的最终输入嵌入,从spaCy检索每个单词的POS标签和整个句子的依存关系树。在第一阶段使用具有256个单位的Bi-LSTM和具有256个特征的2层Bi-GCN。 对于第二阶段,关系加权的Bi-GCN为1层,特征尺寸为256。在训练期间,将LSTM辍学率设置为0.5,学习率设置为0.0008,损失权重α设置为 3,使用Adam优化器训练GraphRel,并在PyTorch下实现它。
使用NYT和WebNLG数据集来评估所提出的方法。 正如 NovelTagging 和 MultiDecoder 一样,对于NYT过滤的句子超过100个单词;对于WebNLG,在实验中的每个实例中仅使用第一个句子。 表2中描述了NYT和WebNLG的统计信息,将关系三元组分为三类:正常,EntityPairOverlap(EPO)和SingleEntityOverlap(SEO), 表2还显示了每个类别的总数。由于一个实体属于几个不同的关系,因此EntityPairOverlap和SingleEntityOverlap难度更大。 会在详细分析中讨论不同类别的结果。
- NovelTagging
- MultiDecoder
- precision、recall、f1:预测的三元组是正确的当且仅当关系和两个实体都是正确的
实验结果如表1所示。GraphRel1p表示只训练第一阶段, GraphRel2p表示同时训练两阶段。可以看到GraphRel1p在两个数据集上的F1都比之前的方法要高,这是因为该模型同时捕捉到了词的顺序和区域依赖特征。GraphRel2p考虑到了实体和关系之间的交互信息,在两个数据集上的F1都比GraphRel1p高。
表3是具体的case。首先第一个case两个模型都能正确抽取出来。对于第二个case,作者的解释是:尽管there不是一个实体,但是它包含了Italy的隐含语义信息。因此 GraphRel2p可以正确识别出来。我个人认为这个解释不是很严谨,为什么there就包含了Italy的语义信息,我们人是知道的。对于第三个case, GraphRel1p发现Asam pedas和Asam padeh是一样的,因此Asam padeh和Malay Peninsula、Malaysia存在关系。
• 作者提出了一个新颖的模型结构,结合RNN和GCN同时抽取顺序和区域依赖特征;
• 提出了新颖的二阶段预测方法,考虑了实体和关系之间的交互信息。
• 实际上只解决了关系重叠的一种情况,对于同一实体对具有多种关系没有解决;
• 关系和实体是分开输出的,可能存在关系预测对,但是实体预测错的情况;
• 构建了单词的关系图,而不是实体的关系图,后果就是预测多个单词的实体之间的关系时存在问题
Composition-based Multi-Relational Graph Convolutional Networks
本文发表于ICLR 2020, 作者单位是印度科技学院,作者之一 Partha Talukdar 是我很早就开始关注的以为知识图谱方向的作者,在GNN趋势的引导下,作者也开始将研究中心转为知识图谱与GNN的结合。他的个人主页为 http://www.talukdar.net/, 如下图。
目前针对于GCN的研究大多数都关注在学习无向图的结点表示上,然而我们在研究中更常见的通常是多关系图,例如知识图谱。因此,目前的大多数方法都无法直接应用在link prediction这一类需要对关系进行embedding表示的任务上。
KG-embedding的相关研究表明可以对边和结点的表示进行联合学习,但这些方法通常都受限于以link prediction为目标来学习embedding。虽然GCN能够以特定任务为目标进行学习,但其大多数应用都被限制在无关系图上。因此,本文考虑使用KG-embedding技术来学习特定任务下的关系和结点的embedding表示,COMPGCN应运而生。COMPGCN通过联合学习多关系图中的关系与结点的向量表示来解决了传统GCN所遇到的困难。主要贡献有以下几点:
- 提出COMPGCN,能够在GCN中对多种关系信息进行组合;
- 证明了CompGCN可以推广出已有的多关系GCN,并且可以随着关系数量的增长而不断扩展;
- 通过实验证明了方法的有效性。
作者首先对一些背景知识进行了叙述,主要为针对无向图的GCN以及其对于有向图的扩展。无向图的表示如下:
其中V表示顶点集合,E表示边的集合,X则表示每个结点的输入特征。传统的单层的GCN可以得到如下的结点表示:
其中W表示模型的参数,f表示激活函数,可以认为H对图中每个结点的直接邻居进行了编码。如果要获得多跳的信息,可以用多层的GCN,如下:
其中k表示层数,则 W^k 表示特定层的参数。
对于有向图来说,GCN的表示如下式所示:
其中 W_r^k 表示针对于特定关系的参数。显然,关系越多就会导致参数越多。当关系的种类非常多时,就会引入非常多的参数,不利于模型进行学习。
首先,对于多关系图(其实就是有向图)的表示如下:
其中Z表示初始的关系特征,R表示可能的关系集合。
然后对边进行扩展。简单来说,就是对所有边添加一条反向边,并为每个结点添加一条指向自己的边:
在前面所提到的GCN的表达式,可以写成如下的形式:
其中N(v)表示结点v的出边相连的结点集合。CompGCN首先对相邻接点以及对应的边进行组合操作,以此来保证特征的维度是线性的,具体的更新公式如下:
其中x_u和 x_r 分别指代初始的结点和关系的特征,h_v 指代结点v更新后的表示,W_lamba®则是特定的关系类型的参数。在CompGCN中,作者用关系的方向的来进行区分:
此外,为了统一边与结点之间的运算,作者用一个投影矩阵将边空间投影到节点空间:
为了避免随着关系数量的增加所带来的参数复杂性,CompGCN使用了一组基来作为可学习的基础向量,而不是为每一个关系都定义一个embedding,如下式所示:
其中,
表示可学习的基向量,a_br 则表示特定关系、特定基对应的可学习的权重。综上所述,最终所得到的关于结点的k层之后的CompGCN的表达式如下:
关于关系的k层之后的CompGCN的表达式如下:
用h_v^0 和 h_r^0表示初始的结点及关系特征。
最后,作者还分析指出,目前的很多图卷积神经网络都可以认为是CompGCN的一个特例,只不过是采取了不同的组合方式以及参数设置,如下表所示:
作者分别在链路预测、结点分类以及图分类三个任务上进行了实验,同时在所有任务上,以Relational-GCN、Directed-GCN以及Weighted-GCN作为baseline进行对比。
1)针对链路预测任务,在FB15k-237以及WN18RR数据集上的实验结果如下:
可以看到在多个指标上,CompGCN都取到了最好的效果。
2) 作者测试了在链路预测任务上,不同的组合编码方式以及不同的评分函数所带来的不同效果,主要有以下三种组合方式:
其次,embedding的评分函数以及CompGCN的组合编码方式之间的关系如下图所示,可以帮助理解实验的过程:
其中M代表组合编码方式,X表示评分函数,最终实验结果如下:
可以看到,在不同的评分函数下,CompGCN都取得了最好的效果。且ConvE+CompGCN(Corr) 在所有实验中取得了最好的效果。
3)作者通过调整关系数量以及基向量个数的方式,分析了CompGCN的scalability。主要分为以下几个方面:
a) 改变基向量个数带来的影响
可以看到模型的效果随着基向量的个数而不断提升,当取到100个基向量的时候,模型的效果与为每一种关系单独建立一个embedding的效果几乎一样。在前面的实验中我们可以看到,当取50的时候,CompGCN就能够有不错的表现了。
b) 改变关系数量带来的影响
可以看到,不管有多少个关系,CompGCN都能够取得不错的表现。
c) 与R-GCN的对比
可以看到,即使只用5个基向量,CompGCN的效果也在各种数量关系上全面优于考虑所有关系的R-GCN。
4.)针对结点分类(左)以及图分类(右)任务,实验结果如下图所示:
可以看到,在大部分情况下,CompGCN都取得了非常好的效果。
本文提出了一种针对多关系图的图神经网络CompGCN,可以同时学习到节点和边的表示. 通过一组基向量,CompGCN可以用较少的参数实现对大量关系的描述。最后,作者通过大量的实验验证了CompGCN的有效性。