网络图中的节点推荐方法和服务器以及存储介质技术

技术编号:21971540 阅读:22 留言:0更新日期:2019-08-28 01:29
本发明专利技术实施例公开一种网络图中的节点推荐方法和服务器以及存储介质,用于提高了推荐效率。本发明专利技术实施例提供一种网络图中的节点推荐方法,包括:从推荐服务器中预先存储的网络图中获取到第一节点,网络图中包括有N个节点,N个节点中存在通过边连接的相邻节点,N的取值为正整数,第一节点属于N个节点;从第一节点开始,以预设的停止概率在网络图中进行ω条的随机游走,ω的取值为正整数;当所述ω条的随机游走停止在M个节点上时,则根据所述ω和所述M个节点分别对应的随机游走停止条数分别确定所述M个节点分别对应的个性化网页排名PPR;根据M个节点分别对应的PPR从M个节点中确定出第二节点,并向第一节点推荐第二节点。

Node Recommendation Method, Server and Storage Medium in Network Graph

【技术实现步骤摘要】
网络图中的节点推荐方法和服务器以及存储介质
本专利技术涉及计算机
,尤其涉及一种网络图中的节点推荐方法和服务器以及存储介质。
技术介绍
在大规模社交网络上,每个用户可以用一个节点来表示,计算个性化网页排名(PersonalizedPageRank,PPR),通过PPR可以表示用户之间的关联性。例如,可以确定出社交网络中人与人之间的关系链。现有技术提供一种分布式图处理框架,例如SparkGraphX是其中一种处理框架,它是基于Spark平台提供对图计算和图挖掘简洁易用的而丰富的接口,极大的方便了对分布式图处理的需求。Spark的GraphX有一个PPR的算法包,GraphX里的PPR采用了幂迭代(PowerIteration)的计算方法,具体来说,根据以下的公式做多次迭代计算:π←α·π+(1-α)·π·D-1·A,其中,π是PPR矩阵,D是图的拉普拉斯矩阵,A是图的邻接矩阵,α是停止概率。在中等规模的Spark集群上,这个算法包不能处理有超过100万条边的社交网络,其中,中等规模指的是具有30个执行器(executor),每个executor有4个核(core)和20吉字节(Gigabyte,GB)内存。现有技术提供的GraphX的PPR算法中,需要多个大小是n的平方次的矩阵,其中n是图的节点数量,然而社交网络的节点数量通常是千万级别以上,使得存储空间消耗极大。并且由于需要多次迭代计算,因此具有较高的计算复杂度,降低了推荐效率。
技术实现思路
本专利技术实施例提供了一种网络图中的节点推荐方法和服务器以及存储介质,用于减少对存储空间的占用,简化PPR的计算复杂度,提高了推荐效率。本专利技术实施例提供以下技术方案:一方面,本专利技术实施例提供一种网络图中的节点推荐方法,包括:从推荐服务器中预先存储的网络图中获取到第一节点,所述网络图中包括有N个节点,所述N个节点中存在通过边连接的相邻节点,所述N的取值为正整数,所述第一节点属于所述N个节点;从所述第一节点开始,以预设的停止概率在所述网络图中进行ω条的随机游走,所述ω的取值为正整数;当所述ω条的随机游走停止在M个节点上时,则根据所述ω和所述M个节点分别对应的随机游走停止条数分别确定所述M个节点分别对应的个性化网页排名PPR,所述M个节点属于所述N个节点,所述M的取值为正整数,且所述M小于或等于所述ω;根据所述M个节点分别对应的PPR从所述M个节点中确定出第二节点,并向所述第一节点推荐所述第二节点。另一方面,本专利技术实施例还提供一种推荐服务器,包括:节点确定模块,用于从推荐服务器中预先存储的网络图中获取到第一节点,所述网络图中包括有N个节点,所述N个节点中存在通过边连接的相邻节点,所述N的取值为正整数,所述第一节点属于所述N个节点;随机游走模块,用于从所述第一节点开始,以预设的停止概率在所述网络图中进行ω条的随机游走,所述ω的取值为正整数;排名获取模块,用于当所述ω条的随机游走停止在M个节点上时,则根据所述ω和所述M个节点分别对应的随机游走停止条数分别确定所述M个节点分别对应的个性化网页排名PPR,所述M个节点属于所述N个节点,所述M的取值为正整数,且所述M小于或等于所述ω;推荐模块,用于根据所述M个节点分别对应的PPR从所述M个节点中确定出第二节点,并向所述第一节点推荐所述第二节点。在前述方面中,推荐服务器的组成模块还可以执行前述一方面以及各种可能的实现方式中所描述的步骤,详见前述对前述一方面以及各种可能的实现方式中的说明。另一方面,本专利技术实施例提供一种推荐服务器,该推荐服务器包括:处理器、存储器;存储器用于存储指令;处理器用于执行存储器中的指令,使得推荐服务器执行如前述一方面中任一项的方法。另一方面,本专利技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。在本专利技术实施例中,首先从推荐服务器中预先存储的网络图中获取到第一节点,网络图中包括有N个节点,N个节点中存在通过边连接的相邻节点,第一节点属于N个节点,然后从第一节点开始,以预设的停止概率在网络图中进行ω条的随机游走,当ω条的随机游走停止在M个节点上时,则根据ω和M个节点分别对应的随机游走停止条数分别确定M个节点分别对应的个性化网页排名PPR,M个节点属于N个节点,M的取值为正整数,且M小于或等于ω,最后根据M个节点分别对应的PPR从M个节点中确定出第二节点,并向第一节点推荐第二节点。本专利技术实施例中随机游走的每一步采用预设的停止概率来完成,在网络图的每个节点上做多次随机游走,在ω个随机游走停止时估计网络图中第一节点分别与M个节点之间的PPR,并根据M个节点分别对应的PPR确定出第二节点,并向第一节点推荐第二节点。本专利技术实施例不再采用幂迭代的方法,因此可以减少对存储空间的占用,由于本申请实施例中采用以预设的停止概率在所述网络图中进行ω条的随机游走,因此可以更快速的实现随机游走的停止,在随机游走停止就可以计算出M个节点分别对应的PPR,因此简化PPR的计算复杂度,提高PPR的运行效率,提高了推荐效率。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的网络图中的节点推荐方法的流程方框示意图;图2为本专利技术实施例提供的Monte-Carlo方法求PPR的计算流程示意图;图3为本专利技术实施例提供的网络图中相邻节点通过边连接的示意图;图4为本专利技术实施例提供的基于邻接表进行随机游走的实现示意图;图5为本专利技术实施例中增加吞吐量的示意图;图6为本专利技术实施例提供的PPR计算方法与现有技术中GraphX计算PPR的运行时间对比示意图;图7为本专利技术实施例提供的PPR计算方法对于排序质量指标和精确度指标在不同的公开数据集上的示意图;图8-a为本专利技术实施例提供的一种推荐服务器的组成结构示意图;图8-b为本专利技术实施例提供的一种随机游走模块的组成结构示意图;图8-c为本专利技术实施例提供的一种邻居节点集合确定单元的组成结构示意图;图8-d为本专利技术实施例提供的另一种随机游走模块的组成结构示意图;图8-e为本专利技术实施例提供的一种目标节点确定单元的组成结构示意图;图8-f为本专利技术实施例提供的另一种随机游走模块的组成结构示意图;图9为本专利技术实施例提供的网络图中的节点推荐方法应用于服务器的组成结构示意图。具体实施方式本专利技术实施例提供了一种网络图中的节点推荐方法和服务器以及存储介质,用于减少对存储空间的占用,简化PPR的计算复杂度,提高了推荐效率。为使得本专利技术的专利技术目的、特征、优点能够更加的明显和易懂,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本专利技术一部分实施例,而非全部实施例。基于本专利技术中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些本文档来自技高网...

