本文主要介绍了一种新的模型:知识图谱卷积网络神经网络 (KGCN),它是一种端到端的框架,能够通过挖掘KG上的相关属性,有效地捕获项间相关性。这项工作的主要思想是利用Grakn作为知识图谱,在知识图谱、自动逻辑推理和机器学习之间架起一座桥梁。
摘要
KGCN通过监督学习可以创建任何标签的Grakn Things集合的向量表示以及嵌入。
1.可以直接地对KGCN进行训练,以便对存储在Grakn中的实例进行分类或回归。
2.未来的工作将从通过无监督学习构建嵌入方面展开。
介绍
通常,数据并不适合表格的格式,相比之下,将复杂和相互关联的数据存储在知识图谱中有许多好处,尤其是它能完整地存储每个数据点的上下文信息。
然而,许多现有的机器学习技术依赖于每个例子的输入向量。创建这样的向量来表示知识图谱中的节点是具有挑战性的。
为了利用机器学习中丰富的现有的方法,工具和通道,我们需要一种构建这些向量的方法。通过这种方式,我们可以利用知识图谱中的上下文信息来进行机器学习。
这是KGCN可以实现的。通过给定知识图谱中的例子节点,它可以检查该例子附近的节点及其上下文。基于该上下文,它可以确定该例子的向量表示以及嵌入。
KGCN适用于两个广泛的学习任务:
1.从知识图谱中通过监督学习进行预测,例如多分类,回归和链接预测等。 2.无监督学习知识图谱的嵌入构建,例如用于聚类和节点比较任务。
为了建立有用的表示,KGCN需要进行一些学习。要做到这一点,它需要一个优化的函数。通过重新审视可以执行的任务,我们有不同的方式来进行学习:
1.在有监督的情况下,我们可以针对想要执行的明确任务进行优化。在这种情况下,嵌入是学习通道中的临时张量。
2.为了构建无监督学习嵌入作为输出,我们优化的目标则是最小化图中的一些相似性。
方法
实施的方法基于来自斯坦福SNAP小组的GraphSAGE,它非常适合于在知识图谱上工作。KGCN不处理典型的属性图,而是对从存储在类型化超图Grakn中的上下文数据进行学习。此外,它还能对从Grakn的自动逻辑推理器推导出的事实进行学习。
现在我们开始介绍关键组件以及它们如何进行交互。
KGCN
KGCN负责派生一组Things的嵌入(从而直接学习对它们进行分类)。我们首先查询Grakn以找到一组标签的例子。然后我们收集有关每个例子Thing的上下文的数据。我们这样做是通过递归地考虑他们的邻居和他们的邻居的邻居,直到K跳。
我们从Grakn(如上图所示)中检索有关该邻近的数据。此信息包括连接的每个相邻Thing 的层次结构类型,角色和属性值,以及推测出的邻居(由上图中的虚线表示)。这些数据被处理成矩阵作为神经网络的输入。
再通过Aggregate和Combine操作,就可以构建Thing的单个向量表示。这个过程可以递归地链接到相邻Things的K跳上。这就完成了包含从广泛上下文提取的信息的感兴趣的Thing表示。
在监督学习中,这些嵌入是直接优化来执行任务的。对于多分类,这是通过将嵌入传递到单个后续全连接层并通过softmax交叉熵确定损失来实现的(针对例子Thing标签); 然后,进行优化以减少损失。
KGCN对象将许多子组件、上下文构建器、邻居查找器、编码器和嵌入器组合在一起。
嵌入器
为了创建嵌入,我们在TensorFlow中构建一个网络,该网络能够连续地聚合和组合从K跳到保留“摘要”表示的特征---一种嵌入(如下图所示)。
为了创建通道,Embedder对所考虑的邻居的K-hop进行聚合和组合操作。例如,对于2跳的情况,这意味着Aggregate-Combine-Aggregate-Combine。
上图显示了在监督学习分类的情况下如何工作。
Embedder负责链接子组件Aggregator和Combiner。
聚合器
一个聚合器(如下图所示)发生在一件事的邻居的子样本的向量表示。它产生一个代表所有这些输入的向量。它必须以与订单无关的方式执行此操作,因为邻居是无序的。为实现这一目标,我们使用一个全连接层,并使用maxpool输出(maxpool与顺序无关)。
组合器
一旦我们将Thing的邻居聚合成单个向量表示,我们需要将它与Thing本身的向量表示相结合。组合器通过连接两个向量实现这一点,并减少使用单个全连接层的维数。
有监督KGCN分类器
有监督的KGCN分类器是负责实际的学习任务的。对于任何使用KGCN的学习者,它提供:
1.方法训练/评估/预测
2.嵌入张量到预测的通道
3.预测和标签的损失函数
4.优化
5.循环反向传播训练
下面是程序流程的略微简化的UML活动图。
建立KGCN
在开始构建KGCN之前,需要查看阅读文件的快速入门,确保满足所有要求并遵循例子的使用说明,模板代码如下:
下载链接:https://pan.baidu.com/s/1CivnydJQD5hd8OHyB_8vpg 提取码:4lxf