掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及图神经网络、参数服务器技术领域,尤其涉及一种基于参数服务器架构的图数据与参数数据的混合划分方法。

背景技术

近年来,人工智能领域不断发展,相关技术已经广泛地应用在生物信息、自然语言处理、计算机视觉、推荐系统等领域。人工智能技术在提升生产效率,改善人民生活方面做出了巨大贡献。

图数据简称图,是计算机技术中描述实体和关系有效的数据结构。其结构定义能天然地表示现实世界中的实体关系,如社交网络、生物网络、知识图谱等,对图的信息挖掘有很高的现实意义。由于直接处理图数据非常困难,所以常常将图上的顶点、边或子图嵌入成向量进行表征,下游算法可以使用这些表征向量来完成特定任务。DeepWalk、LINE、SDNE等方法在网络表示学习领域取得了很大的成功。然而,这些方法在计算上较为复杂并且在大规模上的图上效果并不理想。深度神经网络是一类具有强大表达能力的数学模型。它通过不断地迭代训练,反复调整神经网络的权重,进而使其能够在权重中记忆并表达数据特点。图作为一种极具现实意义的数据结构,与目前最流行、表达能力强大的深度神经网络技术相融合是必然趋势。

图神经网络作为当前最先进的人工智能技术,近两年来,正呈现井喷式的发展趋势,大量文章发表在人工智能方向顶级会议AAAI、ICML、ICLR、NIPS上。图神经网络是一种高效的图嵌入模型,它的提出显著地提升了图上嵌入的准确性。图神经网络大部分遵循循环递归邻域聚合的模式,其中每个顶点聚合其相邻顶点的特征向量以计算其新的特征向量。在k轮聚合迭代后,通过其转换的特征向量来表示该顶点,该向量捕获顶点的k-hop网络邻顶点的结构信息。然后,可以通过池化操作来获得整个图结构的表征,例如对图中所有节点的表征向量求和。大量基于不同的领域聚集的图神经网络变体和图层级的池化模型已经被学者提出。

图神经网络的计算方式以及数据模型与传统大图模型以及传统参数神经网络有着很大的区别。除了需要管理图数据外,还需要同时对大规模神经网络模型进行管理,这使得图神经网络的数据存储与处理的难度更大。随着互联网用户数量激增以及应用软件日益复杂,数据规模呈爆炸性增长。为了能够更好地捕获数据特征,深度学习模型每层宽度和神经网络深度也在快速上升。对于传统图算法和神经网络算法,单机已经远远不能够处理如此大规模的数据,分布式解决方案应运而生。分布式计算框架是通过统筹利用多台机器的算力,并通过网络进行机器间消息通信,进而共同完成一个计算任务的策略。

在分布式图计算中,图数据分区是影响系统性能的重要因素。图数据分区的目标在于将初始图数据划分为多个部分,分别储存在分布式计算节点中,并使得在分布式计算过程中,在保证负载均衡的前提下,各个计算节点间的通信开销尽可能小。平衡的图划分是一个多项式复杂程度的非确定性问题,因此大部分划分策略使用了启发式的方法:通过hash进行顶点切分、边切分或混合切分;基于得分的方法,比如Kernighan-Lin算法;多级化的方法通过将图粗化来降低分区计算的复杂度,对粗化图划分后再将其还原。

参数服务器是目前最先进的分布式深度学习(包含分布式机器学习)框架,具有代表性的几个系统包括Petuum,Parameter Server,FlexPS,Multiverso,Angel,Torch等。参数服务器的提出使得分布式深度学习训练更加灵活。这些系统在解决深度神经网络模型问题上做出了巨大贡献,并针对深度神经网络特点进行了特异性优化,包括参数划分、灵活并行控制、动态并行度调整等。然而,基于参数服务器的分布式框架在处理图问题上还未充分进行讨论。传统的参数服务器并不支持图上的算法和针对图算法的优化,包括图数据的划分技术。由于在参数服务器框架上进行图神经网络计算,图数据的划分不仅影响顶点通信开销,也决定了参数以及梯度通信的开销。目前还没有相关工作考虑到在参数服务器上进行图神经网络任务的数据划分。

发明内容

针对现有技术存在的不足,本发明提供一种基于参数服务器架构的图数据与参数数据的混合划分方法,旨在改善现有数据分区方法的不足,通过减少顶点间通信和参数通信提高分布式环境下支持图神经网络的参数服务器系统的运算效率。

