GCN初探

it2024-11-27  17

CNN能在规则结构数据上取得惊人成绩归功于规则结构数据的平移不变性,因此CNN利用参数共享完成规则数据的特征抽取,这里的规则数据有如图片等数据。 但图结构数据不具备结构规则性,CNN因此失效了,图数据上的节点受到周边乃至更远节点的影响,因此我们需要一种方法能够考虑节点以及它所相关的节点相互影响的模型来完成节点特征抽取。

GCN和CNN一样,可以理解为一种特征提取器,GCN可以完成节点分类,图分类,边预测,图嵌入等。 在GCN中,有几个重要的概念需要清楚(这儿以无向图为例) 度矩阵D:表示节点的度 邻接矩阵A 拉普拉斯矩阵:D-A,这仅为最简单的一种拉普拉斯矩阵 参考【3】

图卷积计算通式

针对问题1,可以通过A+I的方式引入节点对自身的影响,I为单位矩阵 针对问题2,可以通过对A进行归一化。

下图分别对上述两问题在公式层面做了阐述,在邻接矩阵基础上引入了单位矩阵,引入节点自身影响;同A。 以的逆矩阵乘使得A被归一化,这样单个节点的特征不会较大受到节点个数的影响。 其中X为6*D的矩阵,以节点1为例,通过公式可计算得与节点1相关的节点(节点2,5)以及节点1共同对节点1的影响,后边若继续乘变换矩阵W则可实施特征变换,当然还可以最后加个非线性变换, 可参考实现1的框架。 从GCN最简单的计算公式可发现,GCN与CNN在理念上有诸多想通之处,最大的不同在于单个单元(如图像中的像素或图中的节点)计算特征被哪些范围的单元所影响。CNN中固定卷积核范围内的单元来抽取特征,而GCN可以由邻接矩阵A确定与当前节点相关的节点,其余的特征变换,非线性变换都喝CNN类似。当然具体实操还需要代码走一遍,参考【4】。

参考文献: 【1】高屋建瓴带你认识GCN,其中文中对A的归一化方式在讨论中也存在争议,这儿暂且按照上面的笔记来理解:https://towardsdatascience.com/how-to-do-deep-learning-on-graphs-with-graph-convolutional-networks-7d2250723780 【2】上文的翻译版:https://mp.weixin.qq.com/s/sg9O761F0KHAmCPOfMW_kQ 【3】GCN很好的入门总结:https://zhuanlan.zhihu.com/p/89503068 代码实操:https://zhuanlan.zhihu.com/c_1173319214768201728 https://blog.csdn.net/yyl424525/article/details/100058264 https://www.zhihu.com/question/54504471/answer/332657604

最新回复(0)