GNN之GCN基础理论推导
图卷积graph convolutional network,简称GCN,最近几年大热,取得不少进展。
清华大学孙茂松教授组发布了Graph Neural Networks: A Review of Methods and Application,对现有的GNN模型做了详尽且全面的综述。
针对GCN中需要的基础理论知识,这里给出数学推导,方便理解。
一、什么是Convolution
Convolution的数学定义是:
,一般称g为作用在f上的filter或kernel。
常见的CNN二维卷积示意图如下:
在图像(image)里,卷积的概念很直接,因为像素点的排列顺序有明确的上下左右的位置关系。
但是在抽象的graph里,有的节点会关联上万的节点,这些节点没有空间上的位置关系,也就没办法通过上面的传统卷积公式进行计算。
二、Fourier变换
为了解决graph上卷积计算的问题,需要用到Fourier变换。
根据卷积定理,卷积公式还可以写成: ,这样只需要定义graph上的fourier变换,就可以定义出graph上的convolution变换。
首先,看一下Fourier变换的定义:
Inverse Fourier变换则是:
根据Fourier变换及其逆变换的定义,下面我们来证明一下卷积定理:
我们定义 是
和
的卷积,那么
令 ,代入上式:
最后对等式的两边同时作用 ,得到
三、Laplacian算子
我们高数中学过,一阶导数定义为
Laplacian算子简单的来说就是二阶导数:。
在graph中,可以定义一阶导数为: ,其中
是
的邻居节点。
那么对应的Laplacian算子可以定义为 .
定义 是
的度数矩阵(degree matrix),定义
为
的邻接矩阵(adjacency matrix):
那么graph上的Laplacian算子可以写成 。
定义Laplacian算子的目的是为了找到Fourier变换的基。
传统Fourier变换 | Graph Fourier变换 | |
Fourier变换基 | ||
逆Fourier变换基 | ||
维度 | 点的个数n |
用矩阵形式来表示Graph Fourier变换: