一种分布式计算SimRank单源节点相似度的方法和装置制造方法及图纸

技术编号:28130900 阅读:16 留言:0更新日期:2021-04-19 11:52
本申请提供了一种分布式计算SimRank单源节点相似度的方法和装置,所述方法包括:获取有向图G,并生成对应于所述有向图G的节点集;对所述节点集进行采样,获取所述节点集内每个节点的采样结果,并依据所述采样结果生成对应于所述节点集的森林模型;对所述森林模型进行随机采样,确定对应于所述节点集内每个节点的第一入邻居节点和第二入邻居节点;依据所述第一入邻居节点和所述第二入邻居节点确定所述节点集内每个节点对应的值;依据所述节点集内每个节点对应的值生成目标节点的相似度值;通过采用分布式的方式建立森林,从而计算离线索引,每一轮的森林在计算过后可以删除,并不需要离线保存;通过本方法的设置可以保证计算结果精度。计算结果精度。计算结果精度。

【技术实现步骤摘要】
一种分布式计算SimRank单源节点相似度的方法和装置


[0001]本申请涉及数据处理领域,特别是一种分布式计算SimRank单源节点相似度的方法和装置。

技术介绍

[0002]一个有向图由G(V,E)表示,其中V表示结点的集合,E表示边的集合。对于任意节点u∈V,I
u
表示任意节点u的入邻居的集合,即I
u
={u:(u,u)∈E,u∈V},O
u
表示点u的出邻居的集合,即O
u
={u:(u,u)∈E,u∈V}。
[0003]SimRank是一种在图中计算节点相似度的一种度量方式,SimRank是一种基于网页链接结构来评估图中任意两个对象(结点)之间的相似度模型,其背后的思想为:
[0004]每个节点与其自身的相似度为1;
[0005]两个节点的节点的相似度取决去它们邻居节点的相似度。
[0006]SimRank的定义是递归的,任意两个节点u和v的相似度定义如下:
[0007][0008]其中,参数c∈(0,1)为衰减因子(通常设置为0.6或0.8),用来控制节点u和节点v的相似度取决于其邻居相似度的程度。
[0009]基于SimRank的节点相似度度量方式,其中一个重要问题就是计算单源节点相似度,即计算节点u和图中剩余节点(Vu)的相似度。
[0010]该问题定义如下:
[0011]给定一个节点u∈V和容错值ε,计算节点u到其余节点的相似度,使得对于任意节点v∈V,
[0012][0013]其中,表示算法给出的估计值,s(u,v)表示SimRank的真实值。也就是说,计算给出的估计值与真实值的误差在ε的范围内。
[0014]而最接近现有技术方案为基于Spark计算系统,数据用RDD(Resilient Distributed Dataset,弹性分布式数据集)进行存储和计算。Spark是专为大规模数据处理而设计的快速通用的计算引擎;该方案有两个阶段:离线索引和在线查询。在离线索引阶段中,建立索引。在查询过程中,利用已经建立好的索引来进行对任意节点的SimRank单源相似度的查询。在离线阶段,该方案首先构建一个线性系统,然后通过迭代的方式解该线性系统,该线性系统的解作为离线索引,这个线性系统的构建是近似的。在在线阶段,利用该索引,该方案使用Spark来模拟随机游走,最终得到单源节点相似度。但并不能保证计算结果的精确性和正确性,即给定容错值∈,该方案并不能保证计算相似度的结果与真实值的误差在∈之内,因此影响基于相似度的应用(推荐系统,链路预测等)的结果质量;虽然该方案
是分布式算法,但方案并不能保证并行可扩展性,即该方案的计算开销并不能随着计算资源的上升而减少,降低了其可用性,即该方案的分布式计算并不能保证效率上的提升。
[0015]针对该问题,我们研究在分布式环境中(shared

nothing,即不同的机器不能共享内存)的计算方法,即一个大图不能被单机所处理,而被分割在集群中不同的机器中的情况,提出一种分布式计算SimRank单源节点相似度的方法和装置。

技术实现思路

