作者:秦州,算法工程师,Datawhale成员
引言
本文为GNN教程的第二篇文章 【GCN介绍】,取自Kipf et al. 2017,文章中提出的模型叫Graph Convolutional Network(GCN),个人认为可以看作是图神经网络的“开山之作”,因为GCN利用了近似的技巧推导出了一个简单而高效的模型,使得图像处理中的卷积操作能够简单得被用到图结构数据处理中来,后面各种图神经网络层出不穷,或多或少都受到这篇文章的启发。
后台回复【GNN】进图神经网络交流群。
1. 问题定义
考虑图(例如引文网络)中节点(例如文档)的分类问题,假设该图中只有一小部分节点标签(label)是已知的,我们的分类任务是想通过这部分已知标签的节点和图的结构来推断另一部分未知标签的节点的标签。这类问题可以划分到基于图结构数据的半监督学习问题中。半监督学习(semi-supervised learning)是有监督学习的一个分支,主要研究的是如何利用少量的有标签数据学习大量无标签数据的标签。
为了对节点进行分类,首先我们可以利用节点自身的特征信息,除此之外,我们还可以利用图结构信息,因此一个典型的图半监督学习问题可以对两个损失函数一起优化:
其中,
一般来说,基于图结构信息的损失函数可以表示成:
其中,
显然,这样的学习策略基于图中的相邻节点标签可能相同的假设(因为损失函数要求相邻节点的特征向量尽量相似,如何他们的标签不相似的话,那么不能学习到一个从特征向量到标签的有效映射)。然而,这个假设可能会限制模型的能力,因为图的边在语义上不一定代表所连接节点相似。还有一种可能是图中有大量的噪声边。
因此,在这个工作中,作者不再显示的定义图结构信息的损失函数
这篇文章的主要贡献是为图半监督分类任务设计了一个简单并且效果好的神经网络模型,且这个模型由谱图卷积(spectral graph convolution)的一阶近似推导而来,具有理论基础。
2. 图上的快速卷积近似
这一节介绍如何从谱图卷积推导出GCN的逐层更新模型,涉及到一些谱图理论的知识,可以安全的跳过这一节,后面我们会为谱图卷积专门出一个专栏的文章,将详细讨论它们。
这一节主要介绍图卷积网络GCN逐层更新(propagation)的理论推导。多层图卷积网络(Graph Convolutional Network, GCN)的逐层传播公式:
其中,
谱图卷积
谱图卷积是这样定义的:信号
左式表示信号
其中
上面的等式算起来非常耗时,因为特征向量矩阵的乘法是
为了克服这样的问题 Hammond et al. (2011)指出
其中
将切比雪夫近似带入到谱图卷积的公式里:
其中
逐层线性模型
现在假设我们限制
在GCN模型中, 我们做了另一个近似
我们期望神经网络的参数能够在训练过程中适应这种变化。在这些近似的条件下,我们得到:
上式有两个参数
做进一步的近似:
注意
其中
我们把上述定义进一步泛化:输入信号
其中
3. 半监督学习节点分类
传播公式解释
上一节中,我们从谱图卷积理论中推导得到了GCN是如何逐层更新节点embedding的
首先我对这个公式做一下形象的解释:每个节点拿到邻居节点信息然后聚合到自身embedding上。在上面的公式中
这个形象的解释对理解GNN非常重要,希望大家能仔细想一下是不是懂了。
例子
下面,让我们用一个两层GCN的例子阐述GCN是如何对节点进行分类的,令
这里,
变换结果经过softmax 激活函数后输出作为节点的分类结果。对于半监督多分类问题,我们在所有带标签的样本上评估交叉熵:
这里
后话
实现时,由于GCN需要输入整个邻接矩阵
参考文献
[1] Semi-Supervised Classification with Graph Convolutional Networks
往期精彩回顾
适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑
获取本站知识星球优惠券,复制链接直接打开:
https://t.zsxq.com/y7uvZF6
本站qq群704220115。
加入微信群请扫码: