基于分布式的连续时间动态图神经网络训练方法及系统

文档序号:37688144发布日期:2024-04-18 21:03阅读:11来源:国知局
基于分布式的连续时间动态图神经网络训练方法及系统

本发明属于大数据、分布式计算以及图神经网络领域,尤其涉及一种基于分布式的连续时间动态图神经网络训练方法及系统。


背景技术:

1、社会中的绝大部分关联数据都可以建模图的形式,利用图神经网络对数据进行挖掘是目前的主流方案。随着网络平台的发展,在线服务产品产生了大量的关系数据,图的规模爆炸性增长。例如facebook、twitter等社交平台上实时的社交关系图,电子交易平台上迅速增长的交易关系图都能够达到数亿级别。但图神经网络结构复杂,训练、推理需要较高的时间和空间成本。如何存储和处理这些数据成为图神经网络研究中的重要问题。在动态图领域,将大规模图神经网络训练拓展到分布式环境下极为重要。

2、目前离散时间动态图领域,已经存在多个分布式训练框架,如dynagraph等,但离散时间模型并不不适用于变换频繁的动态图。在连续时间动态图领域,如文献temporalgraph networks for deep learning on dynamic graphs中提出的tgns通用训练框架,文献a general framework for temporal gnn training on billion-scale graphs中提出的tgl提出了基于简单的数据并行的单机多卡并行训练方案解决tgns的单机多卡训练问题。tgns框架引入了内存机制存储历史计算的时序嵌入,从而能够保留图上历史深度信息,但tgl提出的数据并行方案中内存信息需要频繁在cpu和gpu上进行拷贝。由于连续时间动态图中的数据存在严格依赖关系,直接采用静态图的分布式子图采样训练方案会丢失一部分时序信息,导致神经网络的训练收敛速度变慢,训练结果准确率下降。除此之外,这些框架限制训练只能在单个服务器上执行,并不能拓展到多台服务器,能够拓展到多台服务器上的连续时间神经网络分布式模型训练的研究仍然存在较大的空白。


技术实现思路

1、本发明的目的在于解决现有技术中存在的问题,并提供一种基于分布式的连续时间动态图神经网络训练方法及系统。

2、本发明所采用的具体技术方案如下:

3、第一方面,本发明提供一种基于分布式的连续时间动态图神经网络训练方法,包括以下步骤:

4、s1.获取单机连续时间动态图神经网络模型(tgns)的配置参数,所述配置参数包括内存更新模块的配置参数、采样配置参数、网络层参数;

5、s2.根据所述网络层参数获取对应的单机连续时间动态图神经网络模型,将所述配置参数输入到pytorch算子中,得到支持分布式数据并行的连续时间动态图神经网络模型;配置支持分布式数据并行的连续时间动态图神经网络模型的内存聚合策略;

6、s3.获取用于训练的动态社交网络图数据,利用可实现点分割的图划分方法对动态社交网络图数据进行划分,得到若干个动态社交网络子图数据,每台本地服务器分配本地内存空间对应存储每个动态社交网络子图数据;

7、s4.每台本地服务器为每个动态社交网络子图数据的节点申请存储历史时序嵌入的内存空间和历史交互消息的内存空间,并将节点申请存储历史时序嵌入的内存空间和历史交互消息的内存空间均初始化为0;每台本地服务器申请固定大小的lru缓存空间,所述lru缓存空间用于存储动态社交网络子图数据的节点特征以及边特征,以时间戳最小的动态社交网络子图数据的节点特征以及边特征初始化所述lru缓存空间;

8、s5.根据所述配置参数判断是否启用随机块划分方式,将每个动态社交网络子图数据划分为多个批次:若启动随机块划分方式,则将每台本地服务器上存储的动态社交网络子图数据按照时间戳从小到大的顺序依次划分到若干个动态社交网络图数据块中,随机选择一个动态社交网络图数据块作为起始块,将时间戳连续的动态社交网络图数据块合并到一个训练批次内,直到一个训练批次的大小超过预先配置的训练批次大小,再将剩下的动态社交网络图数据块划分到新的训练批次里;若未启动随机块划分方式,则将每台本地服务器上存储的动态社交网络子图数据按照时间戳从小到大的顺序依次划分到若干个训练批次中;

9、s6.对每个批次的动态社交网络子图数据进行校准,对应得到每个批次的动态社交网络校准子图数据;对于本地服务器上每个批次的动态社交网络校准子图数据的中心节点,利用采样配置参数对所述中心节点进行邻居采样操作,并对所述中心节点的邻居节点被划分的位置进行判断:如果一个邻居节点被划分到本地服务器,则以该邻居节点为中心,重复执行邻居采样操作,得到最终的动态社交网络采样子图数据;如果一个邻居节点被划分到远程服务器,则以该邻居节点为中心,通过远程rpc调用远程服务器的邻居采样操作,得到远程服务器上的动态社交网络子图数据采样结果,将远程服务器上的动态社交网络子图数据采样结果与本地服务器上的动态社交网络子图数据采样结果合并,得到最终的动态社交网络采样子图数据;

