作者:秦州,算法工程师,Datawhale成员
图神经网络的逐层Spectral更新公式简单优雅而高效,以GCN为例,节点Embedding是由自身和邻居节点Embedding的聚合之后再进行非线性变换而得到。如此简单优雅的更新规则是怎么推导出来的呢,背后有没有什么理论依据?在GCN的论文中,作者介绍了两种启发GCN逐层线性传播法则的方法,分别是从谱图卷积的角度和Weisfeiler-Lehman算法的角度。本篇博文将详细介绍如何从图拉普拉斯矩阵出发,通过定义图上的傅里叶变换和傅里叶逆变换而定义图上卷积公式,最后推导出优雅的GCN逐层更新公式。至于Weisfeiler-Lehman算法,因为涉及到图神经网络的表示能力的问题,后面我们会出一个专题详细的介绍它。
本文为GNN教程的第五篇文章 【Spectral Gragh】,博文的结构是这样的:(下面这段文字对快速理解这篇文章很重要,之后还会出现一次作为小结)
图神经网络的核心工作是对空间域(Spatial Domain)中节点的Embedding进行卷积操作(即聚合邻居Embedding信息),然而图数据和图像数据的差别在于节点邻居个数、次序都是不定的,因此传统用于图像上的CNN模型中的卷积操作(Convolution Operator)不能直接用在图上,因此需要从频谱域(Spectral Domain)上重新定义这样的卷积操作再通过卷积定理转换回空间域上。
为了在频谱域和空间域中转换,我们借助了傅里叶公式,并且定义了图上傅里叶变换(从空间域变换到频谱域)和图上傅里叶逆变换(从频谱域回到空间域)的变换公式。具体操作是我们将节点的Embedding
通过傅里叶正变换从空间域变换到了频谱域
,在频谱域上和卷积核
进行卷积操作,再将变换后的节点Embedding通过傅里叶逆变换回到空间域,参与后续的分类等任务。
后台回复【GNN】进图神经网络交流群。
本篇博文是按照上面的思路组织的,下面首先我们来介绍一下什么是空间域和频谱域。
Spatial domain,翻译过来就是空间域,是最直观感受GCN逐层传播算法的域,即:节点
的Embedding是其所有邻居节点Embedding(包括自己的Embedding)的聚合结果。因此在一些文献上spatial domain又被称做"vertex domain"。但是与CNN所应用的图像不同,空间域中图节点邻居的数目不是一定的,而且节点之间没有相对的次序性。这就产生了一个问题,对于不同邻居个数的节点,卷积怎么定义呢?这就引出了spectral domain的概念。spectral domain,即频谱域,借助卷积定理,我们可以通过定义频谱域上的卷积操作来得到空间域图上的卷积操作。
那么图在频谱域上是如何表示的呢,这就引出了我们第二个概念:谱图理论,谱图理论主要研究的是图的拉普拉斯(Lapalacian)矩阵的特征值和所对应的特征向量对于图拓扑性质的影响,是对图空间拓扑的数学描述。下面先来介绍什么是拉普拉斯矩阵。
矩阵的特征分解,对角化,谱分解都是同一个概念,是指将矩阵分解为由其特征值和特征向量表示的矩阵乘积的方法。只有含有n个线性无关的特征向量的n维方阵才可以进行特征分解。
拉普拉斯矩阵是半正定矩阵,有如下三个性质:
介绍了Laplacian矩阵,我们将图从Spatial domain变换到Spectral domain的准备工作就完成了。下面我们来介绍一下傅里叶变换。
小结一下:
本文详细介绍了GCN的逐层传播公式是如何由谱图卷积一步步推导而来的,我们定义了图上的傅里叶变换和傅里叶逆变换,并通过卷积定理将频谱域上的卷积转换到空间域上,最后通过一系列的近似操作得到了GCN的逐层传播公式,这个简单优雅的公式背后蕴藏着复杂的数学推导,很有启发意义。在GCN的论文中,作者还提到了另一种得出GCN逐层传播公式的方式—从Weisfeiler-Lehman算法的角度,接下来我们将会利用一个专栏的文章介绍Weisfeiler-Lehman算法,并且分析图神经网络的表达能力。