[发明专利]一种基于联合聚类的矩阵分解推荐方法有效

专利信息
申请号: 201710833356.7 申请日: 2017-09-15
公开(公告)号: CN107577786B 公开(公告)日: 2019-09-10
发明(设计)人: 刘学亮;杨文娟;吴乐;汪萌;洪日昌 申请(专利权)人: 合肥工业大学
主分类号: G06F16/9535 分类号: G06F16/9535;G06F16/9536;G06F16/35;G06F17/16
代理公司: 安徽省合肥新安专利代理有限责任公司 34101 代理人: 陆丽莉;何梅生
地址: 230009 安*** 国省代码: 安徽;34
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 联合 矩阵 分解 推荐 方法
【权利要求书】:

1.一种基于联合聚类的矩阵分解推荐方法,其特征按如下步骤进行:

步骤1、构造用户-项目评分矩阵R

令U表示用户集,且U={u1,u2,...,ui,...,uM},ui表示第i个用户,1≤i≤M,M表示用户总数;令V表示项目集,且V={v1,v2,...,vj,...,vN},vj表示第j个项目,1≤j≤N,N表示项目总数;令rij表示第i个用户ui对第j个项目vj的评分值,则用户-项目评分矩阵为R={rij}M×N

步骤2、用户-项目评分矩阵R通过联合聚类分成若干个类别

步骤2.1、设定类别总数为K,随机初始化第i个用户ui对第j个项目vj的评分值rij属于第k个类别Ck的概率p(k|ui,vj,rij),设定迭代阈值为τmax,当前迭代次数为τ,并初始化τ=1;

步骤2.2、利用式(1)、式(2)、式(3)分别计算第τ次迭代时第i个用户ui属于第k个类别Ck的概率(p(k|ui))τ,第τ次迭代时第j个项目vj属于第k个类别Ck的概率(p(k|vj))τ,第τ次迭代时第k个类别Ck中出现评分值rij的概率(p(rij|k))τ

(p(k|ui))τ=Σvf∈V(ui)(p(k|ui,vf,rif))τΣk=1KΣvf∈V(ui)(p(k|ui,vf,rif))τ---(1)]]>

(p(k|vj))τ=Σuq∈U(vj)(p(k|uq,vj,rqj))τΣk=1KΣuq∈U(vj)(p(k|uq,vj,rqj))τ---(2)]]>

(p(rij|k))τ=Σvf∈V(ui),uq∈U(vj)(p(k|uq,vf,rqf))τΣq=1BΣf=1AΣk=1K(p(k|uq,vf,rqf))τ---(3)]]>

式(1)中,V(ui)表示第i个用户ui评过分的所有项目集合,假设项目集合V(ui)中的项目个数为A,则vf表示项目集合V(ui)中的第f个项目,且f∈{1,2,...,A},rif表示第i个用户ui对第f个项目vf的评分值,(p(k|ui,vf,rif))τ表示第τ次迭代时第i个用户ui对第f个项目vf的评分rif属于第k个类别Ck的概率;

式(2)中,U(vj)表示给第j个项目vj评过分的所有用户的集合,假设用户集合U(vj)中的用户个数为B,则uq表示用户集合U(vj)中的第q个用户,且q∈{1,2,...,B},rqj表示第q个用户uq对第j个项目vj的评分值,(p(k|uq,vj,rqj))τ表示第τ次迭代时第q个用户uq对第j个项目vj的评分值rqj属于第k个类别Ck的概率;

式(3)中,rqf表示第q个用户uq对第f个项目vf的评分值,(p(k|uq,vf,rqf))τ表示第τ次迭代时第q个用户uq对第f个项目vf的评分值rqf属于第k个类别Ck的概率;

步骤2.3、利用式(4)计算第τ次迭代的第i个用户ui对第j个项目vj的评分rij属于第k个类别Ck的概率(p(k|ui,vj,rij))τ

(p(k|ui,vj,rij))τ=[(p(k|ui))τ+a]×[(p(k|vj))τ+b]×[(p(rij|k))τ+c]Σk=1K[(p(k|ui))τ+a]×[(p(k|vj))τ+b]×[(p(rij|k))τ+c]---(4)]]>

式(4)中,a,b,c是为了防止分母为零而设置的超参数;

步骤2.4、将τ+1赋值给τ,并判断τ≤τmax是否成立,若成立,则返回步骤2.2执行;否则,表示获得最终的第i个用户ui对第j个项目vj的评分rij属于第k个类别Ck的概率p(k|ui,vj,rij);

步骤2.5、重复步骤2.2-步骤2.4,从而获得最终的第i个用户ui对第j个项目vj的评分rij属于K个类别的概率,并将第i个用户ui、第j个项目vj及其评分rij划分到概率最大的类别中;

步骤2.6、重复步骤2.2-步骤2.5,从而将所有用户、所有项目及其评分划分到概率最大的类别中,进而将用户集U、项目集V以及用户-项目评分矩阵R划分成K个类别,其中,K个类别中存在有空集;

步骤3、利用概率矩阵分解的方法对第k个类别Ck中的未知评分进行预测和推荐;

步骤3.1、计算相似度