10、s7.每台本地服务器获取每个批次的动态社交网络采样子图数据,并启用本地缓存机制在本地缓存内查找是否存在远程节点特征缓存:若未查找到远程节点特征缓存,由每台本地服务器通过rpc异步获取远程服务器存储每个批次的动态社交网络采样子图数据的节点特征以及边特征,并从本地服务器中内存获取本地节点的获取历史时序嵌入和本地节点的历史交互消息,从远程服务器内存中获取远程节点的获取历史时序嵌入和远程节点的历史交互消息;若查找到远程节点特征缓存,由每台本地服务器直接从本地缓存获取每个批次的动态社交网络采样子图数据的节点特征以及边特征,并从本地服务器内存中获取本地节点的获取历史时序嵌入和本地节点的历史交互消息,从远程服务器内存中获取远程节点的获取历史时序嵌入和远程节点的历史交互消息;

11、s8.每台本地服务器将本地节点的获取历史时序嵌入、本地节点的历史交互消息、远程节点的获取历史时序嵌入以及远程节点的历史交互消息输入到内存更新模块的网络层中,输出并缓存动态社交网络采样子图数据每个节点的时序嵌入;

12、s9.将每个批次的动态社交网络采样子图数据、每个批次的动态社交网络采样子图数据的节点特征以及边特征、和动态社交网络采样子图数据每个节点的时序嵌入一起输入到每台本地服务器的连续时间动态图神经网络模型中,由每台本地服务器对连续时间动态图神经网络模型进行训练;

13、s10.当完成一个批次的动态社交网络采样子图数据的训练过程后,每台本地服务器将本批次的动态社交网络采样子图数据每个节点的时序嵌入以及每个批次的动态社交网络采样子图数据的边特征进行聚合计算,得到每个批次的动态社交网络采样子图数据每个节点的更新交互消息;

14、s11.当所有的所述更新交互消息发送完毕后,判断本地服务器上每个批次的动态社交网络采样子图数据每个节点是否对应接收到远程服务器上该节点的更新交互消息以及时序嵌入:如果本地服务器接收到远程服务器上该节点的更新交互消息以及时序嵌入,则以内存聚合策略方式更新历史交互消息的内存空间以及更新历史时序嵌入的内存空间;如果本地服务器未接收到远程服务器上该节点的更新交互消息以及时序嵌入,将所述更新交互消息写回历史交互消息的内存空间以及更新历史时序嵌入的内存空间;

15、s12.不断迭代执行步骤s6-s11,直至所有批次的动态社交网络采样子图数据均参与了连续时间动态图神经网络模型训练,再不断迭代执行步骤s5-s12,直到训练次数达到预先配置的训练次数阈值后,停止迭代,完成基于分布式的连续时间动态图神经网络训练。

16、作为优选,所述内存更新模块的配置参数包括输入张量的大小、输出张量的大小,所述采样配置参数包括采样策略、采样层数以及每层采样邻居数量。

17、作为优选,所述采样策略包括按照邻居时间戳从大到小采样和均匀随机采样。

18、作为优选,所述pytorch算子采用distributeddataparallel算子。

19、作为优选,所述动态社交网络图数据的每个节点表示每个用户,每条边表示用户间的交互,每条边上对应带有一个时间标签。

20、作为优选,在选择所述中心节点的邻居节点时,可按照时间戳从大到小的顺序或者均匀随机采样策略。

21、作为优选,所述内存聚合策略方式包括最大时间戳优先方式、均值聚合方式以及局部聚合策略。

22、作为优选,在得到每个批次的动态社交网络采样子图数据每个节点的更新交互消息时,若内存聚合策略方式采用局部聚合策略,则本地服务器忽略每个批次的动态社交网络采样子图数据每个远程节点的更新交互消息;若内存聚合策略方式未采用局部聚合策略,则本地服务器将每个批次的动态社交网络采样子图数据每个远程节点的更新交互消息对应发送给每台远程服务器。

23、作为优选,所述内存更新模块的网络层结构采用transformer或者rnn。

24、第二方面,本发明提供一种基于分布式的连续时间动态图神经网络分类系统,包括数据获取模块和分类模块,所述数据获取模块,用于获取动态社交网络图数据;所述分类模块,用于将所述动态社交网络图数据输入到利用上述第一方面的基于分布式的连续时间动态图神经网络训练方法训练的连续时间动态图神经网络模型中,输出用户间交互关系的预测值。

25、本发明相对于现有技术而言,具有以下有益效果:

26、1)本发明采用图划分和特征缓存的方案减少跨机器通信的数据量,采用训练数据划分调整策略和内存同步机制减少连续时间动态图神经网络训练过程中的时序异步误差。

27、2)本发明采用多台计算机协同训练连续时间动态图神经网络,解决在大数据情况下内存机制资源不足的问题。

28、3)本发明能够实现大规模动态图数据的分布式训练,且拥有和单机服务相同的计算逻辑,训练的准确度和参数收敛速度都有有效保障。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1