为解决上述技术问题,本发明提供一种基于参数服务器架构的图数据与参数数据的混合划分方法,包括:

步骤1:在原始图数据中构建初始顶点,包括:

步骤1.1:通过使用广度优先遍历,将原始图数据ID进行重新编号;

步骤1.2:将重新编号后的所有顶点ID划分为大小均等的P个区间,计算每个ID分区内编号的中间值

式中,x

步骤1.3:选取每个ID分区的中间值

步骤2:以初始顶点作为初始分区对图数据进行邻域分区;

步骤3:计算每个分区的参数权重向量,根据P个分区的参数权重向量对图神经网络模型参数按行划分为P个分区,将参数行划分至需要使用其进行图神经网络计算的顶点数量最多的分区中。

所述步骤2包括:

步骤2.1:根据公式(2)定义图数据G(V,E)中每个分区X的邻居顶点集合B(X);

B(X)={u|u∈V\X,v∈X,e

式中,V表示图数据中所有顶点的集合,E表示顶点之间边的集合,v∈X表示分区X中的顶点,u∈V\X表示属于集合V但不属于集合X的顶点,e

步骤2.2:从分区X的初始顶点开始不断搜索分区X的邻居顶点集合中的顶点,选择增加分区网络开销最小的顶点加入到分区X中,直到分区X中的顶点个数超过预设上限值,并将选择过的顶点从集合V中删除;

步骤2.3:针对每个初始顶点和集合V中剩余的顶点,重复步骤2.2继续划分分区,如果得到的分区数小于P且剩余的集合V中不存在初始顶点时,任意指定其他顶点为初始顶点继续划分分区,直到得到P个分区。

所述步骤2.2中选择增加分区网络开销最小的顶点加入到分区X中,包括:

步骤2.2.1:将分区X中所有稀疏性向量累计得到参数权重向量ζ:

式中,n′表示分区X中的顶点数量,η

步骤2.2.2:将参数权重向量中的每个元素与每个顶点的稀疏性向量中的对应元素一一相减,相减后的向量中负数元素的个数记为与分区X内顶点特征稀疏性不一致的维度的数量m;

步骤2.2.3:对分布式系统运行图神经网络算法时,图数据中的顶点间通信代价C

式中,n表示顶点u加入到分区X时分区与邻域之间边数量的变化值,f表示顶点的特征向量维度,j表示图神经网络模型的参数矩阵的列数量,m表示与分区X内顶点特征稀疏性不一致的维度的数量,C

步骤2.2.4:利用公式(5)计算分区X的邻域内每个顶点的代价分数S(u);

S(u)=2n(fC

步骤2.2.5:根据代价分数对分区X邻域顶点排序,将最小代价分数所对应的顶点作为增加分区网络开销最小的顶点。

所述步骤3中根据P个分区的参数权重向量对图神经网络模型参数按行划分为P个分区,包括:

步骤3.1:对比所有图数据分区的参数权重向量ζ

步骤3.2:检查第t个参数分区的参数行数量,若达到上限,则将参数权重向量ζ

步骤3.3:针对参数权重向量的剩余维度,重复步骤3.1与步骤3.2,直至划分完毕图神经网络模型的所有参数行。

本发明的有益效果:

本发明的基于参数服务器架构的图数据与参数数据的混合划分方法适用于支持图神经网络算法的参数服务器系统,利用图数据拓扑信息与特征信息,能够减少顶点通信代价和参数通信代价,从而减少系统运行时的网络通信开销,加速系统计算效率。

附图说明

图1为本发明的基于参数服务器架构的图数据与参数数据的混合划分方法流程图;

图2为本发明的图数据分区过程示意图,其中(a)为当前分区内包含三个顶点时,分区内顶点、邻域顶点、邻域外顶点的拓扑结构表示,(b)为顶点u

具体实施方式

下面结合附图和具体实施实例对发明做进一步说明。

在本发明提供的基于参数服务器架构的图数据与参数数据的混合划分方法中,对于图数据的划分来说,首先,对初始图数据顶点ID使用深度优先遍历进行重新编号。接着,将顶点编号划分为大小相等的P个区间,取区间编号的中间值对应的顶点作为初始分区的初始顶点。由图拓扑数据与顶点特征数据构建混合代价模型,使用代价模型计算当前分区邻域顶点的代价分数,根据代价分数对邻域顶点进行排序,选取代价分数最小的多个邻域顶点加入当前分区,同时更新当前分区内顶点的参数权重向量,通过不断执行上述邻域顶点代价分数的计算与排序将新顶点加入分区的步骤,扩展当前分区直至分区大小达到预设上限。

在本发明提供的基于参数服务器架构的图数据与参数数据的混合划分方法中,对于模型参数数据的划分来说,首先在图数据划分阶段,每个分区动态维护其分区内顶点的参数权重向量,通过按维度遍历所有分区参数权重向量,将图神经网络模型参数按行划分至在计算时需要使用该参数行顶点的数量最多的分区中。在参数服务器系统进行图神经网络任务的计算时,能够有效减少集群节点间的参数通信。

如图1所示,一种基于参数服务器架构的图数据与参数数据的混合划分方法,包括:

步骤1:在原始图数据中构建初始顶点,该步骤从初始图数据中选择多个顶点作为初始分区,包括:初始图数据编号与初始顶点选择,具体包括如下步骤:

步骤1.1:通过使用广度优先遍历,将原始图数据ID进行重新编号;

在原始图数据中,顶点ID除了标识顶点外,通常不包含其他信息。通过对图数据顶点ID进行重新排列,使顶点ID能够在一定程度上表示其拓扑信息,比如ID相接近的两个顶点,其在拓扑结构中的位置也是相近的。为了实现这一点采用广度优先遍历的方式为顶点编号。首先在初始图数据中随机选取一个顶点作为广度优先遍历的起点,将其ID编号设为0,然后从其一阶邻居依次赋值,直至遍历整个初始图。

广度遍历后的任意两个顶点的重新编号后的ID的差值能够在一定程度上表示这两个顶点的拓扑距离,为了取得恰当的图数据分区,每个分区的初始顶点应当在拓扑空间中尽可能远离彼此。当需要将图数据划分为P个分区时,将顶点ID划分为大小均等的P个区间,每个区间取作为中间值的ID作为该区间的初始顶点。这样取得的P个初始顶点再图拓扑空间中的距离也相对较大。在后续进行图数据的邻域分区时更容易减少跨节点边的数量。

步骤1.2:将重新编号后的所有顶点ID划分为大小均等的P个区间,计算每个ID分区内编号的中间值

式中,x

步骤1.3:选取每个ID分区的中间值

在以初始顶点构建完初始分区后,采用贪婪策略从当前分区的邻域内选择顶点加入当前分区。

步骤2:以初始顶点作为初始分区对图数据进行邻域分区;包括:

步骤2.1:根据公式(2)定义图数据G(V,E)中每个分区X的邻居顶点集合B(X);

B(X)={u|u∈V\X,v∈X,e

式中,V表示图数据中所有顶点的集合,E表示顶点之间边的集合,v∈X表示分区X中的顶点,u∈V\X表示属于集合V但不属于集合X的顶点,e

步骤2.2:从分区X的初始顶点开始不断搜索分区X的邻居顶点集合中的顶点,选择增加分区网络开销最小的顶点加入到分区X中,直到分区X中的顶点个数超过预设上限值,并将选择过的顶点从集合V中删除;

假设有P台工作机worker,通过以下步骤,可以将G(V,E)划分为P个分区:

(1)每个分区从已经选取的初始顶点开始计算。

(2)不断搜索邻域内顶点将其加入自身中,直到顶点集合的大小超过限制,被选择的顶点从V中删除。

(3)使用下个初始顶点和剩余的顶点集合V,继续生成分区,当V为空时终止。

从邻域不断迭代选择顶点加入到当前分区时,需要确定如何从邻域选择顶点的标准,数据分区的目标为尽可能减少分区后的顶点数据通信与参数数据通信之和,那么在选择顶点时,我们同样贪婪的选取在加入此分区后分区增加的网络开销最小的顶点。因此对于邻域范围的每个顶点v,我们对其计算代价分数

代价分数可以用公式描述为:

S′(u)=nC

其中,n为表示顶点u加入到分区X时分区与邻域之间边数量的变化值,m为与当前分区内顶点特征稀疏性不一致维度的数量。例如,将当前分区内顶点属性之和的稀疏性用一只包含0和1的向量η表示,若此向量为{1,1,1,1,0,0,0},而顶点u的属性向量表示为{0,0,1,1,1,0,1},则m的值为2,因为在η中的三个值为0的属性维度上,顶点u相应的维度有两个不为0,在后续计算中由于u的加入需要额外用到2个参数。C

所述步骤2.2中选择增加分区网络开销最小的顶点加入到分区X中,包括:

步骤2.2.1:将分区X中所有稀疏性向量累计得到参数权重向量ζ:

式中,n′表示分区X中的顶点数量,η

步骤2.2.2:将参数权重向量中的每个元素与每个顶点的稀疏性向量中的对应元素一一相减,相减后的向量中负数元素的个数记为与分区X内顶点特征稀疏性不一致的维度的数量m;

步骤2.2.3:对分布式系统运行图神经网络算法时,图数据中的顶点间通信代价C

式中,n表示顶点u加入到分区X时分区与邻域之间边数量的变化值,f表示顶点的特征向量维度,j表示图神经网络模型的参数矩阵的列数量,m表示与分区X内顶点特征稀疏性不一致的维度的数量,C

步骤2.2.4:利用公式(5)计算分区X的邻域内每个顶点的代价分数S(u);

S(u)=2n(fC

步骤2.2.5:根据代价分数对分区X邻域顶点排序,将最小代价分数所对应的顶点作为增加分区网络开销最小的顶点。

两种网络通信的开销分析:对于顶点间通信C

针对于gprc和protobuf通信的配置下,则代价分数可推导为S″(u):

S″(u)=8n(f+1)+8m(j+1)

综上所述,在分区过程中,我们每次选取当前邻域范围内S″(u)值最小的顶点加入至当前分区,并动态更新邻域范围与邻域内顶点的S″(u)值。如图2所示。

为了计算邻域范围内顶点的参数通信代价,需要将顶点特征向量的稀疏性与当前分区的稀疏性作对比,因此在分区过程中需要维护一个向量ζ来表示分区的稀疏性,将其称为参数权重向量,ζ长度为图数据特征长度,其中每一位代表当前分区内顶点特征对应维数的非零值数量。记当前分区每个顶点的特征稀疏性为向量η,其每一位为0,1两种值,0值代表此位对应的顶点特征为0,1值代表特征不为0。若当前分区内顶点数量为n′,则可计算出分区的ζ:

假设图2中的(a)中当前分区内的ζ={3,3,3,3,0,0,0},顶点u1,u2,u3的稀疏性向量分别为η

S(u1)=2C

S(u2)=C

S(u3)=C

选取代价分数最小的u2加入当前分区,同时更新邻域(将u2不属于当前分区且不属于当前邻域的邻居顶点加入邻域范围)和ζ。ζ的更新过程为:

ζ=ζ+η

在上述算法中,每选择一个新的邻居加入当前分区,都需要更新分区的参数权重向量以及邻域顶点,并更新邻域顶点的代价分数。当分区内顶点数量越来越多的时候,其邻域顶点数量也越来越多,这会导致更新代价分数的计算开销越来越大,为了加快分区的速度,在从邻域选取顶点时,算法会一次性选取k个代价最小的顶点加入当前分区。在计算邻域内顶点代价时,使用优先队列为邻域顶点进行排序。

步骤2.3:针对每个初始顶点和集合V中剩余的顶点,重复步骤2.2继续划分分区,如果得到的分区数小于P且剩余的集合V中不存在初始顶点时,任意指定其他顶点为初始顶点继续划分分区,直到得到P个分区。

步骤3:计算每个分区的参数权重向量,根据P个分区的参数权重向量对图神经网络模型参数按行划分为P个分区,将参数行划分至需要使用其进行图神经网络计算的顶点数量最多的分区中;

所述步骤3中根据P个分区的参数权重向量对图神经网络模型参数按行划分为P个分区,包括:

步骤3.1:对比所有图数据分区的参数权重向量ζ

步骤3.2:检查第t个参数分区的参数行数量,若达到上限f/P,则将参数权重向量ζ

步骤3.3:针对参数权重向量的剩余维度,重复步骤3.1与步骤3.2,直至划分完毕图神经网络模型的所有参数行。

首先将分区数量P、图数据特征维度f和各分区参数权重向量ζ

相关技术
  • 基于参数服务器架构的图数据与参数数据的混合划分方法
  • 一种基于电子警察的图像数据参数数据混合方法
技术分类

06120113147671