基于分布式系统获取关系网络的节点序列的方法和装置制造方法及图纸

技术编号:20841927 阅读:34 留言:0更新日期:2019-04-13 08:40
本说明书实施例提供一种基于分布式系统获取关系网络的节点序列的方法和装置,所述方法包括:获取多个节点中的多个第一节点各自具有的多个出度值,并将获取的数据发送给多个服务器中的至少一个第一指定服务器;从多个服务器接收累加矩阵;获取至少一个第一节点各自的各个相邻节点的节点标识和类型;计算至少一个第一节点各自的各个相邻节点的节点标识在边向量中的排列位置,以获取边向量的部分元素,并将边向量的部分元素发送给多个服务器中的至少一个第二指定服务器;从多个服务器接收所述边向量;以及根据预定路径顺序地分别随机获取多个节点标识作为所述节点序列,其中,所述预定路径限定所述多个节点标识分别对应的各个节点的类型。

【技术实现步骤摘要】
基于分布式系统获取关系网络的节点序列的方法和装置
本说明书实施例涉及机器学习
,更具体地,涉及一种基于分布式系统获取关系网络的节点序列的方法和装置。
技术介绍
在互联网的推荐场景中,有大量的图计算场景,比如用户个性化推荐任务:基于用户的历史行为,建立起关系网络。根据关系网络,可通过随机游走算法确定关系网络的节点序列,挖掘出用户可能想要或者购买的商品,提高用户的满意度和购买意愿。因此,随机游走算法作为图计算最基础和重要的一环,在数据挖掘中起到了关键性的作用。在现有技术中,随机游走算法通常在单机中执行,其中,一种随机游走算法将用户和商品当作相同的节点去处理,形成单一的网络。然而,随着互联网的发展,用户和商品数量都在爆炸式增长,其规模甚至达到几十亿的级别,单机版的元路径随机游走算法已经不能满足如今的需求。因此,需要一种更有效的获取关系网络的节点序列的方案。
技术实现思路
本说明书实施例旨在提供一种更有效的基于分布式系统获取关系网络的节点序列的方案,以解决现有技术中的不足。为实现上述目的,本说明书一个方面提供一种基于分布式系统获取关系网络的节点序列的方法,所述分布式系统包括多个服务器和多个工作机,所述关系网络包括相互连接的多个节点,其中,每个节点具有节点标识、至少一种类型中的一种类型、与各个类型分别对应的多个出度值、以及相邻节点,所述方法在所述多个工作机中的第一工作机中执行,包括:获取所述多个节点中的多个第一节点各自具有的多个出度值,并将获取的数据发送给所述多个服务器中的至少一个第一指定服务器;从所述多个服务器接收累加矩阵,所述累加矩阵示出:对于所述多个节点中的每个节点,对于所述至少一种类型中的每一种类型,节点标识在该节点之前的各个节点的出度值之和;获取所述至少一个第一节点各自的各个相邻节点的节点标识和类型;基于所述至少一个第一节点各自的各个相邻节点的节点标识和类型、及所述累加矩阵,计算所述至少一个第一节点各自的各个相邻节点的节点标识在边向量中的排列位置,以获取所述边向量的部分元素,并将所述边向量的部分元素发送给所述多个服务器中的至少一个第二指定服务器,其中,所述边向量包括与所述至少一种类型分别对应的至少一个部分,每个所述部分中顺序排列有所述多个节点的各自的相应类型的相邻节点的节点标识;从所述多个服务器接收所述边向量;以及基于所述多个节点各自的类型、所述累加矩阵和所述边向量,根据预定路径顺序地分别随机获取多个节点标识作为所述节点序列,其中,所述预定路径限定所述多个节点标识分别对应的各个节点的类型。在一个实施例中,顺序地分别随机获取多个节点标识作为所述节点序列包括,根据预定路径,从所述多个节点中的第一预定类型的多个节点各自的节点标识中随机获取一个节点标识,作为节点序列的第一节点标识。在一个实施例中,顺序地分别随机获取多个节点标识作为所述节点序列包括:根据预定路径,基于所述累加矩阵,获取所述第一节点标识对应的节点的第二预定类型的出度值;基于所述出度值,随机获取第一整数;以及基于所述第一整数、所述第二预定类型、所述第一节点标识、所述累加矩阵和所述边向量,计算所述边向量中的排列位置,从而获取所述排列位置对应的节点标识作为第二节点标识。在一个实施例中,所述关系网络为二部图网络,所述至少一种类型包括用户类型和商品类型。在一个实施例中,所述累加矩阵的第i行第j列的元素为节点标识分别为0到j-1的各个节点的类型i的出度值之和,其中,i和j都从0开始计数。在一个实施例中,在所述边向量中,节点标识为j的节点的类型i的至少一个相邻节点在所述边向量中的排列位置为所述边向量中从第一位置开始的至少一个位置,并且所述至少一个相邻节点各自的节点标识以从小到大的顺序排列在所述至少一个位置中,其中,所述第一位置在边向量中的列数等于所述边向量中的与类型i对应的部分的起始列数加上所述累加矩阵中第i行第j列的元素值,其中,所述边向量中的列数从0开始计数。在一个实施例中,根据预定路径顺序地分别随机获取多个节点标识在以下任一种情况中结束:所述多个节点标识的数目达到预定数目;无法找到下一个节点标识。在一个实施例中,根据预定路径顺序地分别随机获取多个节点标识的步骤循环多次,所述方法还包括,将通过预定循环次数获取的预定行数的节点序列写入数据库。在一个实施例中,所述根据预定路径顺序地分别随机获取多个节点标识的步骤在以下情况下停止循环:通过所述多个工作机分别获取的节点序列的行数的总和达到预定值。在一个实施例中,基于所述多个节点各自的类型、所述累加矩阵和所述边向量,根据预定路径顺序地分别随机获取多个节点标识作为所述节点序列包括,在所述第一工作机丢失内存数据的情况中,从所述多个服务器接收所述累加矩阵和所述边向量。本说明书另一方面提供一种基于分布式系统获取关系网络的节点序列的方法,所述分布式系统包括多个服务器和多个工作机,所述关系网络包括相互连接的多个节点,其中,每个节点具有节点标识、至少一种类型中的一种类型、与各个类型分别对应的多个出度值、以及相邻节点,所述方法在所述多个服务器中的第一服务器中执行,包括:从至少一个所述工作机接收与所述多个节点中的指定的多个第二节点分别对应的多个出度值;通过从所述多个服务器中的其它服务器接收相应的出度值数据,计算累加矩阵的至少部分元素,并将所述累加矩阵的至少部分元素发送给每个所述工作机,其中,所述累加矩阵示出:对于所述多个节点中的每个节点,对于所述至少一种类型中的每一种类型,节点标识在该节点之前的各个节点的出度值之和;从至少一个所述工作机接收边向量的部分元素,其中,所述边向量包括与所述至少一种类型分别对应的至少一个部分,每个所述部分中顺序排列有所述多个节点的各自的相应类型的相邻节点的节点标识;以及将所述边向量的部分元素发送给每个所述工作机。在一个实施例中,所述方法还包括,在计算累加矩阵的至少部分元素之后,将所述累加矩阵的至少部分元素发送给所述多个服务器中的至少一个其它服务器,以对该累加矩阵的至少部分元素进行备份。在一个实施例中,所述方法还包括,在获取所述边向量的部分元素之后,将所述边向量的部分元素发送给所述多个服务器中的至少一个其它服务器,以对所述边向量的部分元素进行备份。在一个实施例中,所述方法还包括,在将所述边向量的部分元素发送给每个所述工作机之前,从所述多个服务器的全部其它服务器接收相应的边向量的部分元素,以获取所述边向量,其中,将所述边向量的部分元素发送给每个所述工作机包括,将所述边向量发送给每个所述工作机。在一个实施例中,所述方法还包括,在将所述边向量的部分元素发送给每个所述工作机之后,响应于所述工作机的请求,将所述累加矩阵的至少部分元素和所述边向量的部分元素发送给相应的工作机。本说明书另一方面提供一种基于分布式系统获取关系网络的节点序列的装置,所述分布式系统包括多个服务器和多个工作机,所述关系网络包括相互连接的多个节点,其中,每个节点具有节点标识、至少一种类型中的一种类型、与各个类型分别对应的多个出度值、以及相邻节点,所述装置在所述多个工作机中的第一工作机中实施,包括:第一获取单元,配置为,获取所述多个节点中的多个第一节点各自具有的多个出度值,并将获取的数据发送给所述多个服务器中的至少一个第一指定服务器;第一本文档来自技高网...

