[发明专利]基于网络社区的协同过滤推荐方法有效
申请号: | 201410007387.3 | 申请日: | 2014-01-08 |
公开(公告)号: | CN103793476B | 公开(公告)日: | 2017-02-15 |
发明(设计)人: | 刘静;焦李成;刘辰龙;马文萍;马晶晶;李阳阳;朱虎明 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 陕西电子工业专利中心61205 | 代理人: | 王品华,朱红星 |
地址: | 710071*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于网络社区的协同过滤推荐方法,主要解决现有技术在获得用户之间相似度数据时存在稀疏性,造成推荐准确率低的问题。其实现步骤是获取用户对待推荐项目的评分信息,并利用用户对待推荐项目的评分数据间接生成用户与用户之间的关系网络;计算用户之间的相似度;通过基于相似度的社区检测将用户关系网络划分成若干个用户社区;选取用户所在社区内相似度最大的k个用户组成近邻用户集合,根据近邻用户集合对目标用户未评分的项目进行预测评分;将评分预测值中最大的项目推荐给用户。仿真实验结果表明,本发明比传统协同过滤推荐方法能得到更好的推荐结果,可用于向用户推荐用户感兴趣的项目。 | ||
搜索关键词: | 基于 网络 社区 协同 过滤 推荐 方法 | ||
【主权项】:
一种基于网络社区的协同过滤推荐方法,包括如下步骤:(1)获取用户对待推荐项目的评分信息,通过用户对待推荐项目的评分数据间接生成用户与用户之间的关系网络,其中任意两个用户共同评分的项目个数表示这两个用户之间的权值关系,这些用户之间的权值关系构成用户与用户的关系网络,用户对项目的评分信息用矩阵R(m,n)表示为:R(m,n)=r11,r12...,r1j...,r1n......ri1,ri2...,rij...,rin......rm1,rm2...,rmj...,rmn,]]>其中m和n分别表示用户数和项目数,rij表示矩阵中第i行第j列的元素用户i对项目j的评分值;(2)通过用户之间的关系网络,计算任意两个用户u和v之间的相似度s(u,v);(3)将获得的用户与用户的关系网络划分成若干个用户社区:(3a)将每个用户比作一个节点,获得用户网络的节点数n,随机生成Pop=50个初始个体,将每个个体用从1到n的一种随机排列表示为AP,即:AP={v1,...vi,...vn},其中vi表示第i个节点,i∈[1,n];(3b)设AC表示社区集合,对每个个体的随机排列进行解码:(3b1)设解码的最初时刻AC为空集合,即集合中社区的数量m为0,将随机排列AP的初始节点v1加入到一个新的空社区Cm+1中,并将此社区加入到社区集合AC中,此时m=m+1;(3b2)定义T(Cj)表示第j个社区Cj的质量函数T(Cj)=SinCjSinCj+SoutCj,]]>其中表示第j个社区Cj的内部节点相似度之和,表示第j个社区Cj内部节点与外部节点相似度之和;(3b3)将随机排列AP中的节点从第二个节点v2开始,依次判断是否加入到社区C1,…Cj,...,Cm中:计算社区C1的质量函数值T(C1)和v2加入社区C1后的值T(C1∪v2),当满足T(C1∪v2)>T(C1)时,将节点v2加入到社区C1中并跳到下一个节点v3,否则判断节点v2是否加入到社区C2中,当满足T(C2∪v2)>T(C2)时,将节点v2加入到社区C2中并跳到下一个节点v3,否则判断节点v2是否加入到社区C3中,以此类推,直到节点v2加入到对应的社区中并跳到下一个节点v3;如果节点v2不能加入到AC的任意一个社区,则将节点v2加入到一个新的空社区Cm+1中并将此社区加入到社区集合AC中,跳到下一个节点v3,此时m=m+1;根据上述规则将所有节点都划分到对应社区中,即将AP解码为AC={C1,…Cj,...,Cm};(3c)生成新的个体的随机排列AP′:(3c1)定义用于评价每个个体社区划分好坏的适应度函数fun(AC)为:fun(AC)=Σj=1mT(Cj)/m,]]>其中T(Cj)表示第j个社区Cj的质量函数,m表示社区的数量;(3c2)按照适应度函数公式计算出每个个体的适应度函数值,选择出适应度函数值大小排名前10%的个体保留,其余90%的个体再随机生成新的个体的随机排列AP′;(3d)获得用户关系网络的最终社区划分:(3d1)对生成的新的排列个体AP′,采用步骤(3b)的方式解码,并计算解码后的个体的适应度值;(3d2)将之前保留的10%个个体与新生成的个体重新放到一起,挑选出适应度值最大的前10%个个体,将其余90%的个体再重新生成新的排列个体;(3d3)循环步骤(3d1)和(3d2)共10次,在最后一次循环后选出适应度函数值最高的个体,并将其对应的社区集合作为最后的社区划分集合:ACu={Cu1,…Cuj,…,Cum},其中m表示社区个数,Cuj表示第j个社区;(4)将用户关系网络划分为社区后,对用户未评分的项目进行预测评分,得到未评分项目的评分预测值;(5)将评分预测值中最大的项目推荐给用户。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410007387.3/,转载请声明来源钻瓜专利网。