Java教程

带你换个角度理解图卷积网络

本文主要是介绍带你换个角度理解图卷积网络,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
摘要:本文带大家从另一个角度来理解和认识图卷积网络的概念。

本文分享自华为云社区《技术综述十二:图网络的基本概念》,原文作者:一笑倾城。

基础概念

笔者认为,图的核心思想是学习一个函数映射f(.)f(.),借助该映射,图中的节点可以聚合自己的特征与邻居节点的特征,从而生成该节点的新特征表示。

Figure 1. 图的一般推理过程[1]

图神经网络 Vs. 卷积神经网络

如图2所示,卷积神经网络的输入数据一般是规则的矩阵类型数据,例如图片。每个节点和其它节点的空间关系是固定的。而图神经网络的输入数据一般表现为不规则的拓扑结构,节点与节点的关系非常复杂,节点间的空间关系一般不做约束,节点间是否存在连接以及连接的数量不做约束。复杂的网络还涉及到连接的方向和子图等概念。

Figure 2. 图网络和卷积网络[1]

如图3所示,如果将图的每个节点等价视为图像中的每个像素,其实,图的工作过程可以类比CV中的经典问题:semantic segmentation。

Figure 3. semantic segmentation[2]

图的基础组件及其实现

图在工作过程中,主要需要处理的问题有两个,一个是节点信息的提炼方式;另一个是邻近节点的搜索方式。整理如下:

邻近节点的搜索方式:

  • 每个节点考虑全部其它节点
  • 基于欧氏距离,只搜索近邻N个节点

节点信息的提炼方式:

  • MLP+Max Pooling直接进行特征融合
  • 基于attention,对周边节点进行加权平均
  1. 普通attention
  2. Self-attention (Bert/Transformer)

其中,邻近节点的搜索方式有两种,基于Bert作为图卷积网络的方案,一般是全部节点统一输入,每个节点在进行self-attention时,统一考虑其它节点,因此,可以视为全局搜索,典型的样例是LayoutLM。而基于某种距离度量搜索邻近的节点的方式, 一般来说更加注重局部信息。可以依据特定任务进行一些定制化的距离设计。缺点是过于注重局部信息,不能让图网络充分发挥能力。

另一方面是节点信息的提炼方式,简单的方法就是直接对相邻节点做1\times11×1卷积,再进行max pooling。目前更流行的方法是基于attention,普通attention,如图4所示,输入特征一般由中心节点特征t_iti​和相邻节点t_jtj​,以及彼此的距离等信息拼接而成,考虑周围32个节点,则生成32个特征,并在此基础上计算权重向量\alpha_iαi​,得到这32个特征向量的权重,再进行加权和,得到节点ii的新特征表达t'_iti′​。基于self-attention的方法工作机制类似。

Figure 4. 图节点信息的提炼过程

总结

最后,图卷积和卷积之间的一些对比整理在图5中。我们可以观察到一些有趣的现象,其实在卷积网络中,也有邻近节点搜索方式的一些工作,例如空洞卷积和可变形卷积。

Figure 5. 图网络和卷积网络工作方式比较

参考文献:

[1] Wu, Zonghan, et al. “A comprehensive survey on graph neural networks.” IEEE transactions on neural networks and learning systems (2020).

[2] Long, Jonathan, Evan Shelhamer, and Trevor Darrell. “Fully convolutional networks for semantic segmentation.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2015.

  • 贵州省惠水县属于哪个市?
  • 四川省古蔺县属于哪个市?
  • 邵阳市属于哪个省?
这篇关于带你换个角度理解图卷积网络的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!