【技术保护点】
1.一种基于分布式系统获取关系网络的节点序列的方法,所述分布式系统包括多个服务器和多个工作机,所述关系网络包括相互连接的多个节点,其中,每个节点具有节点标识、至少一种类型中的一种类型、与各个类型分别对应的多个出度值、以及相邻节点,所述方法在所述多个工作机中的第一工作机中执行,包括:获取所述多个节点中的多个第一节点各自具有的多个出度值,并将获取的数据发送给所述多个服务器中的至少一个第一指定服务器;从所述多个服务器接收累加矩阵,所述累加矩阵示出:对于所述多个节点中的每个节点,对于所述至少一种类型中的每一种类型,节点标识在该节点之前的各个节点的出度值之和;获取所述至少一个第一节点各自的各个相邻节点的节点标识和类型;基于所述至少一个第一节点各自的各个相邻节点的节点标识和类型、及所述累加矩阵,计算所述至少一个第一节点各自的各个相邻节点的节点标识在边向量中的排列位置,以获取所述边向量的部分元素,并将所述边向量的部分元素发送给所述多个服务器中的至少一个第二指定服务器,其中,所述边向量包括与所述至少一种类型分别对应的至少一个部分,每个所述部分中顺序排列有所述多个节点的各自的相应类型的相邻节点的节点标识;从所述多个服务器接收所述边向量;以及基于所述多个节点各自的类型、所述累加矩阵和所述边向量,根据预定路径顺序地分别随机获取多个节点标识作为所述节点序列,其中,所述预定路径限定所述多个节点标识分别对应的各个节点的类型。...

