图神经网络——GCN聚合原理理解

本博客基于B站UP主望舒同学图神经网络系列讲解及代码实现-GCN1

GCN的核心思想:通过邻接矩阵A对结点特征进行聚合,用于更新某结点特征。不同的聚合方式 GCN变体。

GCN基于的一个假设:结点的特征与其邻居结点有密切的关系,并且距离越近的邻居关系越大。

GCN聚合直接邻居结点

image

这是一个简单的图结构。笔者将以该图为示例,讲解GCN以最简单的方式(求平均)聚合直接邻居结点流程。由上图结构可知,其邻接矩阵为A=(001000001000110110001001001000000100),结点特征X=(X0X1X2X3X4X5)=(102022191821),度矩阵D=(100000010000004000000200000010000001)

Step 1——求和

X2为更新对象。注意Ai表示邻接矩阵的第i行,Aij表示邻接矩阵的第i行第j列。

aggregate(X2)=X0+X1+X3+X4=1X0+1X1+0X2+1X3+1X4+0X5(1)=A2X

虽然这样更新了X2,但是没有包含其本身的特征。总不能全部依靠邻居的特征吧,显得不太合理。因此,加上自身的特征,相当于自环。A^=A+I=(101000011000111110001101001010000101)I为单位矩阵。

则(1)式修改为

aggregate(X2)=X0+X1+X2+X3+X4=1X0+1X1+1X2+1X3+1X4+0X5(2)=A2^X

Step 2——求平均

因为A^考虑到了自身特征,所以D^=D+I

aggregate(X2)=X0+X1+X2+X3+X45=1X0+1X1+1X2+1X3+1X4+0X55=A2^X5=A2^XD^2,2(3)=D^2,21A2^X

整体计算如下:

(4)aggregate(X)=D^1A^X

注意D^是对角阵,因此左乘和右乘结果相同,并且其逆等于对角线元素值的倒数。

(4)式其实相当于使用了一种归一化方法,即非对称归一化邻接矩阵,目的是消除结点度数对聚合信息的影响。详见图神经网络知识总结——归一化。也可以采用其他方式求平均方式或称为归一化方式,如对称归一化邻接矩阵、归一化拉普拉斯矩阵等。

Step 3——更新

将求平均后的值作为聚合后的特征值。

GCN聚合间接邻居结点

实际操作:在第一次卷积的基础上,以相同的方式,进行第二次卷积,第三次卷积 ……

理解:第一次卷积之后,结点特征已经聚合了其直接邻居结点的特征,所以再一次进行卷积的时候,虽然看上去还是在对直接邻居结点进行卷积,但是相当于在对其邻居的邻居结点(间接邻居结点)进行卷积。

本文作者:顾子郤

本文链接:https://www.cnblogs.com/coder-shane/p/18387053

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   顾子郤  阅读(197)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起