摘要:本文介绍了图神经网络在学界和业界的发展情况,并给出了图神经网络的基本概念与表示形式,总结了图神经网络的变体,最后介绍了华为云图神经网络框架。

本文分享自华为云社区《干饭人,干饭魂,搞懂图神经网络稳饭盆》,原文作者:敏捷的小智。

干饭人!2021年大厂都在用的图神经网络( GNN )还不懂吗?一文带你 GNN 从入门到起飞,做一个饭盆最稳 GNN 饭人!

图神经网络到底图个啥?

搞懂图神经网络,首先你要先明白到底图个啥啥是图!图这种结构普遍存在于人类社会生活中,如人与人之间的社交网络会构成图、地铁线路及高铁线路会构成图、网民购买商品会构成“网民-商品”图、互联网中网页间的互相链接会构成图、论文的互相引用也会构成图。根据这些图的信息可以完成很多任务,例如根据用户和商品的历史交互,预测一个用户是否会购买一个商品或对它感兴趣;又如根据用户间的好友关系或交流记录,预测用户和用户之间是否构成好友关系。

既然图无处不在,那我们怎么去对图做分析呢?目前,图分析任务通常采用图嵌入技术进行解决。通过图嵌入技术,可以将图中的结构及内容等信息用一个低维向量进行表征,该向量可以作为输入用于下游的学习任务中。另外,图嵌入还可以与深度学习技术相结合。例如,基于局部连接与平移不变的假设,可以将图嵌入与卷积神经网络(Convolutional Neural Network,CNN)相结合,从而得到图神经网络(Graph neural network,GNN)。

图上的学习任务包括:

  1. 图节点分类任务:图中每个节点都有对应的特征,当我们已知一部分节点的类别时,可以对未知类型的节点进行分类。
  2. 图边结构预测任务:图中节点与节点之间的边关系也存在多种类型,该任务是对节点和节点之间关系的预测。
  3. 图的分类:该任务是对整个图进行分类,基本思路是将图中节点的特征聚合起来作为图的特征,再进行分类。

学界业界发展成啥样了?

学界发展情况

近年来,图神经网络迎来了快速爆发期。在理论研究方面,相关工作对图神经网络的原理解释、变体模型以及对各种图数据的拓展适配等进行了研究。统计近一年各大顶级会议上的相关论文,可以发现图神经网络成为最大的研究热点。

图 2.1 学界发展情况

业界发展情况

在应用实践方面,图神经网络展现出前所未有的渗透性,从视觉推理到开放性的阅读理解问题,从药物分子的研发到5G芯片的设计,从交通流量预测到3D点云数据学习,可以看到图神经网络极其广阔的应用前景。

蚂蚁金服利用图神经网络模型,挖掘设备共用图中“正常用户”和“骗保团伙”的关系模式,从而实现了对恶意账户的识别。图中每个节点都有自己的特征信息,通过这些特征信息,可以挖掘某一用户节点所关联的设备节点信息,当某一个用户关联众多设备时,可以认为该用户存在高危风险。同时,基于图中的关联关系,与该恶意用户及关联设备相互连接的节点也可能存在高危风险。

图 2.2 蚂蚁金服:高危账户识别

滴滴出行研究了一种基于时空多图卷积神经网络的网约车需求量预测模型。通过分析区域之间复杂的时空依赖关系,对网约车需求量进行准确预测,指导车辆的调度,提高车辆的利用率,减少等待时间,并在一定程度上缓解了交通的拥堵。

图 2.3 滴滴出行:车辆调控管理

阿里妈妈利用图神经网络,从用户行为日志、内容属性等不同维度挖掘Query(查询词)、Item(商品)和Ad(广告)的多种关系。对于在线请求场景,通过计算用户查询词向量、前置行为中节点向量和广告节点向量之间的距离进行高效的向量化最近邻检索,从而快速匹配到符合用户意图的广告并推荐给用户。

图 2.4 阿里妈妈:搜索广告 匹配

