笔记来源如何理解 Graph Convolutional Network(GCN)?
graph的Laplacian矩阵
- D为度矩阵,A为邻接矩阵
常规的:L = D-A;
常用的正则化:L = D-1/2AD-1/2;
为什么要用Laplacian矩阵分析Graph?
- Laplacian矩阵为对称阵,能够进行特征分解(谱分解),能够与GCN的spectral domain对应,;
- Laplacian矩阵只在一阶相连和对角处有元素;
- Laplacian矩阵与Laplacian算子类比;
Laplacian矩阵的谱分解
谱分解=特征分解=对角化
-
由于Laplacian矩阵为半正定对称阵,因此一定可以对角化;(半正定阵一定为对称阵)
-
其特征值一定非负;
-
对称阵的特征向量两两正交,所有的单位化特征向量构成正交阵(UUT = E);
-
故,L= U diag(λ1λ2……λn)UT;(n为graph节点数,L、U为n阶矩阵,λ为L的n个特征值);
-
由于eiωt为时域Laplacian算子△的特征函数,那么类似的,二维Laplacian算子(Laplacian矩阵)的特征向量构成的矩阵即为△的特征函数,可以定义Graph上的傅里叶变换:
相应的,逆变换则为:
-
由此,得到了Graph的傅里叶变换,并可以根据卷积定理得到Graph的卷积:
- f的傅里叶变换为
- 类似CNN定义的卷积核h的Graph傅里叶变换的对角阵形式:
- 二者傅里叶变换后的乘积再做逆变换即可得到卷积:
- 值得注意的是,有的论文中的写法为:
其中的“不明操作符”为哈达玛积,向量之间即为内积,矩阵之间即为对应元素的乘积。
至此便得到了Graph中的 Graph Convolution。
而需要训练的,也就是其中的h卷积核参数。
Laplace算子的来源
参考:https://zhuanlan.zhihu.com/p/50742283
数学定义:
即所有非混合二阶偏导数的和;
离散化:
二维形式的Laplace算子:
对于Graph来说,扰动的差值变为:∑Wij(fj - fi)(Wij为i,j间的边权,无权图为1,j为i的邻接点),因此,Graph的Laplacian算子可以定义为:
由于Wij在(i,j)不邻接的情况下为0,因此求和中的j的范围可以忽略。
继续化简:
对于任意的i都成立,即△f=(W-D)f,因此Laplacian算子定义为Laplacian矩阵(D-W),与上述推导差一个负号,有待后续思考。 - f的傅里叶变换为