技术思辨:GCN和CNN到底有什么差别?

写在前面

之前偶然在一本书中了解到19世纪末在美国很流行的一种成人教育叫“肖托夸”运动。人们通过这种运动,交流思想,分享知识。随着电视、电影、广播的兴起,这种运动没落了。

随着互联网的兴起,它演变成了很多其他的形式。比如通过线上的社群...

很感谢愿意参与我们技术交流的伙伴们,希望能够有更多的交流和思想碰撞。

图卷积神经网络和图信号处理的联系在哪里?

拉普拉斯矩阵的特征向量就是基函数,这相当于把网络的结构信息嵌入神经网络,那学习的是基函数前面的权系数,不知道这样理解对不对?

原始GCN论文中,很多内容是为了简化计算,对谱方法作一阶近似,这一块我觉得不必理会,GCN本质就是个Message Passing的过程,通过堆叠层数来获得全局信息,相比谱方法有工程上的极大优势而已,和特征向量也没有关系。

Message Passing到底是个什么过程?

感觉和图卷积神经网络的介绍有点脱节。可能做大数据或者人工智能的觉得GNN并没有什么特殊,但个人觉得对于有明确物理结构的研究对象,GNN比CNN的结果可能更有实在的物理意义。

可以通过Graphsage来理解。一个节点的特性是由它所在位置的邻居节点给塑造出来的,所以在对一个节点表示学习时就要把这些周围的邻居节点的信息给聚集到中心节点上。这样我就有了Message Passing的过程,就是从邻居节点到中心节点。

这个过程好理解,但是跟GNN的联系是什么呢?是在优化过程中体现的还是?

工程上都是效率为先,对于大数据而言,n^2的复杂度是承受不起的,所以GCN只是找到了一个实际可行的计算路径来学习结构信息。

思辨:

个人感觉一味的强调邻居节点的影响有失偏颇,显然很多个体特征是源于外界的环境(并非邻居,而这种外界的环境我们无法建模,甚至不知道存不存在),过分强调关联而忽视了个体自身的特点,一个简单的例子是,多个弹簧用绳子连在一起组成的系统,且这些弹簧下均挂有重物,如果简单看弹簧的连接关系,而忽视弹簧下重物的特点,似乎不太合理。

过分强调关联而忽视自身的现象称为Over Smooth,GCN的确存在,但也有解决的法子,原GCN论文里面阐述个这个现象。

参考论文:

1. Semi-Supervised Classification with Graph Convolutional Networks

https://arxiv.org/abs/1609.02907

2. Representation Learning on Graphs with Jumping Knowledge Networks

http://proceedings.mlr.press/v80/xu18c/xu18c.pdf

“GCN只是找到了一个实际可行的计算路径来学习结构信息”这个具体是什么意思,感觉如果是求基前面的系数,利用梯度下降计算就可以了呀?

GCN跟基向量没有关系,在理解GCN的时候不用和谱方法类比。

那论文中推导的拉普拉斯矩阵的特征向量的目的是?

我的理解是作者是想给GCN找了个理论解释:GCN的是谱方法的一阶近似。

神经网络学习的是权重,CNN学习的是核,那GCN到底学习的是啥?这么一说好像又和图的拓扑没有关系?

CNN也不符合严格数学意义上的卷积定义,CNN和GCN都只是比较契合数据本身的拓扑结构在进行计算。gcn虽然解释的时候是用谱方法解释的,但是已经简化太多了。

作者博客:

https://tkipf.github.io/graph-convolutional-networks/

质疑:

https://www.inference.vc/how-powerful-are-graph-convolutions-review-of-kipf-welling-2016-2/

理论到底是如何得来的呢?包括GNN里的权值共享也不明白。Message Passing是说明GNN怎么求权重的么?

Message passing 是说明怎么做forward计算,权重通过BP来学习。

另有:这个graph的卷积操作我就当做拓扑空间上的滤波器。说白了就是距离的计算,我这个点跟谁比较近。在Graph上面就是有边的距离近。像CNN呢,就是我们说的坐标空间,欧式空间,天生可以判断距离。所以,我理解的就是CNN就不需要那个邻接矩阵了。GCN就需要邻接矩阵告诉你谁比较近。如果没有,只有点没有变,变成非欧式空间的流形,我觉得还需要自己定义距离矩阵。

邻接矩阵的信息怎么用的?

公式如下:

我的粗浅的理解下:H这里如果对比成图像的话,就是把图像展开。每一个像素点,排列,先先变成一维向量。这个时候要做卷积,就需要通过A来控制你要拿哪些点出来了。就比如说一个像素点c周围的卷积,由于展开了,你不能做操作了。但你还想做以前的那种卷积操作,你需要A来控制。

可是还是有问题,他这个是在频域内(拉普拉斯特征向量张成的域内)卷积,实际上做的是时域的乘积,不能只看卷积,而是要看时域乘积到底在干什么?

这是简单做一个非欧空间和欧式空间对比,非专业CNN。图像上欧式空间自带空间卷积,Graph这种非欧空间的情况下想要知道每个节点的邻居是谁,就需要用到邻接矩阵(空间的相似度矩阵)来控制了,乘以它。这样一看CNN是个特例,自带相似度矩阵。这是大致的CNN与GCN的关系。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180808A08VTV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券