KGCN:使用TensorFlow进行知识图谱的机器学习

2019 年 8 月 4 日 专知
导读

本文主要介绍了一种新的模型:知识图谱卷积网络神经网络 (KGCN),它是一种端到端的框架,能够通过挖掘KG上的相关属性,有效地捕获项间相关性。这项工作的主要思想是利用Grakn作为知识图谱,在知识图谱、自动逻辑推理和机器学习之间架起一座桥梁。


作者 | James Fletcher

编译 | 专知

整理 | Yanfei Han



1
摘要

KGCN通过监督学习可以创建任何标签的Grakn Things集合的向量表示以及嵌入。

    1.可以直接地对KGCN进行训练,以便对存储在Grakn中的实例进行分类或回归。

    2.未来的工作将从通过无监督学习构建嵌入方面展开。



2
介绍

通常,数据并不适合表格的格式,相比之下,将复杂和相互关联的数据存储在知识图谱中有许多好处,尤其是它能完整地存储每个数据点的上下文信息。


然而,许多现有的机器学习技术依赖于每个例子的输入向量。创建这样的向量来表示知识图谱中的节点是具有挑战性的。


为了利用机器学习中丰富的现有的方法,工具和通道,我们需要一种构建这些向量的方法。通过这种方式,我们可以利用知识图谱中的上下文信息来进行机器学习。


这是KGCN可以实现的。通过给定知识图谱中的例子节点,它可以检查该例子附近的节点及其上下文。基于该上下文,它可以确定该例子的向量表示以及嵌入。


KGCN适用于两个广泛的学习任务:

    1.从知识图谱中通过监督学习进行预测,例如多分类,回归和链接预测等。
    2.无监督学习知识图谱的嵌入构建,例如用于聚类和节点比较任务。

为了建立有用的表示,KGCN需要进行一些学习。要做到这一点,它需要一个优化的函数。通过重新审视可以执行的任务,我们有不同的方式来进行学习:

    1.在有监督的情况下,我们可以针对想要执行的明确任务进行优化。在这种情况下,嵌入是学习通道中的临时张量。

    2.为了构建无监督学习嵌入作为输出,我们优化的目标则是最小化图中的一些相似性。


3
方法

实施的方法基于来自斯坦福SNAP小组的GraphSAGE,它非常适合于在知识图谱上工作。KGCN不处理典型的属性图,而是对从存储在类型化超图Grakn中的上下文数据进行学习。此外,它还能对从Grakn的自动逻辑推理器推导出的事实进行学习。


现在我们开始介绍关键组件以及它们如何进行交互。


4
KGCN

KGCN负责派生一组Things的嵌入(从而直接学习对它们进行分类)。我们首先查询Grakn以找到一组标签的例子。然后我们收集有关每个例子Thing的上下文的数据。我们这样做是通过递归地考虑他们的邻居和他们的邻居的邻居,直到K跳。

我们从Grakn(如上图所示)中检索有关该邻近的数据。此信息包括连接的每个相邻Thing 的层次结构类型,角色和属性值,以及推测出的邻居(由上图中的虚线表示)。这些数据被处理成矩阵作为神经网络的输入。


再通过Aggregate和Combine操作,就可以构建Thing的单个向量表示。这个过程可以递归地链接到相邻Things的K跳上。这就完成了包含从广泛上下文提取的信息的感兴趣的Thing表示。

在监督学习中,这些嵌入是直接优化来执行任务的。对于多分类,这是通过将嵌入传递到单个后续全连接层并通过softmax交叉熵确定损失来实现的(针对例子Thing标签); 然后,进行优化以减少损失。


KGCN对象将许多子组件、上下文构建器、邻居查找器、编码器和嵌入器组合在一起。


5
嵌入器

为了创建嵌入,我们在TensorFlow中构建一个网络,该网络能够连续地聚合和组合从K跳到保留“摘要”表示的特征---一种嵌入(如下图所示)。

为了创建通道,Embedder对所考虑的邻居的K-hop进行聚合和组合操作。例如,对于2跳的情况,这意味着Aggregate-Combine-Aggregate-Combine。

上图显示了在监督学习分类的情况下如何工作。

Embedder负责链接子组件Aggregator和Combiner。


6
聚合器

一个聚合器(如下图所示)发生在一件事的邻居的子样本的向量表示。它产生一个代表所有这些输入的向量。它必须以与订单无关的方式执行此操作,因为邻居是无序的。为实现这一目标,我们使用一个全连接层,并使用maxpool输出(maxpool与顺序无关)。


7
组合器

一旦我们将Thing的邻居聚合成单个向量表示,我们需要将它与Thing本身的向量表示相结合。组合器通过连接两个向量实现这一点,并减少使用单个全连接层的维数。


8
有监督KGCN分类器

有监督的KGCN分类器是负责实际的学习任务的。对于任何使用KGCN的学习者,它提供:

    1.方法训练/评估/预测

    2.嵌入张量到预测的通道

    3.预测和标签的损失函数

    4.优化

    5.循环反向传播训练

下面是程序流程的略微简化的UML活动图。


9
建立KGCN

在开始构建KGCN之前,需要查看阅读文件的快速入门,确保满足所有要求并遵循例子的使用说明,模板代码如下:

import kglib.kgcn.core.model as model
import kglib.kgcn.learn.classify as classify
import tensorflow as tf
import grakn.client

URI = 
"localhost:48555"

