当前位置: 首页 > article >正文

图神经网络模型扩展5--3

        以图卷积网络为例,在每一层卷积中,我们需要用到两个输入A∈Rn×n 和X∈Rn×d。 很容易想象,当输入的图数据很大时(n 很大),图卷积网络的计算量是很大的,所需要的内存也是很大的。推广到更一般的信息传递网络,在每一层中,需要将信息从中心点传给周围所有的邻居。经过很多层之后,这个信息到达的节点数会呈指数发展,这个现象被称为“邻居爆炸”。因此,当图很大或很稠密时,图神经网络的训练很容易出现内存爆炸或者训练缓慢的现象,这极大地限制了图神经网络的大规模应用。一个可行的解决方案 就是邻接点采样。

1.点采样

        Hamilton等人用GraphSAGE模型做了一个探索性的尝试。在第3 章讲过这个模型,它在每一次信息传递的过程中,对每个中心节点随机采样固定数量的邻居节点进行信息聚合。这个措施使得GraphSAGE 的复杂度可以维持在一个固定的开销,与其他消息传递网络相比,更容易扩展到大规模的图上。PinSAGE基于GraphSAGE做了微小的改进,在采样的时候加入了邻居节点重要性的考虑,通过随机游走,被访问越多次的节点,被采样的概率就越大。VR-GCN进一步缩减了邻接点采样的数量,它保存了节点激活的历史记录,并用控制变量法使邻居采样的数量可以减少。

2.层采样

        GraphSAGE这种对每个节点采样多层邻居的方式,在图卷积网络层数增多时仍然可能遭遇“邻居爆炸”的问题,因为每个节点、每层都采样了固定数量的点。不同于GraphSAGE的节点采样,Chen 等人则提出了一种新的层采样方法FastGCN。首先,我们介绍为什么采样是可行的。回到图卷积网络的公式:

我们把它写成信息传递的形式:

 为了简洁,我们先忽略非线性的部分,并且不失一般性地将这个离散形式改写成概率积分的形式:

 

u看成一个随机变量,而P(u)为它的分布概率。n 为图中的节点数,A^(v,u) 表示矩阵A中对应节点vu的值。假设图卷积网络中的每一层相互独立,并且每个节点是独立同分布的,采用蒙特卡罗采样法,则可以采样t个独立同分布的样本节点

 来近似这个积分,这样每层节点的更新最终近似为:

 在实际应用中,我们把图中的节点分批,对每一批内的节点,采样同样的邻居, 这样可以将它重新写回矩阵形式:

        需要注意的是,FastGCN的采样不是对单一点进行的,而是在整个batch 内, 或者对整个层采样同样的邻居节点,这样随着图卷积网络层数的增加,采样点的数量只是线性增加的,这就进一步减少了采样所需的邻接点数量。随后,我们可以对采样加上权重,来减少采样方差,提高效率。很容易想到,在一个图中,每个节点的重要性是不一样的。直观地讲,如果一个节点的度很大,即它连着很多节点,那么它的重要性和对其他节点的影响力可能会更大(以社交网络为例,一个有着众多社交连接的大V 节点显然是更具影响力的)。 因此,重新设计节点的采样概率:

并用它们进行带权重的采样:

GraphSAGE  FastGCN 在实验中通常也只用两层图卷积网络,在针对大图的实验(比如reddit) 中,它们都比传统的图卷积网络快一到两个数量级,同时保持了几乎相同的准确度。

        FastGCN 有一个很强的独立性假设,导致相邻的两个图卷积网络层的采样是相互独立的,这会降低训练的效率,因为可能不同图卷积网络层独立采样出的节点之间,在信息传递时的路径是断掉的。ASGCN改进了FastGCN层间采样依赖关系,并提出了一个新的、可学习的网络,直接优化重要性采样的方差,因此表现也更好。

3.

        尽管点采样和层采样在大规模图学习上取得了不错的进展,但是它们在图更大及图神经网络更深时还是会遇到不少的困难,如GraphSAGE 的邻接点爆炸导致内存消耗过多,VR-GCN  需要额外存储节点的历史激活记录,FastGCN的层间依赖不足导致效果稍差,ASGCN需要在采样时额外注意层间依赖关系。 最近,有研究者提出了一些基于子图采样的方法,这类方法的思想是通过限制子图的大小来解决邻居爆炸的问题。由于它们在采样到的子图上进行图神经网络的训练,这些方法也就不存在采样点之间缺失层间依赖的问题。

        Cluster-GCN先采用图聚类算法把图分割成一个个小块,每次训练时随机选取一些小块组成子图,然后在这个子图上进行完整的图卷积网络计算,并直接得到损失函数。GraphSAINT也是先对原图进行采样,它使用了另外一 些子图采样的方法(如随机选取节点、随机选取边,随机游走等方法),然后在采样的子图上进行图卷积网络的计算。不同于Cluster-GCN,GraphSAINTFastGCN ASGCN 类似,还考虑了采样偏差问题,因此采用了重要性采样的方法来降低采样方差。具体来说,在GraphSAINT 中,在子图上运行的图卷积 网络在信息传递过程中,边的权重根据采样概率被重新归一化了:

