一种基于深度对抗学习的大规模图生成方法

文档序号:33708046发布日期:2023-03-31 22:28阅读:56来源:国知局
一种基于深度对抗学习的大规模图生成方法

1.本发明涉及大规模图生成模型的技术领域,尤其涉及一种基于深度对抗学习的大规模图生成方法。


背景技术:

2.对图生成模型的研究由来已久,传统方法如b-a模型、chung-lu模型、kronecker图模型、bter模型、指数随机图和随机块模型等,都经过精心设计,以模拟特定的图族;例如,指数随机图模型(ergm)依赖于一种表达性概率模型,该模型学习节点特征上的权重来建模图中边的可能性;但在实践中,这种方法在一定程度上受到了限制,因为它只能捕获具有充分统计信息的图结构,kronecker图模型依赖于kronecker矩阵积来有效地生成大型邻接矩阵,虽然这种方法是可伸缩的,并且能够从数据中学习部分图属性(例如度分布),但就其能够表示的图结构而言,它仍然受到了很大程度的限制;bter模型用来校正每个社区中的平均聚类系数,并通过两级边缘采样过程校正度分布,bter通过将图显式建模为两级e-r图来考虑其社区结构;值得注意的是,sbm及其变体dcsbm和mmsb也考虑到了图的社区结构,但它们受到随机模型简单性的限制,导致在现实生活中的图生成任务的社区结构保持方面表现不佳,具体而言,其只有一个参数用于捕获每个社区(即该社区内的边),一个参数用来表示每对社区的连通概率(即这两个社区之间的边)。
3.近年来,提出了一些基于深度神经网络的技术(例如vgae、deepgmg、graphrnn、graphite、gran、condgen),以解决图生成问题,与传统方法相比,它们显著提高了图生成的质量;例如,graphite和vgae使用变分自动编码器(vae)技术,其中图神经网络用于推理(编码)和生成(解码),由于graphite和vgae假设一组固定的顶点,因此它们只能从单个图中学习,netgan通过学习图上的随机游走,比vgae执行得更有效,但由于生成固定大小的图,因此它不可伸缩;在deepgmg中,图神经网络用于表示图的节点和边之间的概率依赖关系,它可以正确地学习任意图上的分布,然而,生成具有m条边、n个顶点且直径为d(g)的图需要复杂度为o(mn2d(g))的操作,这也存在可伸缩性较差的问题。
4.目前,graphrnn通过递归神经网络(rnn)顺序生成图,但它不是置换不变的,因为计算似然需要边缘化邻接矩阵的节点序的可能置换,gran通过在自回归方法中的每一步生成一个节点块和相关边,改进了graphrnn的可伸缩性,这仍然不是置换不变的,condgen通过利用gcn作为编码器并处理嵌入空间中的图生成问题,克服了这种置换不变性挑战,graphu-nets选择特定节点来实现对图的上采样和下采样,以获得图表示,然而,他们在学习过程中没有考虑观察到的图的社区结构,sbmgnn是sbm的一种变体,配备了深度学习技术,但其图形神经网络用于推断重叠随机块模型的参数,该参数与社区保持性质不直接相关,因此,与其他基于深度学习的图生成模型相比,在社区保持方面没有性能改进。
5.生成对抗网络(gan)在图像生成、图像翻译、超分辨率成像和多媒体合成等各种任务中都显示出了显著的效果,gan最近也被用于网络科学任务,如网络嵌入、半监督学习和图生成,对于图生成任务,样本数据集指定的先验结构知识对于图生成至关重要,特别是在
社区结构保持的情况下;对于图的社区结构,一些使用池化策略的模型能够训练以表示社区(集群),但将这些社区结构同时进行表示和生成仍然是一项挑战,例如,netgan通过随机游动生成图,这对于保持社区结构来说是非常重要的。


技术实现要素:

