知识图支持多种应用,包括问答和信息检索。尽管在它们的创建和维护方面投入了巨大的努力,但即使是最大的(如Yago、DBPedia或Wikidata)也仍然不完整。我们引入了关系图卷积网络(R-GCN),并将其应用于两个标准的知识库完成任务:链接预测(恢复缺失事实,即主谓对象三元组)和实体分类(恢复缺失实体属性)。RGCN与最近一类基于图形的神经网络相关,专门用于处理现实知识库的高度多关系数据特性。我们证明了R-GCN作为独立实体分类模型的有效性。我们进一步表明,我们可以通过在因子分解模型(如DistMult)中加入编码器,从而在关系图中的多个推理步骤上积累证据,以此显著改进其性能,这比仅用解码器的模型在FB12k-237数据集的性能高出29.8%。
知识库:节点是实体,边是用其类型标记的关系,节点用实体类型标记(例如,大学)。红色显示的边和节点标签是要推断的缺失信息。
我们的链接预测模型可以被视为自动编码器,包括:
我们的模型是GCN的扩展,它可以对大规模关系数据的局部图邻域进行操作。我们的模型和一些相关方法(如图神经网络)可以理解为简单可微消息传递框架的特殊情况:
其中, h i ( l ) ∈ R d ( l ) h_i^{(l)} \in R^{d^{(l)}} hi(l)∈Rd(l)是节点 v i v_i vi在神经网络第l层的隐藏状态, d ( l ) d^{(l)} d(l)是该层表示的维数,形式为 g m ( ⋅ , ⋅ ) gm(·, ·) gm(⋅,⋅)的传入消息被累积并通过元素激活函数σ(·), M i M_i Mi表示节点 v i v_i vi的传入消息集,通常与传入边集相同, g m ( ⋅ , ⋅ ) gm(·, ·) gm(⋅,⋅)通常被选择为(消息特定的)类神经网络函数或具有权重矩阵W简单的线性变换 g m ( h i , h j ) = W h j g_m(h_i,h_j)=W_{h_j} gm(hi,hj)=Whj。
这种类型的转换已被证明在积累和编码来自局部结构化邻域的特征方面非常有效,并在图分类和基于图的半监督学习等领域取得了显著改进。
在这些架构的推动下,我们定义了以下简单传播模型,用于计算多重关系图(有向和标记)中由 v i v_i vi表示的实体或节点的前向传递更新:
其中, N i r N_i^r Nir表示的是关系 r ∈ R r \in R r∈R下节点i的邻居索引集, c i , r c_{i,r} ci,r是特定于问题的归一化常数,可以预先学习或者选择(例如 c i , r = ∣ N i r ∣ c_{i,r} = |N_i^r| ci,r=∣Nir∣)
直观地,2 式累加相邻节点的归一化变换特征向量。与常规GCN不同,我们引入了特定于关系的变换,即取决于边的类型和方向。为了确保层l+1上节点的表示也可以由层l上的对应表示通知,我们向数据中的每个节点添加了特殊关系类型的单个自连接。注意,代替简单的线性消息转换,可以选择更灵活的函数,如多层神经网络(以牺牲计算效率为代价)。我们把这个留给未来的工作。
神经网络层更新包括并行评估(2)式里图中的每个节点。在实践中,可以使用稀疏矩阵乘法有效地实现(2)式,以避免在邻域上的显式求和。可以堆叠多个层,以允许跨多个关系步骤的依赖关系。我们将该图编码器模型称为关系图卷积网络(R-GCN)。R-GCN模型中单节点更新的计算图如下图所示:
这是用于计算R-GCN模型中单个图节点/实体(红色)都更新的图。来自相邻节点(深蓝色)的激活(d维向量)被收集,然后针对每种关系类型分别进行变换(入边和出边)。生成的表示(绿色)累积在(归一化)和中,最后通过激活函数(如ReLU)。每个节点的更新可以与整个图中的共享参数并行计算。
将(2)式应用于高度多关系数据的一个核心问题是参数数量随着图中关系数量的快速增长。在实践中,这很容易导致对罕见关系的过度拟合,并导致模型非常大。
为了解决这个问题,我们引入了两种不同的方法来正则化R-GCN层的权重:基本分解和块对角分解 。通过基分解,每个 W r ( l ) W_r^{(l)} Wr(l)定义如下:
即一个具有系数 a r b ( l ) a^{(l)}_{rb} arb(l)的基变换 V b ( l ) ∈ R d ( l + 1 ) × d ( l ) V_b^{(l)} \in R^{d^{(l+1)} \times d^{(l)}} Vb(l)∈Rd(l+1)×d(l)的线性组合,使得只有系数依赖于r。
在块对角分解中,我们让每个 W r ( l ) W_r^{(l)} Wr(l)通过一组低维矩阵上的和来定义:
因此, W r ( l ) W_r^{(l)} Wr(l)是一个区域对角化矩阵: d i a g ( Q 1 r ( l ) , . . . , Q B r ( l ) ) diag(Q_{1r}^{(l)},...,Q_{Br}^{(l)}) diag(Q1r(l),...,QBr(l)), Q b r ( l ) ∈ R ( d ( l + 1 ) / B ) × ( d ( l ) / B ) Q_{br}^{(l)} \in R^{(d^{(l+1)}/B) \times (d^{(l)} / B) } Qbr(l)∈R(d(l+1)/B)×(d(l)/B)
基函数分解(3)可以被视为不同关系类型之间的有效权重共享形式,而块分解(4)可以被看作是每个关系类型的权重矩阵上的稀疏约束。块分解结构编码了一种直觉,即潜在特征可以被分组为组内比跨组更紧密耦合的变量集。这两种分解都减少了学习高度多关系数据(如现实知识库)所需的参数数量。同时,我们期望基参数化可以缓解稀有关系的过度拟合,因为稀有关系和更频繁关系之间共享参数更新。
然后,整个R-GCN模型采用以下形式:我们按照(2)式中的定义堆叠L层——上一层的输出是下一层的输入。如果不存在其他特征,则可以选择第一层的输入作为图中每个节点的独热向量。对于块表示,我们通过单个线性变换将这个热向量映射到稠密表示。但是我们在这项工作中只考虑了这种无特征的方法,我们注意到Kipf和Welling(2017)表明,这类模型可以使用预定义的特征向量(例如,与特定节点相关的文档的词袋描述)
对于节点(实体)的(半)监督分类,我们简单地堆叠形式(2)式的R-GCN层,并在最后一层的输出上激活(每个节点)。我们最小化所有标记节点上的以下交叉熵损失(忽略未标记节点):
其中, y y y是具有标签的节点集, h i k ( L ) h_{ik}^{(L)} hik(L)是第i个标记节点的网络输出的第k个条目。 t i k t_{ik} tik代表它们的真实标签,在实践中,我们使用(全批次)梯度下降技术训练模型。下图给出了实体分类模型的示意图:
链接预测处理新事实的预测(即三元组(主语、关系、宾语)。形式上,知识库由有向标记图G=(V,E,R)表示。我们只给出了一个不完整的子集 E ^ \hat{E} E^,而不是完整的边集E。任务是为可能的边(s,r,o)分配分数f(s,r,o),以确定这些边属于E的可能性。
为了解决这个问题,我们引入了一个图自动编码器模型,它由实体编码器和评分函数(解码器)组成。 编码器将每个实体 v i ∈ V v_i∈ V vi∈V映射到到实值向量 e i ∈ R d e_i∈ R^d ei∈Rd。解码器根据顶点表示重建图的边缘;换句话说,它通过函数 s : R d × R × R d → R s : R^d \times R \times R^d \rightarrow R s:Rd×R×Rd→R对三元组(主语,关系,宾语)进行评分。链接预测的大多数现有方法(例如张量和神经分解方法)都可以在该框架下进行解释。
我们工作的关键区别特征是对编码器的依赖。而以前的大多数方法对每个 v i ∈ V v_i \in V vi∈V使用单个实值向量 e i e_i ei在训练中直接优化,我们通过 e i = h i ( L ) e_i = h_i^{(L)} ei=hi(L)的R-GCN编码器计算表示,类似于Kipf和Welling(2016)中引入的用于无标记无向图的图自动编码器模型。我们的全链路预测模型如下图(b)所示:
在我们的实验中,我们使用DistMult因子分解作为评分函数,已知其在单独使用时在标准链路预测基准上表现良好。在DistMult中,每个关系r都与一个对角矩阵 R r ∈ R d × d R_r \in R^{d \times d} Rr∈Rd×d相关联,并且三元组(s,r,o)的得分为:
f ( s , r , o ) = e s T R r e o (6) f(s, r, o) = e_s^TR_re_o \tag{6} f(s,r,o)=esTRreo(6)
正如之前关于因子分解的工作一样,我们使用负采样训练模型。对于每个观察到的示例,我们采样ω个负样本。我们通过随机腐蚀每个正面示例的主体或对象进行采样。我们对交叉熵损失进行了优化,以推动模型获得比负三倍更高的可观察结果:
我们的主要贡献如下: