理解GCN

一、从CNN到GNN

1、CNN可被视为一类特殊的GNN,相邻节点大小顺序固定的GNN。

2、利用消息传递进行节点分类的例子:

在这里插入图片描述

给定上面的图,和少量已经分类的节点(红&绿),对剩余其他节点进行分类,这是一个半监督机器学习问题,使用关系分类(Relational Classification)的方法对其进行分类。

第1步:初始化,红色和绿色节点的概率分别标为0和1,其他未知节点的概率初始值为0.5。

在这里插入图片描述

第2步:第一次迭代,节点3的邻居1、2、4的均值为(0.5+0+0)/3 = 0.17,将该值从0.5更新至0.17。

第3步:第二次迭代,节点4的邻居1、3、5、6的均值为(0+0.17+0.5+1)/4=0.42,将该值从0.5更新至0.42。

第4步:第三次迭代,节点5的邻居4、6、7、8的均值为(0.42+1+1+0.5)/4=0.73,将该值从0.5更新至0.73。

第5步:第四次迭代,节点8的邻居5、6、7的均值为(0.73+1+1)/3=0.91,将该值从0.5更新至0.91。

第6步:第五次迭代,节点9的邻居7的均值为1,将该值从0.5更新至1。

在这里插入图片描述

第7步:重复第2-6步,进行第二轮迭代,节点9收敛。

在这里插入图片描述

第8步:重复第2-6步,进行第三轮迭代,节点8收敛。

在这里插入图片描述

第9步:重复第2-6步,进行第四轮迭代,节点3、4、5收敛。

在这里插入图片描述

第10步:概率大于0.5的节点,分类为绿,反之分类为红。显然,节点4以及其左侧的节点都是绿,节点1-3为红。

消息传递的实现非常简单,只要右乘邻接矩阵即可。

关系分类法比较简单,没有利用到节点特征,也不能保证收敛,但可以比较形象地说明消息传递的过程。

二、理解GCN

传统上,GNN被分为两大类:空间的(Spatial)和谱(Spectrum)的,前者通过消息交换进行节点嵌入更新,后者则通过傅里叶变换到频域进行处理再逆变换。

空间GNN的信息交换无外乎是节点嵌入(向量)和邻接矩阵的简单矩阵乘法而已。

以无权无向图与其所对应的邻接矩阵为例说明:

在这里插入图片描述

在这里插入图片描述

为了方便,假设每个节点的值就等于节点的编号(也可以是其他值),邻接矩阵A乘以节点值向量(对应于GCN的特征向量X)就等于进行了一次消息交换。

在这里插入图片描述

结果向量中的6表示节点0的三个相邻节点的值的和,2表示节点1的两个相邻节点的值的和,以此类推。

然而,节点0存在3个邻居,而节点3只有1个邻居,上面的矩阵乘法会导致邻居多的节点在消息交换后的值倾向于比较大,不太合理,因此以均值代替求和更合理。一种实现这种均值消息交换的方法是使用度矩阵D,度矩阵是对角矩阵,对角线表示了每个节点存在几个邻居,其余位置均为0。

在这里插入图片描述

将A除以度数,也就是乘以D的逆矩阵:

在这里插入图片描述

注意到每行的和都等于1,第1行表示节点0有3条边,与节点2、3、4相连,故都是1/3,;第4行表示节点3只有1条边与节点0相连,故为1。

在这里插入图片描述

于是得到了聚合函数(Aggregation Function)为均值的消息交换的结果。

在这里插入图片描述

三、理解论文《Nettack》中的2 PRELIMINARIES部分

在论文《Nettack》中,隐藏层的定义:

在这里插入图片描述

若使用只有一层隐藏层的GCN,则:

在这里插入图片描述

优化目标是最小化交叉熵损失函数来进行节点分类:最小化——L(θ;A,X)

在这里插入图片描述

四、References
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值