【技术保护点】
1.一种网络图中的节点推荐方法,其特征在于,包括:从推荐服务器中预先存储的网络图中获取到第一节点,所述网络图中包括有N个节点,所述N个节点中存在通过边连接的相邻节点,所述N的取值为正整数,所述第一节点属于所述N个节点;从所述第一节点开始,以预设的停止概率在所述网络图中进行ω条的随机游走,所述ω的取值为正整数;当所述ω条的随机游走停止在M个节点上时,则根据所述ω和所述M个节点分别对应的随机游走停止条数分别确定所述M个节点分别对应的个性化网页排名PPR,所述M个节点属于所述N个节点,所述M的取值为正整数,且所述M小于或等于所述ω;根据所述M个节点分别对应的PPR从所述M个节点中确定出第二节点,并向所述第一节点推荐所述第二节点。

【技术特征摘要】
1.一种网络图中的节点推荐方法,其特征在于,包括:从推荐服务器中预先存储的网络图中获取到第一节点,所述网络图中包括有N个节点,所述N个节点中存在通过边连接的相邻节点,所述N的取值为正整数,所述第一节点属于所述N个节点;从所述第一节点开始,以预设的停止概率在所述网络图中进行ω条的随机游走,所述ω的取值为正整数;当所述ω条的随机游走停止在M个节点上时,则根据所述ω和所述M个节点分别对应的随机游走停止条数分别确定所述M个节点分别对应的个性化网页排名PPR,所述M个节点属于所述N个节点,所述M的取值为正整数,且所述M小于或等于所述ω;根据所述M个节点分别对应的PPR从所述M个节点中确定出第二节点,并向所述第一节点推荐所述第二节点。2.根据权利要求1所述的方法,其特征在于,所述从所述第一节点开始,以预设的停止概率在所述网络图中进行ω条的随机游走,包括:根据所述第一节点在所述网络图中的位置确定出所述第一节点对应的邻居节点集合;从所述第一节点开始进行第i条的随机游走,按照相邻节点之间的边的权重确定随机游走到所述第一节点对应的邻居节点集合中的第三节点,所述第三节点属于所述N个节点,所述i为大于0且小于等于所述ω的正整数;根据所述第三节点在所述网络图中的位置确定出所述第三节点对应的邻居节点集合;按照从所述第一节点随机游走到所述第三节点的方式,从所述第三节点继续进行所述第i条的随机游走,直至所述第i条的随机游走结束;按照所述第i条的随机游走的方式进行其余的ω-1条的随机游走,直至所述ω条的随机游走全部结束。3.根据权利要求2所述的方法,其特征在于,所述根据所述第三节点在所述网络图中的位置确定出所述第三节点对应的邻居节点集合,包括:使用所述第一节点对第一二元组集合进行哈希分割,得到邻居表二元组集合,所述第一二元组集合包括:所述第一节点和所述第一节点对应的邻居节点集合;使用所述第三节点对第二二元组集合进行哈希分割,得到第三二元组集合,所述第二二元组集合包括:所述第三节点和所述第一节点;根据所述第三二元组集合和所述邻居表二元组集合进行聚合或者消息传递,得到所述第三节点对应的邻居节点集合。4.根据权利要求2所述的方法,其特征在于,所述从所述第一节点开始,以预设的停止概率在所述网络图中进行ω条的随机游走,还包括:当所述第i条的随机游走结束时,使用检查点的方式将所述第i条的随机游走产生的随机游走结果存储到分布式文件系统HDFS中;当所述ω条的随机游走全部结束时,将所述ω条的随机游走产生的随机游走结果聚合起来,得到所述ω条的随机游走对应的最终结果数据。5.根据权利要求2所述的方法,其特征在于,所述从所述第一节点开始进行第i条的随机游走,按照相邻节点之间的边的权重确定随机游走到所述第一节点对应的邻居节点集合中的第三节点,包括:对所述第一节点对应的邻居节点集合中所有相邻节点之间的边的原权重值进行取值重新分配,得到所述第一节点对应的邻居节点集合中所有相邻节点之间的边的新权重值;获取所述第一节点对应的邻居节点集合中所有相邻节点之间的任意一条边的新权重值和所述任意一条边对应的别名,所述任意一条边对应的别名为所述第一节点对应的邻居节点集合中相邻节点之间的一条边;获取从所述第一节点对应的邻居节点集合中所有相邻节点之间的边中随机选择的一条边;根据抽样出的随机数与所述随机选择的一条边的新权重值之间的数值关系,确定所述随机选择的一条边或者所述随机选择的一条边对应的别名为抽样选中的边;根据所述抽样选中的边对应的权重从所述第一节点对应的邻居节点集合中确定出所述第三节点。6.根据权利要求5所述的方法,其特征在于,所述对所述第一节点对应的邻居节点集合中所有相邻节点之间的边的原权重值进行取值重新分配,包括:确定所述第一节点的邻居节点个数超过预设的个数阈值,所述个数阈值由所述网络图中的相邻节点个数的最大值确定;将所述第一节点对应的邻居节点集合拆分为多个邻居节点子集合;针对每个邻居节点子集合中所有相邻节点之间的边的原权重值进行取值重新分配。7.根据权利要求1所述的方法,其特征在于,所述从所述第一节点开始,以预设的停止概率在所述网络图中进行ω条的随机游走,包括:从所述第一节点开始,同时进行c个随机游走,其中,所述c满足如下条件:1≤c≤ω;在进行c个随机游走时,对于所述c个随机游走中的每一条随机游走,如果在当前步里以预设的停止概率没有停止,则继续进行下一步的随机游走;在所述c个随机游走完成当前步之后,从所述第一节点开始又启动新的c个随机游走,直到所述第一节点启动了ω个随机游走。8.一种推荐服务器,其特征在于,包括:节点确定模块,用于从推荐服务器中预先存储的网络图中获取到第一节点,所述网络图中包括有N个节点,所述N个节点中存在通过边连接的相邻节点,所述N的...

【专利技术属性】
技术研发人员:林文清程序赵增
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1