基于图的推荐方法、装置、电子设备及存储介质制造方法及图纸

技术编号:21952604 阅读:25 留言:0更新日期:2019-08-24 17:46
本申请实施例公开了一种基于图的推荐方法、装置、电子设备及存储介质,该方法包括:根据用户历史行为,构建用户与物品的二分图,所述用户和物品为所述二分图的节点;根据所述二分图,确定所述二分图中的节点随机游走得到稳态图时的转移矩阵,所述转移矩阵的阶数为所述二分图中节点的数量;根据所述转移矩阵,采用并行化牛顿迭代法确定各个节点之间的相关性;根据所述相关性,确定为待推荐用户推荐的物品。本申请实施例由于采用并行化牛顿迭代法可以进行并行计算,从而使大规模二分图的求解变成可能,提高了二分图的求解速度,进而可以提高推荐效率。

Graph-based recommendation methods, devices, electronic devices and storage media

【技术实现步骤摘要】
基于图的推荐方法、装置、电子设备及存储介质
本申请实施例涉及计算机
,特别是涉及一种基于图的推荐方法、装置、电子设备及存储介质。
技术介绍
推荐作为解决信息过载和挖掘用户潜在需求的技术手段,在各大互联网公司中发挥着重要的作用。基于图的推荐是推荐算法中的一个重要分支,在电子商务平台上所有用户的行为记录可以用一个二分图来描述,基于图的推荐通过求解该二分图就能最终得到每个用户的推荐结果。PersonalRank算法是常用的基于图模型的推荐算法,在利用PersonalRank算法进行推荐的时候需要先将用户与物品间的行为表示为一个二分图,再利用广义最小余量法(Generalizedminimalresidualmethod-GMRES)计算图最终的稳态得到任意两节点间的相关性,通过节点间的相关性便可以为每个用户推荐最相关的商品。在用户每天的活跃量较大时,如每天的活跃量超过10000,这些用户与物品交互产生了海量的行为数据,因此得到的二分图是具有上万节点的稀疏连接图。对于如此大规模的二分图,传统的PersonalRank算法基于广义最小余量法求解速度较慢,甚至无法对其进行求解。
技术实现思路
本申请实施例提供一种基于图的推荐方法、装置、电子设备及存储介质,有助于提高二分图的求解速度。为了解决上述问题,第一方面,本申请实施例提供了一种基于图的推荐方法,包括:根据用户历史行为,构建用户与物品的二分图,所述用户和物品为所述二分图的节点;根据所述二分图,确定所述二分图中的节点随机游走得到稳态图时的转移矩阵,所述转移矩阵的阶数为所述二分图中节点的数量;根据所述转移矩阵,采用并行化牛顿迭代法确定各个节点之间的相关性;根据所述相关性,确定为待推荐用户推荐的物品。可选的,所述根据所述转移矩阵,采用并行化牛顿迭代法确定各个节点之间的相关性的步骤,包括:根据所述转移矩阵和预设概率,确定所述转移矩阵对应的转置矩阵与所述预设概率相乘的结果矩阵,所述预设概率为每个节点随机游走到下一个节点的概率;确定单位矩阵与所述结果矩阵的差矩阵;根据所述差矩阵,构建所述差矩阵对应的初始化近似逆矩阵;基于所述初始化近似逆矩阵,根据牛顿迭代公式对前一次迭代矩阵进行并行迭代,得到本次迭代矩阵;根据所述本次迭代矩阵和所述差矩阵,确定所述本次迭代矩阵的误差;若所述误差不满足终止条件,则将所述本次迭代矩阵作为前一次迭代矩阵,继续进行上述的牛顿迭代操作,直至本次迭代矩阵满足所述终止条件;根据满足所述终止条件的本次迭代矩阵,确定各个节点之间的相关性。可选的,所述牛顿迭代公式表示如下:Xm=Xm-1(2I-Xm-1)其中,Xm表示第m次迭代时的迭代矩阵,Xm-1表示第m-1次迭代时的迭代矩阵。可选的,所述根据牛顿迭代公式对前一次迭代矩阵进行并行迭代,得到本次迭代矩阵的步骤,包括:根据预设拆分规则,对本次迭代矩阵的待计算元素进行拆分,得到待计算的多个矩阵块;根据所述牛顿迭代公式,将与所述多个矩阵块对应的前一次迭代矩阵中的计算元素分别发送给多个计算节点,以指示所述多个计算节点根据所述计算元素对各自对应的矩阵块进行计算;获取所述多个计算节点计算得到的多个矩阵块;根据所述预设拆分规则,将所述多个矩阵块拼接为所述本次迭代矩阵。可选的,述根据牛顿迭代公式对前一次迭代矩阵进行并行迭代,得到本次迭代矩阵的步骤,包括:根据所述牛顿迭代公式,采用Spark计算引擎对所述前一次迭代矩阵进行并行迭代,得到所述本次迭代矩阵。可选的,所述根据所述差矩阵,构建所述差矩阵的初始化近似逆矩阵的步骤,包括:提取所述差矩阵中的对角线元素,并对所述对角线元素取倒数,以构成对角矩阵;将所述对角矩阵作为所述初始化近似逆矩阵。可选的,所述根据所述相关性,确定为待推荐用户推荐的物品的步骤,包括:根据所述相关性,确定所述待推荐用户与物品的相关性;按照从高到低的顺序,对所述待推荐用户与物品的相关性进行排序;根据所述排序,确定为所述待推荐用户推荐的物品。第二方面,本申请实施例提供了一种基于图的推荐装置,包括:二分图构建模块,用于根据用户历史行为,构建用户与物品的二分图,所述用户和物品为所述二分图的节点;转移矩阵确定模块,用于根据所述二分图,确定所述二分图中的节点随机游走得到稳态图时的转移矩阵,所述转移矩阵的阶数为所述二分图中节点的数量;相关性确定模块,用于根据所述转移矩阵,采用并行化牛顿迭代法确定各个节点之间的相关性;推荐物品确定模块,用于根据所述相关性,确定为待推荐用户推荐的物品。可选的,所述相关性确定模块包括:结果矩阵确定单元,用于根据所述转移矩阵和预设概率,确定所述转移矩阵对应的转置矩阵与所述预设概率相乘的结果矩阵,所述预设概率为每个节点随机游走到下一个节点的概率;差矩阵确定单元,用于确定单位矩阵与所述结果矩阵的差矩阵;初始化矩阵构建单元,用于根据所述差矩阵,构建所述差矩阵对应的初始化近似逆矩阵;牛顿迭代单元,用于基于所述初始化近似逆矩阵,根据牛顿迭代公式对前一次迭代矩阵进行并行迭代,得到本次迭代矩阵;误差确定单元,用于根据所述本次迭代矩阵和所述差矩阵,确定所述本次迭代矩阵的误差;迭代终止判断单元,用于若所述误差不满足终止条件,则将所述本次迭代矩阵作为前一次迭代矩阵,继续进行上述的牛顿迭代操作,直至本次迭代矩阵满足所述终止条件;相关性确定单元,用于根据满足所述终止条件的本次迭代矩阵,确定各个节点之间的相关性。可选的,所述牛顿迭代公式表示如下:Xm=Xm-1(2I-Xm-1)其中,Xm表示第m次迭代时的迭代矩阵,Xm-1表示第m-1次迭代时的迭代矩阵。可选的,所述牛顿迭代单元具体用于:根据预设拆分规则,对本次迭代矩阵的待计算元素进行拆分,得到待计算的多个矩阵块;根据所述牛顿迭代公式,将与所述多个矩阵块对应的前一次迭代矩阵中的计算元素分别发送给多个计算节点,以指示所述多个计算节点根据所述计算元素对各自对应的矩阵块进行计算;获取所述多个计算节点计算得到的多个矩阵块;根据所述预设拆分规则,将所述多个矩阵块拼接为所述本次迭代矩阵。可选的,所述牛顿迭代单元具体用于:根据所述牛顿迭代公式,采用Spark计算引擎对所述前一次迭代矩阵进行并行迭代,得到所述本次迭代矩阵。可选的,所述初始化矩阵构建单元具体用于:提取所述差矩阵中的对角线元素,并对所述对角线元素取倒数,以构成对角矩阵;将所述对角矩阵作为所述初始化近似逆矩阵。可选的,所述推荐物品确定模块具体用于:根据所述相关性,确定所述待推荐用户与物品的相关性;按照从高到低的顺序,对所述待推荐用户与物品的相关性进行排序;根据所述排序,确定为所述待推荐用户推荐的物品。第三方面,本申请实施例还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请实施例所述的基于图的推荐方法。第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时本申请实施例公开的基于图的推荐方法的步骤。本申请实施例公开的基于图的推荐方法、装置、电子设备及存储介质,通过根据用户历史行为构建用户与物品的二分图,确定二分图中的节点随机游走得到稳态图时的转移矩阵,根据转移矩阵采用并行化牛顿迭代法确定各个节点之本文档来自技高网...