网易音乐通过图神经网络,挖掘用户的特征、歌曲的特征、用户对歌曲的行为特征,实现精准的音乐推荐。图中每个节点都具有结构信息,如果用户频繁订阅某种类别音乐或对某种类别音乐评分较高,那么系统就可以认定该用户对该类音乐比较感兴趣,就可以向该用户推荐更多该类别的音乐。

图 2.5 网易:音乐推荐

图神经网络

图论基本概念

针对非欧几里得结构化数据表示问题,研究者们引入了图论中抽象意义上的图(Graph)来表示非欧几里得结构化数据。

图(Graph)由顶点集合以及连边集合构成,通常可以定义为如下形式:

顶点集合( Vertex ) 可以表示为

边集合( Edge )可以表示为

图的表示形式

常采用顶点的度矩阵、邻接矩阵以及拉普拉斯矩阵等对图进行刻画。

顶点的度矩阵( Degree ):与该顶点相关联的边的条数

邻接矩阵( Adjacency matrix ):图结构的常用表示方法

拉普拉斯矩阵( Laplacian matrix ):图结构的一种表示方法

下图给出了 连通图及对应 的 度矩阵、邻接矩阵 、 拉普拉斯矩阵 的示例 。

图 3.1 图论基本概念

图神经网络模型

图嵌入模型

图嵌入( Graph Embedding )是指,将图中的节点、边或子图由低维连续向量进行表征。为了得到图嵌入表征,可以利用图中的消息传播机制。图中的消息传播机制包括两个步骤:消息汇聚( aggregation/combine ),节点更新( update )。消息汇聚是指根据周围邻居节点特征,节点更新是指学习中心节点的嵌入表示。图中的消息传播机制可以由下式进行表征。

式中 , □表示可导且与输入顺序无关的函数,例如求和、均值或最大值函数等; γ 和 φ 表示可导函数,例如多层感知器 。

图 3.2 图嵌入模型

图卷积神经网络

在图卷积神经网络中,层与层之间的传播方式为:

下图为图卷积神经网络的示意图,图卷积神经网络的输入为一张图,通过若干层后节点特征从 变为 ,共享中间多个隐层中 参数。

图 3.3 图卷积神经网络

构造一个两层的图卷积神经网络,激活函数分别采用 ReLU 和 Softmax ,则整体的正向传播的公式为:

最后,根据特征 ,可以做下游任务,如节点分类任务、图分类任务、节点连接预测任务等。

图注意力网络

注意力机制可以理解成一个加权求和的过程:对于一个给定的 query ,有一系列的 value 和与之一一对应的 key ,那么如何计算 query 的结果呢?很简单,计算 query 与所有 key 的相似度,然后根据相似度对所有的 value 加权求和。这个相似度就是 attention coefficients ,计算公式如下:

式中, 为前馈神经网络的权重系数, || 代表拼接操作。

图 3.4 图注意力网络

利用注意力机制,可以对图中各节点特征进行更新:

利用多头注意力机制,可以用 个权重系数分别对节点特征进行更新:

图 3.5 图注意力网络中的多头机制

图注意力网络的优点包括:可以在不同的节点上进行并行计算、可以同时对拥有不同度的节点进行处理、可以对从未见过的图结构进行处理并用于解决归纳学习问题。

异质图注意力网络

GCN直接在同质图上操作,并根据其邻域的属性诱导融合得到当前节点的嵌入表示。在同质图中,每层的传播规则如下式所示

在异质网络中,节点有多种类型T={τ1, τ2, τ3, …},GCN不能直接应用于异质网络。为了解决这个问题,可以采用异质图卷积,考虑各种类型信息的异质性,并利用类型相关的变换矩阵将它们投射到公共的隐式空间中。

当给定某特定节点时,不同类型的相邻节点可能对其具有不同的影响,例如,相同类型的相邻节点可能会携带更有用的信息,而相同类型的不同相邻节点也会具有不同的重要性。因此,可以设计一种异质网络的双层注意力机制。

图神经网络平台

