GCN(图卷积神经网络)的简单理解

最近开始看GCN的论文,拜读了Thomas N. Kipf大佬的Semi-Supervised Classification with Graph Convolutional Networks,开始学习GCN之前我们需要有一些关于图的先验知识。

图是一种数据结构图是一种数据结构,由节点、边组成,两个节点之间的连接称为边,如社交网络、知识图、蛋白质作用网络等

GCN(图卷积神经网络)的简单理解_第1张图片

同时拉普拉斯矩阵是一种表示图数据的有效方式

D 是度矩阵 (degree matrix) 
A 是邻接矩阵 (adjacency matrix)
拉普拉斯矩阵 L = D – A

     L进行归一化后为

     U是进行归一化时的特征向量,  是特征分解时由特征值组成的对角矩阵

GCN(图卷积神经网络)的简单理解_第2张图片

为什么会有GCN出现??

CNN已经在图像任务上获得了巨大的成功,图像是一种排列规则的数据,可以用二维矩阵进行表示,CNN通过共享参数加权求和得到feature map实现特征提取,但是对于图结构数据来说,无法在空间域中定义相同的局部卷积核对图的所有节点进行计算。

简单看一下论文Semi-Supervised Classification with Graph Convolutional Networks

AbstractGCN是一种在图结构数据进行半监督学习的方法,它可直接作用在图结构数据上,是卷积神经网络的变体。通过谱图(spectral graph)卷积的一阶近似值确定卷积网络结构。模型的规模与图的边数呈线性变化,并且通过隐藏层的学习能够编码图的局部结构特征和节点特征。

Introduction:(1)神经网络模型引入了一个简单并且表现良好的Layer-Wise传播规则(2)用实验证明了这种基于图的神经网络的形式可以被用作在对图中的节点进行快速和可伸缩(fast and scalable )的半监督分类。

作者使用的是谱域的方式对GCN进行推导,中间使用了太多的数学推导,目前我还没完全理解,但是我认为不妨碍我们理解GCN的模型,我们可以直接看模型结构

GCN的作者在构建GCN模型之前有很复杂的理论推导,基于频域的推导是GCN的理论基础,本质就是想要通过拉普拉斯矩阵的特征值和特征向量研究图的性质。

每层GCN的输入都是邻接矩阵A和节点的特征H,那么直接做一个内积然后再乘以参数矩阵W,再激活一下,就相当于简单的神经网络层。第一层网络公式标表示为

GCN(图卷积神经网络)的简单理解_第3张图片

论文中构造的是一个两层的神经网络模型,GCN的网络传播规则为

D为度矩阵,可以由A求得若分别采用ReLu和softmax激活函数,则最终的网络表示为,其中

GCN(图卷积神经网络)的简单理解_第4张图片

Y对应于有标签的节点,最终的分类准确率通过有标签的节点进行计算,分类完成后,所有节点形成类别,计算有标签节点的分类和真实标签是否对应。

通过交叉熵损失计算损失

最终的损失函数为

为有标签部分的损失,后半部分由拉普拉斯矩阵的性质得到

GCN的强大之处

使用一个俱乐部会员的关系网络,使用随机初始化的GCN进行特征提取,得到各个nodeembedding,然后可视化可以发现,在原数据中同类别的 node,经过GCN 的提取出的embedding,已经在空间上自动聚类了

GCN(图卷积神经网络)的简单理解_第5张图片

GCN无非也就是CNN的思想,利用GCN学习图的特征进行特征提取,然后再使用特征解决实际问题

 
 

你可能感兴趣的:(深度学习,神经网络,卷积,网络,机器学习)