其中,Gs为采样的子图,Lv为节点v上的预测损失,λv为节点v 对应的采样归一化系数,它与节点v 被采样到的概率成正比: λv=|V|*pv。

        在Cluster-GCN中怎么避免邻接点数量爆炸问题呢?可以看出, 由于分割成了不同的类,消息的传递在Cluster-GCN中受到了很大的限制,也就减少了邻接点数量爆炸的问题。GraphSAINT的图采样过程,先通过一些随机方法采样到子图,然后在子图上运行修改了权重的图卷积络。 图采样相比点采样和层采样要更加灵活,可以应用不同的图采样方法和图神经网络模型,并且在运行效率和准确度上都取得了很好的效果。

4.不规则图的深度学习模型

        早期,大部分图神经网络关注的都是一般的图结构,甚至很多模型中默认图中的边都是没有权重的。工业界真正关心的是有着多种类型节点和边的不规 则图(异构图)。例如,推荐系统中需要用户和商品两种节点;在药物反应预测中,我们需要在药物相互作用图中的边上处理不同的反应类型,这些任务也引发了对不规则图上图神经网络的很多研究。本节简要介绍两种不同思路的异构图学习方法。

        首先,回顾前面学到的图神经网络的一种表示——消息传递网络,它的信息传递过程可以写成如下形式:

        在信息收集的过程中,我们已经加入了边的信息evw, 所以消息传递网络框架是可以用来进行异构图的学习的。那么具体怎么实现呢? 关系图卷积网络给出了一种思路:

 可以看出,上式和图卷积网络的公式非常相似,唯一的区别是根据边的类型r不同,选择了不同的参数W。

        另一种异构图神经网络的思路则来源于图注意力网络。在传统的图注意力网络中,没有考虑到边的信息,但这并不是一个很难解决的问题。我们只需要将图注意力网络的公式稍加变换,加入边向量就可以了。假设节点i 和j 的边具有类型r, 则节点之间的注意力计算公式变为:

 可以看出,上式和图注意力网络的唯一不同就是加入了边向量Wrer。

小结:

        本章介绍了图神经网络的一些扩展任务和前沿课题,包括怎么训练更深的图卷积网络,怎么利用池化层次化地表示图,怎么在缺少标签的情况下无监督地训练图神经网络,怎么在图很大的时候进行快速的采样学习,以及怎么在不 规则的异构图上构建图神经网络。这些课题覆盖了大部分图表示学习的研究方向。有些方向由于种种原因没有进行介绍,如图上的对抗性攻击与防御、动态图的表示学习、图神经网络的理论分析(表达力、不变性与同变性等)、图神经网络的可解释性等。


http://www.kler.cn/a/308057.html

相关文章:

  • 使用kalibr_calibration标定相机(realsense)和imu(h7min)
  • 机器情绪及抑郁症算法
  • Gurobi学术版+Anaconda安装步骤
  • 【学习】【HTML】HTML、XML、XHTML
  • 软件设计师-计算机网络
  • 免费HTML模板和CSS样式网站汇总
  • 完全背包问题(优化版二维)
  • 在 Red Hat 上安装 SQL Server 2022 并创建数据库
  • Java代码实现Httpclient调用-验证码登录拦截获取到列表数据写入数据库
  • 昇腾服务器(Atlas800系列)部署embedding和rerank模型
  • USBCANFD卡再汽车电子行业中得应用
  • 【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(三十二)
  • python学习第十节:爬虫基于requests库的方法
  • python开发目录扫描工具
  • Vue3.5+ 响应式 Props 解构
  • 响应式网站的网站建设,需要注意什么?
  • win11 运行vmware workstation 虚拟机很卡,解决办法
  • 应用程序已被 Java 安全阻止:Java 安全中的添加的例外站点如何对所有用户生效
  • Rust 常见问题汇总
  • 【Kubernetes】linux centos安装部署Kubernetes集群
  • OpenHarmony鸿蒙( Beta5.0)RTSPServer实现播放视频详解
  • vue3 自定义el-tree树形结构样式
  • 【机器学习随笔】基于kmeans的车牌类型分类注意点
  • Java抽象/接口讲解(第五节)抽象类和接口的区别
  • 【C++】——继承详解
  • oracle 用游标为什么会比for循环慢?