GCN

图卷积网络(Graph Convolutional networks, GCN) 简述

1 背景

卷积神经网络(CNN)的输入是图片等具有欧几里得结构的图结构,也就是这样的图:

这样的“图”并不是广义上的“图”。我们经常需要提取广义的具有点和边的图的特征:

2 问题描述

我们的目标是提取出这种广义图结构的特征,进而完成一些任务,如标签补全等。

3 解决思路

在问题描述中我们提到两类特征:节点特征图结构特征。如果我们使用节点特征进行标签补全,那么完全就可以看作是一个标准的结构化特征分类问题,所以我们现在的挑战是如何使用图结构特征帮助训练。公式化的描述为:

其中 H0=X。

解决思路I:

首先,我们可以使用一种简单的思路:

这里 W是上一层特征H的权重; δ是激活函数,此处可以使用简单的 Relu。

这种思路是基于节点特征与其所有邻居节点有关的思想

邻接矩阵A与特征H相乘,等价于令,某节点的邻居节点的特征相加。

多层隐含层,表示我们想近似利用多层邻居的信息。

这样的思路存在两大问题:

  1. 如果节点不存在自连接(自身与自身有一条边),邻接矩阵A在对角线位置的值为0。但事实上在特征提取时,自身的信息非常重要。
  2. 邻接矩阵A没有被规范化,这在提取图特征时可能存在问题,比如邻居节点多的节点倾向于有更大的特征值。

解决思路II:

来源:参考文献[2]

基于以上问题,可以提出改进的思路:

这种思路解决了上述问题1和问题2:

  1. 解决问题1的方法是利用以下式子:

让邻接矩阵A与单位矩阵I相加,就引入了节点自连接的特征。

2. 解决问题2的方法是让邻接矩阵规范化,其中矩阵D的定义如下:

矩阵D是一个对角线矩阵,其对角线位置上的值也就是相应节点的度。

上述式子也可以表示为:

其中

其中di和dj分别表示节点i和节点j的度。

在这种思路下,使用多层隐含层进行训练,我们就可以使用多层邻居的信息。

4 训练过程

对于整个训练过程,我们只需要对各层的权重矩阵W进行梯度下降训练,而规范化后的邻接矩阵,在训练过程中实际上是个常量:

5 实际问题

我们可以用上述思路解决图数据的标签补全问题。在这个问题中,对于部分节点,我们有其标注的分类,而其他标签,我们需要训练好的模型帮助我们进行分类。

在训练过程中,我们可以看到特征提取层后的结果:

我们可以看到经过特征提取后,相似的节点被嵌入到了相近的位置。

 

------------------------need to read-----------------

(1)使用GCN的第一篇比较好理解的paper

https://blog.csdn.net/hongbin_xu/article/details/89670096

(2)一般工业界使用GCN的改进版graphSAGE

(3)graphattenion

(4)https://www.bilibili.com/video/av83519765?from=search&seid=4211414597548239676

(5)GCN挑战

怎么做大:采样fastgcn,asgcn

怎么做深:原因过拟合,过平滑。dropedge,highway

 

 

参考文献

  1. How powerful are Graph Convolutional Networks?
  2. [1609.02907] Semi-Supervised Classification with Graph Convolutional Networks
  3. 转自https://zhuanlan.zhihu.com/p/38612863
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值