CN117556095B - 图数据分割方法、装置、计算机设备和存储介质 - Google Patents
图数据分割方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN117556095B CN117556095B CN202410042444.5A CN202410042444A CN117556095B CN 117556095 B CN117556095 B CN 117556095B CN 202410042444 A CN202410042444 A CN 202410042444A CN 117556095 B CN117556095 B CN 117556095B
- Authority
- CN
- China
- Prior art keywords
- node
- partition
- nodes
- destination
- partitions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 103
- 230000011218 segmentation Effects 0.000 title claims abstract description 38
- 238000003860 storage Methods 0.000 title claims abstract description 25
- 238000005192 partition Methods 0.000 claims abstract description 457
- 238000004364 calculation method Methods 0.000 claims abstract description 39
- 238000004590 computer program Methods 0.000 claims abstract description 25
- 238000000638 solvent extraction Methods 0.000 claims description 63
- 238000009826 distribution Methods 0.000 claims description 12
- 238000012216 screening Methods 0.000 claims description 10
- 230000007423 decrease Effects 0.000 claims description 7
- 238000005070 sampling Methods 0.000 description 29
- 230000008569 process Effects 0.000 description 21
- 238000012545 processing Methods 0.000 description 21
- 238000004891 communication Methods 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 18
- 230000002829 reductive effect Effects 0.000 description 17
- 238000013473 artificial intelligence Methods 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000005520 cutting process Methods 0.000 description 8
- 238000010801 machine learning Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000004927 fusion Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002547 anomalous effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000007425 progressive decline Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种图数据分割方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:确定待处理的图数据中各节点的节点度,所述节点包括源节点和目的节点;根据节点度在预设范围内的目的节点,生成多个初始的分区;针对节点度处于当前度区间中的任一目的节点,根据与所针对目的节点的源节点相关的目的节点所属的分区,确定与所述源节点相匹配的分区;将所针对目的节点的源节点划分至相匹配的分区;更新所述当前度区间,并基于更新后的当前度区间返回至针对节点度处于当前度区间中的任一目的节点的步骤继续执行,以实现图数据的分割;图数据分割得到的子图用于进行分布式的图计算。采用本方法能够实现图数据的均衡划分。
Description
技术领域
本申请涉及图数据处理技术领域,特别是涉及一种图数据分割方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着图数据规模的增长,对于大图或超大图来说,由于其数据太大可能无法在单机上进行学习,在这种情况下,就需要对图数据进行划分来实现大图计算,由此产生了图分区技术。图分区技术的目的是将一个大图按照一定规则分割成若干个子图从而能够支持分布式的应用。
传统方式中,通常采用哈希随机分区的方式进行,在划分过程中一般是对点/边进行哈希映射到分区id(标识),分区方式简单不需要先验知识。但是这种随机化的分割方式会造成划分后子图内节点的局部性很难得到维持,被切掉的边会非常多,导致图计算过程中进行节点采样时需要非常大的通信开销。
发明内容
基于此,有必要针对上述技术问题,提供一种图数据分割方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种图数据分割方法,包括:
确定待处理的图数据中各节点的节点度,所述节点包括源节点和目的节点;
根据节点度在预设范围内的目的节点,生成多个初始的分区;
针对节点度处于当前度区间中的任一目的节点,根据与所针对目的节点的源节点相关的目的节点所属的分区,确定与所述源节点相匹配的分区;
将所针对目的节点的源节点划分至所述相匹配的分区;
更新所述当前度区间,并基于更新后的当前度区间返回至针对节点度处于当前度区间中的任一目的节点的步骤继续执行,以实现图数据的分割;图数据分割得到的子图用于进行分布式的图计算。
第二方面,本申请还提供了一种图数据分割装置,包括:
第一确定模块,确定待处理的图数据中各节点的节点度,所述节点包括源节点和目的节点;
生成模块,用于根据节点度在预设范围内的目的节点,生成多个初始的分区;
第二确定模块,用于针对节点度处于当前度区间中的任一目的节点,根据与所针对目的节点的源节点相关的目的节点所属的分区,确定与所述源节点相匹配的分区;
划分模块,用于将所针对目的节点的源节点划分至所述相匹配的分区;
迭代模块,用于更新所述当前度区间,并基于更新后的当前度区间返回至针对节点度处于当前度区间中的任一目的节点的步骤继续执行,以实现图数据的分割;图数据分割得到的子图用于进行分布式的图计算。
第三方面,本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现图数据分割方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现图数据分割方法的步骤。
第五方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现图数据分割方法的步骤。
上述图数据分割方法、装置、计算机设备、存储介质和计算机程序产品,会先根据节点度在预设范围内的目的节点,生成多个初始的分区,进而在通过迭代划分的方式对图数据进行划分,在每次迭代划分时会根据源节点的一阶邻居的度的大小,选择弹性的当前度区间,进而选择节点度在当前度区间内的目的节点,并针对所选择的每个目的节点的源节点进行分区指派。在对源节点进行分区指派时,会根据源节的目的节点所属的分区对其进行分区指派,使得每次迭代划分过程中,大部分的源节点可以与其相关的目的节点被划分到同一分区,保持了节点的局部性,使得图数据能够被均衡地划分,这样在后续进行分布式的图计算的过程中,在需要进行邻居节点采样时能够提高在本地子图采样成功的概率,减少跨设备拉取数据的频次和数据量,从而大大降低了通信开销。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中图数据分割方法的应用环境图;
图2(A)为一个实施例中图数据边割示意图;
图2(B)为一个实施例中图数据点割示意图;
图3为一个实施例中图数据分割方法的流程示意图;
图4为一个实施例中图数据示意图;
图5为一个实施例中图数据分割的流程图;
图6为一个实施例中通过传统方式进行图分割后的分区情况示意图;
图7为一个实施例中通过本申请的如数据分割方式进行图分割后的分区情况示意图;
图8为一个实施例中的图计算流程图;
图9为一个实施例中图数据分割装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的图数据分割方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端102和服务器104可以协同用于执行图数据分割方法,也可以单独用于执行图数据分割方法。以终端102和服务器104协同执行图数据分割方法为例,终端102将图数据发送至服务器104,服务器104确定待处理的图数据中各节点的节点度,节点包括源节点和目的节点;确定待处理的图数据中各节点的节点度,节点包括源节点和目的节点;根据节点度在预设范围内的目的节点,生成多个初始的分区;针对节点度处于当前度区间中的任一目的节点,根据与所针对目的节点的源节点相关的目的节点所属的分区,确定与源节点相匹配的分区;将所针对目的节点的源节点划分至相匹配的分区;更新当前度区间,并基于更新后的当前度区间返回至针对节点度处于当前度区间中的任一目的节点的步骤继续执行,以实现图数据的分割,图数据分割得到的子图用于进行分布式的图计算。服务器104将最终划分得到的多个分区反馈至终端102。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
通过执行本申请实施例提供的图数据分割方法得到的多个分区,也即多个子图,可以应用于分布式的图计算中。更具体地,可以通过人工智能技术对划分得到的多个子图进行图数据处理。
其中,人工智能(Artificial Intelligence, AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、预训练模型技术、操作/交互系统、机电一体化等技术。其中,预训练模型又称大模型、基础模型,经过微调后可以广泛应用于人工智能各大方向下游任务。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
而本申请中针对子图进行处理的技术具体可以通过机器学习模型实现。其中,机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。预训练模型是深度学习的最新发展成果,融合了以上技术。
本申请实施例提供的方案涉及人工智能的机器学习技术,具体通过下面的实施例进行说明。
在对本申请所提供的图数据分割方法进行详细说明之前,先对涉及到的部分技术术语,以及图分割技术进行解释:
图数据:是以点和边的形式来表示实体和关系的一种数据;
一阶邻居:与某节点直接相连的节点集合;
二阶邻居:与某节点的一阶邻居直接相连的节点集合;
高阶邻居:某节点二阶以上的邻居节点集合;
图分区:也称图划分,是将一个大图按照一定规则分割成若干个子图的过程。
需要说明的是,针对图划分技术,通常来说为使得划分得到的子图能够更好的支持分布式的图计算,划分过程主要需要考虑两方面,一是划分的大小尽量均匀,避免负载不均衡;二是尽可能地减少通讯开销,跨分块的边尽量少。
图分区技术从图数据的切分方式上可以分为点划分(边割)(vertexpartitioning or edge-cut partitioning)和边划分(点割)(edge partitioning orvertex-cut partitioning)。
如图2(A)为图数据的边割示意,其是以点为中心将各节点及其邻接表一起分配到各个分区,在分配过程中为了保证节点子图的完整性,会导致部分节点冗余的情况。如图2(A)所示,将图数据划分后得到右侧的1-3个子图。图2(B)为图数据的点割示意,其是将图的边分配到各个分区中,在分配的过程中为了保证边的完整性,会导致部分节点及其邻接表被切分。如图2(B)所示,将图数据划分后得到右侧的1-3个子图。
下面再对本申请所提供的图数据分割方法进行详细说明:
在一个示例性的实施例中,如图3所示,提供了一种图数据分割方法,以该方法应用于计算机设备为例(该计算机设备具体可以是图1中的终端或服务器)进行说明,包括以下步骤302至步骤310。其中:
步骤302,确定待处理的图数据中各节点的节点度,节点包括源节点和目的节点。
其中,图数据是一种以图的形式来表示的数据,其中包括节点和边,节点表示实体,边表示不同实体间的关系。图数据能够捕获不同实体之间的多对多关系、层次关系、及属性关系等。这种灵活性使得图数据在表示和存储复杂的关联信息(如社交网络分析、知识图谱、推荐系统)时更加直观和有效。
比如,在好友推荐领域,图数据中的节点可以是用户标识,节点特征可以是用户属性特征,图数据中的边可以表示相连接的两个节点所对应的用户是否是好友;在信息推荐领域,图数据中的节点可以表示推广信息或用户标识,节点特征可以是推广信息的内容特征或用户属性特征等,图数据中的边可以表征用户点击该推广信息或者未点击该推广信息等。在其他的一些实施例中,图数据还可以是知识图谱。可以理解,在实际应用场景中,针对不同场景构建的图数据,其中的节点和边实际表征的信息也不同。
在一些实施例中,图数据中的节点包括有源节点和目的节点。可以理解,针对有向图,不同节点间的边是有方向的,针对该边而言,箭头朝向的节点为目的节点,箭头反向的节点为源节点。针对无向图,不同节点间的边是没有方向的,那么该边连接的两个节点可以互为源节点和目的节点。
具体地,计算机设备可获取待进行分割的图数据,并统计图数据中每个节点的节点度。其中,节点度是图结构的基本概念,指与该节点相关联的边的条数。
在一些实施例中,计算机设备获取拓扑结构形式的图数据,也即拓扑图。进而计算机设备将该拓扑图转换成边表示,也即待处理的图数据。示例性地,请参考图4,图4的左侧为一个图数据的拓扑结构,拓扑图中的1~10分别表示10个不同的节点,节点之间的连线表示首尾两个节点存在一条边。在实际使用的过程中,会把拓扑图转化成边数据,边表示由源节点(src)与目的节点(dst)组成。
步骤304,根据节点度在预设范围内的目的节点,生成多个初始的分区。
其中,预设范围是预先设定的节点度范围。具体地,计算机设备可筛选出节点度在该预设范围内的目的节点。根据筛选出的目的节点的全部或部分节点,生成多个初始的分区。为方便描述,可将此时用于生成初始的分区的目的节点称作指定节点。假设指定节点的数量为H,则可根据这H个指定节点生成H个初始的分区,也就是H个初始簇。其中,每个初始的分区中包括有一个指定节点。
在一些实施例中,计算机设备可根据图数据处理系统中图数据处理器的数量,确定初始的分区数量。也即,初始的分区数量可以小于或等于图数据处理器的数量。其中,图数据处理系统是用于进行分布式的图计算的系统,也可认为是分布式集群,其中包括有多个电子设备,每个电子设备上部署有一个或多个图数据处理器,每个图数据处理器用于针对一个子图进行图计算。本申请中的图数据处理系统可以是基于PS(parameter server,一种分布式架构)架构的系统,也可以是基于MPI架构(message passing interface,实现了消息传递接口的库)的系统,还可以是基于其他的分布式图计算架构的系统,本申请实施例对此不做限定。
在一些实施例中,计算机设备确定的初始的分区的数量为H,进而可以基于该数量H确定预设范围,使得节点度在该预设范围内的目的节点的数量大于等于H。进而从节点度在该预设范围内的目的节点中筛选出H个指定节点,基于筛选出的这H个指定节点生成H个初始的分区。
在一些实施例中,针对每一初始的分区,计算机设备可将该分区中所包括的指定节点的节点标识作为该分区原始的分区标识,也称原始标识。其中,节点标识用于唯一标识一个节点,具体可以是数值、字母等字符串;分区标识用于唯一标识一个分区,具体可以是数值、字母等字符串。
在一些实施例中,迭代划分主要是针对普通节点的划分,超级节点会在针对普通节点的迭代划分结束后再进行单独的划分。也就是说,筛选节点度在预设范围内的目的节点时,会将超级节点排除在外。其中,超级节点是与其相连接的边的数量超过预设阈值或者达到预设数量级的节点。图数据的所有节点中除超级节点外的其他节点都可称作普通节点。
步骤306,针对节点度处于当前度区间中的任一目的节点,根据与所针对目的节点的源节点相关的目的节点所属的分区,确定与源节点相匹配的分区。
其中,当前度区间是当次迭代划分过程中使用的度区间。度区间是一个表示节点度范围的区间。可以理解,本申请中的图分割方法会通过多次迭代划分实现,在每次迭代划分的过程中,都会使用一个新的度区间,也就是度区间会随着迭代划分的次数增加而更新。
针对首次迭代划分时使用的当前度区间,其中的区间最大值基于图数据中除超级节点外的目的节点的节点度的最大值确定,可以是该最大值,也可以大于该最大值,比如区间最大值可以是该最大值加1。首次迭代划分时使用的当前度区间的区间最小值可以是一个预设的数值,该值比区间最大值要小。可以理解的是,参与计算图数据中的目的节点的节点度的最大值的目的节点,不包括超级节点。
将节点度处于当前度区间中的目的节点称作第一目的节点。对于任一第一目的节点,计算机设备均可通过下面的方式,对该第一目的节点的任一个源节点进行分区指派:计算机设备可确定该源节点对应的邻接表,并从其中确定出相邻接的至少一个目的节点,为了便于描述,将与该源节点相邻接的目的节点称作第二目的节点。进而计算机设备可确定各个第二目的节点是否有被分派至分区,若有则可以统计各个第二目的节点分别所属的分区。从而根据各分区中具有的第二目的节点的数量,确定与该源节点相匹配的分区。若是该源节点对应的第二目的节点均未被分区,则可跳过该源节点,继续下一个源节点的分区指派。跳过的源节点在迭代划分结束后再进行处理。
在一些实施例中,若是该源节点对应的第二目的节点均未被分区,则可以生成一个新的分区,将该新的分区作为该源节点相匹配的分区。
在一些实施例中,计算机设备在对源节点进行分区指派时,可将该源节点划分至具有最多第二目的节点的分区;或者,从具有第二目的节点的数量最多的前M名的分区中,随机指派一个分区作为该源节点的分区。其中,M为大于1的自然数。也即,计算机设备针对源节点进行划分时,可根据源节点的一阶邻居所属分区,使用投票的方式确定该源节点所属的分区。可将源节点与其大部分的目的阶段划分到同一分区,大大提高了后续图计算时在本地分区中采样到该源节点的邻居节点的概率。
在一些实施例中,计算机设备可确定与所针对目的节点的源节点相关的目的节点所属的分区,根据分区中具有的与源节点相关的目的节点的数量,按照由大至小的顺序,从未饱和的分区中选择一个分区作为与源节点相匹配的分区。其中,未饱和的分区指节点数未达到该分区的分区阈值的分区。如此,在每次迭代划分时就可以针对分区大小进行控制,避免出现一些分区非常大的情况,能够实现图数据的均衡划分。
在一些实施例中,各分区的分区阈值随着当前度区间的减小而增大,在当前度区间随着迭代划分次数的增加而减小时,也可以认为各分区的分区阈值是随着迭代划分次数的增加而增加的,如此,越往后划分,分区阈值越大,也就可以使得节点度较小的节点更容易被划分到同一个分区中,在实现图数据的均衡划分的同时保持了节点的局部性,降低图计算过程中的存储与通信开销,大大提高了图处理器的硬件处理速度。
步骤308,将所针对目的节点的源节点划分至相匹配的分区。
具体地,计算机设备可将所针对目的节点的源节点划分至与该源节点相匹配的分区,还可以将该目的节点和该源节点间的边也划分至该分区中。具体可以是将该源节点的节点标识、以及该源节点的邻接表共同划分至该分区中。
其中,邻接表是一种基于链表的数据结构,用于表示图中节点与之相邻的边。在邻接表中,每个节点都对应一个链表,链表中存储了与该节点相连的所有节点。
步骤310,更新当前度区间,并基于更新后的当前度区间返回至针对节点度处于当前度区间中的任一目的节点的步骤继续执行,以实现图数据的分割;图数据分割得到的子图用于进行分布式的图计算。
具体地,计算机设备可对当前度区间进行更新,使得更新后的当期度区间与更新前的当前度区间的范围不重合。进而,计算机设备可根据更新后的当前度区间进行下一次的迭代划分,这样不断地循环,直至选择完除超级节点之外的所有目的节点时停止,也就是历次确定出的度区间范围已经涵盖了除超级节点之外的所有目的节点的节点度时停止循环。如此,便能得到图数据的多个分区,基于划分得到的多个分区确定多个子图。这多个子图用于进行分布式的图计算。
在一些实施例中,计算机设备在进行迭代划分时,可朝减小节点度的方向上更新当前度区间,也可以朝增大节点度的方向上更新当前度区间,本申请实施例对此不做限定。
在一些实施例中,上述的迭代分区是针对普通节点而言的,在循环停止时,大体上已经完成了普通节点的分区指派,进而计算机设备可再针对超级节点作分区指派。在超级节点的分区指派完成后,计算机设备过滤出未被分区的节点,根据与该节点相关的目的节点所属的分区,确定与该节点相匹配的分区,若无法确定与该节点相匹配的分区,则说明该节点所在的子图可能与其他的子图没有关联,故而可以生成一个新的分区。这样,再返回到计算机设备过滤出未被分区的节点的步骤继续执行,直至所有节点均被分区。
在一些实施例中,获取对图数据分割得到的多个子图;通过分布式的计算集群对所述多个子图进行分布式的图计算,得到图计算结果。具体地,在对图数据进行分割结束后会得到多个子图,计算机设备可将这多个子图分别部署到分布式的计算集群中,进而通过分布式的计算集群进行分布式的图计算,得到图计算机结果。
上述图数据分割方法中,会先根据节点度在预设范围内的目的节点,生成多个初始的分区,进而再通过迭代划分的方式对图数据进行划分,在每次迭代划分时会根据源节点的一阶邻居的度的大小,选择弹性的当前度区间,进而选择节点度在当前度区间内的目的节点,并针对所选择的每个目的节点的源节点进行分区指派。在对源节点进行分区指派时,会根据源节的目的节点所属的分区对其进行分区指派,使得每次迭代划分过程中,大部分的源节点可以与其相关的目的节点被划分到同一分区,保持了节点的局部性,这样在后续进行分布式的图计算的过程中,在需要进行邻居节点采样时能够提高在本地分区采样的成功率,减少跨设备拉取数据的频次和数据量,从而大大降低了通信开销。
并且,通过本申请实施例所提供的图数据分割方法,可以实现图数据的均衡划分,大部分的源节点可以与其相关的目的节点被划分到同一分区,很好的保持了节点的局部性。减少了分布式集群基于子图进行的分布式的图计算过程中的跨机器采样的频次,降低了图计算过程中的数据存储量和数据传输量,从而提高了分布式集群的硬件处理速度。
在一些实施例中,根据节点度在预设范围内的目的节点,生成多个初始的分区,包括:根据图数据中各目的节点的节点度的分布,确定预设范围;筛选节点度处于预设范围内的目的节点,作为指定节点;基于多个指定节点生成多个初始的分区,并将指定节点的节点标识作为所属分区的原始标识。
具体地,计算机设备可统计每个目的节点的节点度,按照目的节点的节点度的分布情况,确定出预设范围。其中,节点度处于该预设范围内的目的节点的数量,占所有节点的总数量的百分比在预设百分比范围内(比如10%-20%)。也就是说,在确定预设范围时,会控制节点度处于该预设范围内的目的节点的数量在一定的数量范围内。这样做的好处是可以控制一个合适的初始的分区数量,不至于太大而导致节点太分散,浪费了存储资源;也不至于太小而无法起到分区的效果。
在一些实施例中,初始的分区数量可以与图数据处理系统中图数据处理器的数量相关,也即,初始的分区数量可以小于或等于图数据处理器的数量。
进而,计算机设备可筛选节点度处于该预设范围内的目的节点,将筛选出的节点作为指定节点。假设筛选出的指定节点的数量为H,则可根据这H个指定节点生成H个初始的分区,其中,每个初始的分区中包括有一个指定节点。针对每一初始的分区,计算机设备可将该分区中所包括的指定节点的节点标识作为该分区的原始标识。
上述实施例中,在进行循环的迭代划分之前,先筛选出节点度在预设范围内的目的节点来构成多个初始的分区,进而能够在多个初始的分区的基础上对源节点不断的进行分区指派。
在一些实施例中,针对节点度处于当前度区间中的任一目的节点,根据与所针对目的节点的源节点相关的目的节点所属的分区,确定与源节点相匹配的分区,包括:确定当前度区间,并选择节点度处于当前度区间内的目的节点;按照选择的目的节点的节点度大小,从大至小依次遍历选择的各目的节点;针对当前遍历至的目的节点,根据与所针对目的节点的源节点相关的目的节点所属的分区,确定与源节点相匹配的分区。
具体地,计算机设备可选择节点度处于当前节点度区间内的目的节点,并按照选择的目的节点的节点度大小,按照从大至小的顺序,依次对各目的节点的源节点进行分区指派。在目的节点的源节点有多个的情况下,计算机设备可对该目的节点的多个源节点依次进行分区指派,也可对该目的节点的多个源节点并行进行分区指派,本申请实施例对此不做限定。
在对每个源节点进行分区指派时,会根据与该源节点相关的目的节点所属的分区,找到与该源节点相匹配的分区,将该源节点划分至找到的分区中。若是未找到相匹配的分区,则会跳过该源节点,进行下一个源节点的分区指派。或者,生成一个新的分区,将该源节点划分至新的分区中。
上述实施例中,为了保证源节点的各目的节点有被分派分区,可以按选择的目的节点的节点度的大小,按照从大至小的顺序,为其相应的源节点进行分区指派。
在一些实施例中,根据与所针对目的节点的源节点相关的目的节点所属的分区,确定与源节点相匹配的分区,包括:将所针对目的节点作为第一目的节点,确定第一目的节点的源节点;将与源节点具有关联关系的目的节点作为第二目的节点;确定各第二目的节点分别所属的分区,并根据各分区中具有的第二目的节点的数量,确定与源节点相匹配的分区。
具体地,为便于描述,可将所针对目的节点作为第一目的节点,与第一目的节点的源节点相关的目的节点作为第二目的节点。针对每一第一目的节点的源节点进行分区指派时,计算机设备可确定各第二目的节点分别所属的分区,并根据各分区中具有的第二目的节点的数量,确定与该源节点相匹配的分区。
在一些实施例中,计算机设备在对源节点进行分区指派时,可基于该源节点的邻接表,按照邻接表中各第二目的节点所属的分区进行分组计数,得到每个分区中具有的第二目的节点的数量。将数量最大的分区作为与该源节点相匹配的分区。如果该源节点的邻接表均未被分区,则跳过该源节点,等待迭代划分结束后再处理。
上述实施例中,针对源节点进行分区指派时,根据与其相关联的目的节点所属的分区,来实现对该源节点的分区指派,使得大部分的源节点可以与其相关的目的节点被划分到同一分区,减少了边切割的数量。
在一些实施例中,根据各分区中具有的第二目的节点的数量,确定与源节点相匹配的分区,包括:根据分区中具有的第二目的节点的数量,按照由大至小的顺序,从未饱和的分区中选择一个分区作为与源节点相匹配的分区。其中,未饱和的分区指节点数未达到该分区的分区阈值的分区。具体地,根据分区中具有的第二目的节点的数量,按照由大至小的顺序,从未饱和的分区中选择一个分区作为与源节点相匹配的分区,包括:根据各分区中具有的第二目的节点的数量,确定最大数量对应的目标分区;若目标分区中的节点数小于目标分区的分区阈值,则将目标分区作为与源节点相匹配的分区。
具体地,在根据各分区中具有的第二目的节点的数量,确定与源节点匹配的分区时,计算机设备可确定具有第二目的节点数量最多的目标分区,若目标分区中的节点数小于该目标分区的分区阈值,则将该目标分区作为与源节点相匹配的分区。
在一些实施例中,不同的分区对应有不同的分区阈值。更进一步地,针对同一分区,在不同的迭代划分的过程中,也可以对应不同的分区阈值。
在一些实施例中,目标分区的分区阈值随着前度区间的减小而增大。在当前度区间随着迭代划分次数的增加而减小时,也可以认为各分区的分区阈值是随着迭代划分次数的增加而增加的。具体地,分区阈值随着当前度区间中度的逐渐减小而增大,可以按照一定的比例增大。可以理解,为了尽可能的保持度较小的节点的局部性,在针对节点度较大的节点的分区指派时,分区阈值可以设置的相对小一些,以此来控制不同分区的节点数量,实现负载均衡。随着迭代划分次数的不断增加,分区阈值会按照一定比例增大,以保证与该分区相关的节点度较小的节点能够被分到一起。在实现图数据的均衡划分的同时保持了节点的局部性,降低图计算过程中的存储与通信开销,大大提高了图处理器的硬件处理速度。
在一些实施例中,根据各分区中具有的第二目的节点的数量,确定与源节点相匹配的分区,还包括:若目标分区中的节点数等于分区阈值,则从除目标分区对应的数量之外的其他数量中,确定出新的最大数量;返回确定最大数量对应的目标分区的步骤继续执行,直至确定出与源节点相匹配的分区。
具体地,若目标分区中的节点数等于分区阈值,则在此次的迭代划分过程中,则停止向该目标分区中划分新的源节点。进而,计算机设备可确定数量次大的分区中,节点数是否超过其对应的分区阈值,若是未超过则可将源节点划分至该分区,若是达到了分区阈值,则继续选择数量次之的分区作为目标分区。如此不断循环,直至找到与该源节点相匹配的分区为止。
上述实施例中,根据分区中具有的第二目的节点的数量,按照由大至小的顺序,依次选择未饱和的分区作为与源节点相匹配的分区,可以针对分区大小进行控制,避免出现一些分区非常大的情况。
在一些实施例中,更新当前度区间,包括:确定当前度区间的区间最小值;将区间最小值作为下次的当前度区间的区间最大值,将小于区间最小值的数值作为下次的当前度区间的区间最小值,得到更新后的当前度区间。
计算机设备可按照目的节点的度区间递减的顺序,对源节点进行分区指派,也就是优先指派节点度大的目的节点源节点。在一些实施例中,计算机设备可将当次的当前度区间的区间最小值作为下次的当前度区间的区间最大值,再对下次的当前度区间的区间最大值缩小预设比例,或者将当次的当前度区间的区间最小值减去预设数值,得到下次的当前度区间的区间最小值。
示例性地,针对首次迭代分区时使用的当前度区间,可以表示为[start, end),其中,start为起始值,end为结束值。初始的end为目的节点的节点度的最大值加1。在下一次迭代分区时,当前度区间会变化为[Math.max(start* alpha,0), start),其中,alpha小于1,为控制每次度区间的大小变化比例。其核心思想是大致按照目的节点的度区间递减的顺序进行指派。
上述实施例中,逐次对当前度区间进行数值递减的更新,一方面可以使得每个目的节点均能被遍历到,也就是每个目的节点的源节点都会在不同批次中进行分区划分;另一方面,可以优先指派节点度较大的目的节点的源节点,使得在后被指派的源节点的邻接表有更大概率已经完成了分区指派,可以提高节点指派的准确性。
需要说明的是,在图数据中存在超级节点的情况,可针对超级节点作单独的处理。本申请中,在通过前述各实施例完成了对普通节点的迭代划分之后,会继续针对超级节点作划分。在一些实施例中,上述针对普通节点的划分可以认为是边割,而针对超级节点则可适应性地选择点割的方式进行划分。如此,对于节点度较低的节点,为了保证局部性,可将其集中放置在一起,而对于节点度较高的节点,为了充分利用图计算框架并行计算的能力,可将其对应的边摊放到各个机器上。本申请通过按节点度的数量对节点进行差异化的处理,在局部性和算法并行性上达到了较好的均衡。
在一些实施例中,该方法还包括超级节点的划分,超级节点划分的步骤包括:获取图数据中的超级节点;从超级节点的各邻居节点所属的分区中,确定出预设数量个指定分区;将超级节点的邻接表划分成预设数量个的子表,并针对任一子表,将超级节点的节点标识与所针对的子表构成一个组合;将预设数量个组合划分至预设数量个指定分区;其中,一个指定分区对应一个组合。
具体地,计算机设备可对超级节点的邻接表进行统计,按照其邻接表的节点分区分布,对该超级节点进行切分。在一些实施例中,计算机设备可确定该超级节点的邻居节点所属的分区,从其中筛选出具有超级节点的邻居节点数量最多的预设数量(比如K)个分区,将筛选出的K个分区作为K个指定分区。
针对原始的邻接表中不处于K个指定分区中的节点,计算机设备可将其重新分配至K个指定分区中,以更新原始的邻接表。同时,针对原本不处于K个指定分区中的节点,计算机设备可将其重新划分到新的分区中,此时的新的分区即为K个指定分区中的任一分区。如此便将超级节点的邻居节点全部划分至K个指定分区中了。
接下来,计算机设备可对更新后的超级节点的邻接表进行分割,具体可以是按照每个指定分区中实际存在的邻居节点进行分割,得到K个子表。针对任一子表,将超级节点的节点标识与所针对的子表构成一个组合,进而将该组合划分至相对应的指定分区中。这样,便实现了对超级节点的划分。
在一些实施例中,针对超级节点的划分处理,针对不同的算法可以使用不同的划分或使用方式,对于基于采样的图算法,对于单机能存下的超级节点可以使用参数服务器存储超级节点及邻接表,工作服务器上只存储该节点的备份;如果单机存不下则将其分配到多台机器并提供一个超级节点的路由表。对于非采样类的算法,可以将超级节点按照其邻接表的分区分布进行切分,分配到各个分区中,减少计算中的数据传输量。
上述实施例中,通过将超级节点按照其邻接表的分区分布进行切分,分配到各个分区中,可以减少计算中的数据传输量。
在一些实施例中,针对采用上述实施例所提及迭代划分方式进行划分时,被跳过的源节点,计算机设备可针对此部分的源节点进行再次的分区指派,其具体方式如下:根据与该源节点相关的目的节点所属的分区,确定与该源节点相匹配的分区,若与该源节点相关的目的节点均未被划分,则生成一个新的分区。这样,对被跳过的源节点重复进行上述步骤,直至所有节点均被分区。其中,若与该源节点相关的目的节点均未被划分,而由于前面已经对其他节点都进行了分区指派,那么可以判定则该源节点所在的子图可能与其他子图没有关联,故而需要生成一个新的分区。
在一些实施例中,计算机设备可选择该源节点及其邻接表中节点度最大的节点,将选择的节点的节点标识作为新生成的分区的原始标识。在节点度最多的节点存在多个时,可选择节点标识较小的标识作为新生成的分区的原始标识。
在一些实施例中,方法还包括标识重编码的步骤,具体包括:获取对图数据进行划分得到的多个分区的原始标识;按照各原始标识对应的数值大小,依次对多个分区的原始标识进行重编码,得到每个分区的分区标识。
在完成所有节点的划分之后,即可得到最终的多个分区,每个分区可认为是图数据的一个子图。由于在分区划分的过程中,各个分区的原始标识与其中所包括的节点的节点标识相联,可能会存在标识不连续的情况。故而,计算机设备可按照各原始标识对应的数值大小,依次对多个分区的原始标识进行重编码,得到每个分区的分区标识。也就是得到了每个子图的分区标识。
在一些实施例中,计算机设备可按照各原始标识对应的数值大小,对多个分区进行排序,并按照排序的顺序,为各个分区分配新的标识作为分区标识。
在一些实施例中,原始标识和分区标识都可以是数值。
上述实施例中,在所有节点的分区指派完成后,可对各分区的原始标识进行重编码,可以使得所有分区的数据在之后的计算中可以分布的更均衡。
在一些实施例中,方法还包括子图部署的步骤,具体包括:将多个子图分别存储在多个工作服务器中,一个工作服务器中存储一个子图中节点的节点标识、邻接表和节点特征;筛选出无法在工作服务器本地采样到二阶邻居节点的节点,将筛选出的节点的节点标识、邻接表和节点特征,存储在参数服务器中。
在实际应用场景中,可基于PS架构对图数据进行存储。其中,PS架构通常包括PS(Parameter server)和worker(工作服务器)。
示例性地,计算机设备可将图数据的多个子图分别存储在多个工作服务器中,一个工作服务器中存储一个子图的数据,具体可以包括该子图所包括的节点的节点标识、节点的邻接表、以及节点的节点特征。其中,节点特征具体可以是与该节点相关的数据,比如属性数据。针对参数服务器,计算机设备可筛选出无法在工作服务器本地采样到二阶邻居节点的节点,将筛选出的节点的节点标识、节点的邻接表和节点的节点特征,存储在参数服务器中。
上述实施例中,由于分区保持了节点的局部性,因此会把与一批目的节点都关联的源节点尽可能划分到同一分区,这样使得大部分节点可以在同一分区采样到其二阶邻居。当然也会存在部分邻接表中的节点的邻接表不在该分区中的情况,这些节点是存在于其他分区中,为了避免Worker之间shuffle(洗牌)影响计算效率,可以选择将这些节点及其节点特征备份到PS上,当被采样到该节点时,直接到PS上拉取,由于这类型的节点相比节点总数来说非常小,因此可以大大减少参数服务器中的数据存储量,还能大大减少工作服务器与参数服务器交互的通信开销,进而减少数据传输量和传输频次,提高了工作服务器进行图计算的处理效率。
在一些实施例中,针对上述图数据划分中边割面临的节点冗余情况,可以使用PS架构进行存储,还可以根据节点邻接表及节点特征的情况,使用其他方式存储及提供访问接口,包括但不限于广播的或本地备份的方式,其中备份个数与该节点的边数及子图数量有关。
下面对本申请的图数据分割方法进行一个整体的介绍,请参考图5,图5为一个实施例中图数据分割的流程图。如图5所示,计算机设备可获取到边数据,进而做预处理动作,也即计算每个节点的节点度。再针对源节点和目的节点进行节点分区指派,在完成分区指派后会对分区id进行重编码,目的是为了所有分区的数据在之后的计算中可以分布的更均衡。
其中计算机设备执行分区指派的具体逻辑如下:
1.计算图数据中每个节点的节点度。其中,节点包括源节点和目的节点。
2.按目的节点分组,获得其对应的源节点列表。
3.选择节点度在预设范围内的目的节点,根据这些目的节点生成多个初始的分区,其中,每个分区中包括一个选择的目的节点。将初始的分区中的目的节点的id作为该分区的id。
4.循环选择节点度处于度区间的目的节点的相关边,按照该相关边对应的源节点进行分组。
5.对源节点对应的邻接表按照分区分组计数,确定分区计数最大的分区id。
6.如果确定的分区计数最大的分区id包含的节点数小于分区阈值,则将该分区id作为该源节点的分区id。
7.如果确定的分区计数最大的分区id包含的节点数大于或等于分区阈值,则选择次之。
8.如果源节点对应的邻接表均未被分区,则跳过该源节点,等待循环结束后处理。
9.更新度区间与分区阈值,循环步骤4~9。
10.过滤出超级节点对应的边,统计超级节点的邻接表的分区分布情况,按照其分区分布情况将该超级节点切分成多份,对超级节点做分区指派。
11.过滤出未被分派分区的边,再次调用步骤5~8,若符合规则则分派分区id。如果仍出现步骤8中的情况,则生成一个新的分区,循环步骤11,直至所有节点均被分区。
12.对分区id进行重编码。
本申请根据源节点一阶邻居的度差异化的选择分区方式,即根据源节点一阶邻居的节点度划分弹性的度区间,按度区间从高到低的顺序划分边,根据节点度大小选择点割/边割分区方式,在度区间内对源节点的一阶邻居使用投票的方式确定源节点分区,并且根据度区间的大小及时更新分区阈值,使得分区阈值随着一阶邻居的节点度的降低而增大,使得节点度较小的节点更容易保持节点的局部性。采用上述边割和点割的混合方式,并结合邻接表节点的分区进行投票的方式对源节点进行分区指派,解决了当前无法处理幂律图,及二阶或高阶采样问题,能够实现图数据的均衡划分的同时保持节点的局部性,降低图计算过程中的存储与通信开销。
在一些实施例中,该图数据分割方法包括以下步骤:
确定待处理的图数据中各节点的节点度;对于除超级节点外的目的节点,根据图数据中各目的节点的节点度的分布,确定预设范围;筛选节点度处于预设范围内的目的节点,作为指定节点;基于多个指定节点生成多个初始的分区,并将指定节点的节点标识作为所属分区的原始标识。
确定当前度区间,并选择节点度处于当前度区间内的目的节点;按照选择的目的节点的节点度大小,从大至小依次遍历选择的各目的节点;针对当前遍历至的目的节点,确定所针对目的节点的源节点,确定与所针对目的节点的源节点相关的目的节点所属的分区,根据分区中具有的与源节点相关的目的节点的数量,按照由大至小的顺序,从未饱和的分区中选择一个分区作为与源节点相匹配的分区。将所针对目的节点的源节点划分至相匹配的分区。更新当前度区间,更新分区阈值。返回至选择节点度处于当前度区间内的目的节点的步骤继续执行,选择完除超级节点之外的所有目的节点时停止。
获取图数据中的超级节点;从超级节点的各邻居节点所属的分区中,确定出预设数量个指定分区;将超级节点的邻接表划分成预设数量个的子表,并针对任一子表,将超级节点的节点标识与所针对的子表构成一个组合;将预设数量个组合划分至预设数量个指定分区;其中,一个指定分区对应一个组合。
在超级节点的分区指派完成后,过滤出未被分区的节点,根据与该节点相关的目的节点所属的分区,确定与该节点相匹配的分区,若无法确定与该节点相匹配的分区,则说明该节点所在的子图可能与其他的子图没有关联,故而可以生成一个新的分区。这样,再返回到计算机设备过滤出未被分区的节点的步骤继续执行,直至所有节点均被分区。
获取对图数据进行划分得到的多个分区的原始标识;按照各原始标识对应的数值大小,依次对多个分区的原始标识进行重编码,得到每个分区的分区标识。如此,最后划分得到的分区即为子图。
将多个子图分别存储在多个工作服务器中,一个工作服务器中存储一个子图中节点的节点标识、邻接表和节点特征;筛选出无法在工作服务器本地采样到二阶邻居节点的节点,将筛选出的节点的节点标识、邻接表和节点特征,存储在参数服务器中。通过分布式的多个work服务器进行图计算,得到图计算结果。
本申请所提供的图数据分割方法,其收益主要体现在降低资源需求和通信量方面。下面以图4示出的图数据为例,针对使用基于传统方式分割后的子图进行数据处理,以及使用基于本申请方式分割后的子图进行数据处理,分别在资源需求和通信量方面所耗用资源的情况进行比对:
下面对分析中需要用到的符号进行解释:
N,表示图中节点的个数;E,表示图中的边数;D,表示节点特征维度;S表示采样个数;B表示批量大小。
请参考图6,图6为一个实施例中通过传统方式进行图分割后的分区情况示意图。比如,传统方案中采用参数服务器(PS)的架构,图数据采用边割的方式,Worker上保存节点的一份邻接表,目的是加快一阶采样速度;同时PS 上也保存一份邻接表及节点特征,目的是更好的支持二阶及高阶采样,使用空间换时间的方式避免Worker之间的shuffle导致效率低下的问题。其中Worker和PS上的邻接表均按照源节点进行哈希分区。在这种框架下,一阶邻居可以本地采样,但由于是对源节点采用哈希进行分区,这样无法保证源节点的二阶邻居也在同一分区,因此需要进行二阶和高阶采样时,还需要从PS上采样二阶及高阶邻居。同时无论几阶采样都不可避免的需要从PS上拉取节点特征,特征的数据量往往是节点数据量的D倍,因此会存在较多通信开销,并且邻接表也存在双份内存需求也比较大。
如图6所示,在Worker本地的分区中,使用边割的方式,通过对源节点哈希将源节点及其邻接表分布到各个分区中。对于Worker上源节点的邻接表(由一阶邻居组成),如果能够在本分区内采样到邻接表中节点的邻居则该节点表示为黑色,如果不能则表示为灰色。从上图可以看出,大部分邻接表中的节点无法在本分区中获取其邻接表,因此想要获得二阶或高阶邻居则需要到PS上进行采样,因此PS上需要存储一份邻接表,同时由于大部分邻接表中的节点都需要到PS上采样,因此其通信量也非常大。其存储图数据和采样计算的通信量计算方式如下:
a)图数据存储空间计算
存储内容:PS和Worker上各存一份邻接表,除此之外PS还存储所有节点的特征。其中邻接表大小:E * 2 * 8Byte,特征大小:N * D * 8Byte。
PS:E * 2 * 8Byte + N * D * 8Byte;
Worker:E * 2 * 8Byte;
Total(总计):E * 2 * 8Byte * 2 + N * D * 8Byte。
b)采样通信量计算
通信内容:一阶采样在Worker本地即可采样不需要通信, 二阶采样需要到PS上采样,子图采样后需要到PS上拉取子图,一个批次的通信量为:
子图:(B * S + B * S * S ) * 8Byte;其中,B * S的值为本地一阶采样的节点数,在进行二阶采样时,会根据本地一阶采样的节点数发起采样请求,故而采样请求所需的通信量为B * S;B * S * S为PS返回数据所需的通信量。
特征:(B * S + B * S * S ) * 8Byte + (B * S + B * S * S ) * 8Byte * D;其中,(B * S + B * S * S ) * 8Byte为请求特征所需的通信量,(B * S + B * S * S )* 8Byte * D为返回特征所需的通信量。
Total:(B * S + B * S * S ) * 8Byte * 2 + (B * S + B * S * S ) * 8Byte* D。
下面再来看,在采用的分布式PS架构不变的情况下,当使用本申请所提供的分区技术,对图4的图数据进行分区,由于分区保持了节点的局部性,因此会把与一批目的节点都关联的源节点尽可能划分到同一分区,这样使得大部分节点可以在同一分区采样到其二阶邻居。当然也会存在部分邻接表中的节点的邻接表不在该分区中的情况,这些点是存在于其他分区中,为了避免Worker之间shuffle影响计算效率,可以选择将这些点及特征备份到PS上,当被采样到该节点时,直接到PS上拉取,由于这类型的点相比节点总数来说非常小,因此减少了存储与通信开销。
具体请参考图7,图7为一个实施例中通过本申请的图数据分割方式进行图分割后的分区情况示意图。如图7所示,在Worker本地的分区中,使用本申请的分区方式后,对于Worker上源节点的邻接表(由一阶邻居组成),如果能够在本分区中采样到邻接表中节点的邻居,则该节点表示为黑色,如果不能则表示为灰色。从上图可以看出,大部分邻接表中的节点均能在本分区中采样到二阶邻居,同时节点的特征也按照节点分区存储到了本地分区中,仅存在少数的节点需要到PS上进行采样,降低了PS上的资源需求与采样子图的通信量。其存储图数据和采样计算的通信量计算方式如下:
a)图数据存储空间计算
存储内容:Worker上存储子图的邻接表及相关节节点的节点特征,PS上存储需要通过通信获得的节点的邻接表及其节点特征,PS上存储的部分节点个数为P,对应的边数为PE,P << N, PE << E;邻接表大小:PE * 2 * 8Byte,特征大小:N * D * 8Byte,其中:
PS:PE * 2 * 8Byte + P * D * 8Byte;
Worker:E * 2 * 8Byte + N * D * 8Byte;
Total(共计):(E + PE) * 2 * 8Byte + (N + P) * D * 8Byte。
b)采样通信量计算
通信内容:一阶采样在Worker本地即可采样, 二阶采样需要到PS上采样,子图采样后需要到PS上拉取子图,一个批次的通信量为:
子图:(B * + B * /> * S ) * 8Byte;其中,B * /> * 8Byte为请求子图的通信量,B * /> * S* 8Byte为返回子图所需的通信量。
特征:(B * + B * * S ) * 8Byte + (B * + B * * S ) * 8Byte *
D;其中,(B * + B * * S ) * 8Byte为请求特征所需的通信量,(B * + B * *
S ) * 8Byte * D为返回特征所需的通信量。
Total*(总计):(B * + B * /> * S ) * 8Byte * 2 + (B * /> + B * />* S )* 8Byte * D;其中,/>表示采到不存在本地的节点的概率,该值非常小。
使用本申请前后存储资源与通信量的变化如下:
a)存储资源前后差值(优化前-优化后)
PS:(E - PE) * 2 * 8Byte + (N - P) * D * 8Byte;
Worker:- N * D * 8Byte;
总资源节约:(E - PE) * 2 * 8Byte + (- P) * D * 8Byte;当D <= 2 * (E -PE)/P时能够起到节约资源的目的,由于稀疏图的P远小于N,PE远小于E,因此当节点特征D没有非常大的情况下都能起到节约资源的目的。
b)通信量前后差值(优化前-优化后)
子图:(B * S + B * S * S ) * 8Byte * (1 - );
特征:((B * S + B * S * S ) * 8Byte + (B * S + B * S * S ) * 8Byte *D) * (1 - );
每个批次节约了原来的 (1 -)倍通信量,由于/>非常小,因此几乎省去了采样邻居和特征的通信量。
综上,本申请通过一种针对稀疏图网络的图分割方法,能够大大降低资源需求与通信量,提高图计算的效率。
在一些实施例中,通过本申请各实施例提供的图数据分割方法所得到的多个分区,可以用于进行图计算,从而产出图特征或预测结果。请参考图8,图8为一个实施例中的图计算流程图。如图8所示,本系统输入的是图网络拓扑数据,经过执行本申请所提供的图数据分割方法(也可以认为是图网络数据局部感知分区的方法)获得重新分区后的子图,该子图可以应用到下游的多种图算法中,经过图算法可以产出最终的图特征或预测结果。
示例性地,通过本申请的图数据分割方法产出的多个子图,可以应用到广告推荐、好友推荐、金融反欺诈、异常识别等多个场景,降低生成图特征的资源开销与耗时。
在一些可能的应用场景中,以好友推荐为例,计算机设备可获取包括有对象节点的图数据,该图数据的一个节点对应一个对象,该节点的节点特征为对象特征(对象特征可包括对象属性特征、对象行为特征等中的至少一种),不同节点间的边表示对象的好友关系。进而计算机设备可对该图数据进行分割得到多个子图。通过图神经网络算法对每个子图进行分布式的图计算,可得到不同对象的融合特征(该融合特征中融合了节点本身的对象特征,还融合有其邻居节点的对象特征)。进而根据融合特征通过计算不同对象间的特征相似度,针对目标对象,可向其推荐相似度满足预设推荐条件的对象。相似度满足预设推荐条件具体可以是相似度最大的前L名,L为大于等于1的自然数。
在一些可能的应用场景中,以异常识别为例进行说明,计算机设备可获取与账户相关的图数据,该图数据中的节点表示一个账户,节点间的边表示账户间的关联关系,比如是否为好友关系、是否存在资源交互。不同边之间还可设置不同的权重,比如,资源交互频次越高,边的权重越大。如此,计算机设备可通过本申请提供的图数据分割方法对该图数据进行分割,得到多个子图。进而通过图算法对子图进行分布式的图计算,可得到不同节点的融合特征。进一步地,可基于各节点对应的融合特征进行异常识别,以确定该节点是否为异常节点。
需要说明的是,上述场景仅为本申请适用场景的示意性说明,并不用于限定本申请,可以理解的是,本申请还可以应用在其他的场景中,比如知识图谱分析、社区划分场景等,本申请实施例对此不做限定。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的图数据分割方法的图数据分割装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个图数据分割装置实施例中的具体限定可以参见上文中对于图数据分割方法的限定,在此不再赘述。
在一个示例性的实施例中,如图9所示,提供了一种图数据分割装置900,包括:第一确定模块901、生成模块902、第二确定模块903、划分模块904和迭代模块905,其中:
第一确定模块901,确定待处理的图数据中各节点的节点度,节点包括源节点和目的节点。
生成模块902,用于根据节点度在预设范围内的目的节点,生成多个初始的分区。
第二确定模块903,用于针对节点度处于当前度区间中的任一目的节点,根据与所针对目的节点的源节点相关的目的节点所属的分区,确定与源节点相匹配的分区。
划分模块904,用于将所针对目的节点的源节点划分至相匹配的分区。
迭代模块905,用于更新当前度区间,并基于更新后的当前度区间返回至针对节点度处于当前度区间中的任一目的节点的步骤继续执行,以实现图数据的分割;图数据分割得到的子图用于进行分布式的图计算。
在一些实施例中,生成模块902,还用于根据图数据中各目的节点的节点度的分布,确定预设范围;筛选节点度处于预设范围内的目的节点,作为指定节点;基于多个指定节点生成多个初始的分区,并将指定节点的节点标识作为所属分区的原始标识。
在一些实施例中,第二确定模块903,还用于确定当前度区间,并选择节点度处于当前度区间内的目的节点;按照选择的目的节点的节点度大小,从大至小依次遍历选择的各目的节点;针对当前遍历至的目的节点,根据与所针对目的节点的源节点相关的目的节点所属的分区,确定与源节点相匹配的分区。
在一些实施例中,第二确定模块903,还用于将所针对目的节点作为第一目的节点,确定第一目的节点的源节点;将与源节点具有关联关系的目的节点作为第二目的节点;确定各第二目的节点分别所属的分区,并根据各分区中具有的第二目的节点的数量,确定与源节点相匹配的分区。
在一些实施例中,第二确定模块903,还用于根据各分区中具有的第二目的节点的数量,确定最大数量对应的目标分区;若目标分区中的节点数小于目标分区的分区阈值,则将目标分区作为与源节点相匹配的分区。
在一些实施例中,第二确定模块903,还用于若目标分区中的节点数等于分区阈值,则从除目标分区对应的数量之外的其他数量中,确定出新的最大数量;返回确定最大数量对应的目标分区的步骤继续执行,直至确定出与源节点相匹配的分区。
在一些实施例中,目标分区的分区阈值随着当前度区间的减小而增大。
在一些实施例中,迭代模块905,还用于更新当前度区间,包括:确定当前度区间的区间最小值;将区间最小值作为下次的当前度区间的区间最大值,将小于区间最小值的数值作为下次的当前度区间的区间最小值,得到更新后的当前度区间。
在一些实施例中,划分模块904,还用于获取图数据中的超级节点;从超级节点的各邻居节点所属的分区中,确定出预设数量个指定分区;将超级节点的邻接表划分成预设数量个的子表,并针对任一子表,将超级节点的节点标识与所针对的子表构成一个组合;将预设数量个组合划分至预设数量个指定分区;其中,一个指定分区对应一个组合。
在一些实施例中,该装置还包括重编码模块,用于获取对图数据进行划分得到的多个分区的原始标识;按照各原始标识对应的数值大小,依次对多个分区的原始标识进行重编码,得到每个分区的分区标识。
在一些实施例中,该装置还包括存储模块,用于将多个子图分别存储在多个工作服务器中,一个工作服务器中存储一个子图中节点的节点标识、邻接表和节点特征;筛选出无法在工作服务器本地采样到二阶邻居节点的节点,将筛选出的节点的节点标识、邻接表和节点特征,存储在参数服务器中。
上述图数据分割装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个示例性的实施例中,提供了一种计算机设备,该计算机设备可以是服务器或者终端,其内部结构图可以如图10所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种图数据分割方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要符合相关规定。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (23)
1.一种图数据分割方法,其特征在于,所述方法包括:
确定待处理的图数据中各节点的节点度,所述节点包括源节点和目的节点;
根据所述图数据中各目的节点的节点度的分布,确定预设范围,根据筛选出的节点度在所述预设范围内的目的节点,生成多个初始的分区;
针对节点度处于当前度区间中的任一目的节点,确定与所针对目的节点的源节点相关的目的节点所属的分区,根据各分区中具有的与所述源节点相关的目的节点的数量,按照所述数量由大至小的顺序,从未饱和的分区中选择一个分区作为与所述源节点相匹配的分区;其中,首次迭代划分时的当前度区间的最大值,基于所述图数据中除超级节点外的目的节点的节点度的最大值确定;
将所针对目的节点的源节点划分至所述相匹配的分区;
将所述当前度区间的区间最小值作为下次的当前度区间的区间最大值,将小于所述区间最小值的数值作为下次的当前度区间的区间最小值,得到更新后的当前度区间,并基于更新后的当前度区间返回至针对节点度处于当前度区间中的任一目的节点的步骤继续执行,以实现图数据的分割;图数据分割得到的子图用于进行分布式的图计算。
2.根据权利要求1所述的方法,其特征在于,所述根据筛选出的节点度在所述预设范围内的目的节点,生成多个初始的分区,包括:
筛选节点度处于所述预设范围内的目的节点,作为指定节点;
基于多个指定节点生成多个初始的分区,并将指定节点的节点标识作为所属分区的原始标识。
3.根据权利要求1所述的方法,其特征在于,所述针对节点度处于当前度区间中的任一目的节点,确定与所针对目的节点的源节点相关的目的节点所属的分区,包括:
确定当前度区间,并选择节点度处于所述当前度区间内的目的节点;
按照选择的目的节点的节点度大小,从大至小依次遍历选择的各目的节点;
针对当前遍历至的目的节点,确定与所针对目的节点的源节点相关的目的节点所属的分区。
4.根据权利要求1所述的方法,其特征在于,所述确定与所针对目的节点的源节点相关的目的节点所属的分区,包括:
将所针对目的节点作为第一目的节点,确定所述第一目的节点的源节点;
将与所述源节点具有关联关系的目的节点作为第二目的节点;
确定各第二目的节点分别所属的分区。
5.根据权利要求4所述的方法,其特征在于,所述根据各分区中具有的与所述源节点相关的目的节点的数量,按照所述数量由大至小的顺序,从未饱和的分区中选择一个分区作为与所述源节点相匹配的分区,包括:
根据各分区中具有的第二目的节点的数量,确定最大数量对应的目标分区;
若所述目标分区中的节点数小于所述目标分区的分区阈值,则将所述目标分区作为与所述源节点相匹配的分区。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述目标分区中的节点数等于所述分区阈值,则从除所述目标分区对应的数量之外的其他数量中,确定出新的最大数量;
返回所述确定最大数量对应的目标分区的步骤继续执行,直至确定出与所述源节点相匹配的分区。
7.根据权利要求5所述的方法,其特征在于,所述目标分区的分区阈值随着当前度区间的减小而增大。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述图数据中的超级节点;
从所述超级节点的各邻居节点所属的分区中,确定出预设数量个指定分区;
将所述超级节点的邻接表划分成所述预设数量个的子表,并针对任一子表,将所述超级节点的节点标识与所针对的子表构成一个组合;
将预设数量个组合划分至预设数量个指定分区;其中,一个指定分区对应一个组合。
9.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取对图数据进行划分得到的多个分区的原始标识;
按照各原始标识对应的数值大小,依次对多个分区的原始标识进行重编码,得到每个分区的分区标识。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述方法还包括:
将多个子图分别存储在多个工作服务器中,一个工作服务器中存储一个子图中节点的节点标识、邻接表和节点特征;
筛选出无法在工作服务器本地采样到二阶邻居节点的节点,将筛选出的节点的节点标识、邻接表和节点特征,存储在参数服务器中。
11.一种图数据分割装置,其特征在于,所述装置包括:
第一确定模块,确定待处理的图数据中各节点的节点度,所述节点包括源节点和目的节点;
生成模块,用于根据所述图数据中各目的节点的节点度的分布,确定预设范围,根据筛选出的节点度在所述预设范围内的目的节点,生成多个初始的分区;
第二确定模块,用于针对节点度处于当前度区间中的任一目的节点,确定与所针对目的节点的源节点相关的目的节点所属的分区,根据各分区中具有的与所述源节点相关的目的节点的数量,按照所述数量由大至小的顺序,从未饱和的分区中选择一个分区作为与所述源节点相匹配的分区;其中,首次迭代划分时的当前度区间的最大值,基于所述图数据中除超级节点外的目的节点的节点度的最大值确定;
划分模块,用于将所针对目的节点的源节点划分至所述相匹配的分区;
迭代模块,用于将所述当前度区间的区间最小值作为下次的当前度区间的区间最大值,将小于所述区间最小值的数值作为下次的当前度区间的区间最小值,得到更新后的当前度区间,并基于更新后的当前度区间返回至针对节点度处于当前度区间中的任一目的节点的步骤继续执行,以实现图数据的分割;图数据分割得到的子图用于进行分布式的图计算。
12.根据权利要求11所述的装置,其特征在于,所述生成模块,还用于:
筛选节点度处于所述预设范围内的目的节点,作为指定节点;
基于多个指定节点生成多个初始的分区,并将指定节点的节点标识作为所属分区的原始标识。
13.根据权利要求11所述的装置,其特征在于,所述第二确定模块,还用于:
确定当前度区间,并选择节点度处于所述当前度区间内的目的节点;
按照选择的目的节点的节点度大小,从大至小依次遍历选择的各目的节点;
针对当前遍历至的目的节点,确定与所针对目的节点的源节点相关的目的节点所属的分区。
14.根据权利要求11所述的装置,其特征在于,所述第二确定模块,还用于:
将所针对目的节点作为第一目的节点,确定所述第一目的节点的源节点;
将与所述源节点具有关联关系的目的节点作为第二目的节点;
确定各第二目的节点分别所属的分区。
15.根据权利要求14所述的装置,其特征在于,所述第二确定模块,还用于:
根据各分区中具有的第二目的节点的数量,确定最大数量对应的目标分区;
若所述目标分区中的节点数小于所述目标分区的分区阈值,则将所述目标分区作为与所述源节点相匹配的分区。
16.根据权利要求15所述的装置,其特征在于,所述第二确定模块,还用于:
若所述目标分区中的节点数等于所述分区阈值,则从除所述目标分区对应的数量之外的其他数量中,确定出新的最大数量;
返回所述确定最大数量对应的目标分区的步骤继续执行,直至确定出与所述源节点相匹配的分区。
17.根据权利要求15所述的装置,其特征在于,所述目标分区的分区阈值随着当前度区间的减小而增大。
18.根据权利要求11所述的装置,其特征在于,所述划分模块,还用于:
获取所述图数据中的超级节点;
从所述超级节点的各邻居节点所属的分区中,确定出预设数量个指定分区;
将所述超级节点的邻接表划分成所述预设数量个的子表,并针对任一子表,将所述超级节点的节点标识与所针对的子表构成一个组合;
将预设数量个组合划分至预设数量个指定分区;其中,一个指定分区对应一个组合。
19.根据权利要求12所述的装置,其特征在于,所述装置还包括重编码模块,用于:
获取对图数据进行划分得到的多个分区的原始标识;
按照各原始标识对应的数值大小,依次对多个分区的原始标识进行重编码,得到每个分区的分区标识。
20.根据权利要求11至19中任一项所述的装置,其特征在于,所述装置还包括存储模块,用于:
将多个子图分别存储在多个工作服务器中,一个工作服务器中存储一个子图中节点的节点标识、邻接表和节点特征;
筛选出无法在工作服务器本地采样到二阶邻居节点的节点,将筛选出的节点的节点标识、邻接表和节点特征,存储在参数服务器中。
21.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至10中任一项所述的方法的步骤。
22.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10中任一项所述的方法的步骤。
23.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至10中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410042444.5A CN117556095B (zh) | 2024-01-11 | 2024-01-11 | 图数据分割方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410042444.5A CN117556095B (zh) | 2024-01-11 | 2024-01-11 | 图数据分割方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117556095A CN117556095A (zh) | 2024-02-13 |
CN117556095B true CN117556095B (zh) | 2024-04-09 |
Family
ID=89815162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410042444.5A Active CN117556095B (zh) | 2024-01-11 | 2024-01-11 | 图数据分割方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117556095B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804226A (zh) * | 2018-05-28 | 2018-11-13 | 中国人民解放军国防科技大学 | 一种用于分布式图计算的图分割划分方法 |
CN111385198A (zh) * | 2018-12-29 | 2020-07-07 | 北京华为数字技术有限公司 | 路径确定方法、装置及通信系统 |
CN114880112A (zh) * | 2022-03-31 | 2022-08-09 | 深圳清华大学研究院 | 三类顶点度数感知的1.5维度图划分方法及应用 |
CN116304212A (zh) * | 2023-03-10 | 2023-06-23 | 之江实验室 | 一种数据处理系统、方法、设备及存储介质 |
CN116302527A (zh) * | 2023-03-13 | 2023-06-23 | 华中科技大学 | 一种社交网络数据分析方法、系统及电子设备 |
CN116303763A (zh) * | 2023-01-18 | 2023-06-23 | 浙江大学 | 一种基于顶点度的分布式图数据库增量图划分方法及系统 |
CN116362955A (zh) * | 2022-05-19 | 2023-06-30 | 北京百度网讯科技有限公司 | 图数据存储、访问、处理方法、训练方法、设备及介质 |
CN116501927A (zh) * | 2023-03-10 | 2023-07-28 | 之江实验室 | 一种图数据处理系统、方法、设备及存储介质 |
CN116561377A (zh) * | 2023-03-31 | 2023-08-08 | 中山大学 | 一种图数据集的流式图划分方法 |
CN116681104A (zh) * | 2023-05-11 | 2023-09-01 | 中国地质大学(武汉) | 分布式空间图神经网络的模型建立及实现方法 |
-
2024
- 2024-01-11 CN CN202410042444.5A patent/CN117556095B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804226A (zh) * | 2018-05-28 | 2018-11-13 | 中国人民解放军国防科技大学 | 一种用于分布式图计算的图分割划分方法 |
CN111385198A (zh) * | 2018-12-29 | 2020-07-07 | 北京华为数字技术有限公司 | 路径确定方法、装置及通信系统 |
CN114880112A (zh) * | 2022-03-31 | 2022-08-09 | 深圳清华大学研究院 | 三类顶点度数感知的1.5维度图划分方法及应用 |
CN116362955A (zh) * | 2022-05-19 | 2023-06-30 | 北京百度网讯科技有限公司 | 图数据存储、访问、处理方法、训练方法、设备及介质 |
CN116303763A (zh) * | 2023-01-18 | 2023-06-23 | 浙江大学 | 一种基于顶点度的分布式图数据库增量图划分方法及系统 |
CN116304212A (zh) * | 2023-03-10 | 2023-06-23 | 之江实验室 | 一种数据处理系统、方法、设备及存储介质 |
CN116501927A (zh) * | 2023-03-10 | 2023-07-28 | 之江实验室 | 一种图数据处理系统、方法、设备及存储介质 |
CN116302527A (zh) * | 2023-03-13 | 2023-06-23 | 华中科技大学 | 一种社交网络数据分析方法、系统及电子设备 |
CN116561377A (zh) * | 2023-03-31 | 2023-08-08 | 中山大学 | 一种图数据集的流式图划分方法 |
CN116681104A (zh) * | 2023-05-11 | 2023-09-01 | 中国地质大学(武汉) | 分布式空间图神经网络的模型建立及实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117556095A (zh) | 2024-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Resource-efficient federated learning with hierarchical aggregation in edge computing | |
Huang et al. | Stochastic configuration networks based adaptive storage replica management for power big data processing | |
CN103699606B (zh) | 一种基于顶点切割与社区聚集的大规模图划分方法 | |
Hammou et al. | Apra: An approximate parallel recommendation algorithm for big data | |
CN110222029A (zh) | 一种大数据多维分析计算效率提升方法及系统 | |
WO2022142859A1 (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
CN112566093B (zh) | 一种终端关系识别方法、装置、计算机设备及存储介质 | |
CN106202092A (zh) | 数据处理的方法及系统 | |
CN110162637B (zh) | 信息图谱构建方法、装置及设备 | |
CN110838055A (zh) | 一种基于大数据的电力企业财务数据管理系统 | |
CN117556095B (zh) | 图数据分割方法、装置、计算机设备和存储介质 | |
Chen et al. | DBSCAN-PSM: an improvement method of DBSCAN algorithm on Spark | |
CN108959584B (zh) | 一种基于社区结构的处理图数据的方法及装置 | |
Xu et al. | DLCD-CCE: A local community detection algorithm for complex IoT networks | |
CN114268625B (zh) | 特征选择方法、装置、设备及存储介质 | |
Wang et al. | Multi-Granularity Decomposition for Componentized Multimedia Applications based on Graph Clustering | |
CN108256694A (zh) | 基于重复遗传算法的模糊时间序列预测系统、方法及装置 | |
Xu et al. | Applying an improved elephant herding optimization algorithm with spark-based parallelization to feature selection for intrusion detection | |
CN115982634A (zh) | 应用程序分类方法、装置、电子设备及计算机程序产品 | |
CN110427217B (zh) | 基于内容的发布订阅系统匹配算法轻量级并行方法和系统 | |
Wu et al. | Abstraction refinement approach for Web service selection using Skyline computations | |
Bai et al. | An efficient skyline query algorithm in the distributed environment | |
Huang | Information Dissemination Control Algorithm of Ecological Changes in the New Media Communication Environment | |
Ma et al. | Efl: Elastic federated learning on non-iid data | |
CN112579831B (zh) | 基于SimRank全局矩阵平滑收敛的网络社区发现方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |