CN110322053B - 一种基于图随机游走构建局部矩阵的评分预测方法 - Google Patents
一种基于图随机游走构建局部矩阵的评分预测方法 Download PDFInfo
- Publication number
- CN110322053B CN110322053B CN201910508941.9A CN201910508941A CN110322053B CN 110322053 B CN110322053 B CN 110322053B CN 201910508941 A CN201910508941 A CN 201910508941A CN 110322053 B CN110322053 B CN 110322053B
- Authority
- CN
- China
- Prior art keywords
- user
- probability
- matrix
- article
- item
- 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.)
- Expired - Fee Related
Links
- 239000011159 matrix material Substances 0.000 title claims abstract description 157
- 238000005295 random walk Methods 0.000 title claims abstract description 70
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 11
- 238000012935 Averaging Methods 0.000 claims abstract description 5
- 239000013598 vector Substances 0.000 claims description 72
- 230000007704 transition Effects 0.000 claims description 23
- 238000009826 distribution Methods 0.000 claims description 15
- 238000012549 training Methods 0.000 claims description 10
- 238000012546 transfer Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 4
- 238000004873 anchoring Methods 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 abstract description 10
- 238000004422 calculation algorithm Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Images
Classifications
-
- 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
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- 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/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
- G06Q30/0202—Market predictions or forecasting for commercial activities
-
- 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
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Human Resources & Organizations (AREA)
- Game Theory and Decision Science (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Data Mining & Analysis (AREA)
- Image Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于图随机游走构建局部矩阵的评分预测方法,属于个性化推荐领域。根据用户‑物品评分矩阵构建用户‑物品二分图,在二分图上进行随机游走,选取游走后节点收敛概率最大的A个用户和物品组成A个锚点;对于每个锚点,使用带重启动的随机游走算法,得到每个节点与锚点的相关关系,从而将每个节点分配进相应的锚点邻域中。每个锚点及其邻域将构成一个局部矩阵,在每个局部矩阵中使用矩阵分解方法进行评分预测。将A个局部矩阵的预测评分进行平均,得到最终预测结果。本发明使用了基于图随机游走来选择锚点和构建锚点的邻域,避免传统距离计算过程带来的误差;从节点出发,将其分配进不同的锚点邻域,能够实现对大矩阵的完全覆盖。
Description
技术领域
本发明属于个性化推荐领域,更具体地,涉及一种基于图随机游走构建局部矩阵的评分预测方法。
背景技术
随着web2.0时代的到来和网络带宽的极大提升,各种各样的社交网络平台开始出现,碎片化的信息开始充斥着人们的生活。为了解决信息过载问题,个性化推荐系统越来越显现出它的重要价值。例如在电商领域,推荐系统根据用户的历史行为信息构建用户的兴趣模型,计算用户对他们没有购买过的物品的喜欢程度,然后给用户推荐他可能会喜欢的物品。
在实际应用中,对用户偏好的预测通常采用协同过滤方法进行,其基本思想是:基于用户对物品的评分找到和其偏好相似的邻居用户,然后将该邻居用户所喜欢的物品推荐给当前用户,其中最著名的就是矩阵分解技术。矩阵分解技术通过假设原始评分矩阵为全局低秩的,利用SVD的思想,将其拆解为用户因局部矩阵和物品因局部矩阵,让这两个矩阵的乘积尽可能还原原始评分矩阵,同时对原始评分矩阵的空缺项进行预测。不同于这些基于全局低秩的矩阵分解方法,近年来提出一种基于局部低秩的分解方法,通过一些聚类手段,将大矩阵分割为若干个局部矩阵,在每个局部矩阵中利用矩阵分解技术进行评分预测。
然而,这些构建局部矩阵的方法都需要进行用户或物品之间的距离计算,依据距离对用户和物品进行分簇。这种距离计算首先需要获取每个用户和物品的特征向量,但是往往难以找到最精确的向量表达,这个过程中常常会造成误差。同时不同的距离计算方式对距离的衡量标准也不一样,很难找到一个完全适合构建局部矩阵中的距离算法。
发明内容
针对现有技术的缺陷,本发明的目的在于解决现有技术中推荐系统的评分预测结果准确度受限的技术问题。
为实现上述目的,第一方面,本发明实施例提供了一种基于图随机游走构建局部矩阵的评分预测方法,该方法包括以下步骤:
S1.根据用户数据、物品数据、用户对物品的评分的数据,构建用户-物品二分图;
S2.根据用户-物品评分矩阵R,得到用户-物品转移概率矩阵PUV和物品-用户转移概率矩阵PVU;
S3.在用户-物品二分图上进行随机游走直至随机游走收敛,随机游走过程中,根据PUV和PVU计算用户和物品的概率向量,从收敛的概率向量中选取收敛概率最大的A个用户和A个物品,将它们随机配对构成A个锚点;
S4.对于每个锚点,在用户-物品二分图上进行带重启动的随机游走直至随机游走收敛,带重启动的随机游走过程中,根据PUV和PVU计算的用户和物品的概率向量,根据收敛时的用户和物品的概率向量,构建用户收敛概率矩阵CU和物品收敛概率矩阵CV;
S5.根据用户收敛概率矩阵CU和物品收敛概率矩阵CV,得到每个锚点的邻域,该锚点和它的全部邻域构成以该锚点为核心的局部矩阵;
S6.对于每个局部矩阵,使用矩阵分解方法对该局部矩阵进行训练,训练收敛时得到该局部矩阵中用户对物品的预测评分;
S7.将A个局部矩阵的预测评分进行平均,得到用户对物品的最终预测评分。
具体地,步骤S1包括以下子步骤:
S101.用户数据中所有用户构成集合U,物品数据中所有物品构成集合V,集合U和集合V互不相交,集合U和集合V构成二分图的点集;
S102.如果用户对物品的评分的数据中存在用户u∈U对物品v∈V的打分ruv,则二分图中就存在一条用户u和物品v的连边,连边的权重是ruv。
具体地,步骤S2包括以下子步骤:
S201.根据用户对物品的评分的数据,构建用户-物品评分矩阵R;
S202.将用户-物品评分矩阵R按列归一化,得到物品-用户转移概率矩阵PVU;
S203.对RT按列归一化,得到用户-物品转移概率矩阵PUV。
具体地,步骤S3包括以下子步骤:
S301.随机初始化用户和物品的概率向量u(0)和v(0),t=0;
S302.在用户-物品二分图上的随机游走,计算第t次迭代时用户和物品的概率向量;
其中,u(t+1)和v(t+1)分别表示第t次迭代时用户和物品的概率向量,M表示用户数量,N表示物品数量,α是随机访问概率,PVU表示物品-用户转移概率矩阵,PUV表示用户-物品转移概率矩阵;
S303.判断两次游走的节点概率分布之差是否小于阈值,若是,进入步骤S304,否则,t=t+1,进入步骤S302;
S304.选取收敛概率最大的A个用户和A个物品,并将它们随机配对,组成A个用户-物品锚点对,即A个锚点。
具体地,步骤S4包括以下子步骤:
S41.分别以每一个锚点用户为重启动节点进行带重启动的随机游走,得到用户收敛概率矩阵CU的第a列表示锚点(ua,va)中以用户ua为重启动节点时,用户的收敛概率向量,CU的第u行表示用户u在以不同锚点作为重启动节点时的收敛概率向量,M表示用户数量;
S42.分别以每一个锚点物品为重启动节点进行带重启动的随机游走,得到物品收敛概率矩阵CV的第a列表示锚点(ua,va)中以物品va为重启动节点时,物品的收敛概率向量,CV的第v行表示物品v在以不同锚点作为重启动节点时的收敛概率向量,N表示物品数量。
具体地,步骤S41包括以下子步骤:
S411.以锚点用户ua为重启动节点在用户-物品二分图上进行随机游走,使用独热编码初始化用户概率向量u(0),并随机初始化物品概率向量v(0),t=0;
S412.计算第t次迭代时用户和物品的概率向量;
u(t+1)=(1-β)·PVUv(t)+β·rU
v(t+1)=PUVu(t)
其中,u(t+1)和v(t+1)分别表示第t次迭代时用户和物品的概率向量,β是直接返回重启动节点ua的概率,rU是重启动向量,PVU表示物品-用户转移概率矩阵,PUV表示用户-物品转移概率矩阵;
S413.判断两次游走的节点概率分布之差是否小于阈值,若是,得到收敛时的用户概率分布向量,否则,t=t+1,进入步骤S412。
具体地,步骤S42包括以下子步骤:
S421.以锚点物品va为重启动节点在用户-物品二分图上进行随机游走,使用独热编码初始化物品概率向量v(0),并随机初始化用户概率向量u(0),t=0;
S422.计算第t次迭代时用户和物品的概率向量;
v(t+1)=(1-β)·PUVu(t)+β·rV
u(t+1)=PVUv(t)
其中,u(t+1)和v(t+1)分别表示第t次迭代时用户和物品的概率向量,β是直接返回重启动节点va的概率,rV是重启动向量,PVU表示物品-用户转移概率矩阵,PUV表示用户-物品转移概率矩阵;
S423.判断两次游走的节点概率分布之差是否小于阈值,若是,得到收敛时的物品概率分布向量,否则,t=t+1,进入步骤S422。
具体地,步骤S5包括以下子步骤:
S501.对于每个用户u∈U,将CU的第u行按照降序排列,取排列中前ρ×A个锚点,将该用户加入这些锚点的用户邻域Ua中,ρ为局部矩阵规模控制参数;
S502.对于每个物品v∈V,将CV的第v行按照降序排列,取排列中前ρ×A个锚点,将该物品加入这些锚点的物品邻域Va中;
S503.对于每个锚点(ua,va),利用它的用户邻域集合Ua和物品邻域集合Va构建局部矩阵Ra。
具体地,步骤S503具体如下:对于每个用户u∈Ua,从原始评分矩阵R中抽出第u行;对于每个物品v∈Va,从原始评分矩阵R中抽出第v列;这些被抽取出来的行和列将构成以锚点(ua,va)为中心的局部矩阵Ra。
第二方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面所述的评分预测方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
1.本发明使用随机游走的方法来选择锚点,使得到的锚点在整个用户-物品二分图中有较大的重要性,由此构建的局部矩阵相比于随机选择锚点构建的局部矩阵更有代表性,最终的预测精度更高。
2.本发明使用带重启动的随机游走来衡量图中每个点与锚点的近似关系,无需通过距离计算,避免了对用户、物品进行特征提取过程中造成的损失。通过在全图上的随机游走直到收敛,能够遍历到节点之间全部已知的关联关系,得到更适合的相似关系度量结果,提高了预测的精确度。
3.本发明依据节点到不同锚点的相关关系,将每个节点分配到不同的局部矩阵,能够保证每个节点至少被分配进一个局部矩阵中,完成了局部矩阵对大矩阵的全覆盖。
4.本发明采用基于图随机游走的方式构建局部矩阵,每个局部矩阵的规模显著小于原始评分矩阵,在小矩阵中进行评分预测效率更高。
附图说明
图1为本发明实施例提供的一种基于图随机游走构建局部矩阵的评分预测方法流程图;
图2为本发明实施例提供的通过用户-物品评分矩阵构建用户-物品二分图的示意图;
图3为本发明实施例提供的使用随机游走选择锚点以及使用带重启动的随机游走构建锚点邻域的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的整体思路在于,首先通过在用户-物品二分图中进行随机游走,选取收敛概率大的用户节点和物品节点组成锚点;然后将锚点用户和锚点物品设为重启动节点,在用户-物品二分图中进行带重启动的随机游走,从而得到每个点与锚点之间的相关关系。按照这种相关关系,将每个用户和物品分配给与其相近的锚点邻域,从而构成一个个局部矩阵;之后在每个局部矩阵中进行矩阵分解,对目标项进行评分预测;最后将每个局部矩阵里的预测结果进行结合,形成最终的预测结果。
随机游走算法是给每个节点一个随机初始值,让节点在图中随机游走,从而经过迭代,每个节点将会得到一个收敛概率,该收敛概率反映了每个节点在图中的重要程度。
重启动随机游走算法是从某个节点为起始点开始游走,并且每次迭代中只有a的概率随机游走,还有1-a的概率直接返回初始节点。该方法经过迭代,每个节点也会得到一个收敛概率,该收敛概率反映了每个节点与初始节点之间的相关关系。
如图1所示,一种基于图随机游走构建局部矩阵的评分预测方法,该方法包括以下步骤:
S1.根据用户数据、物品数据、用户对物品的评分的数据,构建用户-物品二分图;
S2.根据用户-物品评分矩阵R,得到用户-物品转移概率矩阵PUV和物品-用户转移概率矩阵PVU;
S3.在用户-物品二分图上进行随机游走直至随机游走收敛,随机游走过程中,根据PUV和PVU计算用户和物品的概率向量,从收敛的概率向量中选取收敛概率最大的A个用户和A个物品,将它们随机配对构成A个锚点;
S4.对于每个锚点,在用户-物品二分图上进行带重启动的随机游走直至随机游走收敛,带重启动的随机游走过程中,根据PUV和PVU计算的用户和物品的概率向量,根据收敛时的用户和物品的概率向量,构建用户收敛概率矩阵CU和物品收敛概率矩阵CV;
S5.根据用户收敛概率矩阵CU和物品收敛概率矩阵CV,得到每个锚点的邻域,该锚点和它的全部邻域构成以该锚点为核心的局部矩阵;
S6.对于每个局部矩阵,使用矩阵分解方法对该局部矩阵进行训练,训练收敛时得到该局部矩阵中用户对物品的预测评分;
S7.将A个局部矩阵的预测评分进行平均,得到用户对物品的最终预测评分。
步骤S1.根据用户数据、物品数据、用户对物品的评分的数据,构建用户-物品二分图。
S101.用户数据中所有用户构成集合U,物品数据中所有物品构成集合V,集合U和集合V互不相交,集合U和集合V构成二分图的点集。
S101.如果用户对物品的评分的数据中存在用户u∈U对物品v∈V的打分ruv,则二分图中就存在一条用户u和物品v的连边,连边的权重是ruv。
步骤S2.根据用户-物品评分矩阵R,得到用户-物品转移概率矩阵PUV和物品-用户转移概率矩阵PVU。
S201.根据用户对物品的评分的数据,构建用户-物品评分矩阵R。
其中,Ruv表示用户u对物品v的评分,如果用户u对物品v不存在评分,该矩阵元素为0,u=1,2,…,M,v=1,2,…,N,M表示用户的数量,N表示物品的数量。
S202.将用户-物品评分矩阵R按列归一化,得到物品-用户转移概率矩阵PVU。
PVU矩阵的第i列表示第i个物品向各个用户转移的转移概率。例如,从第三个物品出发,有3/5的概率转移到第一个用户,2/5的概率转移到第二个用户。
S203.对RT按列归一化,得到用户-物品转移概率矩阵PUV。
PUV矩阵的第i列表示第i个用户向各个物品转移的转移概率。
例如,从第一个用户出发,有5/8的概率转移到第一个物品,3/8的概率转移到第三个物品。
步骤S3.在用户-物品二分图上进行随机游走直至随机游走收敛,随机游走过程中,根据PUV和PVU计算用户和物品的概率向量,从收敛的概率向量中选取收敛概率最大的A个用户和A个物品,将它们随机配对构成A个锚点。
如图3所示,在用户-物品二分图上的随机游走,首先随机初始化用户和物品的概率向量u(0)和v(0),然后通过迭代计算下列公式进行随机游走:
其中,u(t+1)和v(t+1)分别表示第t次迭代时用户和物品的概率向量,M表示用户数量,N表示物品数量,α是随机访问概率,表示每次迭代中,每个用户都有α的概率从N个物品中随机选择一个访问,每个物品都有α的概率从M个用户中随机选择一个访问。α通常取值很小,例如0.2。随机访问概率相当于为每个用户(物品)添加了和所有物品(用户)相连的小权重连边,这保证了二分图的连通性,从而保证了在该图上进行随机游走一定能够收敛。
当两次游走的节点概率分布之差小于一个阈值(一般取1e-8)时,可以认为随机游走已经收敛。此时图中的每一个节点都会拥有自己的收敛概率,一般来说度大的节点容易得到较大的收敛概率,因此可以认为节点的收敛概率在一定程度上可以反映节点在网络中的重要性。选取收敛概率最大的A个用户和A个物品,并将它们随机配对,组成A个用户-物品锚点对,即A个锚点。
这种锚点选取方法可以通过在图中的随机游走快速找到在整个用户-物品网络中的重要节点,从而找到比随机选择更具有代表性的锚点。
步骤S4.对于每个锚点,在用户-物品二分图上进行带重启动的随机游走直至随机游走收敛,带重启动的随机游走过程中,根据PUV和PVU计算的用户和物品的概率向量,根据收敛时的用户和物品的概率向量,构建用户收敛概率矩阵CU和物品收敛概率矩阵CV。
如图3所示,以锚点(ua,va)为例,首先以用户ua为重启动节点进行随机游走。使用独热编码初始化用户概率向量u(0),即当维度i=ua时,u(0)(i)=1,否则u(0)(i)=0,并随机初始化物品概率向量v(0),然后通过迭代计算下列公式进行带重启动的随机游走:
u(t+1)=(1-β)·PVUv(t)+β·rU
v(t+1)=PUVu(t)
其中,u(t+1)和v(t+1)分别表示第t次迭代时用户和物品的概率向量,β是重启动概率,一般取0.5,表示在每次迭代中,只有1-β的概率是从物品节点游走到用户节点,而有β的概率直接返回重启动节点ua。rU是重启动向量,当i=ua时,rU(i)=1,否则,rU(i)=0。
当两次游走的节点概率分布之差小于一个阈值(一般取1e-8)时,可以认为随机游走已经收敛,令收敛时的用户概率分布向量表示为ua。每个节点收敛概率的大小反应了它到重启动节点的近似程度(相关程度),即认为收敛概率越大的点距离重启动节点ua的距离越近。分别以每一个锚点用户为重启动节点进行带重启动的随机游走后,可以得到用户收敛概率矩阵CU的第a列表示锚点(ua,va)中以用户ua为重启动节点时用户的收敛向量ua,CU的第u行表示用户u在以不同锚点作为重启动节点时的收敛概率向量。
同理,接下来以物品va为重启动节点进行随机游走。使用独热编码初始化物品概率向量v(0),即当i=va时,v(0)(i)=1,否则,v(0)(i)=0,并随机初始化概率向量u(0),然后通过迭代计算下列公式进行带重启动的随机游走:
v(t+1)=(1-β)·PUVu(t)+β·rV
u(t+1)=PVUv(t)
其中,u(t+1)和v(t+1)分别表示第t次迭代时用户和物品的概率向量,β是重启动概率,表示在每次迭代中,只有1-β的概率是从用户节点游走到物品节点,而有β的概率直接返回重启动节点va。rV是重启动向量,当i=va时,rV(i)=1,否则rV(i)=0。
当两次游走的节点概率分布之差小于一个阈值(一般取1e-8)时,可以认为随机游走已经收敛,令收敛时的物品概率分布向量表示为va。每个节点收敛概率的大小反应了它到重启动节点的近似程度,即认为收敛概率越大的点距离重启动节点va的距离越近。分别以每一个锚点物品为重启动节点进行带重启动的随机游走后,可以得到物品收敛概率矩阵CV的第a列表示锚点(ua,va)中以物品va为重启动节点时物品的收敛向量va,CV的第v行表示物品v在以不同锚点作为重启动节点时的收敛概率向量。
通过带重启动的随机游走来衡量节点与锚点之间的相关关系,避免了传统距离计算过程带来的损失,能够遍历到节点间所有已知的关联,得到更适合的相关关系度量结果,提高了预测的精确度。
步骤S5.根据用户收敛概率矩阵CU和物品收敛概率矩阵CV,得到每个锚点的邻域,该锚点和它的全部邻域构成以该锚点为核心的局部矩阵。
S501.对于每个用户u∈U,将CU的第u行按照降序排列,取排列中前ρ×A个锚点,将该用户加入这些锚点的用户邻域中。其中,ρ为局部矩阵规模控制参数,取0.5<ρ<1。同理可将每个用户分配进相应的锚点邻域中,最终每一个锚点a将得到其用户邻域集合Ua。
S502.对于每个物品v∈V,将CV的第v行按照降序排列,取排列中前ρ×A个锚点,将该物品加入这些锚点的物品邻域中。同理可将每个物品分配进相应的锚点邻域中,最终每一个锚点a将得到其物品邻域集合Va。
S503.对于每个锚点(ua,va),利用它的用户邻域集合Ua和物品邻域集合Va构建局部矩阵,具体如下:
对于每个用户u∈Ua,从原始评分矩阵R中抽出第u行;
对于每个物品v∈Va,从原始评分矩阵R中抽出第v列;
这些被抽取出来的行和列将构成以锚点(ua,va)为中心的局部矩阵Ra。
可以证明,对任意一个用户-物品对(u,v),至少能被一个局部矩阵覆盖:设邻域中包含u的锚点集合为邻域中包含v的锚点集合为由与每个节点都被分进ρ×A个锚点邻域中,从而又限定0.5<ρ<1,从而和中必定含有公共锚点,由这些公共锚点构成的局部矩阵必然会覆盖(u,v)。从而得出结论:这种从每个节点出发,为其分配锚点邻域的局部矩阵构建方法可以实现局部矩阵对原始矩阵的全覆盖。
步骤S6.对于每个局部矩阵,使用矩阵分解方法对该局部矩阵进行训练,训练收敛时得到该局部矩阵中用户对物品的预测评分。
将局部矩阵Ra分解为用户因子矩阵Pa和物品因子矩阵Qa,通过梯度下降方法不断的迭代训练,目标函数如下:
其中,||||表示矩阵范数,训练收敛时的Pa和Qa就是我们要获得的用户因子矩阵和物品因子矩阵;Ru,v表示用户u对物品v的实际评分,λ表示正则化系数,可以取0.001。最终可以计算在锚点(ua,va)对应的局部矩阵中,用户u对物品v的预测评分为:
其中,a=1,2,…,A。
步骤S7.将A个局部矩阵的预测评分进行平均,得到用户对物品的最终预测评分。
为验证本发明提出的预测方法的预测效果,选取知乎Live、movielens-100k和movielens-1m,ciao四个数据集作为研究对象,对比本发明方法、使用大矩阵的全局评分预测方法、基于距离计算及随机锚点选取构建局部矩阵的评分预测方法、基于距离计算及偏好锚点选取构建局部矩阵的评分预测方法的预测误差,对比结果如表1-4所示,其中,方法1为大矩阵的全局评分预测方法,方法2为基于距离计算及随机锚点选取构建局部矩阵的评分预测方法,方法3为基于距离计算及偏好锚点选取构建局部矩阵的评分预测方法,方法4为本发明方法。
表1
表2
表3
表4
由上述对比结果可知,本发明提出的基于图随机游走构建局部矩阵的评分预测方法,在RMSE和MAE的评价指标上较传统的评分预测方法有明显的提高,在测试集覆盖率上显著改善了其它基于构建局部矩阵的评分预测方法中局部矩阵无法完全覆盖测试数据的问题。这是由于使用了基于图随机游走的方式来选择锚点和构建锚点的邻域,选取的锚点更具有代表性,构建邻域的过程能够将节点间所有的关联关系考虑进去,避免了传统距离计算过程带来的误差,因此预测结果会更精确。同时在将节点分配进锚点邻域的过程中,限定局部矩阵规模控制参数0.5<ρ<1,因此能够实现对大矩阵的完全覆盖。
以上,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种基于图随机游走的个性化推荐方法,其特征在于,该方法包括以下步骤:
S1.根据用户数据、物品数据、用户对物品的评分的数据,构建用户-物品二分图;
S2.根据用户-物品评分矩阵R,得到用户-物品转移概率矩阵PUV和物品-用户转移概率矩阵PVU;
S3.在用户-物品二分图上进行随机游走直至随机游走收敛,随机游走过程中,根据PUV和PVU计算用户和物品的概率向量,从收敛的概率向量中选取收敛概率最大的A个用户和A个物品,将它们随机配对构成A个锚点;
S4.对于每个锚点,在用户-物品二分图上进行带重启动的随机游走直至随机游走收敛,带重启动的随机游走过程中,根据PUV和PVU计算的用户和物品的概率向量,根据收敛时的用户和物品的概率向量,构建用户收敛概率矩阵CU和物品收敛概率矩阵CV;
S5.根据用户收敛概率矩阵CU和物品收敛概率矩阵CV,得到每个锚点的邻域,该锚点和它的全部邻域构成以该锚点为核心的局部矩阵;
S6.对于每个局部矩阵,使用矩阵分解方法对该局部矩阵进行训练,训练收敛时得到该局部矩阵中用户对物品的预测评分;
S7.将A个局部矩阵的预测评分进行平均,得到用户对物品的最终预测评分;
S8.基于用户对物品的最终预测评分,向用户推荐物品。
2.如权利要求1所述的方法,其特征在于,步骤S1包括以下子步骤:
S101.用户数据中所有用户构成集合U,物品数据中所有物品构成集合V,集合U和集合V互不相交,集合U和集合V构成二分图的点集;
S102.如果用户对物品的评分的数据中存在用户u∈U对物品v∈V的打分ruv,则二分图中就存在一条用户u和物品v的连边,连边的权重是ruv。
3.如权利要求1所述的方法,其特征在于,步骤S2包括以下子步骤:
S201.根据用户对物品的评分的数据,构建用户-物品评分矩阵R;
S202.将用户-物品评分矩阵R按列归一化,得到物品-用户转移概率矩阵PVU;
S203.对RT按列归一化,得到用户-物品转移概率矩阵PUV。
4.如权利要求1所述的方法,其特征在于,步骤S3包括以下子步骤:
S301.随机初始化用户和物品的概率向量u(0)和v(0),t=0;
S302.在用户-物品二分图上的随机游走,计算第t次迭代时用户和物品的概率向量;
其中,u(t+1)和v(t+1)分别表示第t次迭代时用户和物品的概率向量,M表示用户数量,N表示物品数量,α是随机访问概率,PVU表示物品-用户转移概率矩阵,PUV表示用户-物品转移概率矩阵;
S303.判断两次游走的节点概率分布之差是否小于阈值,若是,进入步骤S304,否则,t=t+1,进入步骤S302;
S304.选取收敛概率最大的A个用户和A个物品,并将它们随机配对,组成A个用户-物品锚点对,即A个锚点。
6.如权利要求5所述的方法,其特征在于,步骤S41包括以下子步骤:
S411.以锚点用户ua为重启动节点在用户-物品二分图上进行随机游走,使用独热编码初始化用户概率向量u(0),并随机初始化物品概率向量v(0),t=0;
S412.计算第t次迭代时用户和物品的概率向量;
u(t+1)=(1-β)·PVUv(t)+β·rU
v(t+1)=PUVu(t)
其中,u(t+1)和v(t+1)分别表示第t次迭代时用户和物品的概率向量,β是直接返回重启动节点ua的概率,rU是重启动向量,PVU表示物品-用户转移概率矩阵,PUV表示用户-物品转移概率矩阵;
S413.判断两次游走的节点概率分布之差是否小于阈值,若是,得到收敛时的用户概率分布向量,否则,t=t+1,进入步骤S412。
7.如权利要求5所述的方法,其特征在于,步骤S42包括以下子步骤:
S421.以锚点物品va为重启动节点在用户-物品二分图上进行随机游走,使用独热编码初始化物品概率向量v(0),并随机初始化用户概率向量u(0),t=0;
S422.计算第t次迭代时用户和物品的概率向量;
v(t+1)=(1-β)·PUVu(t)+β·rV
u(t+1)=PVUv(t)
其中,u(t+1)和v(t+1)分别表示第t次迭代时用户和物品的概率向量,β是直接返回重启动节点va的概率,rV是重启动向量,PVU表示物品-用户转移概率矩阵,PUV表示用户-物品转移概率矩阵;
S423.判断两次游走的节点概率分布之差是否小于阈值,若是,得到收敛时的物品概率分布向量,否则,t=t+1,进入步骤S422。
8.如权利要求1所述的方法,其特征在于,步骤S5包括以下子步骤:
S501.对于每个用户u∈U,将CU的第u行按照降序排列,取排列中前ρ×A个锚点,将该用户加入这些锚点的用户邻域Ua中,ρ为局部矩阵规模控制参数;
S502.对于每个物品v∈V,将CV的第v行按照降序排列,取排列中前ρ×A个锚点,将该物品加入这些锚点的物品邻域Va中;
S503.对于每个锚点(ua,va),利用它的用户邻域集合Ua和物品邻域集合Va构建局部矩阵Ra。
9.如权利要求8所述的方法,其特征在于,步骤S503具体如下:对于每个用户u∈Ua,从原始评分矩阵R中抽出第u行;对于每个物品v∈Va,从原始评分矩阵R中抽出第v列;这些被抽取出来的行和列将构成以锚点(ua,va)为中心的局部矩阵Ra。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述的基于图随机游走的个性化推荐方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910508941.9A CN110322053B (zh) | 2019-06-13 | 2019-06-13 | 一种基于图随机游走构建局部矩阵的评分预测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910508941.9A CN110322053B (zh) | 2019-06-13 | 2019-06-13 | 一种基于图随机游走构建局部矩阵的评分预测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110322053A CN110322053A (zh) | 2019-10-11 |
CN110322053B true CN110322053B (zh) | 2022-02-15 |
Family
ID=68119706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910508941.9A Expired - Fee Related CN110322053B (zh) | 2019-06-13 | 2019-06-13 | 一种基于图随机游走构建局部矩阵的评分预测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110322053B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111008334B (zh) * | 2019-12-04 | 2023-04-18 | 华中科技大学 | 基于局部成对排序和全局决策融合的Top-K推荐方法和系统 |
CN111104606B (zh) * | 2019-12-06 | 2022-10-21 | 成都理工大学 | 一种基于权重的条件游走图推荐方法 |
CN111144976B (zh) * | 2019-12-10 | 2022-08-09 | 支付宝(杭州)信息技术有限公司 | 推荐模型的训练方法及装置 |
CN113065771B (zh) * | 2021-04-06 | 2022-08-19 | 青岛科技大学 | 基于指标权值优化的化工企业事故风险评估方法及系统 |
CN115757984B (zh) * | 2022-11-18 | 2023-06-20 | 青海师范大学 | 基于深度游走和物品协同过滤的融合推荐方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110145262A1 (en) * | 2009-12-15 | 2011-06-16 | International Business Machines Corporation | Measuring node proximity on graphs with side information |
US20160189218A1 (en) * | 2014-12-30 | 2016-06-30 | Yahoo, Inc. | Systems and methods for sponsored search ad matching |
CN106682963A (zh) * | 2016-12-29 | 2017-05-17 | 同济大学 | 基于凸优化局部低秩矩阵近似的推荐系统数据补全方法 |
CN107403390A (zh) * | 2017-08-02 | 2017-11-28 | 桂林电子科技大学 | 一种融合贝叶斯推理和图上随机游走的好友推荐方法 |
CN107705212A (zh) * | 2017-07-07 | 2018-02-16 | 江苏开放大学 | 一种基于粒子群随机游走的角色识别方法 |
-
2019
- 2019-06-13 CN CN201910508941.9A patent/CN110322053B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110145262A1 (en) * | 2009-12-15 | 2011-06-16 | International Business Machines Corporation | Measuring node proximity on graphs with side information |
US20160189218A1 (en) * | 2014-12-30 | 2016-06-30 | Yahoo, Inc. | Systems and methods for sponsored search ad matching |
CN106682963A (zh) * | 2016-12-29 | 2017-05-17 | 同济大学 | 基于凸优化局部低秩矩阵近似的推荐系统数据补全方法 |
CN107705212A (zh) * | 2017-07-07 | 2018-02-16 | 江苏开放大学 | 一种基于粒子群随机游走的角色识别方法 |
CN107403390A (zh) * | 2017-08-02 | 2017-11-28 | 桂林电子科技大学 | 一种融合贝叶斯推理和图上随机游走的好友推荐方法 |
Non-Patent Citations (3)
Title |
---|
"LLORMA: Local Low-Rank Matrix Approximation";Joonseok Lee;《Journal of Machine Learning Research》;20161231;1-24 * |
"Local Low-Rank Matrix Approximation with Preference Selection of Anchor Points";Menghao Zhang;《2017 International World Wide Web Conference Committee》;20171231;1395-1403 * |
"Matrix factorization techniques for recommender systems";Yehuda Koren;《Computer》;20091231;30-37 * |
Also Published As
Publication number | Publication date |
---|---|
CN110322053A (zh) | 2019-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110322053B (zh) | 一种基于图随机游走构建局部矩阵的评分预测方法 | |
CN109816012B (zh) | 一种融合上下文信息的多尺度目标检测方法 | |
CN110378731B (zh) | 获取用户画像的方法、装置、服务器及存储介质 | |
US11030265B2 (en) | Cross-platform data matching method and apparatus, computer device and storage medium | |
US11417095B2 (en) | Image recognition method and apparatus, electronic device, and readable storage medium using an update on body extraction parameter and alignment parameter | |
CN109063041B (zh) | 关系网络图嵌入的方法及装置 | |
CN109711399B (zh) | 基于图像的店铺识别方法、装置,电子设备 | |
US10749754B2 (en) | Network distance prediction method and apparatus | |
CN112464057A (zh) | 一种网络数据分类方法、装置、设备及可读存储介质 | |
CN109636509B (zh) | 一种基于非对称距离构建子矩阵的评分预测方法 | |
WO2023036184A1 (en) | Methods and systems for quantifying client contribution in federated learning | |
CN110689110A (zh) | 处理交互事件的方法及装置 | |
CN111639974B (zh) | 基于亚马逊平台的产品关联度定量分析方法 | |
CN107403390B (zh) | 一种融合贝叶斯推理和图上随机游走的好友推荐方法 | |
CN109241442A (zh) | 基于预测值填充的项目推荐方法、可读存储介质和终端 | |
CN104035978B (zh) | 社团发现方法及系统 | |
CN115346207A (zh) | 一种基于实例结构相关性的二维图像中三维目标检测方法 | |
CN111008334B (zh) | 基于局部成对排序和全局决策融合的Top-K推荐方法和系统 | |
CN106997381A (zh) | 向目标用户推荐影视的方法及装置 | |
CN109741380A (zh) | 纺织品图片快速匹配方法和装置 | |
CN113239266A (zh) | 基于局部矩阵分解的个性化推荐方法及系统 | |
CN111967946A (zh) | 一种基于面向用户多关系信息网络的商品推荐方法及系统 | |
CN111870958B (zh) | 一种道具推荐方法、装置、电子设备和存储介质 | |
CN113868523A (zh) | 推荐模型训练方法、电子设备及存储介质 | |
US8447105B2 (en) | Data driven interpolation using geodesic affinity |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220215 |