当前位置:   article > 正文

图神经网络 一文读懂图卷积GCN(一些直观了解)_图卷积网络直观理解

图卷积网络直观理解

原文链接:https://mp.weixin.qq.com/s/9YqPSvfmfFnOrGzbmzPZbQ

Graph Neural Network

图神经网络(Graph Neural Network, GNN)是指神经网络在图上应用的模型的统称,根据采用的技术不同和分类方法的不同,又可以分为下图中的不同种类,例如从传播的方式来看,图神经网络可以分为图卷积神经网络(GCN),图注意力网络(GAT,缩写为了跟GAN区分),Graph LSTM等等,本质上还是把文本图像的那一套网络结构技巧借鉴过来做了新的尝试。但在这篇文章中并不会细细介绍下面的每一种,作为入门篇,我们着重理解最经典和最有意义的基础模型GCN,这也是理解其他模型的基础。

图片

图神经网络GNN的分类:分别从图的类型,训练的方式,传播的方式三个方面来对现有的图模型工作进行划分

Graph Convolutional Network

图卷积神经网络(Graph Convolutional Network, GCN)正如上面被分类的一样,是一类采用图卷积的神经网络,发展到现在已经有基于最简单的图卷积改进的无数版本,在图网络领域的地位正如同卷积操作在图像处理里的地位。

图片

GCN的区别和联系

如图2所示,这三个比较绕的概念可以用一句话来概括:图卷积神经网络GCN属于图神经网络GNN的一类,是采用卷积操作的图神经网络,可以应用于图嵌入GE。

卷积VS图卷积

要理解图卷积网络的核心操作图卷积,可以类比卷积CNN的地位。

如下图所示,数字图像是一个二维的离散信号,对数字图像做卷积操作其实就是利用卷积核(卷积模板)在图像上滑动,将图像点上的像素灰度值与对应的卷积核上的数值相乘,然后将所有相乘后的值相加作为卷积核中间像素对应的图像上像素的灰度值,并最终滑动完所有图像的过程。

用随机的共享的卷积核得到像素点的加权和从而提取到某种特定的特征,然后用反向传播来优化卷积核参数就可以自动的提取特征,是CNN特征提取的基石 。

 

图片 图像卷积

然而,现实中 更多重要的数据集都是用图的形式存储的,例如社交网络信息,知识图谱,蛋白质网络,万维网等等。这些图网络的形式并不像图像,是排列整齐的矩阵形式,而是非结构化的信息,那有没有类似图像领域的卷积一样,有一个通用的范式来进行图特征的抽取呢 ?这就是图卷积在图卷积网络中的意义。

对于大多数图模型,有一种类似通式的存在,这些模型统称GCNs。因此可以说,图卷积是处理非结构化数据的大利器,随着这方面研究的逐步深入,人类对知识领域的处理必将不再局限于结构化数据( CV,NLP),会有更多的目光转向这一存在范围更加广泛,涵盖意义更为丰富的知识领域。

接下来我们就来逐步拆解这个范式。

图卷积

图片

图结构实例

图的定义

对于图,我们有以下特征定义:

对于图   G = (V, E) , V为节点的集合,  E 为边的集合,对于每个节点   i , 均有其特征   xi ,可以用矩阵 X N*D  表示。其中  N  表示节点数, D  表示每个节点的特征数,也可以说是特征向量的维度。

图卷积的形象化理解

在一头扎进图卷积公式之前,我们先从其他的角度理解一下这个操作的物理含义,有一个形象化的理解,我们在试图得到节点表示的时候,容易想到的最方便有效的手段就是利用它周围的节点,也就是它的邻居节点或者邻居的邻居等等,这种思想可以归结为一句话:

图中的每个结点无时无刻不因为邻居和更远的点的影响而在改变着自己的状态直到最终的平衡,关系越亲近的邻居影响越大。

实际上从邻居节点获取信息的思想在很多领域都有应用,例如word2vec,例如pagerank。关于这个点展开的内容文章[2]有非常详细的解释。

