摘要:图神经网络是一种基于图结构的深度学习方法。
一、什么是图神经网络
图神经网络(Graph Neu作ral Networks, GNNs)是一种基于图结构的深度学习方法,从其定义中能够看出图神经网络主要由两部分组成,即“图”和“神经网络”。这里的“图”是图论中的图数据结构,“神经网络”是咱们熟悉的深度学习NN结构,如MLP,CNN,RNN等。要了解图神经网络咱们须要先回顾一下“图”和“神经网络”的基本概念。node
1.1图的定义
1.2典型神经网络
典型的神经网络结构有两条主线,一条主线是卷积神经网络,简称CNN,主要用于图像类数据的处理。另外一条主线是循环神经网络,简称RNN,主要用于时序类数据的处理。因为神经网络结构的介绍不是本篇的重点,所以在这里不作重点介绍。只展现以下两图典型的CNN和RNN的结构:算法
下图展现了当前的主流神经网络结构以及适用的场景:网络
1.3图神经网络
根据上述对图和神经网络的回顾,咱们能够看出,图神经网络就是借助神经网络的“能力”如深度特征抽取等来处理图结构的数据,所以对于图神经网络,其直观的结构应该以下图:数据结构
其中图结构的数据有许多,如社交网络图、交通路线图、人物关系图、分子结构图、计算结网络拓扑图等等。这些数据均可以做为图神经网络的输入。以后通过特定的神经网络结构,如MLP,CNN,RNN等的基于图结构的运算,能够完成对于图表示的分类,图的节点或边的预测等功能。框架
二、为何须要图神经网络
近年来,深度学习已经完全改变了许多机器学习任务,从图像分类和视频处理,到语音识别和天然语言理解,这些任务中的数据一般表示在欧几里得空间中。然而,在愈来愈多的应用程序中,数据是从非欧几里得域生成的,并表示为具备复杂关系和对象之间相互依赖的图形。图数据的复杂性给现有的机器学习算法带来了巨大的挑战。下图左为图像(欧几里得空间),右为图(非欧几里得空间)。机器学习
传统的神经网络结构如CNN、RNN等都是接受欧几里得空间的数据做为输入,他们没法处理非欧几里得空间的数据结构,好比图和流行结构。所以对于此类数据,图神经网络就更加适合处理。近年来图神经网络的研究热度也不断提高,以下图所示:学习
三、图神经网络典型的应用场景
本章节基于图神经网络近年来的一些研究进展,展现一下图神经网络当前典型的应用场景以及一些典型的任务。优化
将图结构和节点内容信息做为模型的输入,GNNs的输出能够经过如下机制之一专一于不一样的图分析任务:编码
- Node-level输出用于点回归和分类任务。
- Edge-level输出与边分类和链路预测任务相关。
- Graph-level输出和图分类任务相关,好比图表示。
下面以典型论文为例介绍几个GNNs的典型任务:url
3.1图分类
咱们知道不少有机物或者化合物的分子结构都是能够用图结构来表示的,好比下图的4-nitroindole,该GNN的做用是训练一个图神经网络,接收一个分子结构来判断该分子结构会不会致使发生突变。在训练的过程当中若是有现存的已标注的可致使发生突变的分子结构,咱们就能够训练该图神经网络,而后用他来预测一个新的未知的分子会不会致使突变。
3.2图生成
咱们知道在图像和语言的领域里分别有embedding和generation技术,好比常见的图像和语言生成技术,好比动态静态的预训练和词嵌入技术。相应的在图领域,咱们也有图的嵌入表示好比graph embedding representation和图的generation技术。好比下图的graphvae,变分图自编码器就是一个图生成模型,其主要是为图中节点找寻合适的 Embedding 向量,并经过 Embedding 向量实现图重构。其中获取到的节点 Embedding 能够用于支撑下游任务。好比在新的分子结构生成发现中可使用该技术来加快分子发现速度。
3.3社交网络分析
在社交网络分析中,实体之间的关系每每会是很是重要的特征,图结构就能很好的表示这种关系特征。以下图的社交网络图中,每一个实体的关系能够用边来描述,这样在进行实体分类或者关系分类时,利用图数据结构,完成特定任务的标注,就能够训练出一个图神经网络来完成此类任务。
3.4网络拓扑分析
网络的拓扑自然就是图结构的表示,计算机网络中的路由技术就是以图轮为基础的算路技术。同时网络中每两个节点之间也会有时延,丢包,抖动等网络KPI信息。这些点对之间的KPI每每是动态变化的,这就影响到了实时路由决策和优化的问题。好比当前链路的时延或者丢包过大,路由算法就须要选择新的路径进行数据包传递。图神经网络在这个问题中就能够接收底层的网络拓扑、网络配置信息和流量矩阵信息来实时预测每个点对,每一条流的实验丢包抖动,这样就能够更好的配合路由和优化算法,使能网络的自动驾驶。
四、图神经网络典型训练框架
4.1Semi-supervised learning for node-level classification:
给定一个网络,其中部分节点被标记,其余节点未标记,ConvGNNs能够学习一个鲁棒模型,有效地识别未标记节点的类标签。为此,能够经过叠加一对图卷积层,而后是用于多类分类的softmax层来构建端到端框架。见图(a)
4.2Supervised learning for graph-level classification:
图级分类的目的是预测整个图的类标签。该任务的端到端学习能够结合图卷积层、图池层和/或readout层来实现。图卷积层负责精确的高级节点表示,图池层则扮演下采样的角色,每次都将每一个图粗化成一个子结构。readout层将每一个图的节点表示折叠成一个图表示。经过在图表示中应用一个多层感知器和一个softmax层,咱们能够创建一个端到端图分类框架。见图(b)
4.3Unsupervised learning for graph embedding:
当图中没有可用的类标签时,咱们能够学习在端到端框架中以彻底无监督的方式嵌入图。这些算法以两种方式利用边缘级信息。一种简单的方法是采用自编码器框架,编码器使用图卷积层将图嵌入到潜在表示中,在潜在表示上使用解码器重构图结构。另外一种经常使用的方法是利用负采样方法(negative sampling),即对图中有连接的部分节点对进行负采样,而对图中有连接的节点对进行正采样。而后应用逻辑回归层对的正负配对进行区分。见图(c)
参考文献
[1]. https://mp.weixin.qq.com/s/PSrgm7frsXIobSrlcoCWxw
[2]. http://speech.ee.ntu.edu.tw/~tlkagk/courses/ML2020/GNN.pdf
[3]. https://persagen.com/files/misc/scarselli2009graph.pdf
[4]. https://arxiv.org/pdf/1802.03480.pdf
[5]. https://arxiv.org/abs/1901.00596
[6]. https://arxiv.org/abs/1910.01508
本文分享自华为云社区《2021年必火的图神经网络究竟是什么?》,原文做者:就挺忽然。