GCN图卷积网络笔记

333 阅读6分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

前言

GCN的概念首次提出于ICLR2017,它的提出是为了解决CV和NLP都无法解决或者是效果不好的问题——图结构的数据。典型的图结构有社交网络、化学分子结构、知识图谱等等。此外,语言的内部也算得上是复杂的树形结构,也是一种图结构。GCN的作用其实和CNN没什么差别,也是用来进行特征提取,不过作用的对象不同罢了。

一、CNN和GCN?

1、处理数据结构不同

CNN处理的数据是矩阵形式,这种结构形式的数据具有平移不变性。 在这里插入图片描述

GCN处理的数据是拓扑结构(图结构),即非欧几里得结构,比如社交网络连接。 CNN(卷积神经网络)无法处理非欧几里得结构。 在这里插入图片描述

2、特征提取

2.1 卷积特征提取

CNN特征提取的方法是采用卷积核(kernel,权重矩阵)来提取特征,并且不同的图片都共享一个卷积核。其实卷积操作的本质就是对一个范围内的像素点进行加权平均求和,这有助于提取空间特征。在图中的表示情形为:红色点的特征值是周围所有的像素点将特征值传播到中心后进行加权平均。 在这里插入图片描述 图卷积的空域法特征提取:对应CNN,图卷积使用的也是共享权重,不同于CNN的规则权重矩阵,图卷积通常是按照一定规律将参与聚合的所有点分配为多个不同的子集,每一个子集内的节点采用的是相同的权重,从而实现权重共享。(权重的分配还有更复杂的一些方法,这里只讲一下比较简单的这一种)。 在这里插入图片描述 和CNN很类似,GCN也是用周围的节点(邻居的节点)乘以给定的权重求和,再加上本身,再经过一系列计算得到一个全新的节点,这时候的节点信息不仅包含它本身,还包含它的邻居信息,如果多进行几次,那么它还可以包含邻居的邻居的信息。 在这里插入图片描述 非欧几里得结构图的特征提取分为以下两种方法:

2.2 空域方法

就是直接用相应顶点连接的Neighbors来提取特征。 1、指定顶点,选择邻居,Select Neighborhood。 2、定义邻居节点的顺序,Normalize Subgraph规范子图。 3、感受野读取顶点和边的属性,Receptive field reads vertex and edge attributes。 总的来说,就是将每个节点的特征与其邻居节点的特征加权平均后传播到下一层。 空域方法有如下特点: 1、随着层数的加深,每个节点能聚合到的特征越远,也就是感受野就越大 2、每个顶点的邻居节点数可能不尽相同,这会导致邻居节点多的顶点的特征值更显著。 3、邻接矩阵在计算时无法将自身的特征包含到聚合特征值中去。 为了克服空域图卷积的缺点,提出了频域图卷积的方法。 在这里插入图片描述

2.3 频域方法

图卷积(GCN)所采用的方法。

GSP(graph signal processing)图形信号处理的方法,即在图上进行信号处理的变换,如傅立叶变换或者拉普拉斯变换,进而进行图的卷积,从而提取图的特征。 GSP(graph signal processing)图形信号处理,将图当做信号,然后运用信号处理的方法去分析与处理图的特征。借助于图的拉普拉斯矩阵的特征值和特征向量来研究Graph的性质。 在这里插入图片描述

二、图卷积理论基础

理解拉普拉斯变换和傅立叶变换,拉普拉斯矩阵与傅立叶变换是GCN的两大理论基础。

2.1 图的拉普拉斯矩阵

在这里插入图片描述 对于图G=(V,E), 其中拉普拉斯矩阵的定义为L = D - A,V(vertex)是节点的集合,而E(edge)是边的集合。 1、L为拉普拉斯矩阵。 2、D为对角度矩阵,对角线上的元素是顶点的度,即该元素链接的元素的个数。 3、A为邻接矩阵,即表示任意两个顶点之间的邻接关系,邻接则为1,不邻接则为0。 (我也不想这么蠢的,没办法,第一眼看到对角度矩阵和邻接矩阵有点懵。) 解释对角度矩阵:从上到下依次是节点1到节点6,从左到右依次是节点1到节点6,在交界点上显示该节点的度,即该节点链接的元素个数,分别是2、3、2、3、3、1。 请添加图片描述 解释邻接矩阵:每一行代表的都是一个顶点(从上到下是1到6),每一列代表的也是一个顶点(从左到右是1到6),如果两个顶点相邻,则他们的代表的行列交界点为1!请添加图片描述

如图所示:第一行代表的1和第二列、第五列代表的2、5相邻,所以他们的行列交界点为1. 注意:因为这里代表的是无向图,所以既有1指向2、5,也可以有2、5指向1,所以整个图呈现的是关于对角线对称。当然,也可以有文本当作图,每一个词语当作是一个顶点,这时整个图是一个有向图。

拉普拉斯矩阵与图的性质满足L = D - A这种矩阵关系(还有其它关系,这里不作讨论),其中图G = (V,E),就是图的性质可以表示在拉普拉斯矩阵之中,这样,我们将图的分析,可以变为对拉普拉斯矩阵的分析。

2.2 傅立叶变换

傅立叶变换就是通过傅立叶变换,将一个域的信号转换到另一个域,便于我们分析和计算。 定义在这里插入图片描述 一种变换方式,将信号由t域变换到w域。引入傅里叶变换的原因是傅里叶变换具有一定的性质,就是原域进行卷积,相当于频域相乘: 在这里插入图片描述

2.3 这两种变换的关系

传统傅立叶变换的基,就是拉普拉斯矩阵的一组特征向量。

2.4 GCN最重要的结论

结论:图的傅立叶变换的矩阵形式: 在这里插入图片描述

三、图卷积

图卷积的理论就是刚才得到的结论

1、傅立叶与卷积的性质

傅立叶变换性质中很重要的结论就是: 在这里插入图片描述 即一个域做卷积,就相当于另一个域相乘。 图域卷积等价于频域相乘,是通过傅立叶变换与反傅立叶变换来做到的。

2、图的傅立叶变换的矩阵形式

在这里插入图片描述 U既是傅立叶变换的基底,也是拉普拉斯矩阵的特征向量。 把这个公式展开来写: 在这里插入图片描述 在这里插入图片描述

3、图卷积

结合1、2我们就得出图卷积最重要的结论: 在这里插入图片描述

4、图卷积网络

5、卷积层公式

6、图卷积网络公式

在这里插入图片描述 在这里插入图片描述