CN110162696A - 基于图的推荐方法、装置、电子设备及存储介质 - Google Patents
基于图的推荐方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110162696A CN110162696A CN201910290223.9A CN201910290223A CN110162696A CN 110162696 A CN110162696 A CN 110162696A CN 201910290223 A CN201910290223 A CN 201910290223A CN 110162696 A CN110162696 A CN 110162696A
- Authority
- CN
- China
- Prior art keywords
- matrix
- node
- user
- iteration
- bipartite graph
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Strategic Management (AREA)
- Computing Systems (AREA)
- General Business, Economics & Management (AREA)
- Algebra (AREA)
- Marketing (AREA)
- Economics (AREA)
- Software Systems (AREA)
- Development Economics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种基于图的推荐方法、装置、电子设备及存储介质,该方法包括:根据用户历史行为,构建用户与物品的二分图,所述用户和物品为所述二分图的节点;根据所述二分图,确定所述二分图中的节点随机游走得到稳态图时的转移矩阵,所述转移矩阵的阶数为所述二分图中节点的数量;根据所述转移矩阵,采用并行化牛顿迭代法确定各个节点之间的相关性;根据所述相关性,确定为待推荐用户推荐的物品。本申请实施例由于采用并行化牛顿迭代法可以进行并行计算,从而使大规模二分图的求解变成可能,提高了二分图的求解速度,进而可以提高推荐效率。
Description
技术领域
本申请实施例涉及计算机技术领域,特别是涉及一种基于图的推荐方法、装置、电子设备及存储介质。
背景技术
推荐作为解决信息过载和挖掘用户潜在需求的技术手段,在各大互联网公司中发挥着重要的作用。基于图的推荐是推荐算法中的一个重要分支,在电子商务平台上所有用户的行为记录可以用一个二分图来描述,基于图的推荐通过求解该二分图就能最终得到每个用户的推荐结果。
Personal Rank算法是常用的基于图模型的推荐算法,在利用Personal Rank算法进行推荐的时候需要先将用户与物品间的行为表示为一个二分图,再利用广义最小余量法(Generalized minimal residual method-GMRES)计算图最终的稳态得到任意两节点间的相关性,通过节点间的相关性便可以为每个用户推荐最相关的商品。
在用户每天的活跃量较大时,如每天的活跃量超过10000,这些用户与物品交互产生了海量的行为数据,因此得到的二分图是具有上万节点的稀疏连接图。对于如此大规模的二分图,传统的Personal Rank算法基于广义最小余量法求解速度较慢,甚至无法对其进行求解。
发明内容
本申请实施例提供一种基于图的推荐方法、装置、电子设备及存储介质,有助于提高二分图的求解速度。
为了解决上述问题,第一方面,本申请实施例提供了一种基于图的推荐方法,包括:
根据用户历史行为,构建用户与物品的二分图,所述用户和物品为所述二分图的节点;
根据所述二分图,确定所述二分图中的节点随机游走得到稳态图时的转移矩阵,所述转移矩阵的阶数为所述二分图中节点的数量;
根据所述转移矩阵,采用并行化牛顿迭代法确定各个节点之间的相关性;
根据所述相关性,确定为待推荐用户推荐的物品。
可选的,所述根据所述转移矩阵,采用并行化牛顿迭代法确定各个节点之间的相关性的步骤,包括:
根据所述转移矩阵和预设概率,确定所述转移矩阵对应的转置矩阵与所述预设概率相乘的结果矩阵,所述预设概率为每个节点随机游走到下一个节点的概率;
确定单位矩阵与所述结果矩阵的差矩阵;
根据所述差矩阵,构建所述差矩阵对应的初始化近似逆矩阵;
基于所述初始化近似逆矩阵,根据牛顿迭代公式对前一次迭代矩阵进行并行迭代,得到本次迭代矩阵;
根据所述本次迭代矩阵和所述差矩阵,确定所述本次迭代矩阵的误差;
若所述误差不满足终止条件,则将所述本次迭代矩阵作为前一次迭代矩阵,继续进行上述的牛顿迭代操作,直至本次迭代矩阵满足所述终止条件;
根据满足所述终止条件的本次迭代矩阵,确定各个节点之间的相关性。
可选的,所述牛顿迭代公式表示如下:
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是本申请实施例一提供的一种基于图的推荐方法的流程图;
图2是本申请实施例中的构建的用户与物品的二分图的示意图;
图3是本申请实施例二提供的一种基于图的推荐方法的流程图;
图4是本申请实施例三提供的一种基于图的推荐装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
本实施例公开的一种基于图的推荐方法,如图1所示,该方法包括:步骤101至步骤104。
步骤101,根据用户历史行为,构建用户与物品的二分图,所述用户和物品为所述二分图的节点。
根据最近一段时间(如一个月)的用户历史行为,在二分图中将每个用户和物品都用一个节点进行表示,节点之间的连线表示用户对物品产生过行为(如点击行为、购买行为等)。
例如,用户历史行为中包括4个用户和4种物品,4个用户分别为A、B、C、D,4种物品分别为a、b、c、d、e,用户A对物品a、b、d产生过行为,用户B对物品a、c产生过行为,用户C对物品b、e产生过行为,用户D对物品c、d、e产生过行为,则将每个用户和物品都用一个节点进行表示,将用户对物品产生过的行为用节点之间的连线表示,构建的用户与物品的二分图如图2所示。
步骤102,根据所述二分图,确定所述二分图中的节点随机游走得到稳态图时的转移矩阵,所述转移矩阵的阶数为所述二分图中节点的数量。
将用户历史行为表示为二分图后,就可以基于二分图为用户进行推荐,那么给用户u推荐物品就可以转化为度量用户节点Vu和Vu没有直接边相连的节点在二分图上的相关性,相关性越高的物品在推荐列表上的权重就越高,推荐位置就越靠前。
二分图中节点之间的相关性主要取决于三个因素:两个节点之间的路径数、两个节点之间的路径长度及两个节点之间路径经过的节点。相关性高的节点一般有如下特征:两个节点有很多路径相连,连接两个节点之间的路径长度比较短,连接两个节点之间的路径不会经过出度比较大的节点。
基于上述相关性因素可以基于Personal Rank算法来计算二分图中节点之间的相关性。假设给用户u进行个性化推荐,从二分图中用户u对应的节点Vu开始游走,游走到一个节点时,首先按照预设概率α决定是继续游走,还是停止这次游走并从Vu节点开始重新游走。如果决定继续游走,那么就从当前节点指向的节点中按照均匀分布随机选择一个节点作为下次经过的节点,这样经过很多次的随机游走后,每个物品节点被访问到的概率就会收敛到一个数,这个数就是物品节点最终的访问概率,也可以称为用户节点与物品节点的相关性。用公式表达如下:
其中,u为待推荐的用户节点,PR(j)表示节点j的访问概率,α为预设概率,即表示随机游走的概率,out(i)表示节点i的出度,in(j)表示节点j的入度。
虽然Personal Rank算法可以通过随机游走得到每个节点的访问概率,但是,在为每个用户进行推荐时,都需要在整个用户物品二分图上进行迭代,直到整个图上的每个节点的PR值收敛,因此,时间复杂度非常高。
Personal Rank算法经过多次的迭代游走,使得各节点的重要度趋于稳定,根据转移矩阵,经过一次矩阵运算就可以直接得到系统的稳态,上述迭代公式的矩阵表示形式为:
v=(I-αMT)-1(1-α)vi
v∈Rn vj∈Rn M∈R(n)*(n)
其中,vi是第i个位置为1其余为0的n维向量(n等于二分图中节点的数量),i表示当前对图中的第i个节点进行推荐。常量M是n阶转移矩阵,M的值由构成的二分图的结构决定。参数α表示图中每个节点每次随机游走到下一个节点的概率。v即待求解n维向量,v中每个值表示该节点与第i个节点的相关性。根据上述表达式,只要求出逆矩阵(I-αMT)-1即可得到i取任意值时变量v的值。
根据用户和物品的二分图,可以通过如下公式得到二分图中的节点随机游走得到稳态图时的转移矩阵M:
其中,Mij表示转移矩阵M中第i行第j列的元素,out(i)表示节点i的出度。转移矩阵M的阶数为二分图中节点的数量,即用户节点的数量和物品节点的数量之和。
步骤103,根据所述转移矩阵,采用并行化牛顿迭代法确定各个节点之间的相关性。
其中,牛顿迭代法又称为牛顿-拉弗森方法(Newton-Raphson method),单变量下又称为切线法。它是一种在实数域和复数域上近似求解方程的方法。方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x)=0的根。用牛顿迭代法解非线性方程,是把非线性方程f(x)=0线性化的一种近似方法。
各个节点之间的相关性可以使用逆矩阵(I-αMT)-1表示,因此,可以根据转移矩阵求解逆矩阵(I-αMT)-1,即可得到各个节点之间的相关性。在求解逆矩阵(I-αMT)-1时,可以采用牛顿迭代法来进行迭代计算,在进行迭代时,只涉及到矩阵的乘法和加减法运算,而且由于矩阵中的每个元素的计算是独立的,不依赖于其他元素的计算结果,因此,可以对矩阵中的各个元素进行并行化计算,可以大大降低计算的复杂度,使大规模二分图的求解变成可能,大大提高计算速度。
步骤104,根据所述相关性,确定为待推荐用户推荐的物品。
在确定二分图中各个节点之间的相关性后,在为待推荐用户推荐物品时,可以提取出待推荐用户与物品的相关性,从而依据待推荐用户与物品的相关性,来为待推荐用户推荐相应的物品。在确定二分图中的各个节点之间的相关性后,还可以将节点之间的相关性作为用户与物品的相似度特征,用于训练其他的推荐模型,通过推荐模型确定最终的推荐结果。
在本申请的一些实施例中,所述根据所述相关性,确定为待推荐用户推荐的物品的步骤,包括:根据所述相关性,确定所述待推荐用户与物品的相关性;按照从高到低的顺序,对所述待推荐用户与物品的相关性进行排序;根据所述排序,确定为所述待推荐用户推荐的物品。按照从高到低的顺序,对待推荐用户与物品的相关性进行排序后,可以根据一次可推荐的物品数量,选取排序靠前的相应物品数量的物品,将该物品作为为待推荐用户推荐的物品,从而可以提高用户的兴趣度。
本申请实施例公开的基于图的推荐方法,通过根据用户历史行为构建用户与物品的二分图,确定二分图中的节点随机游走得到稳态图时的转移矩阵,根据转移矩阵采用并行化牛顿迭代法确定各个节点之间的相关性,从而根据相关性确定为待推荐用户推荐的物品,由于采用并行化牛顿迭代法可以进行并行计算,从而使大规模二分图的求解变成可能,提高了二分图的求解速度,进而可以提高推荐效率。
实施例二
本实施例公开的一种基于图的推荐方法,如图3所示,该方法包括:步骤301至步骤311。
步骤301,根据用户历史行为,构建用户与物品的二分图,所述用户和物品为所述二分图的节点。
步骤302,根据所述二分图,确定所述二分图中的节点随机游走得到稳态图时的转移矩阵,所述转移矩阵的阶数为所述二分图中节点的数量。
步骤203,根据所述转移矩阵和预设概率,确定所述转移矩阵对应的转置矩阵与所述预设概率相乘的结果矩阵,所述预设概率为每个节点随机游走到下一个节点的概率。
在进行牛顿迭代时,首先根据已知的转移矩阵M和预设概率α,计算转移矩阵M的转置矩阵MT与预设概率α相乘的结果矩阵αMT。
步骤304,确定单位矩阵与所述结果矩阵的差矩阵。
在本实施例中,单位矩阵的阶数与所述转移矩阵的阶数相同,从而单位矩阵与结果矩阵的阶数相同。计算单位矩阵I与所述结果矩阵αMT的差矩阵(I-αMT)。
步骤305,根据所述差矩阵,构建所述差矩阵对应的初始化近似逆矩阵。
令A=(I-αMT),目标是求矩阵A的逆矩阵,假设构建的初始化近似逆矩阵为X0,则构建差矩阵A的初始化近似逆矩阵X0时根据所述初始化近似逆矩阵X0要满足的如下初始化条件来进行构建:
||I-AX0||<1。
在本申请的一些实施例中,所述根据所述差矩阵,构建所述差矩阵的初始化近似逆矩阵的步骤,包括:提取所述差矩阵中的对角线元素,并对所述对角线元素取倒数,以构成对角矩阵;将所述对角矩阵作为所述初始化近似逆矩阵。因为待求逆矩阵(I-αMT)-1为对角占优矩阵(主对角元素的模大于该行的所有元素的模的总和,也大于该列的所有元素的模的总和),所以取差矩阵的对角线倒数构成的对角矩阵,作为初始化近似逆矩阵,从而构建的初始化近似逆矩阵就可以满足初始化条件,提高了初始化近似逆矩阵的构建速度。
步骤306,基于所述初始化近似逆矩阵,根据牛顿迭代公式对前一次迭代矩阵进行并行迭代,得到本次迭代矩阵。
其中,所述牛顿迭代公式表示如下:
Xm=Xm-1(2I-Xm-1)
其中,Xm表示第m次迭代时的迭代矩阵,Xm-1表示第m-1次迭代时的迭代矩阵。
假设 则D11=B11×C11+…+B1n×Cn1,Xm中其他元素的计算类似。
由上述矩阵计算过程可知,Xm中每个元素的计算是独立的并不会依赖于Xm中的其它元素的计算结果,所以这个计算过程可以并发执行,即可以通过多个计算节点来分别对Xm中的元素进行并行计算。Xm具有n×n个元素,理论上支持的并发量为n×n,但在实际计算过程中并发量可以远远小于n×n,在同一个计算节点上可以计算Xm的多个元素。
在本申请的一些实施例中,所述根据牛顿迭代公式对前一次迭代矩阵进行并行迭代,得到本次迭代矩阵的步骤,包括:根据预设拆分规则,对本次迭代矩阵的待计算元素进行拆分,得到待计算的多个矩阵块;根据所述牛顿迭代公式,将与所述多个矩阵块对应的前一次迭代矩阵中的计算元素分别发送给多个计算节点,以指示所述多个计算节点根据所述计算元素对各自对应的矩阵块进行计算;获取所述多个计算节点计算得到的多个矩阵块;根据所述预设拆分规则,将所述多个矩阵块拼接为所述本次迭代矩阵。
其中,预设拆分规则为预先设定的对本次迭代矩阵拆分的方式。例如,预设拆分规则可以是按列拆分、按行拆分或者是其他的拆分方式。
对本次迭代矩阵Xm进行拆分得到的矩阵块的数量可以与计算节点的数量相同。根据预设拆分规则,对本次迭代矩阵Xm进行拆分得到待计算的多个矩阵块,并确定多个矩阵块在本次迭代矩阵中的位置,根据牛顿迭代公式,确定与所述多个矩阵块分别对应的前一次迭代矩阵Xm-1中的计算元素,并将与多个矩阵块分别对应的前一次迭代矩阵Xm-1中的计算元素分别发送给多个计算节点,由多个计算节点根据牛顿迭代公式分别来计算各自对应的矩阵块,从而一个计算节点计算一个矩阵块,在多个计算节点计算完成后,获取多个计算节点计算得到的多个矩阵块,并根据预设拆分规则确定的多个矩阵块在本次迭代矩阵中的位置,对所述多个矩阵块进行拼接,得到本次迭代矩阵,实现了进行牛顿迭代时的并行计算,大大提高了计算速度。
在本申请的另一些实施例中,所述根据牛顿迭代公式对前一次迭代矩阵进行并行迭代,得到本次迭代矩阵的步骤,包括:根据所述牛顿迭代公式,采用Spark计算引擎对所述前一次迭代矩阵进行并行迭代,得到所述本次迭代矩阵。
其中,Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。Spark计算引擎是加州大学伯克利分校的AMP实验室所开源的类Hadoop MapReduce的通用并行框架。Spark拥有Hadoop MapReduce所具有的优点,但不同于MapReduce的是,Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。Spark启用了内存分布数据集,除了能够提供交互式查询外,还可以优化迭代工作负载。
将前一次迭代矩阵和牛顿迭代公式传入Spark计算引擎,由Spark计算引擎对前一次迭代矩阵进行并行迭代,Spark计算引擎可以确定本次迭代矩阵的最优拆分方式并对本次迭代矩阵进行拆分得到多个矩阵块,由Spark计算引擎中的多个计算节点分别根据牛顿迭代公式对多个矩阵块进行并行计算,在计算得到多个矩阵块后,拼接为本次迭代矩阵。由于Spark计算引擎是比较成熟的迭代计算的框架,可以自行选择最优计算方式,大大提高了迭代计算速度,而且一个计算节点上可以计算本次迭代矩阵中的一个矩阵块,即计算本次迭代矩阵中的多个元素,从而可以大大减少shuffle的量。在MapReduce框架中,shuffle是连接map任务和reduce任务的桥梁。map任务的中间输出要作为reduce任务的输入,就必须经过shuffle,shuffle的性能优劣直接决定了整个计算引擎的性能和吞吐量。
步骤307,根据所述本次迭代矩阵和所述差矩阵,确定所述本次迭代矩阵的误差。
根据本次迭代矩阵Xm和所述差矩阵A,按照如下公式确定本次迭代矩阵Xm的误差:
er=||I-AXm||
其中,er为本次迭代矩阵Xm的误差。
步骤308,判断所述误差是否满足终止条件,若否则执行步骤309,若是则执行步骤310。
其中,所述终止条件可以是所述误差小于预设阈值。
步骤309,将所述本次迭代矩阵作为前一次迭代矩阵,之后执行步骤306。
步骤310,根据满足所述终止条件的本次迭代矩阵,确定各个节点之间的相关性。
将满足所述终止条件的本次迭代矩阵的值,作为各个节点之间的相关性的值。
步骤311,根据所述相关性,确定为待推荐用户推荐的物品。
本实施例提供的基于图的推荐方法,在进行并行化牛顿迭代时,通过确定转移矩阵对应的转置矩阵与预设概率相乘的结果矩阵,确定单位矩阵与所述结果矩阵的差矩阵,根据所述差矩阵构建差矩阵对应的初始化近似逆矩阵,基于所述初始化近似逆矩阵,根据牛顿迭代公式对前一次迭代矩阵进行并行迭代,得到本次迭代矩阵,根据本次迭代矩阵和所述差矩阵,确定本次迭代矩阵的误差,若所述误差不满足终止条件,则将本次迭代矩阵作为前一次迭代矩阵,继续进行上述的牛顿迭代操作,直至本次迭代矩阵满足所述终止条件,根据满足所述终止条件的本次迭代矩阵,确定各个节点之间的相关性,从而实现了并行化牛顿迭代求解二分图的稳态,大大提高了二分图的求解速度。
实施例三
本实施例公开的一种基于图的推荐装置,如图4所示,所述基于图的推荐装置400包括:
二分图构建模块401,用于根据用户历史行为,构建用户与物品的二分图,所述用户和物品为所述二分图的节点;
转移矩阵确定模块402,用于根据所述二分图,确定所述二分图中的节点随机游走得到稳态图时的转移矩阵,所述转移矩阵的阶数为所述二分图中节点的数量;
相关性确定模块403,用于根据所述转移矩阵,采用并行化牛顿迭代法确定各个节点之间的相关性;
推荐物品确定模块404,用于根据所述相关性,确定为待推荐用户推荐的物品。
可选的,所述相关性确定模块包括:
结果矩阵确定单元,用于根据所述转移矩阵和预设概率,确定所述转移矩阵对应的转置矩阵与所述预设概率相乘的结果矩阵,所述预设概率为每个节点随机游走到下一个节点的概率;
差矩阵确定单元,用于确定单位矩阵与所述结果矩阵的差矩阵;
初始化矩阵构建单元,用于根据所述差矩阵,构建所述差矩阵对应的初始化近似逆矩阵;
牛顿迭代单元,用于基于所述初始化近似逆矩阵,根据牛顿迭代公式对前一次迭代矩阵进行并行迭代,得到本次迭代矩阵;
误差确定单元,用于根据所述本次迭代矩阵和所述差矩阵,确定所述本次迭代矩阵的误差;
迭代终止判断单元,用于若所述误差不满足终止条件,则将所述本次迭代矩阵作为前一次迭代矩阵,继续进行上述的牛顿迭代操作,直至本次迭代矩阵满足所述终止条件;
相关性确定单元,用于根据满足所述终止条件的本次迭代矩阵,确定各个节点之间的相关性。
可选的,所述牛顿迭代公式表示如下:
Xm=Xm-1(2I-Xm-1)
其中,Xm表示第m次迭代时的迭代矩阵,Xm-1表示第m-1次迭代时的迭代矩阵。
可选的,所述牛顿迭代单元具体用于:
根据预设拆分规则,对本次迭代矩阵的待计算元素进行拆分,得到待计算的多个矩阵块;
根据所述牛顿迭代公式,将与所述多个矩阵块对应的前一次迭代矩阵中的计算元素分别发送给多个计算节点,以指示所述多个计算节点根据所述计算元素对各自对应的矩阵块进行计算;
获取所述多个计算节点计算得到的多个矩阵块;
根据所述预设拆分规则,将所述多个矩阵块拼接为所述本次迭代矩阵。
可选的,所述牛顿迭代单元具体用于:
根据所述牛顿迭代公式,采用Spark计算引擎对所述前一次迭代矩阵进行并行迭代,得到所述本次迭代矩阵。
可选的,所述初始化矩阵构建单元具体用于:
提取所述差矩阵中的对角线元素,并对所述对角线元素取倒数,以构成对角矩阵;
将所述对角矩阵作为所述初始化近似逆矩阵。
可选的,所述推荐物品确定模块具体用于:
根据所述相关性,确定所述待推荐用户与物品的相关性;
按照从高到低的顺序,对所述待推荐用户与物品的相关性进行排序;
根据所述排序,确定为所述待推荐用户推荐的物品。
本申请实施例提供的基于图的推荐装置,用于实现本申请实施例中所述的基于图的推荐方法的各步骤,装置的各模块的具体实施方式参见相应步骤,此处不再赘述。
本申请实施例公开的基于图的推荐装置,通过根据用户历史行为构建用户与物品的二分图,确定二分图中的节点随机游走得到稳态图时的转移矩阵,根据转移矩阵采用并行化牛顿迭代法确定各个节点之间的相关性,从而根据相关性确定为待推荐用户推荐的物品,由于采用并行化牛顿迭代法可以进行并行计算,从而使大规模二分图的求解变成可能,提高了二分图的求解速度,进而可以提高推荐效率。
相应的,本申请实施例还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的基于图的推荐方法。所述电子设备可以为PC机、移动终端、个人数字助理、平板电脑等。
本申请实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的基于图的推荐方法的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本申请实施例提供的一种基于图的推荐方法、装置、电子设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
Claims (10)
1.一种基于图的推荐方法,其特征在于,包括:
根据用户历史行为,构建用户与物品的二分图,所述用户和物品为所述二分图的节点;
根据所述二分图,确定所述二分图中的节点随机游走得到稳态图时的转移矩阵,所述转移矩阵的阶数为所述二分图中节点的数量;
根据所述转移矩阵,采用并行化牛顿迭代法确定各个节点之间的相关性;
根据所述相关性,确定为待推荐用户推荐的物品。
2.根据权利要求1所述的方法,其特征在于,所述根据所述转移矩阵,采用并行化牛顿迭代法确定各个节点之间的相关性的步骤,包括:
根据所述转移矩阵和预设概率,确定所述转移矩阵对应的转置矩阵与所述预设概率相乘的结果矩阵,所述预设概率为每个节点随机游走到下一个节点的概率:
确定单位矩阵与所述结果矩阵的差矩阵;
根据所述差矩阵,构建所述差矩阵对应的初始化近似逆矩阵;
基于所述初始化近似逆矩阵,根据牛顿迭代公式对前一次迭代矩阵进行并行迭代,得到本次迭代矩阵;
根据所述本次迭代矩阵和所述差矩阵,确定所述本次迭代矩阵的误差;
若所述误差不满足终止条件,则将所述本次迭代矩阵作为前一次迭代矩阵,继续进行上述的牛顿迭代操作,直至本次迭代矩阵满足所述终止条件;
根据满足所述终止条件的本次迭代矩阵,确定各个节点之间的相关性。
3.根据权利要求2所述的方法,其特征在于,所述牛顿迭代公式表示如下:
Xm=Xm-1(2I-Xm-1)
其中,Xm表示第m次迭代时的迭代矩阵,Xm-1表示第m-1次迭代时的迭代矩阵。
4.根据权利要求3所述的方法,其特征在于,所述根据牛顿迭代公式对前一次迭代矩阵进行并行迭代,得到本次迭代矩阵的步骤,包括:
根据预设拆分规则,对本次迭代矩阵的待计算元素进行拆分,得到待计算的多个矩阵块;
根据所述牛顿迭代公式,将与所述多个矩阵块对应的前一次迭代矩阵中的计算元素分别发送给多个计算节点,以指示所述多个计算节点根据所述计算元素对各自对应的矩阵块进行计算;
获取所述多个计算节点计算得到的多个矩阵块;
根据所述预设拆分规则,将所述多个矩阵块拼接为所述本次迭代矩阵。
5.根据权利要求3所述的方法,其特征在于,所述根据牛顿迭代公式对前一次迭代矩阵进行并行迭代,得到本次迭代矩阵的步骤,包括:
根据所述牛顿迭代公式,采用Spark计算引擎对所述前一次迭代矩阵进行并行迭代,得到所述本次迭代矩阵。
6.根据权利要求2所述的方法,其特征在于,所述根据所述差矩阵,构建所述差矩阵的初始化近似逆矩阵的步骤,包括:
提取所述差矩阵中的对角线元素,并对所述对角线元素取倒数,以构成对角矩阵;
将所述对角矩阵作为所述初始化近似逆矩阵。
7.根据权利要求1所述的方法,其特征在于,所述根据所述相关性,确定为待推荐用户推荐的物品的步骤,包括:
根据所述相关性,确定所述待推荐用户与物品的相关性;
按照从高到低的顺序,对所述待推荐用户与物品的相关性进行排序;
根据所述排序,确定为所述待推荐用户推荐的物品。
8.一种基于图的推荐装置,其特征在于,包括:
二分图构建模块,用于根据用户历史行为,构建用户与物品的二分图,所述用户和物品为所述二分图的节点;
转移矩阵确定模块,用于根据所述二分图,确定所述二分图中的节点随机游走得到稳态图时的转移矩阵,所述转移矩阵的阶数为所述二分图中节点的数量;
相关性确定模块,用于根据所述转移矩阵,采用并行化牛顿迭代法确定各个节点之间的相关性;
推荐物品确定模块,用于根据所述相关性,确定为待推荐用户推荐的物品。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任意一项所述的基于图的推荐方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至7任意一项所述的基于图的推荐方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910290223.9A CN110162696A (zh) | 2019-04-11 | 2019-04-11 | 基于图的推荐方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910290223.9A CN110162696A (zh) | 2019-04-11 | 2019-04-11 | 基于图的推荐方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110162696A true CN110162696A (zh) | 2019-08-23 |
Family
ID=67639245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910290223.9A Pending CN110162696A (zh) | 2019-04-11 | 2019-04-11 | 基于图的推荐方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110162696A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111144976A (zh) * | 2019-12-10 | 2020-05-12 | 支付宝(杭州)信息技术有限公司 | 推荐模型的训练方法及装置 |
CN111176838A (zh) * | 2019-12-18 | 2020-05-19 | 北京百度网讯科技有限公司 | 为二分图中的节点分配嵌入向量的方法以及装置 |
CN113159891A (zh) * | 2021-04-24 | 2021-07-23 | 桂林电子科技大学 | 一种基于多种用户表示融合的商品推荐方法 |
CN113158053A (zh) * | 2021-04-25 | 2021-07-23 | 平安科技(深圳)有限公司 | 服务类产品推荐方法、装置、计算机设备及存储介质 |
CN113362131A (zh) * | 2021-06-02 | 2021-09-07 | 合肥工业大学 | 一种融合知识图谱和用户交互的图模型智能商品推荐方法 |
US20220223245A1 (en) * | 2021-01-13 | 2022-07-14 | Boe Technology Group Co., Ltd. | Drug recommendation method, apparatus and system, electronic device and storage medium |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103778145A (zh) * | 2012-10-22 | 2014-05-07 | 中国移动通信集团广东有限公司 | 一种信息推荐方法和系统 |
US20140129500A1 (en) * | 2012-11-07 | 2014-05-08 | Microsoft Corporation | Efficient Modeling System |
CN105913296A (zh) * | 2016-04-01 | 2016-08-31 | 北京理工大学 | 一种基于图的个性化推荐方法 |
CN106156113A (zh) * | 2015-04-03 | 2016-11-23 | Tcl集团股份有限公司 | 一种视频推荐的方法、系统及电子设备 |
-
2019
- 2019-04-11 CN CN201910290223.9A patent/CN110162696A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103778145A (zh) * | 2012-10-22 | 2014-05-07 | 中国移动通信集团广东有限公司 | 一种信息推荐方法和系统 |
US20140129500A1 (en) * | 2012-11-07 | 2014-05-08 | Microsoft Corporation | Efficient Modeling System |
CN106156113A (zh) * | 2015-04-03 | 2016-11-23 | Tcl集团股份有限公司 | 一种视频推荐的方法、系统及电子设备 |
CN105913296A (zh) * | 2016-04-01 | 2016-08-31 | 北京理工大学 | 一种基于图的个性化推荐方法 |
Non-Patent Citations (3)
Title |
---|
原强红: "基于GPU 高性能计算平台的Ricatti 方程求解", 《信息与电脑》 * |
张博208: "基于图的推荐算法(PersonalRank)", 《CSDN》 * |
朱芳薇: "牛顿迭代法计算矩阵近似逆", 《豆丁网》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111144976A (zh) * | 2019-12-10 | 2020-05-12 | 支付宝(杭州)信息技术有限公司 | 推荐模型的训练方法及装置 |
CN111176838A (zh) * | 2019-12-18 | 2020-05-19 | 北京百度网讯科技有限公司 | 为二分图中的节点分配嵌入向量的方法以及装置 |
CN111176838B (zh) * | 2019-12-18 | 2023-12-22 | 北京百度网讯科技有限公司 | 为二分图中的节点分配嵌入向量的方法以及装置 |
US20220223245A1 (en) * | 2021-01-13 | 2022-07-14 | Boe Technology Group Co., Ltd. | Drug recommendation method, apparatus and system, electronic device and storage medium |
CN113159891A (zh) * | 2021-04-24 | 2021-07-23 | 桂林电子科技大学 | 一种基于多种用户表示融合的商品推荐方法 |
CN113159891B (zh) * | 2021-04-24 | 2022-05-17 | 桂林电子科技大学 | 一种基于多种用户表示融合的商品推荐方法 |
CN113158053A (zh) * | 2021-04-25 | 2021-07-23 | 平安科技(深圳)有限公司 | 服务类产品推荐方法、装置、计算机设备及存储介质 |
CN113158053B (zh) * | 2021-04-25 | 2022-09-30 | 平安科技(深圳)有限公司 | 服务类产品推荐方法、装置、计算机设备及存储介质 |
CN113362131A (zh) * | 2021-06-02 | 2021-09-07 | 合肥工业大学 | 一种融合知识图谱和用户交互的图模型智能商品推荐方法 |
CN113362131B (zh) * | 2021-06-02 | 2022-09-13 | 合肥工业大学 | 一种融合知识图谱和用户交互的图模型智能商品推荐方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162696A (zh) | 基于图的推荐方法、装置、电子设备及存储介质 | |
Zhuang et al. | Representation learning via dual-autoencoder for recommendation | |
Zhao et al. | Deep reinforcement learning for list-wise recommendations | |
EP3992857A1 (en) | Method and device for generating neural network model, and computer-readable storage medium | |
CN112035747B (zh) | 信息推荐方法及装置 | |
CN108345937A (zh) | 循环与库融合 | |
CN110889747B (zh) | 商品推荐方法、装置、系统、计算机设备及存储介质 | |
Do et al. | Dynamics of service selection and provider pricing game in heterogeneous cloud market | |
KR102476056B1 (ko) | 아이템 추천방법, 시스템, 전자기기 및 기록매체 | |
Tian et al. | When multi-level meets multi-interest: A multi-grained neural model for sequential recommendation | |
JP7287397B2 (ja) | 情報処理方法、情報処理装置及び情報処理プログラム | |
CN113987200A (zh) | 神经网络结合知识图谱的推荐方法、系统、终端、介质 | |
Fu et al. | An experimental study on stability and generalization of extreme learning machines | |
Gaifang et al. | Cooperative ant colony-genetic algorithm based on spark | |
Tang | Exponential stability of pseudo almost periodic solutions for fuzzy cellular neural networks with time-varying delays | |
Bergero et al. | A vectorial DEVS extension for large scale system modeling and parallel simulation | |
CN115099886B (zh) | 一种长短兴趣序列推荐方法、装置及存储介质 | |
CN115545114A (zh) | 多任务模型的训练方法、内容推荐方法及装置 | |
CN103455518B (zh) | 一种数据处理方法及装置 | |
CN116992151A (zh) | 一种基于双塔图卷积神经网络的在线课程推荐方法 | |
Yin et al. | An improved ant colony optimization job scheduling algorithm in fog computing | |
Kobayashi et al. | Stabilization of finite automata with application to hybrid systems control | |
CN111402003B (zh) | 实现用户相关推荐的系统和方法 | |
CN110288444B (zh) | 实现用户相关推荐的方法和系统 | |
CN116975686A (zh) | 训练学生模型的方法、行为预测方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190823 |
|
RJ01 | Rejection of invention patent application after publication |