一种面向群组的基于联合概率矩阵分解的项目推荐方法

文档序号:9506199阅读:752来源:国知局
一种面向群组的基于联合概率矩阵分解的项目推荐方法
【技术领域】
[0001] 本发明涉及计算机应用技术领域,具体地说是一种面向群组的基于联合概率矩阵 分解的项目推荐方法。
【背景技术】
[0002] 随着信息技术和社交网络的快速发展,各种虚拟社区不断涌现,社区中的用户之 间交流越来越便捷。频繁的社区活动使用户结成群组,共同参与一些活动,他们的行为表 现出一定的群组特征。因此,推荐系统面向的用户从个体转向群组的情况越来越多,群组 推荐就是根据群组内用户的综合偏好,为其推荐感兴趣的信息和项目。目前,MusixFX, PolyLens,TV4M等群组推荐系统已经被陆续开发出来并广泛应用,大幅度减少了群组用户 搜索信息消耗的时间和精力,提升了群组用户的满意度。
[0003] 群推荐技术是在基于个人的推荐技术的基础上发展起来的,其主要思路是在基于 个人的推荐技术的个体偏好提取、评分预测和获得个人推荐列表等不同阶段运用合成策 略,从而获得面向群组的推荐。现有的研究方法虽然能够为群组推荐系统的构建提供理论 基础和实践指导,但是仍然存在很多不足之处:
[0004] (1)没有考虑群组内用户之间的相关性。已有的面向群组的推荐方法很少考虑用 户之间的相关性,或者只是从全局的角度考虑用户之间的相关性,却没有考虑群组内用户 之间的相关性。实际上,用户加入某一群组,是因为用户的个人偏好与群组的整体偏好存在 一定的相关性。因此,群组内的用户之间在个人偏好方面也存在一定的相关性,而且,随着 用户加入相同群组的个数越来越多,这种相关性会越来越强。但是,现有的面向群组的推荐 方法却没有考虑群组内成员之间的相关性这一重要因素,降低了面向群组的推荐系统的精 度。
[0005] (2)群推荐的合成阶段问题。现有的基于矩阵分解的群推荐方法,一种是在运用矩 阵分解方法之前的个人特征偏好提取阶段,运用合成策略得到群组的偏好,然后,运用矩阵 分解方法获得对群组的推荐结果。另一种是在通过矩阵分解方法得到个人对项目的预测评 分后,对预测评分或者是通过预测评分得到的个人推荐列表运用合成策略,从而得到面向 群组的推荐列表。然而,在通过对用户项目评分矩阵实施矩阵分解获得用户特征矩阵后,将 群组内用户的特征向量运用合成策略合成得到群组的特征向量,这一阶段的合成问题还没 有进行研究。

【发明内容】

[0006] 本发明是为了克服现有技术存在的不足之处,提供一种面向群组的基于联合概率 矩阵分解的项目推荐方法,以期能充分考虑群组内成员之间的相关性,并在群推荐的新的 合成阶段运用合成策略,从而能提高面向群组的项目推荐的精度,提升群组内成员对推荐 结果的满意度。
[0007] 本发明为达到上述发明目的采用如下技术方案:
[0008] 本发明一种面向群组的基于联合概率矩阵分解的项目推荐方法的特点是按如下 步骤进行:
[0009] 步骤1、构造三元组T和三元组P :
[0010] 步骤1. 1、用三元组T = <U,I,R>表示用户对项目的评分信息;U表示用户 集,并有U = IU1,U2,…,U1,…,UlulI ^表示第i个用户;I表示项目集,并有I = {n···,:^,···,!^} ;I.j表示第j个项目;R表示评分信息矩阵,并有R= UlulXlll; R1, j表示第i个用户u i对第j个项目I郝评分;1彡i彡|u| ;1彡j彡111 ;
[0011] 步骤1. 2、用三元组P = <G,U,A>表示用户属于群组的信息;G表示群组集,并有G =(G1, G2, · · ·,Gg, · · ·,G|g|} ;Gg表示第g个群组;A表示群组用户矩阵,并有A = {Agii} |G|X|U|; A&1= 1表示第i个用户U i属于第g个群组;A &1= 0表示第i个用户U 属于第g个群 组;I < |G| ;
[0012] 步骤2、计算基于三元组P的用户相关性;
[0013] 步骤2.1、利用式(1)获得第i个用户U1和第m个用户Uni共同属于同一群组的个 数C 1,",从而获得所有用户之间的共同属于同一群组的信息矩阵C = IC1Jlulxlul:
[0014] Clin= |A .xn a .J (i)
[0015] 式⑴中,Au表示第i个用户U馮否属于群组集G的信息;A 表示第m个用户 Uni是否属于群组集G的信息;1彡m彡|U| ;
[0016] 步骤2. 2、利用式(2)获得归一化处理后的个数C' 从而获得所有用户之间的 共同属于同一群组的归一化信息矩阵C' = 1C' IlJlulxlul:
[0018] 步骤3、利用联合概率矩阵分解方法获得用户特征矩阵W和项目特征矩阵V :
[0019] 步骤3. 1、利用式(3)构建评分信息矩阵R的先验分布/ψ? :
[0021] 式⑶中,W1表示第i个用户U i的特征向量;V j表示第j个项目I』的特征向量;W 表示所有用户的特征向量所构成的用户特征矩阵;V表示所有项目的特征向量所构成的项 目特征矩阵
表示第i个用户U1对第j个项目I ,的评分R U服从均 值为g (W1tI),方差为⑷的正态分布;并有
表示将W1tI的值映射到
[0, 1]内;当第i个用户U1对第j个项目I ,进行过评分,则令