6.本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本技术的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
7.鉴于上述现有存在的问题,提出了本发明。
8.因此,本发明解决的技术问题是:受限于复杂度,深度学习模型的伸缩性往往较差,传统方法并没有关注图的社区保持特性,故图生成的相关性能也较差。
9.为解决上述技术问题,本发明提供如下技术方案:包括,
10.对于图g,给定其邻接矩阵a与特征矩阵x,对其进行采样后,输入图注意力编码器以获得图的结构信息,应用社区检测算法得到社区标签的真实值;
11.将所述图注意力编码器输出的社区信息和图表示馈送至社区解码器,生成各节点对应的社区标签;
12.利用反向传播调整所述图注意力编码器与社区解码器的参数,将其引导至社区保持的潜在空间;
13.将所述图注意力编码器输出的社区信息和图表示馈送至图解码器,生成边概率;
14.利用所述边概率模拟图分数矩阵,最终采样得到模型生成的新图。
15.作为本发明所述的基于深度对抗学习的大规模图生成方法的一种优选方案,其中:在进行采样之前还需要增强图结构的重建,包括,
16.对所述图g,给定所述邻接矩阵a和所述特征矩阵x,将其输入梯形编码器以获得图的结构信息,应用所述社区检测算法得到社区标签的真实值;
17.将所述梯形编码器输出的社区信息和图表示馈送至鉴别器,以确定输入图是否为区别于真实图的假图;
18.同时,每个级别的粗化图将通过可微分层消息传递过程将其社区结构特征分布到原始节点;
19.对每个所述原始节点的一系列社区信息进行解码,以增强图结构的重建。
20.作为本发明所述的基于深度对抗学习的大规模图生成方法的一种优选方案,其中:所述梯形编码器包括图卷积、图池化、图读出和图转置池化。
21.作为本发明所述的基于深度对抗学习的大规模图生成方法的一种优选方案,其中:包括,
22.利用解码节点特征前的变分推理生成具有观察到的分层社区结构分布的新图;
23.选择多层感知器作为推理模型进行推理,完成从重构特征到先验分布的映射。
24.作为本发明所述的基于深度对抗学习的大规模图生成方法的一种优选方案,其中:所述鉴别器包括,
25.鉴别任务需要所述梯形编码器获得的图特征,根据图读出层输出矩阵;
26.对所述鉴别器进行优化,通过博弈进行形式计算,结合训练,通过递增梯度更新参
数。
27.作为本发明所述的基于深度对抗学习的大规模图生成方法的一种优选方案,其中:包括,
28.通过从a
out
的第i行参数化的类别分布采样,为节点i生成一条边;
29.选择a
out
的前k个条目,直到边的数目达到预定义的数目;
30.生成新图的总时间复杂度为o(n2)。
31.作为本发明所述的基于深度对抗学习的大规模图生成方法的一种优选方案,其中:所述图解码器包括,
32.解码分层图表示序列;
33.预测节点链接。
34.作为本发明所述的基于深度对抗学习的大规模图生成方法的一种优选方案,其中:包括,
35.给定输入节点特征和自我图;
36.利用多头注意力机制聚集来自图结构的消息,获得相关自我图的中心节点u的隐藏变量hu。
37.作为本发明所述的基于深度对抗学习的大规模图生成方法的一种优选方案,其中:对于每个所述自我图,消息聚合包括,
[0038][0039]
其中,表示图注意力编码层的一行隐藏变量,即节点u上的隐藏变量;表示输出投影矩阵;h
attn
表示注意力头的数量;d
att
表示注意力向量a的维数。
[0040]
作为本发明所述的基于深度对抗学习的大规模图生成方法的一种优选方案,其中:基于节点度的概率分布作为初始节点采样策略,包括,
[0041][0042]
其中,degu表示节点u的度,假设在每次遍历中,采样ns个节点作为初始时序节点,采样ns个自我图作为编码过程的输入,初始节点集表示为
[0043]
本发明的有益效果:本发明提出了一种新的图生成模型,即大规模图生成方法(lsgen),它不仅能够保持社区结构以及现实图中的其他重要属性,而且与其他基于学习的图形生成模型相比,还减少了图形模拟时间并提高了可伸缩性,在统一的gan框架中仔细设计了生成器和鉴别器,其中生成器位于分层图变分自动编码器中,可以学习输入图的置换不变表示,并可以从节点表示生成新的图,鉴别器用于判断嵌入是来自真实图还是模拟图,引入一种可微梯形网络,以实现不同社区结构级别的图池化和消息传递,这比简单地堆叠更深的图卷积层更有效;同时,本发明还引入了可扩展版本slsgen,其具有较短的流水线和较快的训练速度,在slsgen中,设计了一种高效的图注意力自动编码器架构,用于社区保持图生成;采用自我图(egograph)采样和二部计算图组装策略,实现了基于小批量的方法来
训练图生成器;提出了一种用于可伸缩图生成模型训练和推理的数据并行和模型并行架构,对合成图和真实图进行了广泛的实验,结果表明,与基线方法相比,提出的模型可以在图模拟的质量和效率(可扩展性)之间实现良好的平衡。
附图说明
[0044]
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。其中:
[0045]
图1为本发明一个实施例所述的基于深度对抗学习的大规模图生成方法的lsgen的流程框架图;
[0046]
图2为本发明一个实施例所述的基于深度对抗学习的大规模图生成方法的slsgen的流程框架图;
[0047]
图3为本发明一个实施例所述的基于深度对抗学习的大规模图生成方法的二部计算图的示意图。
具体实施方式
[0048]
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明,显然所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护的范围。
[0049]
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
[0050]
其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
[0051]
本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。
[0052]
同时在本发明的描述中,需要说明的是,术语中的“上、下、内和外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一、第二或第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0053]
本发明中除非另有明确的规定和限定,术语“安装、相连、连接”应做广义理解,例如:可以是固定连接、可拆卸连接或一体式连接;同样可以是机械连接、电连接或直接连接,也可以通过中间媒介间接相连,也可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0054]
实施例1
[0055]
对图生成模型的研究由来已久,传统方法(如b-a模型、chung-lu模型等),都经过精心设计,以模拟特定的图族,但其往往依赖于图的先验分布,且受到模型简单性的限制,在生成质量方面表现不佳。
[0056]
近年来,提出了一些基于深度神经网络的技术(如vgae、deepgmg模型等),以解决图生成问题,与传统方法相比,它们显著提高了图生成的质量,但受限于复杂度,深度学习模型的伸缩性往往较差,且过去的方法并没有关注图的社区保持特性,故图生成的相关性能也较差。
[0057]
参照图1、图2和图3,为本发明的一个实施例提供的一种基于深度对抗学习的大规模图生成方法,包括:
[0058]
s1:对图g,给定邻接矩阵a和特征矩阵x,将其输入梯形编码器以获得图的结构信息,应用社区检测算法得到社区标签的真实值。
[0059]
s2:将梯形编码器输出的社区信息和图表示馈送至鉴别器,以确定输入图是否为区别于真实图的假图,同时,每个级别的粗化图将通过可微分层消息传递过程将其社区结构特征分布到原始节点。
[0060]
s3:对每个原始节点的一系列社区信息进行解码,以增强图结构的重建。
[0061]
s4:对于图g,给定其邻接矩阵a与特征矩阵x,对其进行采样后,输入图注意力编码器以获得图的结构信息,应用社区检测算法得到社区标签的真实值。
[0062]
s5:将图注意力编码器输出的社区信息和图表示馈送至社区解码器,生成各节点对应的社区标签。
[0063]
s6:利用反向传播调整图注意力编码器与社区解码器的参数,将其引导至社区保持的潜在空间。
[0064]
s7:将图注意力编码器输出的社区信息和图表示馈送至图解码器,生成边概率。
[0065]
s8:利用边概率模拟图分数矩阵,最终采样得到模型生成的新图。
[0066]
参照图1,为了更好地说明本发明提供的lsgen算法的实现原理,本实施例进行如下的详细说明:
[0067]
(1)梯形消息传递编码器
[0068]
引入一个梯形编码器,模型可以自适应地调整池化策略并提取节点的社区结构信息,利用节点特征x和邻接矩阵a∈{0,1}n×n作为提出的编码器的输入,对于每个图g,使用单位矩阵作为其默认节点特征x∈rn×d,每个节点具有d维特征和邻接矩阵a,输入图g将使用叠加卷积和池化层进行粗化。
[0069]
图卷积:经典消息传递模型由图卷积网络(gcn)表示。
[0070]
传播后的消息z∈rn×
d'
计算如下:
[0071][0072]
其中,表示的度矩阵,的度矩阵,表示包含自环的邻接矩阵,w∈rd×
d'
是图卷积层中的可训练参数,其核大小为d';σ表示激活函数(默认为relu);x表示从x=x(a)的邻接矩阵a的谱嵌入中导出的节点特征。
[0073]
如果使用的一些变体(例如)来改善图的连通性,则信息可以更快地在节点之间流动,图卷积的时间复杂度为o(m+n),其中m表示边的数目。
[0074]
图池化:简单地通过gcn传递消息可能导致非常深的网络才能够捕获结构信息,特别当遇到低连通性的大型稀疏图时,需要一种有效的方法来获得图的层次表示,按层次对图进行粗化,并学习通过一系列分配矩阵分配矩阵对一组图进行粗加工的策略,其中n
l
、n
l+1
和k分别表示输入节点、输出节点和层的数量。
[0075]
分配矩阵的计算如下:
[0076]z(l)
=σ(gcn
l,embed
(x
(l)
,a
(l)
))
[0077]s(l)
=softmax(gcn
l,pool
(z
(l)
,a
(l)
))
[0078]
其中,σ是relu激活函数,和分别表示n
l
簇节点的特征矩阵和邻接矩阵,表示第l层具有结构信息的特征矩阵,两个gcn分别用于收集结构信息和推断l层的池化策略,由于图卷积和一个图池化的多重操作,在每个gcn之后使用pairnorm,以允许在不过度平滑的情况下堆叠深层gcn,分配矩阵可以看作是预测的节点社区分配,且将受到真实标签的约束,给定赋值矩阵s
(l)
,粗化邻接矩阵a
(l+1)
和新嵌入x
(l+1)
可以如下生成:
[0079][0080][0081]
堆叠图卷积和池化层可以获得不同级别的一系列节点表示,如果层k在池化后只有一个节点,则相应的分配矩阵将为使得图池化相当于图读出的和,图池化的总时间复杂度为o(m+n)。
[0082]
图读出:每个图的节点表示通过图读出被折叠成图表示,因此,第i级粗化图的输出特征si的读出计算如下:
[0083][0084][0085]
其中,k是每个图的层数,x
ij
表示第i级图的第j个节点的表示,以及表示在新维度中组合所有表示,图读出的时间复杂度为o(n),最终的图表示s∈rk×d是图鉴别器的输入。
[0086]
图转置池化:为了重建节点表示,需要对图进行适当的去极化,与粗化图的上采样不同,本实施例引入了一种可微方法来将信息从粗化图分布到详细图,所提出的分配方法使用相似分配矩阵的转置版本,转置分配矩阵使用相似分配矩阵的转置版本,转置分配矩阵的计算如下:
[0087][0088]
因此,重构节点表示z
rec
∈rn×k×d的计算如下:
[0089][0090][0091]
其中,表示在新维度中组合所有节点表示,在此之后,z
rec
作为本实施例提出的解码器d的输入,转置池化的总时间复杂度为o(m+n),注意,在这项工作中,本实施例向共轭节点的潜在分布中添加了一个变分推理模块,以控制编码器的输出。
[0092]
(2)变分推理
[0093]
本实施例利用解码节点特征前的变分推理生成具有观察到的分层社区结构分布的新图,使用实现从重构特征到先验分布n(μ,diag(σ2))的映射,本实施例选择多层感知器(mlp)作为推理模型。推理过程公式如下:
[0094]
g(z
rec
,φ)=σ(z
rec
φ0)φ1[0095][0096][0097][0098][0099]
其中,φ表示mlp中的一组参数,g(
·
)i表示g(
·
)的第i行,z
vae
∈rn×k×d是变分推理模块的输出,推理模块的时间复杂度为o(kn),概率变分推理可以使节点表示远离零中心,这直观地使节点表示更加“稀疏”,这有助于保留节点的社区结构。
[0100]
在变分推理模块之后,从先验分布中选择新的节点特征来生成新的图,但是,发现完全连通网络本身无法处理生成具有复杂和分层社区结构的图的任务,因此,本实施例提出了图解码器来解决这个问题。
[0101]
(3)图解码器
[0102]
本实施例提出的图解码器包括两个步骤:首先解码分层图表示序列,然后预测节点链接,本实施例嵌入了带有选通递归单元(gru)的分层社区结构,并获得了节点特征hk,其中k表示社区结构的数量,解码特征通过以下公式获得:
[0103][0104]
其中,h
l
表示粗化图的隐藏状态,h0是零矩阵,表示第l个粗化图的节点特征,hk表示具有分层社区信息的解码节点特征,获得节点表示后,给出如下链路预测:
[0105]gθ
(hk)=σ(hkθ0)θ1[0106]
p
θ
(a
ij
|h
k,i
,h
k,j
)=σ(g
θ
(h
k,i
)
tgθ
(h
k,j
))
[0107][0108]
其中,g
θ
(h
k,i
)是两层mlp,用于提取社区信息以帮助生成边,h
k,i
表示第i个节点的特征,a
rec
∈rn×n表示链路预测的概率矩阵,当在大型图上训练解码器时,为了加速这个过程,采样ns(ns<<n)个节点以获得a
rec
∈r
ns
×
ns

