图神经网络基础

Posted 生物信息与python

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图神经网络基础相关的知识,希望对你有一定的参考价值。

    这篇博客是阅读“A Comprehensive Survey on Graph Neural Networks(Zonghan Wu et al,2019)”这篇综述之后的一点个人理解。

Graph Neural Network(GNN),用于解决一些非欧数据相关的任务。欧几里得数据最常见的就是图片,视频和语音,这些数据的特点在于排列整齐(比如图片可以用一个二维矩阵来表示),能够用欧氏距离来表示不同数据之间的联系。而对于非欧几里得数据,总的来说有两大类型:分为图数据和流形数据。它们的特点在于 排列不整齐,比较随意。具体为:对于数据中的某个点,难以定义出其邻居节点出来,或者是不同节点的邻居节点的数量是不同的。这意味着很难进行卷积操作。

    这篇文章将GNN分为四类:recurrent graph neural network(RecGNN)递归图神经网络,Convolutional graph neural network(ConvGNN)卷积图神经网络,graph autoencoders 图自动编码器,spatial-temporal graph neural networks 时空图神经网络。在传统的机器学习算法中,有一个核心假设,即假设样本之间是条件独立的。  但是这种假设对图数据并不适用,因为每个节点通过各种链接与其他的节点相互关联。

    下面介绍一下GNN的相关历史研究。Sperduti et al. (1997)首先将神经网络应用到了有向无环图中。图神经网络的概念被Gori et al(2005)首次提出。这些早期的研究属于RecGNNs的研究范围。随着卷积神经网络在2012年Imagenet图像识别大赛上一鸣惊人,并行定义了许多图数据卷积概念。ConvGNNs主要可以分为两大类:基于频谱的ConvGNNs和基于空间域的ConvGNNs。第一个关于spectral-based ConvGNNS的重要研究由Bruna et al(2013)提出,他们基于频图理论开发了图卷积。基于空间域的ConvGNNS比基于频谱的ConvGNNs研究更加的早。2009年Micheli et al 利用RecGNNs中消息传递的思想,同时构复合的非递归层来解决图数据之间相互依赖的问题。

    需要注意GNN与network embedding之间的区别:network embedding主要的目的是用低维向量来表示一个网络节点(有点像word embedding的感觉),保留网络的拓扑结构和节点内容的信息,以便任何随后的图分析任务(如分类,聚类,推荐)能够用简单的现成的机器学习方法来实现。而GNNs是一种端到端的深度学习模型,被用来解决图相关的任务。很多GNNs模型都会显示地抽取高级表示(卷积的含义?)。GNNs与network embedding的主要区别在于GNNs是一组深度学习模型,用于解决不同的问题,然而network embedding涵盖了针对同一任务的各种方法。因此GNNs能通过GAE框架来解决network embedding的问题。从另一个角度来看, network embedding还包括其他一些 非深度学习方法,比如随机游走和矩阵分解。

    下面来具体了解一下RecGNNs,ConvGNNs,GAEs,STGNNs四种类型的GNN的思想和区别。

1. RecGNNs

    RecGNN旨在学习具有递归神经体系结构的节点表示。他们假设图中的节点不断与其邻居交换信息/消息,直到达到稳定的平衡。RecGNNs在概念上很重要,并启发了后来对卷积图神经网络的研究。特别地,消息传递的思想被基于空间域的卷积图神经网络所继承

    在2005年Gori提出了GCN的概念,他对GCN进行了如下的定义:

图神经网络基础

    
显然,任一节点的状态与该节点的标签,以及相邻节点的状态和标签均相关。其中f被称为局部状态转移函数,g为局部状态输出函数。

图神经网络基础

RecGNNs网络的具体函数形式,也是一个常规推导。

    2009年Franco Scarselli定义了一种改进模型,在Gori模型基础上,增加了节点之间边信息的定义。

图神经网络基础

2. ConvGNNs

    传统卷积核实际上使用固定大小的可学习卷积核来抽取像素的特征(CNN里面的基础知识,很好理解),但是非欧几里得数据中一个节点周围的节点数量并不是固定的。所以图卷积的关键在于 如何解决邻居节点的数量不固定这一问题。目前主流的思路有两种:一是提出一种方式把非欧空间的图转化成欧式空间的图,二是找出一种可以处理变长邻居节点的卷积核在图上抽取特征。注意一下,GCN(图卷积神经网络)和传统的RecGNNs是有区别的,它们的区别感觉与CNN和RNN的区别类似: GCN是多层堆叠,权重矩阵在每一层是不共享的;RecGNN是迭代求解,可以看作每一层Layer参数是共享的。

图神经网络基础

卷积图神经网络分为两种基于空间域的卷积图神经网络和基于频谱的卷积图神经网络。

空域卷积(Spatial Convolution),核心在于聚合邻居节点的信息。

频域卷积(spectral convolution)利用的是图傅里叶变换(Graph Fourier Transform)实现卷积。简单来讲,它利用图的拉普拉斯矩阵(Laplacian matrix)导出其频域上的的拉普拉斯算子,再类比频域上的欧式空间中的卷积,导出图卷积的公式。(这里打算后续进行学习)。

3. GAEs

    GAEs在本篇综述中主要分为两类:network embedding和graph generation。

    NE(network embedding) 的中心思想就是找到一种映射函数,该函数将网络中的每个节点转换为低维度的潜在表示。NE应该具有如下几个特征:1.适应性(adaptability)2.可扩展性(scalability)3.社区感知(community aware)4.低维(low dimensional)5.持续(continuous) NE中一个十分经典的技术是deep walk,它是第一个被提出来使用表示学习的网络嵌入方法。





以上是一些阅读总结,欢迎讨论。

生物信息与python 发起了一个读者讨论 Graph Neural Network and Knowledge Graph


以上是关于图神经网络基础的主要内容,如果未能解决你的问题,请参考以下文章

图神经网络三剑客:GCNGAT与GraphSAGE

深入浅出图神经网络|GNN原理解析☄学习笔记图信号处理与图卷积神经网络

深入浅出图神经网络|GNN原理解析☄学习笔记图信号处理与图卷积神经网络

图神经网络GNN介绍

图神经网络小结

图神经网络实战深入浅出地学习图神经网络GNN(上)