图卷积网络(GRAPH CONVOLUTIONAL NETWOR

2019-12-16  本文已影响0人  心上那朵云

注:内容非原创,仅作翻译
原文链接:http://tkipf.github.io/graph-convolutional-networks/

带一阶滤波器的多层次图卷积网络

总览

将神经网络模型推广到以图或者网络形式出现的现实世界结构化数据中。

图卷积网络能做什么?

在基于图结构的数据进行分类时得到了很好的效果。

1. 定义GCN

对于一些模型,目标是在一个图上学习得到一个信号/特征(signals/features)函数。

GCN定义(草图)
对于不同的模型,实质上是由于函数f(.,.)的选择不同。

2. 一个简单的例子

考虑如下所示实例:

基本模型
其中的W^{(l)}是对于l层的神经网络来说是一个权重矩阵,而σ是一个非线性的激活函数,例如ReLU。这个例子虽然简单,但是很有效。
首先解决两个模型的局限性问题:与矩阵A相乘意味着,对于每一个节点(node),我们将所有与之邻近的节点的特征向量相加,而不是节点本身的特征向量相加(具体理论参考矩阵相乘算术规则)。我们可以将矩阵A与单位矩阵相加去修正自环图的问题。
此外,第二个限制是矩阵A通常不是一个标准化的矩阵,所以与矩阵A相乘往往会改变特征向量的比例(数值范围?),我们可以从矩阵A的特征向量中的到这一结论。归一化A意味着每一行加起来都是1,例如使用D^{-1}A来进行处理,这里的D是对角节点度矩阵,从而来解决这个问题。与D^{-1}A相乘相当于取相邻节点特征的平均值。在实际的实践中,使用均匀标准化会更有趣例如D{-1/2}AD{-1/2}(因为这似乎不是相邻节点的平均值)。通过这两个“花招”,可以得到以下传递方法(发表于Kipf&Welling(ICLR 2017) http://arxiv.org/abs/1609.02907):
改良版模型
其中,A^=A+II是单位矩阵,D^A^的对角节点度矩阵。

3. 嵌入空手道俱乐部网络

空手道俱乐部图

上图中的颜色表示通过模块化聚类得到的社区。
我们取一个3层的GCN,它的权值是随机初始化的。现在,甚至在训练权值之前,我们只需插入图的邻接矩阵和X =I(即单位矩阵,因为我们没有任何节点特征)进入模型。3层的GCN现在在前向传递中执行三个传播步骤,并有效地对每个节点的3阶邻域进行卷积(所有节点到3“跳”远)。值得注意的是,该模型生成了这些节点的嵌入,它们与图中的社区结构非常相似(见下图)。需要注意的是,我们已经完全随机地初始化了权值,并且还没有执行任何训练更新(到目前为止)。


嵌入GCN,使用随机权重的节点分布

这似乎带来一点惊奇。最近有一篇论文中称为DeepWalk的模型展示了它们可以学习得到一个非常类似的嵌入一个复杂无监督训练程序。使用未经训练的简单GCN模型进行或多或少的嵌入,这可能么?

4. 半监督学习(Semi-Supervised Learning)

由于我们的模型是可微分的和可参数化的,因此我们可以贴一些标签在上面以便于我们在进行训练时候可视化观察嵌入的反应。我们可以使用半监督算法进行处理(发表于Kipf&Welling(ICLR 2017) http://arxiv.org/abs/1609.02907)。我们为每一个类/社区标记一个节点,然后开始相应的训练。视频地址:http://tkipf.github.io/graph-convolutional-networks/images/video.mp4
注意,这个模型直接产生的是一个二维潜在空间,因此我们可以直接地进行可视化操作。我们发现3层的GCN模型已经能够线性分离社区(训练数据),每个类只给出一个标签示例。这是一个值得去注意的结果,因为模型并没有收到相关节点的特征描述(都是单位阵)。但是,我们可以提供真实的节点特征描述,这也正是在论文(Kipf & Welling, ICLR 2017)中描述的实验中所做的,以实现对大量图数据集的最新分类结果(发表于Kipf&Welling(ICLR 2017) http://arxiv.org/abs/1609.02907)。

结论

该课题的研究刚开始没多久(2016年9月30日原作者写的这篇文章,当下2019年12月16日了,不算“没多久”了),过去几个月出现了令人兴奋的进展,但迄今为止仍然只是接触到了这类模型的皮毛部分。至于如何将基于图的神经网络进一步应用于特定类型的问题,或者在有向图或者关系图上的学习,以及如何将学习过的图嵌入用于将来的任务,这些都有待探索。

上一篇下一篇

猜你喜欢

热点阅读