【技术特征摘要】
1.一种基于分布式系统获取关系网络的节点序列的方法,所述分布式系统包括多个服务器和多个工作机,所述关系网络包括相互连接的多个节点,其中,每个节点具有节点标识、至少一种类型中的一种类型、与各个类型分别对应的多个出度值、以及相邻节点,所述方法在所述多个工作机中的第一工作机中执行,包括:获取所述多个节点中的多个第一节点各自具有的多个出度值,并将获取的数据发送给所述多个服务器中的至少一个第一指定服务器;从所述多个服务器接收累加矩阵,所述累加矩阵示出:对于所述多个节点中的每个节点,对于所述至少一种类型中的每一种类型,节点标识在该节点之前的各个节点的出度值之和;获取所述至少一个第一节点各自的各个相邻节点的节点标识和类型;基于所述至少一个第一节点各自的各个相邻节点的节点标识和类型、及所述累加矩阵,计算所述至少一个第一节点各自的各个相邻节点的节点标识在边向量中的排列位置,以获取所述边向量的部分元素,并将所述边向量的部分元素发送给所述多个服务器中的至少一个第二指定服务器,其中,所述边向量包括与所述至少一种类型分别对应的至少一个部分,每个所述部分中顺序排列有所述多个节点的各自的相应类型的相邻节点的节点标识;从所述多个服务器接收所述边向量;以及基于所述多个节点各自的类型、所述累加矩阵和所述边向量,根据预定路径顺序地分别随机获取多个节点标识作为所述节点序列,其中,所述预定路径限定所述多个节点标识分别对应的各个节点的类型。2.根据权利要求1所述的方法,其中,顺序地分别随机获取多个节点标识作为所述节点序列包括,根据预定路径,从所述多个节点中的第一预定类型的多个节点各自的节点标识中随机获取一个节点标识,作为节点序列的第一节点标识。3.根据权利要求2所述的方法,其中,顺序地分别随机获取多个节点标识作为所述节点序列包括:根据预定路径,基于所述累加矩阵,获取所述第一节点标识对应的节点的第二预定类型的出度值;基于所述出度值,随机获取第一整数;以及基于所述第一整数、所述第二预定类型、所述第一节点标识、所述累加矩阵和所述边向量,计算所述边向量中的排列位置,从而获取所述排列位置对应的节点标识作为第二节点标识。4.根据权利要求1所述的方法,其中,所述关系网络为二部图网络,所述至少一种类型包括用户类型和商品类型。5.根据权利要求1所述的方法,其中,所述累加矩阵的第i行第j列的元素为节点标识分别为0到j-1的各个节点的类型i的出度值之和,其中,i和j都从0开始计数。6.根据权利要求5所述的方法,其中,在所述边向量中,节点标识为j的节点的类型i的至少一个相邻节点在所述边向量中的排列位置为所述边向量中从第一位置开始的至少一个位置,并且所述至少一个相邻节点各自的节点标识以从小到大的顺序排列在所述至少一个位置中,其中,所述第一位置在边向量中的列数等于所述边向量中的与类型i对应的部分的起始列数加上所述累加矩阵中第i行第j列的元素值,其中,所述边向量中的列数从0开始计数。7.根据权利要求1所述的方法,其中,根据预定路径顺序地分别随机获取多个节点标识在以下任一种情况中结束:所述多个节点标识的数目达到预定数目;无法找到下一个节点标识。8.根据权利要求1所述的方法,其中,根据预定路径顺序地分别随机获取多个节点标识的步骤循环多次,所述方法还包括,将通过预定循环次数获取的预定行数的节点序列写入数据库。9.根据权利要求8所述的方法,其中,所述根据预定路径顺序地分别随机获取多个节点标识的步骤在以下情况下停止循环:通过所述多个工作机分别获取的节点序列的行数的总和达到预定值。10.根据权利要求1所述的方法,其中,基于所述多个节点各自的类型、所述累加矩阵和所述边向量,根据预定路径顺序地分别随机获取多个节点标识作为所述节点序列包括,在所述第一工作机丢失内存数据的情况中,从所述多个服务器接收所述累加矩阵和所述边向量。11.一种基于分布式系统获取关系网络的节点序列的方法,所述分布式系统包括多个服务器和多个工作机,所述关系网络包括相互连接的多个节点,其中,每个节点具有节点标识、至少一种类型中的一种类型、与各个类型分别对应的多个出度值、以及相邻节点,所述方法在所述多个服务器中的第一服务器中执行,包括:从至少一个所述工作机接收与所述多个节点中的指定的多个第二节点分别对应的多个出度值;通过从所述多个服务器中的其它服务器接收相应的出度值数据,计算累加矩阵的至少部分元素,并将所述累加矩阵的至少部分元素发送给每个所述工作机,其中,所述累加矩阵示出:对于所述多个节点中的每个节点,对于所述至少一种类型中的每一种类型,节点标识在该节点之前的各个节点的出度值之和;从至少一个所述工作机接收边向量的部分元素,其中,所述边向量包括与所述至少一种类型分别对应的至少一个部分,每个所述部分中顺序排列有所述多个节点的各自的相应类型的相邻节点的节点标识;以及将所述边向量的部分元素发送给每个所述工作机。12.根据权利要求11所述的方法,还包括,在计算累加矩阵的至少部分元素之后,将所述累加矩阵的至少部分元素发送给所述多个服务器中的至少一个其它服务器,以对该累加矩阵的至少部分元素进行备份。13.根据权利要求11所述的方法,还包括,在获取所述边向量的部分元素之后,将所述边向量的部分元素发送给所述多个服务器中的至少一个其它服务器,以对所述边向量的部分元素进行备份。14.根据权利要求11所述的方法,还包括,在将所述边向量的部分元素发送给每个所述工作机之前,从所述多个服务器的全部其它服务器接收相应的边向量的部分元素,以获取所述边向量,其中,将所述边向量的部分元素发送给每个所述工作机包括,将所述边向量发送给每个所述工作机。15.根据权利要求11所述的方法,还包括,在将所述边向量的部分元素发送给每个所述工作机之后,响应于所述工作机的请求,将所述累加矩阵的至少部分元素和所述边向量的部分元素发送给相应的工作机。16.一种基于分布式系统获取关系网络的节点序列的装置,所述分布式系统包括多个服务器和多个工作机,所述关系网络包括相互连接的多个节点,其中,每个节点具有节点标识、至少一种...

【专利技术属性】
技术研发人员:杨新星周俊李小龙
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1