[0109]
具体而言,在不替换的情况下采样节点,以根据节点度的策略组装子图,如下所示:
[0110][0111]
其中,pi是选择节点i的概率,degi表示节点i的度,因此,图解码器的时间复杂度为
[0112]
(4)鉴别器与优化
[0113]
图鉴别器:鉴别任务需要编码器获得的图特征,即图读出层的输出矩阵s∈rk×d,且s=e(a),利用两层mlp分类器作为鉴别器d,其定义为:
[0114]dφ
(a)=σ(mlp(s,φ))
[0115]
其中,φ表示mlp的参数,σ表示sigmoid激活函数。
[0116]
鉴别器优化:形式上,g和d使用值函数v(g,d)进行minimax博弈,如下所示:
[0117][0118]
其中,z
vae
和zs分别从近似分布和高斯先验分布中采样,此外,为了利用聚类结果提高鉴别器的水平,引入了聚类一致性:
[0119][0120]
其中,s
l
表示引入的分配矩阵,表示观察图的真实社区划分,默认情况下,利用louvain社区检测算法获得分层社区检测结果作为真实社区划分,在训练过程中,需要通过递增梯度更新φd:
[0121][0122]
当判断真实数据集中的图时,使用上式的上半部分更新参数,为了确保社区结构保持和其他优化目标都得到充分考虑,训练过程仅在l
clus
和log(d(a))均收敛时停止;当判断生成的图时,使用上式的下半部分更新参数。
[0123]
生成器优化:生成器旨在最小化鉴别器正确分配给由g重构的图的对数概率,为了提高解码器d的性能并保证置换不变性,从cyclegan引入了映射一致性l
rec
,如下:
[0124][0125]
其中,a
′i表示从ai重构的伪邻接矩阵,在实践中,编码器e的崩溃可以通过映射一致性来控制,通过下降梯度计算解码器相对于φd的梯度:
[0126][0127]
其中,a