当前图神经网络平台研发的难点在于缺少统一的算法框架,同时需要提升数据处理的效率。图数据的遍历及其与深度学习的交互会导致图的运算效率大大降低,这也是图深度学习一直无法落地的瓶颈之一。如果想要在性能上有所突破,就需要重新设计一个新的图深度学习框架,以下介绍华为云图神经网络框架。

图 4.1 图注意力网络中的多头机制

(1)基于图引擎的GNN新框架:在ModelArts中高效神经网络训练算子的基础上,结合图引擎服务(Graph Engine Service,简称GES)既有的高性能图计算框架平台能力,利用图引擎高并发、低延时的特点,将GNN的训练过程高度并行化,如将边上的跳转概率估计、顶点邻域采样、负样本构建等,都化解为每个顶点的局部操作;系统提供了动态调度器,让这些局部操作可高度并行化执行,就能极大提升系统的总体吞吐量。

(2)多种GNN算法框架统一化:使用统一架构实现了非监督的大规模图嵌入(例如DeepWalk、Node2Vec)和半监督的图卷积(例如GCN、GraphSAGE)等多类GNN算法,降低了系统的维护成本。

(3)GNN与图数据管理一体化:企业级GNN应用通常都不会是一次性计算,而且数据规模也很大,因此这些数据必须要被维护和管理起来。而现有的GNN通常不具备这种能力,用户只能另建数据库维护,计算的时候再把数据整体导出。不仅资源消耗大,也引入数据一致性等诸多问题。而GES采用属性图数据模型(Property Graph)和生态兼容的事实标准Gremlin图查询语言进行分布式图数据管理和维护,需要训练的时候则在图引擎内本地调用各类算子,并发执行,降低了端到端的性能损耗。

华为云图神经网络借助ModelArts的高效神经网络训练优势,以及GES的高性能图计算优势,大幅度提升了GNN的总体计算效率,以node2vec算法为例,在PPI数据集上,华为云图神经网络从采样到训练可在2min内完成,较传统开源实现提升20倍。

图神经网络有前途!

随着图神经网络研究的热度不断上升,图神经网络的不同变种也不断地涌现出来。此外,由于图神经网络对于非欧空间数据具有良好的表达能力,在电商、金融、交通、社会科学等有大量数据积淀的交叉领域有着广阔的应用前景。本文介绍了图神经网络在学界和业界的发展情况,并给出了图神经网络的基本概念与表示形式,总结了图神经网络的变体,最后介绍了华为云图神经网络框架。希望本文能为GNN道路上的你提供一些参考!

点击关注,第一时间了解华为云新鲜技术~

一文带你 GNN 从入门到起飞,做一个饭盆最稳 GNN 饭人!的更多相关文章

  1. Vue.js 入门:从零开始做一个极简 To-Do 应用

    Vue.js 入门:从零开始做一个极简 To-Do 应用 写作时间:2019-12-10版本信息:Vue.js 2.6.10官网文档:https://cn.vuejs.org/ 前言  学习 Vue ...

  2. Istio是啥?一文带你彻底了解!

    原标题:Istio是啥?一文带你彻底了解! " 如果你比较关注新兴技术的话,那么很可能在不同的地方听说过 Istio,并且知道它和 Service Mesh 有着牵扯. 这篇文章可以作为了解 ...

  3. 【转帖】Istio是啥?一文带你彻底了解!

    Istio是啥?一文带你彻底了解! http://www.sohu.com/a/270131876_463994 原始位置来源: https://cizixs.com 如果你比较关注新兴技术的话,那么 ...

  4. 让自己写的电子笔记连文带图全平台兼容(MarkDown图片显示兼容)

    目录 一.工具使用 语言使用:MarkDown 简介 使用原因 使用方法 软件使用:Typora 简介 环境设置搭建 1)搭建图床 2)配置PicGo 3)配置typora 4)测试 图片上传测试 平 ...

  5. 实战 | 一文带你读懂Nginx反向代理

    一个执着于技术的公众号 前言 在前面的章节中,我们已经学习了nginx基础知识: 给小白的 Nginx 10分钟入门指南 Nginx编译安装及常用命令 完全卸载nginx的详细步骤 Nginx 配置文 ...

  6. 一文带您了解5G的价值与应用

    一文带您了解5G的价值与应用 5G最有趣的一点是:大多数产品都是先有明确应用场景而后千呼万唤始出来.而5G则不同,即将到来的5G不仅再一次印证了科学技术是第一生产力还给不少用户带来了迷茫——我们为什么 ...

  7. 一文带你了解elasticsearch

    一文带你了解elasticsearch cxf2102100人评论160人阅读2019-07-02 21:31:36   elasticsearch es基本概念 es术语介绍 文档Document ...

  8. 一文带你了解 C# DLR 的世界

    一文带你了解 C# DLR 的世界 在很久之前,我写了一片文章dynamic结合匿名类型 匿名对象传参,里面我以为DLR内部是用反射实现的.因为那时候是心中想当然的认为只有反射能够在运行时解析对象的成 ...

  9. 一文带你看清HTTP所有概念(转)

    一文带你看清HTTP所有概念   上一篇文章我们大致讲解了一下 HTTP 的基本特征和使用,大家反响很不错,那么本篇文章我们就来深究一下 HTTP 的特性.我们接着上篇文章没有说完的 HTTP 标头继 ...

  10. 一文带你了解js数据储存及深复制(深拷贝)与浅复制(浅拷贝)

    背景 在日常开发中,偶尔会遇到需要复制对象的情况,需要进行对象的复制. 由于现在流行标题党,所以,一文带你了解js数据储存及深复制(深拷贝)与浅复制(浅拷贝) 理解 首先就需要理解 js 中的数据类型 ...