[0022] 步骤3. 2、利用式(4)构建用户特征矩阵W的先验分布:
[0024] 式⑷中,J表示单位向量;表示第i个用户Ui的特征向量W ;的方差, Ν(Κ |0,σ"2/)表示第i个用户U1的特征向量WJl从均值为0,方差为的正态分布;同 理
:表示第i个用户U1的特征向量W1服从均值为
方差 为的正态分布;不第m个用户Um的特征向量;
[0025] 步骤3. 3、利用式(5)构建项目特征矩阵V的先验分布

[0027] 式(5)中:
表示第j个项目I,的特征向量V ,服从均值为0,方差为 V的正态分布;
[0028] 步骤3. 4、由式(3)、式(4)和式(5)进行贝叶斯推断,获得如式(6)所示的用户特 征矩阵W和项目特征矩阵V的极大后验概_

[0030] 步骤3. 5、对式(6)经过对数处理获得式(7):
[0032] 式(7)中,H表示第i个用户的特征向量W1和第j个项目的特征向量V涧维度; D为常量;
[0033] 步骤3. 6、对式(7)进行推导,获得如式⑶所示的最小化目标函数 L(R, Cr ,ff,V):
[0036] 步骤3. 7、随机初始化用户特征矩阵W和项目的特征矩阵V ;
[0037] 步骤3. 8、设定迭代阈值为τ,并初始化迭代次数Z = 1 ;
[0038] 步骤3. 9、利用式(9)和式(10)分别获得第Z次迭代的第i个用户U1的特征向量 W1的梯度
以及第Z次迭代的第j个项目I j的特征向量V j的梯度

[0041] 步骤3. 10、利用式(11)和式(12)分别更新第Z次迭代的第i个用户1^的特征向 量Ι(ζ)以及第Z次迭代的第j个项目I,的特征向量rf,获得第Z+1次迭代的第i个用户 U1的特征向量w i (z+1)以及第z+i次迭代的第j个项目I,的特征向量Ff+1>;
[0044] 式(11)和式(12)中,β为学习率;
[0045] 步骤3. 11、将Ζ+1赋值给Ζ,判断Z彡τ是否成立,若成立,则重复步骤3. 9和步 骤3. 10执行;否则,表示获得更新的第i个用户U1的特征向量W' i以及更新的第j个项 目h的特征向量V',,从而获得所有用户更新的用户特征矩阵W'和更新的项目特征矩阵 Vr ;
[0046] 步骤4、利用平均策略计算得到群组特征矩阵M :
[0047] 步骤4. 1、利用式(13)得到第g个群组6』勺群组特征向量Mg:
[0049] 式(13)中,表示属于第g个群组Gg的第x个用户Ux的特征向量;|G g|表示 第g个群组Gg内所含用户的个数;
[0050] 步骤4. 2、对所有群组,重复步骤4. 1,从而获得群组特征矩阵M= IM2,…,Mg,… M|G|};
[0051] 步骤5、获取对每个群组的预测评分最高的前N个项目构成推荐列表:
[0052] 步骤5. 1、利用式(14)得到第g个群组Gg对第j个项目I ,的预测评分< ;:
[0054] 式(14)中,表示第g个群组Gg的特征向量Mg中第1个元素;F ;(/)表示第j个 项目I j的特征向量V i中第1个元素;
[0055] 步骤5. 2、重复步骤5. 1,从而获得第g个群组&对所有项目的预测评分,并从所 有项目的预测评分中选取评分最高的且第g个群组Gg中所有用户均未评分的前N个项目 组成第g个群组G g的推荐列表,从而获得所有群组的推荐列表。
[0056] 与已有技术相比,本发明有益效果体现在:
[0057] 1、本发明将群组内用户相关性融入到概率矩阵分解中,并且通过合成策略合成群 组内用户的特征向量获
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1