欢迎光临散文网 会员登陆 & 注册

入门图神经网络一点都不难

2022-02-11 17:52 作者:深度之眼官方账号  | 我要投稿

来源:投稿 作者:张宇 

编辑:学姐带你玩AI 公众号


近年来,作为一项新兴的图数据学习技术,图神经网络(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的形式得到图级表示。


图神经网络是一新兴的网络,表示能力强大,但是目前还有很多没有探索的领域,值得相关学者深入研究。



点这里👇关注我,记得标星哦~


点一点赞才能看得到学姐干货~



入门图神经网络一点都不难的评论 (共 条)

分享到微博请遵守国家法律