[0016]鉴于所述问题,提出了本申请以便提供克服所述问题或者至少部分地解决所述问题的一种分布式计算SimRank单源节点相似度的方法和一种分布式计算SimRank单源节点相似度的装置,所述方法包括:
[0017]一种分布式计算SimRank单源节点相似度的方法,用于计算图数据中SimRank单源节点相似度,包括:
[0018]获取有向图G,并生成对应于所述有向图G的节点集;具体地,将所述有向图G平均分割成的若干个节点,并依据所述节点生成所述节点集;
[0019]对所述节点集进行采样,获取所述节点集内每个节点的采样结果,并依据所述采样结果生成对应于所述节点集的森林模型;
[0020]对所述森林模型进行随机采样,确定对应于所述节点集内每个节点的第一入邻居节点和第二入邻居节点;
[0021]依据所述第一入邻居节点和所述第二入邻居节点确定所述节点集内每个节点对应的值;
[0022]依据所述节点集内每个节点对应的值生成目标节点的相似度值。
[0023]进一步地,所述对所述节点集进行采样,获取所述节点集内每个节点的采样结果,并依据所述采样结果生成对应于所述节点集的森林模型的步骤,包括:
[0024]对所述节点集中的每个节点进行采样生成所述每个节点对应的每个节点轨迹;
[0025]根据所述每个节点轨迹对应的每个叶子结点生成所述森林模型。
[0026]进一步地,所述对所述节点集中的每个节点进行采样生成所述每个节点对应的每个节点轨迹的步骤,包括:
[0027]在所述节点内获取当前采样节点m;
[0028]在所述当前采样节点m对应的入邻居节点集合中随机采样对应于所述当前采样节点m的一个入邻居节点m1,并将所述入邻居节点m1确定为所述当前采样节点m的父节点;
[0029]在所述父节点对应的入邻居节点集合中持续进行随机采样,直至所述入邻居节点集合为空集时,生成所述当前采样节点m的节点轨迹。
[0030]进一步地,所述依据所述第一入邻居节点和所述第二入邻居节点确定所述节点集内每个节点对应的值的步骤,包括:
[0031]在所述节点集内每个节点中获取一个节点v
n
,根据所述节点v
n
对应的第一入邻居节点和第二入邻居节点,依据所述第一入邻居节点和所述第二入邻居节点确定所述节点v
n
的值;
[0032]当在所述节点集内每个节点中的所有节点均确定时,生成所述节点集内每个节点
对应的值。
[0033]进一步地,所述在所述节点集内每个节点中获取一个节点v
n
,根据所述节点v
n
对应的第一入邻居节点和第二入邻居节点,依据所述第一入邻居节点和所述第二入邻居节点确定所述节点v
n
的值的步骤,包括:
[0034]依据所述节点v
n
获取V.cnt值,其中,在初始时,所述V.cnt值为0;
[0035]对所述节点v
n
进行N轮随机采样,在所述N轮随机采样的每一轮随机采样中,通过在所述节点v
n
对应的入邻居节点集合中随机采样得到第一入邻居节点和第二入邻居节点;
[0036]获取所述第一入邻居节点对应的第一ID信息以及获取所述第二入邻居节点对应的第二ID信息;其中,在所述第一ID信息与所述第二ID信息相同时,所述节点v
n
对应的所述V.cnt值增加1;
[0037]当所述节点v
n
完成N轮随机采样时,依据所述V.cnt值生成所述节点v
n
对应的值。
[0038]进一步地,所述依据所述节点集内每个节点对应的值生成目标节点的相似度值的步骤,包括:本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式计算SimRank单源节点相似度的方法,用于计算图数据中SimRank单源节点相似度,其特征在于,包括:获取有向图G,并生成对应于所述有向图G的节点集;具体地,将所述有向图G平均分割成的若干个节点,并依据所述节点生成所述节点集;对所述节点集进行采样,获取所述节点集内每个节点的采样结果,并依据所述采样结果生成对应于所述节点集的森林模型;对所述森林模型进行随机采样,确定对应于所述节点集内每个节点的第一入邻居节点和第二入邻居节点;依据所述第一入邻居节点和所述第二入邻居节点确定所述节点集内每个节点对应的值;依据所述节点集内每个节点对应的值生成目标节点的相似度值。2.根据权利要求1所述的方法,其特征在于,所述对所述节点集进行采样,获取所述节点集内每个节点的采样结果,并依据所述采样结果生成对应于所述节点集的森林模型的步骤,包括:对所述节点集中的每个节点进行采样生成所述每个节点对应的每个节点轨迹;根据所述每个节点轨迹对应的每个叶子结点生成所述森林模型。3.根据权利要求2所述的方法,其特征在于,所述对所述节点集中的每个节点进行采样生成所述每个节点对应的每个节点轨迹的步骤,包括:在所述节点内获取当前采样节点m;在所述当前采样节点m对应的入邻居节点集合中随机采样对应于所述当前采样节点m的一个入邻居节点m1,并将所述入邻居节点m1确定为所述当前采样节点m的父节点;在所述父节点对应的入邻居节点集合中持续进行随机采样,直至所述入邻居节点集合为空集时,生成所述当前采样节点m的节点轨迹。4.根据权利要求1所述的方法,其特征在于,所述依据所述第一入邻居节点和所述第二入邻居节点确定所述节点集内每个节点对应的值的步骤,包括:在所述节点集内每个节点中获取一个节点v
n
,根据所述节点v
n
对应的第一入邻居节点和第二入邻居节点,依据所述第一入邻居节点和所述第二入邻居节点确定所述节点v
n
的值;当在所述节点集内每个节点中的所有节点均确定时,生成所述节点集内每个节点对应的值。5.根据权利要求4所述的方法,其特征在于,所述在所述节点集内每个节点中获取一个节点v
n
,根据所述节点v
n
对应的第一入邻居节点和第二入邻居节点,依据所述第一入邻居节点和所述第二入邻居节点确定所述节点v
n
的值的步骤,包括:依据所述节点v
n
...

【专利技术属性】
技术研发人员:王越
申请(专利权)人:深圳计算科学研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1