专栏首页生信菜鸟团KGCN:使用 TensorFlow 对知识图谱进行机器学习

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

本文翻译整理自:https://towardsdatascience.com/kgcns-machine-learning-over-knowledge-graphs-with-tensorflow-a1d3328b8f02

知识图谱卷积网络 (Knowledge Graph Convolutional Network KGCN) 框架旨在提供一种通用的方法以基于 Grakn 知识图谱执行学习任务。通过监督学习,KGCN可以用来创建任意标记 Grakn 实例的向量表示和嵌入。我们可以直接基于存储在 Grakn 中的实例训练 KGCN,进行分类或回归。KGCN 用 Python 编写,可通过 PyPi 安装。

Github 地址:https://github.com/vaticle/kglib/tree/master/kglib/kgcn

很多数据其实并不适合以表格的形式进行存储或分析,而知识图谱这种复杂且相互关联的形式可以完整存储每个数据点的上下文信息。

然而,许多现有的机器学习流程都依赖于每个示例的输入向量。然而创建这样的向量来表示知识图谱中的节点并非易事。

为了充分利用机器学习中现有的一些想法、工具和流程,所以我们需要一种构建这些向量的方法。通过这种方式,我们才能利用知识图谱中的上下文信息进行机器学习。

这就是 KGCN 的意义所在。给定知识图谱中的一个示例节点,收集该示例附近的节点及其上下文信息。并基于这些信息,确定向量表示以及嵌入。

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

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

为了构建有用的表示,KGCN 需要进行一些学习。为此它需要一个优化函数。重新审视这两个任务,我们有不同的情况来进行学习:

1.在有监督的情况下,我们可以针对想要执行的确切任务进行优化。在这种情况下,嵌入是学习流程中的临时张量;2.为了构建无监督嵌入作为输出,我们将最小化图中的一些相似性度量。

方法

KGCN 实现的方法基于 GraphSAGE,它非常适合在知识图谱上工作。KGCN 不是在典型的属性图上工作,而是从存储在类型化超图 Grakn 中的上下文数据中进行学习。除此之外,它还能从 Grakn 推导出的事实中进行学习。

接下来我们将介绍关键组件以及它们如何进行交互。

KGCN

KGCN 将为一组实例推导嵌入(从而直接学习对它们进行分类)。我们首先查询 Grakn,找到一组示例节点。随后,收集有关每个示例的上下文数据。

我们从 Grakn(上图)检索到有关该社区的数据,包括遇到的每个相邻实例的层次结构类型、角色和属性值,以及推测出的邻居(上图用虚线表示)。这些数据被处理成数组作为神经网络的输入。

再通过聚合和组合,我们就可以构建实例的单个向量表示形式,其中包含着广泛的上下文信息。

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

一个 KGCN 对象汇集了许多子组件,包括上下文构建器、邻居查找器、编码器和嵌入器。

嵌入器

为了创建嵌入,我们在 TensorFlow 中构建了一个网络,该网络可以连续聚合并组合来自 K hops 的特征,直到保留“摘要”表示(下图)。

为了创建流程,嵌入器为所纳入的邻居的 K hops 进行聚合和组合操作。例如,对于 2-hop 情况,就意味着 聚合-组合-聚合-组合。

上图展示了在监督分类的情况下的工作流程。

嵌入器负责串联聚合器和组合器。

聚合器

聚合器(如下图所示)是实例邻居子样本的向量表示。它将产生一个代表所有输入的向量。因为邻居是无序的,所以它必须以一种与顺序无关的方式来做到这一点。为了实现这一点,我们使用一个全连接层,并使用 maxpool 输出(maxpool 与顺序无关)。

组合器

一旦我们将实例的邻居聚合成单个向量表示,我们接下来则需要将其与该实例本身的向量表示相结合。组合器通过连接两个向量来实现这一点,并使用单个全连接层以降低维数。

有监督 KGCN 分类器

基于知识图谱的监督学习和传统的监督学习差不多,首先我们也将基于训练集进行学习,但在这种情况下,每个实例都是一个子图。我们需要先对 Grakn 进行检索,提取这些子图。

然后对这些图进行编码,并输出到 KGCN。最后,我们将得到具有预测节点属性值的同样的图。这些预测的性质可以用来回归或分类我们的子图的概念(即拟合)。利用这种方法,我们可以将关系预测作为一个节点存在性的分类任务。

下面是该流程简化版的 UML 图。

KGCN 的构建