client = grakn.client.GraknClient(uri=URI)
session = client.session(
keyspace=training_keyspace)
transaction = session.transaction().write()

kgcn = model.KGCN(neighbour_sample_sizes
,
                 
features_size,
                 
example_things_features_size,
                 
aggregated_size,
                 
embedding_size,
                 
transaction,
                 
batch_size)

optimizer = tf.train.GradientDescentOptimizer(
learning_rate=learning_rate)

classifier = classify.SupervisedKGCNMultiClassSingleLabelClassifier(kgcn
,
                                                  
optimizer,
                                                  
num_classes,
                                                  
log_dir,                           

          max_training_steps=max_training_steps)

training_feed_dict = classifier.get_feed_dict(session
,
                                              
training_things,
                                              
labels=training_labels)

classifier.train(training_feed_dict)

transaction.close()
session.close()


原文链接:

https://blog.grakn.ai/kgcns-machine-learning-over-knowledge-graphs-with-tensorflow-a1d3328b8f02

代码地址:https://github.com/graknlabs/kglib/tree/master/kglib/kgcn?source=post_page

请关注专知公众号(点击上方蓝色专知关注)后台回复“KGCN” 就可以获取KGCN PPT下载链接。



-END-

 · 

专知,专业可信的人工智能知识分发,让认知协作更快更好!欢迎登录www.zhuanzhi.ai,注册登录专知,获取更多AI知识资料!


欢迎微信扫一扫加入专知人工智能知识星球群,获取最新AI专业干货知识教程视频资料和与专家交流咨询


请加专知小助手微信(扫一扫如下二维码添加),加入专知人工智能主题群,咨询技术商务合作~

专知《深度学习:算法到实战》课程全部完成!560+位同学在学习,现在报名,限时优惠!网易云课堂人工智能畅销榜首位!

点击“阅读原文”,了解报名专知《深度学习:算法到实战》课程

登录查看更多
16

相关内容

知识图谱(Knowledge Graph),在图书情报界称为知识域可视化或知识领域映射地图,是显示知识发展进程与结构关系的一系列各种不同的图形,用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系。 知识图谱是通过将应用数学、图形学、信息可视化技术、信息科学等学科的理论与方法与计量学引文分析、共现分析等方法结合,并利用可视化的图谱形象地展示学科的核心结构、发展历史、前沿领域以及整体知识架构达到多学科融合目的的现代理论。它能为学科研究提供切实的、有价值的参考。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
【斯坦福CS520】向量空间中嵌入的知识图谱推理,48页ppt
专知会员服务
97+阅读 · 2020年6月11日
图卷积神经网络蒸馏知识,Distillating Knowledge from GCN
专知会员服务
94+阅读 · 2020年3月25日
【图神经网络(GNN)结构化数据分析】
专知会员服务
113+阅读 · 2020年3月22日
机器学习速查手册,135页pdf
专知会员服务
335+阅读 · 2020年3月15日
【斯坦福大学-论文】实体上下文关系路径的知识图谱补全
一文读懂图卷积GCN
计算机视觉life
21+阅读 · 2019年12月21日
基于TensorFlow和Keras的图像识别
Python程序员
16+阅读 · 2019年6月24日
图卷积神经网络(GCN)文本分类详述
专知
278+阅读 · 2019年4月5日
在数据采集器中用TensorFlow进行实时机器学习
云栖社区
4+阅读 · 2018年11月30日
连载 | 知识图谱发展报告 2018 -- 前言
开放知识图谱
18+阅读 · 2018年10月7日
如何将知识图谱特征学习应用到推荐系统?
微软研究院AI头条
7+阅读 · 2018年6月5日
Tensorflow Eager Execution入门指南
专知
6+阅读 · 2018年4月16日
在深度学习TensorFlow 框架上使用 LSTM 进行情感分析
北京思腾合力科技有限公司
4+阅读 · 2017年8月9日
Arxiv
20+阅读 · 2019年9月7日
Embedding Logical Queries on Knowledge Graphs
Arxiv
3+阅读 · 2019年2月19日
Arxiv
28+阅读 · 2018年4月6日
Arxiv
9+阅读 · 2018年2月4日
VIP会员
相关资讯
一文读懂图卷积GCN
计算机视觉life
21+阅读 · 2019年12月21日
基于TensorFlow和Keras的图像识别
Python程序员
16+阅读 · 2019年6月24日
图卷积神经网络(GCN)文本分类详述
专知
278+阅读 · 2019年4月5日
在数据采集器中用TensorFlow进行实时机器学习
云栖社区
4+阅读 · 2018年11月30日
连载 | 知识图谱发展报告 2018 -- 前言
开放知识图谱
18+阅读 · 2018年10月7日
如何将知识图谱特征学习应用到推荐系统?
微软研究院AI头条
7+阅读 · 2018年6月5日
Tensorflow Eager Execution入门指南
专知
6+阅读 · 2018年4月16日
在深度学习TensorFlow 框架上使用 LSTM 进行情感分析
北京思腾合力科技有限公司
4+阅读 · 2017年8月9日
相关论文
Arxiv
20+阅读 · 2019年9月7日
Embedding Logical Queries on Knowledge Graphs
Arxiv
3+阅读 · 2019年2月19日
Arxiv
28+阅读 · 2018年4月6日
Arxiv
9+阅读 · 2018年2月4日
Top
微信扫码咨询专知VIP会员