图神经网络GNN学习日志——GNN介绍

一、图神经网络GNN简介

图(graph)是⼀种数据结构,图神经⽹络(GNN)是深度学习在图结构上的⼀个分⽀。常⻅的图结构包含节点(node)和边(edge),其中,节点包含了实体(entity)信息,边包含实体间的关系(relation)信息。现在许多学习任务都需要处理图结构的数据,⽐如物理系统建模(physics system)、学习分⼦指纹(molecularfingerprints)、蛋⽩质接⼝预测(protein interface)以及疾病分类(classify diseases),这些都需要模型能够从图结构的输⼊中学习相关的知识。相关的图结构例⼦说明如下:
图神经网络GNN学习日志——GNN介绍_第1张图片
上图为使⽤图结构来给物理系统建模,每⼀个节点表⽰物理系统中的objects,每⼀条边表⽰不同object
之间的关系。
图神经网络GNN学习日志——GNN介绍_第2张图片
上图为分⼦结构,每⼀个节点表⽰原⼦,边表⽰原⼦之间的化学键。

图神经⽹络除了能够学习结构化数据(输出数据为图结构数据)之外,还能学习到⾮结构化数据,⽐如⽂本(texts)和图⽚(images),并能够在提取出的图结构中进⾏推理(reasoning),⽐如句⼦的关系依赖树(dependency tree of sentences)和图⽚的情景图(scene graph of images),这些都需要图推理模型。

GNN是⼀种连接模型,通过⽹络中节点之间的信息传递(message passing)的⽅式来获取图中的依存关系(dependence of graph),GNN通过从节点任意深度的邻居来更新该节点状态,这个状态能够表示状态信息。

二、GNN起源

GNN起源于两种动机,⼀种动机来⾃于卷积神经⽹络(CNN),另⼀种动机来⾃于图嵌⼊(graph embedding)。

第一种来源于CNN,CNN能够提取出多尺度的局部空间特征,并将它们进⾏组合来构建更加⾼级的表示(expressive representations)。如果深⼊研究CNN和图结构的特点,可以发现CNN的核⼼特点在于:局部连接(local connection),权重共享(shared weights)和多层叠加(multi-layer)。这些同样在图问题中⾮常试⽤,因为图结构是最典型的局部连接结构,其次,共享权重可以减少计算量,另外,多层结构是处理分级模式(hierarchical patterns)的关键。然⽽,CNN只能在欧⼏⾥得数据(Euclidean data),⽐如⼆维图⽚和⼀维⽂本数据上进⾏处理,⽽这些数据只是图结构的特例⽽已,对于⼀般的图结构,可以发现很难将CNN中的卷积核(convolutional filters)和池化操作(pooling operators)迁移到图的操作上。

另⼀种动机来源于图嵌⼊,所谓嵌⼊,就是对图的节点、边或者⼦图(subgraph)学习得到⼀个低维的向量表示,传统的机器学习⽅法通常基于⼈⼯特征⼯程来构建特征,但是这种⽅法受限于灵活性不⾜、表达能⼒不⾜以及⼯程量过⼤的问题,词嵌⼊常⻅的模型有Skip-gram,CBOW等,图嵌⼊常⻅模型有DeepWalk,Node2Vec等,然⽽,这些⽅法⽅法有两种严重的缺点,⾸先就是节点编码中权重未共享,导致权重数量随着节点增多⽽线性增⼤,另外就是直接嵌⼊⽅法缺乏泛化能⼒,意味着⽆法处理动态图以及泛化到新的图。

三、GNN和传统NN的区别

⾸先,标准的神经⽹络⽐如CNN和RNN不能够适当地处理图结构输⼊,因为它们都需要节点的特征按照⼀定的顺序进⾏排列,但是,对于图结构⽽⾔,并没有天然的顺序⽽⾔,如果使⽤顺序来完整地表达图的话,那么就需要将图分解成所有可能的序列,然后对序列进⾏建模,显然,这种⽅式⾮常的冗余以及计算量⾮常⼤,与此相反,GNN采⽤在每个节点上分别传播(propagate)的⽅式进⾏学习,由此忽略了节点的顺序,相当于GNN的输出会随着输⼊的不同⽽不同。

另外,图结构的边表⽰节点之间的依存关系,然⽽,传统的神经⽹络中,依存关系是通过节点特征表达出来的,也就是说,传统的神经⽹络不是显式地表达中这种依存关系,⽽是通过不同节点特征来间接地表达节点之间的关系。通常来说,GNN通过邻居节点的加权求和来更新节点的隐藏状态

最后,就是对于⾼级的⼈⼯智能来说,推理是⼀个⾮常重要的研究主题,⼈类⼤脑的推理过程基本上都是基于图的⽅式,这个图是从⽇常的⽣活经历中学习得到的。GNN尝试从⾮结构化数据⽐如情景图⽚和故事⽂本中产⽣结构化的图,并通过这些图来⽣成更⾼层的AI系统。

四、GNN分类

论⽂对GNN模型分类如下:

  • 图卷积⽹络(Graph convolutional networks)和图注意⼒⽹络(graph attention networks),因为涉及到传播步骤(propagation step);
  • 图的空域⽹络(spatial-temporal networks),因为该模型通常⽤在动态图(dynamic graph)上;
  • 图的⾃编码(auto-encoder),因为该模型通常使⽤⽆监督学习(unsupervised)的⽅式;
  • 图⽣成⽹络(generative networks),因为是⽣成式⽹络。

五、学习参考链接

学习视频链接:

图神经网络从入门到精通

学习博客链接:

图神经网络工具包PyG应用实例:
PyG应用: 教程(一) 总体介绍
PyG应用: 教程(二) PyTorch 介绍
PyG网络(三) 图注意力神经网络GAT
PyG应用: 教程(四) 卷积层 - 谱方法
PyG实战: 动态图的演化预测 - 交通预测
PyG应用: 教程(五) 聚集函数
PyG应用: 教程(六) 图自编码器与变分图自编码器

图自编码器的链路预测任务: 疾病-基因的相互作用

你可能感兴趣的:(图神经网络,神经网络,学习,深度学习)