【技术保护点】
1.一种基于图的推荐方法,其特征在于,包括:根据用户历史行为,构建用户与物品的二分图,所述用户和物品为所述二分图的节点;根据所述二分图,确定所述二分图中的节点随机游走得到稳态图时的转移矩阵,所述转移矩阵的阶数为所述二分图中节点的数量;根据所述转移矩阵,采用并行化牛顿迭代法确定各个节点之间的相关性;根据所述相关性,确定为待推荐用户推荐的物品。

【技术特征摘要】
1.一种基于图的推荐方法,其特征在于,包括:根据用户历史行为,构建用户与物品的二分图,所述用户和物品为所述二分图的节点;根据所述二分图,确定所述二分图中的节点随机游走得到稳态图时的转移矩阵,所述转移矩阵的阶数为所述二分图中节点的数量;根据所述转移矩阵,采用并行化牛顿迭代法确定各个节点之间的相关性;根据所述相关性,确定为待推荐用户推荐的物品。2.根据权利要求1所述的方法,其特征在于,所述根据所述转移矩阵,采用并行化牛顿迭代法确定各个节点之间的相关性的步骤,包括:根据所述转移矩阵和预设概率,确定所述转移矩阵对应的转置矩阵与所述预设概率相乘的结果矩阵,所述预设概率为每个节点随机游走到下一个节点的概率:确定单位矩阵与所述结果矩阵的差矩阵;根据所述差矩阵,构建所述差矩阵对应的初始化近似逆矩阵;基于所述初始化近似逆矩阵,根据牛顿迭代公式对前一次迭代矩阵进行并行迭代,得到本次迭代矩阵;根据所述本次迭代矩阵和所述差矩阵,确定所述本次迭代矩阵的误差;若所述误差不满足终止条件,则将所述本次迭代矩阵作为前一次迭代矩阵,继续进行上述的牛顿迭代操作,直至本次迭代矩阵满足所述终止条件;根据满足所述终止条件的本次迭代矩阵,确定各个节点之间的相关性。3.根据权利要求2所述的方法,其特征在于,所述牛顿迭代公式表示如下:Xm=Xm-1(2I-Xm-1)其中,Xm表示第m次迭代时的迭代矩阵,Xm-1表示第m-1次迭代时的迭代矩阵。4.根据权利要求3所述的方法,其特征在于,所述根据牛顿迭代公式对前一次迭代矩阵进行并行迭代,得到本次迭代矩阵的步骤,包括:根据预设拆分规则,对本次迭代矩阵的待计算元素进行拆分,得到待计算的多个矩阵块;根据所述牛顿迭代公式,将与所述多个矩阵块对应的前一次迭代矩阵中的计算元素分别发送给多个计算节点,以指示所述多个计算节点根据所述计算元素对各自对应的矩阵...

【专利技术属性】
技术研发人员:陈文帅刘永威邹旭华
申请(专利权)人:北京三快在线科技有限公司
类型:发明
国别省市:北京,11

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

1