学习使用 KGCN 最快的方式是直接看 GitHub 中的 README(https://github.com/vaticle/kglib/tree/master/kglib/kgcn)。

主要的代码框架,如下所述:

import kglib.kgcn.core.model as modelimport kglib.kgcn.learn.classify as classifyimport tensorflow as tfimport graknURI = "localhost:48555"client = grakn.Grakn(uri=URI)session = client.session(keyspace=training_keyspace)transaction = session.transaction(grakn.TxType.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()

本文分享自微信公众号 - 生信菜鸟团(bio_123456789),作者:鲍志炜

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-07-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一文了解推荐系统中的图神经网络

    引言:近年来,GNN技术由于其在图数据学习方面的出色表现,在许多领域得到了广泛的应用。在推荐系统中,大部分信息本质上具有图结构,而由于GNN对于表示学习具有一定...

    张小磊
  • 顶会宠儿:几何深度学习是个啥?读完这篇,小白也可以了解GDL!

    计算机视觉的最新进展,主要来自于新颖的深度学习方法,以及基于大量数据来执行特定任务的分层机器学习模型,随之而来的性能提升,引发了其他科学领域类似应用的淘金热。

    新智元
  • 使用TensorFlow Quantum进行量子机器学习

    2020年3月9日,谷歌人工智能确认了TensorFlow Quantum (TFQ)的可用性,它是一个用于快速研发量子机器学习模型的开源库。

    人工智能小咖
  • 中国AI开发者真实现状:写代码这条路,会走多久?

    2016 年起,人工智能成为中国开发者重点关注的技术领域,以深度学习驱动的计算机视觉、自然语言处理、语音相关技术成为渗透最广的三个 AI 技术领域。然而,在这样...

    昱良
  • 中国AI开发者真实现状:写代码这条路,会走多久?

    2016 年起,人工智能成为中国开发者重点关注的技术领域,以深度学习驱动的计算机视觉、自然语言处理、语音相关技术成为渗透最广的三个 AI 技术领域。然而,在这样...

    AI科技大本营
  • 资源 | 清华大学开源OpenKE:知识表示学习平台

    机器之心
  • TKDE2020 | 基于知识图谱的推荐系统综述

    A Survey on Knowledge Graph-Based Recommender Systems

    张小磊
  • 机器学习术语表

      最近工作需要,初学了一下机器学习。一开始对其中的很多名词都不理解,就在网上找了一些资料。这里简单整理下。

    文渊同学
  • 走向TensorFlow2.0,一步到位

    █ 本文作者 薛巍,阿里巴巴菜鸟网络技术专家,摘自《走向TensorFlow 2.0》一书推荐序。

    博文视点Broadview
  • 看其他GNN介绍我想转行,看完这篇我又可以了

    随着在线信息的爆炸式增长,推荐系统在缓解此类信息过载方面起着关键作用,同时由于推荐系统具有重要的应用价值,这方面的研究一直很热门。图神经网络GNN(Gr...

    炼丹笔记
  • 声音分类的迁移学习

    识别我们周围环境中的声音是我们人类每天很轻松就能做到的事情,但是对于计算机相当困难。如果计算机可以准确识别声音,它将会在机器人,安全和许多其他领域得到广泛应用。...

    AiTechYun
  • 如何成为一名对话系统工程师

    用户1737318
  • 书单丨人工智能领域5本新书,追逐AI技术发展脚步

    本书以“平民”的起点,从“零”开始介绍深度学习的技术与技巧,让读者有良好的带入感和亲近感,并通过逐层铺垫,把学习曲线拉平,使得没有学过微积分等高级理论的程序员朋...

    博文视点Broadview
  • 精选 Github 近期13款开源工具包!(附数据集、链接)

    本文共1700字,建议阅读6分钟。 本文为你精选近期Github上的13款深度学习开源工具包和数据集,一起Star和Fork吧~

    数据派THU
  • 本周 Github 精选:13 款炼丹利器,有开源工具包也有超大数据集

    朱晓霞
  • 【下载】 TensorFlow:实战Google深度学习框架

    【导读】“深度学习”这个词在过去的一年之中已经轰炸了媒体、技术博客甚至到朋友圈。这也许正是你会读到本书的原因之一。数十年来,人工智能技术虽不断发展,但像深度学习...

    WZEARW
  • 独家 |如何创造性地应用深度学习视觉模型于非视觉任务(附代码)

    众所周知,目前深度学习在计算机视觉领域已经有很好的应用落地,再加上迁移学习,可以很容易的训练出一个用于视觉任务的模型。但是现实中还有很多任务的原始数据是非视觉类...

    数据派THU
  • 基于Python的车牌检测和识别系统

    车牌的检测和识别的应用非常广泛,比如交通违章车牌追踪,小区或地下车库门禁。在对车牌识别和检测的过程中,因为车牌往往是规整的矩形,长宽比相对固定,色调纹理相对固定...

    机器学习AI算法工程
  • 1900页数学基础:面向CS的线性代数、拓扑、微积分和最优化

    链接:http://www.cis.upenn.edu/~jean/math-basics.pdf

    Python数据科学

扫码关注云+社区

领取腾讯云代金券