根据余弦相似度计算出用户与用户间的相似度矩阵,令s(ui,ue)表示第i个用户ui与第e个用户ue间的相似度,并有1≤i≤M,1≤e≤M,则用户相似度矩阵记为S={s(ui,ue)}M×M;同理计算出项目与项目间的相似度矩阵,令z(vj,vp)表示第j个项目vj与第p个项目vp间的相似度,并有1≤j≤N,1≤p≤N,则项目相似度矩阵记为Z={z(vj,vp)}N×N

步骤3.2、分别根据式(5)和式(6)计算第k个类别Ck中第i个用户ui的特征向量和第k个类别Ck中第j个项目vj的特征向量

p(Qik|σQ2)=Πi=1xKN(Qik|0,σQ2J)---(5)]]>

式(5)中,J表示单位向量;表示第k个类别Ck中第i个用户ui的特征向量所服从正态分布的方差;

p(Ljk|σL2)=Πi=1yKN(Ljk|0,σL2J)---(6)]]>

式(6)中,表示第k个类别Ck中第j个项目vj的特征向量所服从正态分布的方差;

步骤3.3、根据式(7)计算第k个类别Ck的先验分布p(Rk|Qk,Lk2):

p(Rk|Qk,Lk,σ2)=Πi=1xkΠj=1yk[N(rijk|(Qik)TLjk,σ2)]ωij---(7)]]>

式(7)中,Rk表示第k个类别Ck中的评分矩阵;Lk表示第k个类别Ck中所有项目的特征向量所构成的项目特征矩阵;Qk表示第k个类别Ck中所有用户的特征向量所构成的用户特征矩阵;σ2为第k个类别Ck中的评分矩阵Rk所服从正态分布的方差,表示第k个类别Ck中第i个用户对第j个项目的评分;ωij为指标函数,当第i个用户ui评论过第j个项目vj时,ωij=1,否则ωij=0;表示第k个类别中的第i个用户对第j个项目的评分服从均值为方差为σ2的正态分布;

步骤3.4、建立如式(8)所示的误差平方和目标函数Ek

Ek=12Σi=1xkΣj=1ykωij(rijk-(Qik)TLjk)2+12λQΣi=1xk||Qik-Σe∈Cks(ui,ue)×Qek||F+12λLΣj=1yk||Ljk-Σp∈Ckz(vj,vp)×Lpk||F---(8)]]>

式(8)中,xk表示第k个类别Ck共有的用户总数;yk表示第k个类别Ck共有的项目总数;λQ表示第e个用户ue对第i个用户ui在目标函数上的影响因子,λL表示第p个项目vp对第j个项目vj在目标函数上的影响因子,且有F表示Frobenius范数;

步骤3.4、设定迭代阈值μmax,当前迭代次数为μ,并初始化μ=1;

步骤3.5、随机初始化用户特征矩阵Qk和项目特征矩阵Lk作为第μ-1次迭代的初始用户特征矩阵(Qk)μ-1和项目特征矩阵(Lk)μ-1

步骤3.6、利用式(9)和式(10)分别获得第μ次迭代的第k个类别Ck中第i个用户ui的特征向量和第k个类别Ck中第j个项目vj的特征向量

(Qik)μ=Σe∈Cks(ui,ue)×(Qik)μ-1+φQk,φQk~N(0,σQ2J)---(9)]]>

式(9)中,表示第k个类别Ck中第i个用户ui的特征向量的正则化项,并且服从均值为零,方差为的正态分布;

(Ljk)μ=Σp∈Ckz(vj,vp)×(Ljk)μ-1+φLk,φLk~N(0,σL2J)---(10)]]>

式(10)中,表示第k个类别Ck中第j个项目vj的特征向量的正则化项,并且服从均值为零,方差为的正态分布;

步骤3.7、利用式(11)和式(12)分别获得第μ次迭代的第i个用户ui的特征向量的梯度以及第μ次迭代的第j个项目vj的特征向量的梯度

(∂Ek∂Qik)(μ)=Σj=1yk(rijk-((Qik)(μ))T(Ljk)(μ))(-Ljk)(μ)+λQ((Qik)(μ)-Σe∈Cks(ui,ue)×(Qek)(μ))-λQΣi∈Cks(ue,ui)(Qek-Σj∈Ckz(vj,vp)×(Qjk)(μ))---(11)]]>

(∂Ek∂Ljk)(μ)=Σi=1xk(rijk-((Qik)(μ))T(Ljk)(μ))(-Qik)(μ)+λL((Ljk)(μ)-Σp∈Ckz(vj,vp)×(Lpk)(μ))-λLΣj∈Ckz(vp,vj)((Lpk)(μ)-Σi∈Cks(ui,ue)×(Lik)(μ))---(12)]]>

步骤3.8、将μ+1赋值给μ,并判断μ≤μmax是否成立,若成立,则重复步骤3.6执行;否则,表示获得最终的第k个类别Ck中的第i个用户ui的特征向量以及第k个类别Ck中的第j个项目vj的特征向量从而获得第k个类别Ck中的所有用户最终的用户特征矩阵Qk和第k个类别Ck中的所有项目最终的项目特征矩阵Lk

步骤3.9、利用式(13)获得第k个类别Ck的预测评分矩阵Rk,从而得到K个类别预测评分矩阵:

Rk=(Qk)TLk(13)

步骤3.10、根据K个类别预测评分矩阵,将满足评分要求的项目推荐给相应用户。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于合肥工业大学,未经合肥工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710833356.7/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top