引言:
图神经网络作为一种愈发火热的机器学习技术,在很多的领域展现出了独特的作用力。本人在研一的主要研究方向是 服务机器人云服务平台的研究及智能调度算法的研究,趁着新冠肺炎期间,在家利用接近一个月的时间内,研究了图神经网络相关的基础内容,同时复现一些经典的算法,当然,这些算法也是基于 github 上一些开源代码参考。现阶段主要做的是 supervised-graph-classification 方面的内容,想对之前阅读的优秀的文章进行一下分享。加之本人能力有限,文中难免出现偏颇或者错误之处,也希望有兴趣阅读的同学们能积极的指正,我们一起学习,共同进步。
该文章作为比较经典的综述,将现阶段研究方法基于其模型架构分为五个方面:图循环神经网络(Graph Recurrent Neural Networks)、图卷积神经网络(Graph Convolutional Networks)、图自编码器(Graph Autoencodrs)、图强化学习(Graph Reinforcement Learning)及图对抗方法(Graph Adversarial Methods)。在不同的综述中,一般的分类方式不太一致,我们可以参考其包含的相应的方法进行研究。
一、Introduction:
图在现实世界中具有复杂的结构,可以包含大量的信息,如何有效的结合深度学习算法是一个很值得研究的点,文中引出了应用传统深度学习框架几个存在的问题,如图 1所示。
图 1. 存在的问题
文中指出一些解决上述问题的方法,主要包含监督、非监督、半监督(经典的 gcn,文中并未指明该方法,不过个人以为这个可能是研究热点)、卷积和递归等等。作者将这些方法进行归类,划分为 5 类,这些种类的主要特性如下表 1所示。
相关工作分析:文献[7]总结了一些在manifold(流式学习)上的 GCN 和 CNN 方法,并且通过几何深度学习对这些算法进行研究。文献[9]指出了如何在统一的框架(图网络)上,使用 CNN 和 GCN 进行关系推理。Lee 等人研究了图的注意力模型[10],Zhang 等人对 GCN 进行总结[11],Sun 等人简要的研究了图的对抗攻击[12]。当然,貌似他们课题组的也对某些相关方面进行研究,有兴趣的可以参考综述《Graph Neural Networks: A Review of Methods and Applications》、《A comprehensive survey on graph neural networks》,将来我也会对这些文献进行总结分享。
文中还提到,Network embedding 也是一个很火的研究点,可以实现将节点嵌入到低维的向量空间。和本文所提及的方式的不同是,本文专注于可以应用于图的不同的方法,也包括非深度学习方法(比如说基于 Kernel 的算法,如 GK、WL)。
二、第二章。 主要叙述了一些符号和假设,建议在阅读的时候拿个小本本记一下,方便查找。当你阅读了比较多的论文的时候,对这些符号就不是很陌生了。下面核心内容的每一章,为了方便总结查看,故将相关的内容和算法做成思维导图。
三、图循环神经网络:
在图卷积神经网络中,GRU 和 LSTM 及其改进的方法是长用来构建序列数据的方式,文章亦是从节点层级和图层级的 RNN 方式对之前论文的研究方法进行分类,具体方法如下表 2。
表格 2. 图循环神经网络
构建的思维导图如下图 2.
图 2. 图神经网络
图循环神经网络在 GNN 的基础上,将参数函数或者 LSTM、GRU 等方法应用在里面,捕获时间和空间信息,提升其在图层面和节点层面的分类或者其他任务的精度。
三、图卷积神经网络
图卷积神经网络模仿 CNN 的特性,通过设计相应的卷积层和 readout 操作,学习局部和全局的结构特征,也可以通过反向传播来进行训练。在原作的表格 4中对不同图卷积网络进行对比,有兴趣的可以从中选择适合自己研究方向的算法进行研究。
在本章中,作者从卷积运算、readout 操作及 GCN 的拓展(原文是 improvement)三个方面阐述相关的 GCN 研究。据此,绘制的思维导图如下图 3。
图 3. 图卷积神经网络
图卷积神经网络作为目前主流的图网络框架,在此基础上进行修改的算法不胜枚举,在我所研究的图分类领域中,大部分都是将自己的算法和传统的 kernel 算法和几个常见的图算法进行对比。由此可见,在这方面上改进自己的聚合算子或者更新算子(即 readout 操作)也许可以实现较好的分类效果或者提升自己想做的任务结果精度。
四、图自编码器
图自编码器常被用来学习非线性、低秩图的节点表示,如果你接触过图像处理中的编码解码器的话应该会不难理解。在图学习中一些常见的 GAE 列举如下图 4(原文截图),大家也可以参照原文的table.5。从图中或者说从编码器的常用方法来看,研究者比较专注的优化目标是降低重构损失的数值,这一块我们是否可以采用一些智能优化算法来寻求参数的最优解呢?可以考虑一下。
图 4. 常见的 GAE
对于该章,作者主要从自编码器、变分编码器和编码器方面一些拓展来阐述总结的。依照惯例,绘制的思维导图如下图 5所示。
图 5. 图自编码器
图自编码器的大部分思想主要是从图像处理中的自编码器和 GAN 网络中迁移而来,本人在这方面的研究不是很多,有兴趣的同学可以去 github 找几个关于 GAN 网络相关的项目,个人感觉还是比较好玩的。
五、图强化学习
由于目前强化学习在游戏等 AI 任务上展现出的优势,得到许多研究者的青睐。此外,它可以依据反馈学习,也就是 reward-action。而且,RL 在处理不可差分的目标和限制上具备很大的优势。本人在研一期间,对单智能体有过一段时间的研究,如果有兴趣的话,可以阅以一下 Sutton 的《An Introduction to Reinforcement Learning》。
在强化学习中,核心就是如何设计一个好的回报奖励函数,我们也可以将这种方式迁移到图处理中。作者对此总结如下图 6,参见原文的table.6
对此,构建的思维导图如下图 7所示。
图 6. 图强化学习
在图强化学习中,虽然单智能体强化学习的算法不少,但是很多还没有很好的结合到 GNN 中,也许将来这也是一个很好的结合点。
六、图对抗方法
图对抗方法主要包含两个方面:图对抗训练和图对抗攻击。作者在原文中对其主要的方法和特性进行总结(Table.7)。我直接截取原图,如下图 7。
图 7. 图对抗方法
当然,构建的思维导图如下图 8。
图 8. 图对抗
由于我对这方面没有什么研究,暂时也想不出比较好的研究点。在文中作者指出,大部分的文中都是有目的得攻击,比如,错误的将一些节点进行分类等等。极少的 paper 提及到 non-targeted 攻击,感兴趣的同学可以对这方面进行研究、
七、总结和讨论
作者在最后一章针对图神经网络的应用、未来的研究方向及实现等三个大的方面进行总结。
在应用方面,作者提到基于图的方法应用在方方面面,如构建社会关系网络、推荐系统、化学分子分析及疾病预测等。两个值得注意的方面是,①将模型和其相关领域的知识进行结合②基于图的模型是建立在其他架构的基础上,而不是独立的工作③将不同的模型集成
在实现方面,个人比较倾向于用 python 相关的库,比如 pytorch geometric 和 deep graph library,他们里面封装了基本的图神经网络搭建的函数,可以配合 networkx 来使用,利用 matplotlib 来绘制图形。这些库在 github 上都已经开源,在以后,我也会将这方面的研究和大家进行分享。
在研究方面,作者指出了几个未来的研究方向,①对于一些没有研究的图结构如何使用新的模型,也就是解决异构图的问题②对现有的一些模型实现组合③如何处理动态图④如何保证所提出算法和模型的可解释性和鲁棒性。
个人心得:
至此,这个简短的综述也算是分享完成了,由于本人对其中一些内容没有涉及,所以只能简单的复述原著中的言论。在以后的工作中,还需要阅读大量的相关文献,对一些小概念、基本概念才能有自己独到的见解。当然,也十分希望看到这篇文章的同学,可以有所启发,针对文中的问题,大家可以直接发邮件(SakerLiuJin@163.com)或者留言,我们一起学习,共同进步。
最后一个小小的心愿,码字不易,希望大家可以打赏
https://zhuanlan.zhihu.com/p/112227666