来源:投稿 作者:张宇
编辑:学姐
近年来,作为一项新兴的图数据学习技术,图神经网络(GNN)受到了非常广泛的关注,在各大顶级学术会议上,图神经网络相关的论文也占了相当可观的份额。
我们知道图结构是最复杂的一种数据结构,其他数据结构都可以看做是图结构的一种推广。图结构在现实世界中也有很多应用,比如城市轨道交通图、社交关系图、生物医学领域等。
GNN辅助医药研制
图神经网络就是将图结构引入深度学习领域产生的一项技术,我们通常指的图神经网络一般就是图卷积神经网络,除此之外也有基于Random Walk的网络。
卷积神经网络CNN
图卷积网络GCN
传统的卷积神经网络是通过移动卷积核的方式进行卷积,形象的说就是使用每个元素附近的元素(包含自身)使用卷积核加权相加的方式来更新自身信息。
图神经网络与其类似,如果图中的每个结点只使用附近的一阶邻居(也就是存在邻接关系的结点)对自身进行更新的话,那这种卷积方式是类似于CNN中的3*3卷积的。
因为图结构每个结点周围邻居的数目是不确定的,所以对于GCN来说对于邻居结点的加权不像CNN中使用可学习的卷积核,而一般是使用加权的方式,并且目前的几种经典图卷积网络就是在加权方式上有所不同。
GCN考虑两结点之间的边的权重以及两结点的度;GAT考虑两结点之间的相似性,使用注意力机制进行加权。
CNN感受野 GNN感受野
将上述直观的概念转化为GCN具体卷积形式就是下面这个公式:
图神经网络也有类似于CNN里面的感受野(如上图)的概念,随着网络层数的增加,高层网络中的结点会从更高阶的邻居聚合到信息。
比如下面这个例子,对于1结点来说,虽然结点7是结点1的二阶邻居,但是第一次卷积将结点7的信息传递到结点4,第二次卷积就可以借助结点4将结点7的信息传递到结点1。
一些经典的CNN模型都可以堆叠多层,例如加入残差连接的ResNet目前都可以达到上百层网络,但是GNN通常只使用两到三层。
主要原因就是会产生过平滑的问题,以上面的图为例,可以将两层卷积网络的信息传递分解为下面这种树的形式。对于结点1的邻居2,两个结点之间的不断受到对方的影响,随着网络层数的增加,这种影响也会越来越大,当网络层数趋近于无穷时,整个网络的结点都会有相同的特征。
GNN信息传递路径
Shuman等人在Cora数据集上对多层网络卷积的结果进行分析,将原始结点特征进行不同层数的卷积后进行降维到2维进行可视化。可以看出,卷积层数2-3层效果最好,不同种类的结点可以明确区分出来,当层数增加到5层时所有结点就很难区分。
GNN多层聚合结果可视化
最近几年,也有相关研究人员将注意力机制、RNN、Transformer等引入图神经网络。以引入注意力机制的图注意力网络(GAT)为例,与传统网络应用注意力机制的形式类似,如下左图计算结点i、j之间的注意力分数α,根据注意力分数α对邻居结点进行聚合(如下右图)。对于下图其他结点到结点h1的三种边是Multi-head的形式,通过每一个head生成的新向量进行concat或者平均等的方式产生最终结点的向量表示。
图注意力网络(GAT)结构
最早的 Graph Attention Networks 中实现的GAT网络的计算公式如下:
对于注意力分数的计算形式也是经常用到的,不仅在GAT类似的网络中应用,同样在图级任务的Readout函数也是采用这种Soft-attention的形式得到图级表示。
图神经网络是一新兴的网络,表示能力强大,但是目前还有很多没有探索的领域,值得相关学者深入研究。
关注下方《学姐带你玩AI》🚀🚀🚀
AI干货、论文资料、数据集……持续更新中
码字不易,欢迎大家点赞评论收藏!