上一篇文章介绍了论文提出的图深度学习面临的问题和GRNN的部分,接下来这篇文章将要介绍论文提到的GCNs的部分。这一部分作者总结了许多前者提出的神经网络,有些类似有些做了改进,本文就进行相应的详略分配,不一一详解。
图卷积的定义
要了解GCN,首先要搞清楚什么是图卷积。卷积的操作想必对机器学习有所了解的读者再熟悉不过了,但是图卷积又是什么。这个部分笔者结合了论文和网上一些大神写的见解做了个总体的汇总。这里非常推荐阅读下面这篇文章,这篇文章深入浅出很好地解释了图傅里叶变换。
图傅里叶变换 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/147687999说到图卷积就得追朔回图的傅里叶变换,然后再追朔到傅里叶变换。传统的傅里叶变换是将函数从时域转换到谱域。傅里叶变换的公式表示为:
这个公式的后面部分是内积的操作,而内积可以看作是函数在一个基上的投影。那么这个公式就可以看作是在基
上的投影,每一个
都对应计算一次。注意到这个
其实是拉普拉斯算子的特征向量。那么如果把这个变换推广到图上,我们会怎么来做类比呢?首先
我们可以类比成一个关于图的函数
,它表示不同节点所对应的函数值。原来变换还有一个拉普拉斯算子的特征向量,我们先计算图的拉普拉斯算子。拉普拉斯算子可以理解为自变量发生微小变动时对函数带来的增益。推广到图上,我们可以把它理解为对于一个点,它邻居的微小扰动对它带来的增益,那么就可以有以的计算
其中时邻接矩阵对应的元素,
则对应i节点的度。上面的式子就准确地表示了i节点的邻居j微小扰动后给i节点带来的增益。那么对于整个图就有
其中D是度矩阵,W是邻接矩阵,L是拉普拉斯矩阵。现在我们就得出了图的拉普拉斯算子。原来的傅里叶变换我们要的是拉普拉斯算子的特征向量,那么推广到图上我们只需要对拉普拉斯矩阵进行特征分解即可得到对应的特征向量, 。接下来就有论文中作者提到的图卷积操作。
观察这个公式,可以看出其实部分就是对节点进行傅里叶变换,将图从空域转换到谱域。然后两个节点进行变换后相乘(类似与传统卷积的:时域卷积=谱域相乘,但仅仅是类似)最后外面的Q就是重新把结果从谱域转换回来空域。这就是图卷积的原理,其实可以看出来和传统的卷积还是很类似的,想了解更加详细的解释可以查看我上面po出的文章。
有了上面的图卷积定义,接着就对单个点提出卷积的概念