加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

可扩展的图神经结构搜索系统

发布时间:2023-12-20 14:04:24 所属栏目:大数据 来源:DaWei
导读: 由于当前大型图表数据处理场景的不断增长,对图表结构数据处理速度、可扩展性等要求越来越高。今天主要介绍 PaSca,一种基于新型结构范式的可扩展的神经结构搜索系统,并且探讨其表现性和易用
由于当前大型图表数据处理场景的不断增长,对图表结构数据处理速度、可扩展性等要求越来越高。今天主要介绍 PaSca,一种基于新型结构范式的可扩展的神经结构搜索系统,并且探讨其表现性和易用性。

一、问题
1、读数据

在现实生活中,很多的数据都是以图的形式存在,像社交网络,知识,药物和新材料等,图神经网络也被广泛的应用于多个场景,如推荐系统,异常检测,药物以及蛋白质结构预测等。

首先我们来对最常见的卷积神经网络做一个简单的回顾,从公式上来看,GCN 的表达形式与传统的深度神经网络区别在于多了含自环的矩阵和邻接矩阵,也就是增加了聚合邻居节点特征的一个过程。因此在 GCN 的每一层包含两个操作,propagation 操作用来聚合邻居的信息,transformation 操作用来做变换。如果下面的公式中的 A 单位矩阵是正方形的单位矩阵或者删去二进制图里面所有的边,那么GCN 此时就简单粗暴地退化成了 MLP。

2、图神经网络

GCN 的性能优于 MLP 主要是由于使用了消息传播机制,聚合来自于高阶领域的信息,从而增强了自身的表达能力。目前除了常见的卷积神经网络之外,还有注意网络(GAT, Graph Attention Network),引入了注意力机制,给每个邻居节点分配不同权重,从而优化聚合邻居节点的表达形式;GraphSAGE 使用归纳式学习,以 mini batch 进行训练,能进一步扩展应用到较大的数据集。

3、Neural Message Passing(消息传递机制)

在工业的场景下,数据的规模都是比较庞大的,我们会采用分布式的方法去部署和训练节点。当一个节点和它的邻居节点没有部署在同一台机器上,做聚合信息的操作时就需要去拉取另一台机器上的邻居节点的信息,这涉及到了通信开销,特别是在带宽不好的情况下,通信开销将会很大。图神经网络每一层都需要做这种拉取,同时在大规模的读数据上,每一个 epoch,即使每一次训练,也会存在很高的通信开销。

4、瓶颈 

为了更加直观地理解通信瓶颈,这里做了一个简单的实验。

受制于单机的存储和分布式通讯开销,现有的消息传递机制不能很好的传播到大图上。图 a 是我们使用 2 层的 GraphSAGE 训练 Reddit 上的一个数据集,横坐标为机器数量,纵坐标是加速比,可以看到在增加更多机器时候,加速比增长并不明显,甚至在机器从 2 个增加到 8 个时,加速比甚至没有增加到 2 倍。图 b 分析了这种情况的原因,即使增加机器后计算成本减小,更多的拉取数据操作使得通信开销增大,因此加速比的增加并不明显。

二、方法
1、系统目标 

我们的 PaSca 自动搜索系统是一个端对端的设计,不需要去人为定义网络结构和训练流程,只需要输入读数据和优化目标,就可以输出能兼顾多个优化目标的可扩展性 GNN,同。输入的数据可以是特征标签、结构矩阵,优化目标包括学术界常应用的分类性能指标,如准确率,AUC 等,同时还可以包括一些其他的约束,比如期望的训练时长,期望使用的机器内存,从而达到控制预算的效果。也就是说,我们的系统可以考虑到与硬件相关的多个优化指标,在多个目标的约束下去完成多个目标的搜索。

2、消息传递(Message Passing)方式

从数据流动的角度来看,GCN 遵从消息传递方式,它主要是从粒度较细的节点层次来刻画数据的流动,主要由 3 个操作组成:message function 定义如何去生成信息,对应表达式中的度矩阵和邻接矩阵;aggregation function 定义如何去聚合邻居节点信息;update function定义更新中心节点特征的方式,它遵从不断地去迭代“聚合-更新”这一流程。

3、自动化搜索系统(PaSca)

基于可扩展的 SGAP 范式,我们提出了自动化搜索系统 PaSca,其中包含两个模块,自动化的搜索引擎和分布式的评估引擎。搜索引擎的主要的目就是推荐一个 configuration instance,即一个网络结构配置,可以配置出一个可扩展的图神经网络结构。评估引擎将会评估所推荐的 configuration instance,真正在数据集上训练并产生预测,然后根据验证集的结果去评估准确率。

(1)搜索引擎

搜索引擎需要接收输入的优化目标,处理不同优化目标之间的 tradeoff。优化目标包括对于模型结构的要求(模型本身结构)、模型性能的要求(准确率等性能指标)和硬件设置(资源、内存空间、时间)相关的约束。搜索引擎可以在多个目标的约束下,去搜索并推荐最佳的满足多个优化目标的网络结构配置。

(2)设计空间

PaSca 的设计空间包含在预处理,模型训练,以及后处理等 3 个阶段的局部设计。拿模型训练阶段的设计空间为例,需要考虑的包括使用什么样的聚合器(自适应/非自适应),使用多少层的 dens layer 等。在每个阶段都有 2 个参数可供选择,三个阶段共有超过 150k 种可能的 configuration instances,同时现有的 Scalable GNN 都可以在我们的设计空间里找到。

(3)推荐服务器

对于推荐服务器来说,PaSca 使用经典的基于贝叶斯优化的 SMBO 方法。整个过程分为三步:建模,推荐和更新。首先进行建模,学习配置(网络结构)与优化目标之间的关系;建模完成后,推荐引擎去推荐能兼顾多个优化目标的配置;之后评估引擎评估该配置的效果,把观测到的历史记录返回推荐服务器中,进一步更新推荐模型,使得推荐越来越准确。这个过程是一个动态的过程,每个人都有自己的偏好,所以我们需要不断调整自己的偏好,以适应新的环境。

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章