最近在实验室组会主讲了一些关于GNN的理解并讨论了以篇发表于AAAI2019的关于门控图神经网络在推荐系统中应用的论文。现将相关内容予以记录。其中的截图有涉及到相关博主的博客,均已列于文献引用中,如有不当,请告知删除,谢谢!
1. “A Comprehensive Survey on Graph Neural Networks”
1.1 引言
像CNN、RNN这样的深度学习模型在图像、文本、音视频等欧式空间中的数据上取得了巨大的成就。但是因为图数据是不规则的,每个图的节点是无序的,且规模是可变的,同时每个节点的邻居节点数量也是不同的,因此一些重要的操作,如卷积操作,虽然能够很轻易的在图像或者文本数据中进行计算,但是却不能完全适应于图数据这样的非欧式空间的数据结构。此外,现有的机器学习方法都是基于数据是相互独立的假设的,但是图数据中的节点都是与其他节点相互连接的(孤岛情况不予考虑)。这些邻居节点的连接信息用于捕获数据之间的相互依赖关系。【这篇论文是从网络的角度对于图神经网络进行的综述性描述,与刘知远老师他们团队写的那篇图神经网络综述有所区别】
图1. 卷积算子计算示意图
但是很多领域的研究已经证明CNN、RNN等模型真的好用,所以为了将深度学习模型迁移于图数据中,提出了很多基于图的神经网络。图神经网络的提出主要动机是将2D的卷积算子操作(如上图左)用于图数据中(如上图右)。与图相似,图像可以认为是有多个像素点组成的图。像素的邻居节点是有一个n×n的滤波器所决定的。但是在图像中,滤波器选定的邻居节点是有序的且尺寸固定。而一个图的卷积算子的一个简单的方法就是取节点的邻居节点特征的平均值,值得注意的是,图中节点的邻居节点是无序的且尺寸不固定。
1.2 背景知识及分类
1.2.1 GNN vs. Network Embedding
GNN是一种深度学习模型,它旨在用端到端方式来解决图相关的任务,许多GNN算法都是尽可能的去提取更高层次的表示。而网络嵌入则是治理与在一个低维向量空间进行网络节点的向量表示,同时保护网络的拓扑结构和节点的内容信息,这些低维向量可以用于后续的很多任务,如图分类、节点聚类等。网络嵌入在形式上更倾向于一种二段式结构的算法体系。网络嵌入和GNN算法的分类大致可分为如图2所示[1]。左图为范畴分类,右图为论文中对每种框架下的文献总结。网络嵌入算法都是典型的无监督算法,可以大致分为三类,即矩阵分解、随机游走和图自动编码。基于深度学习的GAE属于图神经网络。
图2.网络嵌入和GNN的分类
1.2.2 GNN之GCN
GCN 最早是在一篇题为“Spectral networks and locally connected networks on graphs”的论文中进行应用的,这篇文章提出了一种基于谱的图神经网络模型,但是GCN真正走进学术研究的是2016年发表的“semi-supervised classification with graph convolutional network”论文,它提出了一种基于图的卷积神经网络用以图节点分类,如图3(左)所示,在节点层级上通过聚集节点的邻居信息来表示当前节点,从而实现节点分类。基于这种GCN的结构,通过增加一个POOLING操作来实现图分类,如图3(右)所示[2]。 每一个POOLING层的作用是根据节点向量得到一个更为粗化的子图(称之为聚类图),然后使节点能够表示更深层次的图表示。最后经过一个softmax线性层输出每个图的标签类别。用于图分类的GCN论文可见参考文献[2]或参考我的上一篇博客[3]。