随机推荐

  1. vscode双击没反应,后台也看不到进程的解决方案

    百度找的解决方案: cmd窗口执行 netsh winsock reset 重置命令. 删除Romaing下的Code文件夹 修改Code/User/locale.json(我没找到这个文件)中的&q ...

  2. 为zabbix穿上一件漂亮的外衣

    zabbix+Grafana 7.0  zabbix的环境已部署好的情况下,zabbix部分-- 略 Grafana简介: 1.Grafana自身并存储数据,数据从其它地方获取.需要配置数据源 2.G ...

  3. 放弃老旧的Mybatis,强类型替换字符串,这是一款你不应该错过的ORM

    一款轻量级.高性能.强类型.易扩展符合C#开发者的JAVA自研ORM github地址 easy-query https://github.com/xuejmnet/easy-query gitee地 ...

  4. webview是什么?作用是什么?和浏览器有什么关系?

    Webview 是一个基于webkit的引擎,可以解析DOM 元素,展示html页面的控件,它和浏览器展示页面的原理是相同的,所以可以把它当做浏览器看待.(chrome浏览器也是基于webkit引擎开 ...

  5. JUC并发编程学习笔记(七)常用的辅助类

    常用的辅助类 CountDownLatch 这是一个JUC计数器辅助类,计数器有加有减,这是减. 使用方法 package org.example.demo; import java.util.con ...

  6. .NET8 WebApplication剖析

    ​ WebApplication 是用于配置HTTP管道和路由的web应用程序,接来下我将一一拆解它的组成. /// <summary> /// The web application u ...

  7. easyre-153

    这里也是没有做出来,因为有隐藏函数的原因(第一次见) 攻防世界XCTF 3rd-RCTF-2017 easyre153学习笔记_rhelheg-CSDN博客 攻防世界逆向高手题之easyre-153- ...

  8. APISIX proxy-cache 插件用法

    APISIX 的 proxy-cache 插件可以对上游的查询进行缓存,这样就不需要上游的应用服务自己实现缓存了,或者也能少实现一部分缓存,通用的交给插件来做. 下面的操作都是基于 APISIX 3. ...

  9. (数据科学学习手札155)基于martin为在线地图构建字体切片服务

    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,在之前的一篇文章(基于mart ...

  10. 0x04.信息收集

    探针 被动:借助网上的一些接口查询或者网上已经获取到的,查看历史信息. 主动:使用工具,从本地流量出发,探测目标信息,会发送大量流量到对方服务器上. 谷歌语法 懒人语法:https://pentest ...