表示重构的邻接矩阵,在更新解码器后,通过降低梯度来计算编码器相对于φe的梯度:
[0128][0129]
其中,高斯先验p(z)设置为并且l
prior
(
·
||
·
)表示计算两个分布之间的kullback-leibler(kl)散度,通过这种改进的编码器和解码器,生成过程可以生成任意大小且类似社区结构的新图。
[0130]
(5)生成新图
[0131]
在训练之后,本实施例采样ns(ns<<n)个节点以获得a
sub
∈r
ns
×
ns
,并组合从生成器获得、并由鉴别器验证为生成邻接矩阵的输出矩阵a
out
∈rn×n,具体地说,初始化一个空a
out
并填充在每个子图的邻接矩阵a
sub
中生成的边,直到生成的边的数量满足要求,选择阈值来确定每个边的二值化策略和通过a
out
参数化的伯努利分布的采样策略可能分别导致忽略低阶节点和高方差输出;为了解决这些问题,本实施例使用以下策略:通过从a
out
的第i行参数化的类别分布采样,为节点i生成一条边;选择a
out
的前k个条目,直到边的数目达到预定义的数目;生成新图的总时间复杂度为o(n2)。
[0132]
参照图2,为了减少参数和计算成本,放弃了分级梯形编码器和鉴别器,保留了核心编解码器部分:图注意力编码器、社区编码器和图解码器共同构成了slsgen的基于自动编码的框架,为了更好的说明基于slsgen的大规模图生成方法,本实施例进行如下详细说明。
[0133]
(1)简化的自动编码器架构
[0134]
为了避免gcn中的整个图计算,利用图注意力网络来衡量所采样局部结构中的边重要性,具体地说,给定输入节点特征和自我图(ego graph),利用多头注意力机制来聚集来自图结构的消息,获得相关自我图的中心节点u的隐藏变量hu,其中d
enc
表示编码过程后隐藏变量的维数,对于每个自我图,消息聚合公式如下:
[0135]
[0136]
其中,表示图注意力编码层的一行隐藏变量,即节点u上的隐藏变量;表示输出投影矩阵;h
attn
表示注意力头的数量;d
att
表示注意力向量a的维数;图注意力层的每个头的计算公式如下:
[0137][0138]
其中,σ表示激活函数,n(u)表示节点u的相邻节点,表示第i个头中边(u,v)的重要性,计算公式如下:
[0139][0140]
其中,表示第i个注意力头的注意力向量,leakyrelv表示具有负输入斜率α=0.2的非线性激活函数。
[0141]
本实施例使用社区标签将潜在变量引导到社区保持的潜在空间,此外,为了避免图解码器中复杂度为o(n2)的计算,放弃了内积解码器,使用线性解码器来获得每个边的分数,两个解码器的公式如下:
[0142][0143][0144]
其中,表示预测的社区分配概率矩阵;表示预测的边概率矩阵;在实践中,通过louvain社区检测算法计算节点的真实社区标签,在生成采样节点的社区标签后,根据真实社区标签计算交叉熵损失,并更新社区解码器和编码器参数,生成采样节点的邻接向量并根据真实图的邻接矩阵计算近似损失,近似损失函数计算公式如下:
[0145][0146]
其中,表示采样中心节点集,ns表示的大小;表示来自图解码器的分数矩阵;yc表示真实社区标签,通过调整ns的值,可以在生成高质量时态图和快速模型训练之间取得平衡,假设为模型训练采样了ns个节点,本实施例提出的自动编码器架构的空间复杂度为o(n
×
(ns+d
in
)),每个训练迭代的时间复杂度为
[0147]
(2)可扩展的图采样
[0148]
为了实现可伸缩图生成并保持模型的生成性能,将完整图分解为数个自我图,通过在自我图上多次运行slsgen核心架构,实现了对完整图生成任务的近似;具体地说,首先选择训练阶段的代表性节点来建模完整的图结构,度较高的节点与离群点关联的概率较低,因此为了关注代表性节点和边,并生成高质量图,使用基于节点度的概率分布作为初始节点采样策略,其公式如下:
[0149][0150]
其中,degu表示节点u的度,假设在每次遍历中,采样ns个节点作为初始时序节点,采样ns个自我图作为编码过程的输入,初始节点集表示为
[0151]
参照图3,为了减少编码过程的时间消耗,如图3(a)所示,在多个自我图上计算并行节点编码的节点表示,以将计算复杂度从o(n)减少到其中,b表示时间自我图的并行数量,即批大小;为了有效地训练,将批量大小设置为初始采样中心节点集的大小,其中因此,计算复杂度被并行化为
[0152]
为了进一步减少空间消耗,本实施例使用截断机制来控制空间使用,并在采样替换节点时忽略重复节点,使用th作为阈值来控制最坏情况下的空间需求,一旦节点的邻居总数超过th,算法将从全邻居采样策略转换为th邻居采样策略。
[0153]
为了避免在高阶节点上重复计算,在自我图采样后,如图3(b)所示,将所有自我图合并为k-二分计算图,同时对这些计算图进行消息传递和边重要性计算,由于采样的自我图构成了观察到的整体图的代表结构,将自我图合并为二部计算图,使得图注意力网络能够高效地编码局部结构表征。
[0154]
(3)数据并行与模型并行
[0155]
在具有超过一百万个节点的大型图上进行训练时,很容易耗尽gpu内存,因此,有必要在多gpu机器上执行数据并行训练,假设有一台双gpu机器,根据图3(c),将模型参数和采样的自我图分别放入两个gpu中,在两个gpu中,将各自的自我图组装成二部计算图,本实施例计算中心节点的表示、预测得分矩阵和待更新参数的梯度值,自我图合并和编码器-解码器模块可以完全并行完成;只有当两个gpu的训练时间存在显著差异时,才会对某些节点的更新嵌入产生串行依赖。
[0156]
例如,在图3(c)中,三个节点嵌入需要在两个gpu之间同步,根据自图采样策略,将嵌入的数量限制在o(tk)以下,其中k是采样的自我图深度,t是截断值的大小,因此通信成本是可控的,通过这种数据并行策略,slsgen的上限为20亿个节点(即2
31-1个节点),这远远多于其他基于学习的方法。
[0157]
如果需要生成具有超过2
31
个节点的大型图,使用模型并行,具体来说,将模型分成c个副本,并将训练数据分成多个块,每个块包含少于2
31
个节点,在多个机器集群上训练模型,在这种情况下,假设采样的自我图的深度为1,则机器之间通信的时间复杂度小于o(t),其中t为采样自我图时的截断值,具有可管理的通信成本。
[0158]
优选的,本实施例需要再次说明的是,lsgen与其他基于学习的图生成器一样,也使用了一些经典模型,如vae和cyclegan,进而实现了远超传统图生成方法的图生成质量,能够胜任各类图生成任务,不同的是,本实施例关注两个新目标:基于学习的模型的效率(可扩展性)和社区保持性,这需要在本发明中开发新技术,例如,利用vae分别推断层次结构信息,这有助于图生成的社区保持;此外,cyclegan和vae的映射一致性用于置换不变的图生成,这对于采样策略的可扩展实现至关重要。
[0159]
优选的是,本实施例还需要进一步说明的是,在slsgen中,利用cpu内存甚至硬盘,
提出了一种更具可扩展性的基于学习的解决方案,具体而言,设计了一种高效的图注意力自动编码器架构,用于社区保持图生成;采用自我图采样和二部计算图组装策略,实现了基于小批量的方法来训练图生成器;提出了一种用于可伸缩图生成模型训练和推理的数据并行和模型并行架构;综上,slsgen将原始lsgen模型的训练时间减少了4倍,并将内存占用减少了4倍。
[0160]
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
[0161]
此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
[0162]
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
[0163]
如在本技术所使用的,术语“组件”、“模块”、“系统”等等旨在指代计算机相关实体,该计算机相关实体可以是硬件、固件、硬件和软件的结合、软件或者运行中的软件。例如,组件可以是,但不限于是:在处理器上运行的处理、处理器、对象、可执行文件、执行中的线程、程序和/或计算机。作为示例,在计算设备上运行的应用和该计算设备都可以是组件。一个或多个组件可以存在于执行中的过程和/或线程中,并且组件可以位于一个计算机中以及/或者分布在两个或更多个计算机之间。此外,这些组件能够从在其上具有各种数据结构的各种计算机可读介质中执行。这些组件可以通过诸如根据具有一个或多个数据分组(例如,来自一个组件的数据,该组件与本地系统、分布式系统中的另一个组件进行交互和/或以信号的方式通过诸如互联网之类的网络与其它系统进行交互)的信号,以本地和/或远
程过程的方式进行通信。
[0164]
应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1