图卷积网络 Graph Convolutional Networks

图卷积网络的简介,两种思路、不同的实现方法、进展等。

作者介绍的博客放在这里

以下是正文:

对于图的卷积网络,与图像等网络的不同就在于要思考:怎么对图的信息进行提取。

目前主要有两个方法,

  1. 从某个节点开始,根据某个规则向外扩展;
  2. 将整个图表示为特征矩阵,然后把后续的操作变成矩阵的运算与非线性变换。

在这种思路下,也有很多实现方式。

以节点为核心的思路

图嵌入 Graph Embedding

这种嵌入往往是把节点变成一个低维稠密的向量,进而方便操作。

怎么变成低维呢?也有很多方法,比如「深度游走 Deep Walk」,就是以某个节点为起始点,再把周围的点纳入考量,最后输入embedding层。当然,因为很多人在研究,因而这里的方法有很多,我所言明的只是一例。

图上节点的卷积

自然,类比图片的卷积,图上的节点也可以被像图片的像素一样卷积。那么,不同的节点其度数是不一样的,那么怎么整呢?有人就想到做个动态的,反正1-hop的给相同权值就行,就像一个圆形,可以无限精密、也可以很粗糙。

以图为核心的思路

这个就有意思很多了,简单来讲,对于一个$G=(V,E)$的图,我们可以用邻接矩阵和拉普拉斯矩阵表示。

每一层卷积,实际上就是对前一层的输出、图的邻接矩阵进行某个非线性变换。(为什么不是线性变换,以及线性变换会发生啥,留作思考题XD)也就是如下的公式 $$H^{l+1}=f(H^l,A)$$ 第一层的输入就是图的所有节点及其特征值、还有图的邻接矩阵,这样就理论上信息是完备的:我们给出了所有的节点信息、也给出了所有节点的连接信息。

那么从最简单的通式,到各种奇怪的变体,主要差异在于$f$,当然,也有在矩阵算法上进行优化的,不过不属于不同模型,此处略过。

啊,日后补全,我写到这里饿了,准备睡觉XD。

Built with Hugo
Theme Stack designed by Jimmy