更加细节的如何从傅立叶变换到拉普拉斯算子到拉普拉斯矩阵的数学推倒可以转向博客[7],为了避免数学功底没有那么强的初学者(比如我)被绕晕,我们先建立大纲,不要太发散。

图相关矩阵的定义

那么有什么东西来度量节点的邻居节点这个关系呢,学过图论的就会自然而然的想到邻接矩阵拉普拉斯矩阵。举个简单的例子,对于下图中的左图(为了简单起见,举了无向图且边没有权重的例子)而言,它的度矩阵 D  ,邻接矩阵 A   和拉普拉斯矩阵  L 分别如下图所示,度矩阵  D  只有对角线上有值,为对应节点的度,其余为0;邻接矩阵  A 只有在有边连接的两个节点之间为1,其余地方为0;拉普拉斯矩阵    为   。但需要注意的是,这是最简单的一种拉普拉斯矩阵,除了这种定义,还有接下来介绍的几种拉普拉斯矩阵。

图片

一个图的度矩阵,邻接矩阵和拉普拉斯矩阵

-----------------------------------------------------------

以下是自己的学习小结以及体会:

将图卷积类比普通卷积:
普通卷积:数字图像是一个二维的离散信号,对数字图像做卷积操作其实就是利用卷积核(卷积模板)在图像上滑动,将图像点上的像素灰度值与对应的卷积核上的数值相乘,然后将所有相乘后的值相加作为卷积核中间像素对应的图像上像素的灰度值,并最终滑动完所有图像的过程。
用随机的共享的卷积核得到像素点的加权和从而提取到某种特定的特征,然后用反向传播来优化卷积核参数就可以自动的提取特征,是CNN特征提取的基石 。
————————————
图卷积提出原因:现实中 更多重要的数据集都是用图的形式存储的,例如社交网络信息,知识图谱,蛋白质网络,万维网等等。这些图网络的形式并不像图像,是排列整齐的矩阵形式,而是非结构化的信息,那有没有类似图像领域的卷积一样,有一个通用的范式来进行图特征的抽取呢 ?这就是图卷积在图卷积网络中的意义。
——————————
图卷积:类似图像领域的卷积一样,有一个通用的范式来进行图特征的抽取,这个范式就是图卷积。
———————————
图的特点:图中的每个结点无时无刻不因为邻居和更远的点的影响而在改变着自己的状态直到最终的平衡,关系越亲近的邻居影响越大。(所以就出现了相关矩阵:邻接矩阵,目的是充分利用相邻接点的信息,我认为可以理解为空间特征)

------------------------------------

图卷积神经网络GCN属于图神经网络GNN的一类,是采用卷积操作的图神经网络,可以应用于图嵌入GE。

------------------------------------

文章最后介绍了几种拉普拉斯矩阵,并针对矩阵的问题给出了改进,可以学习到的一个知识点是两边乘以一个矩阵的逆就归一化了。
—————
这样就可归一化的原因:举个例子对于,单个节点运算来说,做归一化就是除以它节点的度,这样每一条邻接边信息传递的值就被规范化了,不会因为某一个节点有10条边而另一个只有1条边导致前者的影响力比后者大,因为做完归一化后者的权重只有0.1了,从单个节点上升到二维矩阵的运算,就是对矩阵求逆了,乘以矩阵的逆的本质,就是做矩阵除法完成归一化。但左右分别乘以节点i,j度的开方,就是考虑一条边的两边的点的度。
———————
此任务为什么要进行归一化:如果邻接矩阵  A 没有被规范化,这在提取图特征时可能存在问题,比如邻居节点多的节点倾向于有更大的影响力。
—————
还可以学到:引入了度矩阵可以解决没有考虑自身节点信息自传递的问题。

---------------------------------------------

我认为度矩阵,邻接矩阵就是把图(这种非结构化数据)以矩阵的形式表示变成结构化数据,然后进行处理。

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/552551
推荐阅读
相关标签
  

闽ICP备14008679号