一种基于共享近邻聚类的协同过滤方法_2

文档序号:9217297阅读:来源:国知局
,将m个代表点 所在的用户簇组成相似簇集合SC= {SCi,SC2,…,SCJ,即组成目标用户u的最近邻居搜索 空间。相似簇个数m的选取可控制最近邻居搜索空间的大小,当m=n时,即为搜寻整个用 户空间,其中,m彡n。
[0062] 步骤6、对每个相似簇SQ中的每个用户u」,计算目标用户u与相似簇SQ中用户 Uj的相似度sim(u, u:
[0064]其中,ru,A表用户u的评分值,代表相似簇SQ中用户u」的评分值,5代表 用户u的平均评分,t代表相似簇SQ中用户u」的平均评分,其中,i= 1,2,. . .n,j= 1,2, ? ? ?m;
[0065] 步骤7、取步骤6中相似度较高的N个用户作为目标用户u的最近邻用户,得到目 标用户u的最近邻用户集合N= {Vi,v2, . . .,vN};
[0066] 步骤8、通过最近邻用户集合N计算目标用户u对项目p的预测评分值pred(u,p) 公式如⑷所示:
[0068] 其中,6表示目标用户u项目评分的平均值,6表示用户v项目评分的平均值,rv,p 为用户v的评分值,sim(u, v)为目标用户u与用户v的相似度,为:
[0070] 其中,1^代表用户u的评分值,6代表用户u的平均评分,6代表用户v的平均评 分。
[0071] 与目标用户u相似度越高的近邻,在评分预测时,该用户评分的所占权重就越大。
[0072] 步骤9、得到目标用户u的预测评分值列表后,将预测评分值降序排列,取前k个项 目即预测评分值较高的k个项目,生成最终的推荐列表RecList= {Pl,p2,…,pk},即为对目 标用户u的推荐列表。
[0073] 实验结果对比
[0074] MovieLens数据集是由明尼苏达州立大学的GroupLens项目组公布的用户对电影 评分数据集,是推荐领域实验最常用的数据集。本实验使用MovieLens的ml-100k版本,其 中包含943位用户对1682个电影项目的评分记录,评分值为1到5的整数,评分越高表明 用户对该项目越喜欢。该数据集共有10万条评分,其中每位用户都至少对20条项目进行 了评分。实验数据集格式如表1所示。
[0075] 表1实验数据集格式
[0076]
[0077] 本发明的实验采用平均绝对误差(MAE,MeanAbsoluteError)来评测算法的准 确性。MAE对所有评估用户ueU和测试集testsetu中的所有物品,计算预测推荐得分rec(u,i)与实际评分值'i的平均误差,能够评估出推荐算法预测用户对某个项目偏好的 能力。平均绝对误差MAE值越小,说明推荐准确度越高,MAE值越大,说明推荐的准确度越 低。计算方法如公式(6):
[0079] 实验对比算法采用基于k-means的协同过滤算法与传统的基于用户的协同过滤 算法,作用于MovieLens数据集,所得实验结果如图2所示。由图2中三个算法在平均绝对 误差MAE上的性能可以看出,本发明基于共享近邻聚类的协同过滤方法在推荐精度上明显 优于基于k-means的协同过滤算法,非常接近于基于用户的协同过滤算法。
[0080] 传统的基于用户聚类后再进行协同过滤,会无法避免的对推荐的准确度造成一定 影响。因为聚类后的最近邻用户搜索空间缩小,比起传统算法搜索整个用户空间,无法保证 比较全部用户后获取最近邻。相似簇个数m的选取可控制最近邻搜索空间的大小,m越大, 用户覆盖率越高,获取的相似度最高的N个近邻用户Top-N相似用户就越准确,推荐准确度 就越好。当m=n时,即为搜索全部的用户簇,推荐准确度基本与传统算法相同。但当m值 减少时,搜索的相似簇数目的减少能够有效的减少生成推荐的时间,从而提升算法的实时 性。对推荐系统来说,完全牺牲响应速度以获得推荐准确度的少量提升是不实际的。因此 本发明基于共享近邻聚类的协同过滤方法,能够在保证推荐准确度的前提下提升算法的实 时性和可扩展性,是一种比较有效的推荐算法。
[0081] 由于数据集的高维和稀疏性,K-means聚类处理该类数据存在一定的局限性,同时 由于K-means聚类对噪声敏感的缺陷,对用户簇划分的不准确导致仅从相似簇中无法获得 最多的最近邻居,使得推荐的准确度较低。本发明基于共享近邻相似度进行用户聚类能够 有效剔除噪声点,并且不受直接距离和低密度数据分布的影响,从而生成更为合理的用户 簇划分,能从相似簇中获得更多高相似度的用户,保证了推荐的准确度。
[0082] 图3为本发明基于共享近邻聚类的协同过滤算法与传统协同过滤算法、基于 k-means的协同过滤算法的运行时间实验结果。当目标用户数目增多时,传统协同过滤算 法的运行时间相应的大幅增长,对500个目标用户生成推荐需要耗费长达117秒的时间。 但本发明基于共享近邻聚类的协同过滤方法的运行时间增长速度相对平缓,当用户数增大 时,显著减少了运行时间。这是因为传统协同过滤算法每次生成推荐都需要计算目标用户 与所有用户的相似度,而通过聚类缩小搜索空间后,仅需要在相似簇内搜索,既能获取高相 似度的近邻又缩减了计算量。因此,本发明基于共享近邻聚类的协同过滤方法在保证推荐 准确性的同时,提升了算法的实时性,从而解决了用户量增多时协同过滤算法的可扩展性。
【主权项】
1. 一种基于共享近邻聚类的协同过滤方法,其特征在于,具体按照w下步骤实施: 步骤1、构建用户-项目评分矩阵R; 步骤2、计算用户的共享近邻相似度; 步骤3、根据每个用户的共享近邻密度进行聚类,形成用户簇C= (Cl,C,,…,C。},并计 算出用户簇代表点集合CP= {cPi,CP2,…,Cp。}; 其中,cPi是用户簇Ci的代表点,i= 1,2,. . .n; 步骤4、计算目标用户u与用户簇。的代表点cpi的相似度sim(u,cpi); 步骤5、从步骤4得到的n个相似度中选出相似度较高的m个代表点,将m个代表点所 在的用户簇组成相似簇集合SC=怯Ci,SC2,…,SCmK其中,n; 步骤6、对每个相似簇S。中的每个用户Uj,计算目标用户u与相似簇S。中用户Uj的 相似度sim(u,Uj); 步骤7、取步骤6中相似度较高的N个用户作为目标用户u的最近邻用户,得到目标用 户U的最近邻用户集合N= {V。V2, . ..,VjJ; 步骤8、通过最近邻用户集合N计算目标用户u对项目p的预测评分值precKu,p); 步骤9、取步骤8中得到的预测评分值中较高的k个项目,生成最终的推荐列表RecList= (pi,P2,…,Pj,即为对目标用户U的推荐列表。2. 根据权利要求1所述的一种基于共享近邻聚类的协同过滤方法,其特征在于,所述 步骤1构建用户-项目评分矩阵R,具体为;用户集U= {Ui,…U。},项目集P= {pi,…PmK 用户Ui对项目pj.的评分值为ru,评分值ru的nXm矩阵R称作用户-项目评分矩阵,其 中,如果用户Ui未对项目PJ评过分,则对应的评分值rU为空,其中,i= 1,2,. . .n,j= 1,2,? ? ?iiio3. 根据权利要求2所述的一种基于共享近邻聚类的协同过滤方法,其特征在于,所述 步骤2计算用户的共享近邻相似度,具体为: 对任意两个用户,用户U和用户V,由公式(1)计算用户间的相似度sim(u,v):其中,ru,p代表用户U的评分值,rW代表用户V的评分值,^代表用户U的平均评分, 5代表用户V的平均评分, 从中选出每个用户相似度最高的k个用户,构造每个用户的k最近邻列表; 然后计算用户的共享近邻相似度;对任意两个用户,用户U和用户V,如果他们都在对 方的k最近邻列表中,则他们的共享近邻相似度S順sim(u,V)就是它们共享的近邻点的数 目;否则他们的共享近邻相似度S順sim(u,v)为零。4. 根据权利要求2所述的一种基于共享近邻聚类的协同过滤方法,其特征在于,所述 步骤3用户簇C= (Cl,C2,…,C。}的形成具体为: 根据用户的共享最近邻相似度及邻域半径,可W计算出该用户在邻域半径内的共享近 邻个数,作为共享近邻密度,设置阔值MinPts,选取共享近邻密度大于MinPts的用户作为 核屯、用户,进行簇划分;如果两个核屯、用户的距离在邻域半径之内,则将它们放在同一个簇 中;同样,任何落在核屯、用户领域半径内的用户,划分到与核屯、用户相同的簇中;而所有不 在任何核屯、用户邻域半径内的用户,认为是噪声用户而被丢弃;得到用户簇C= (Cl,C2,… ,C。},n为簇个数; 对每个用户簇。,计算该簇中所有用户的平均值,得到该用户簇代表点CPi,最终得到 一组用户簇代表点集合为CP=(cPi, CP2,…,Cp。}。5. 根据权利要求2所述的一种基于共享近邻聚类的协同过滤方法,其特征在于,所述 步骤4计算目标用户U与用户簇。的代表点cpi的相似度sim(u,cp1);其中,ru,p代表用户u的评分值,代表用户簇Ci的代表点cpi的评分值,5代表用 户U的平均评分,%代表用户簇。的代表点CPi的平均评分,其中,i= 1,2,...n。6. 根据权利要求2所述的一种基于共享近邻聚类的协同过滤方法,其特征在于,所述 步骤6中目标用户U与相似簇S。中用户Uj的相似度sim(u,Uj);其中,ru,p代表用户u的评分值,代表相似簇SC冲用户u斯评分值,U戈表用户u的平均评分,气.代表相似簇SCi中用户Uj的平均评分,其中,i=l,2,...n,j=l,2,...m。7. 根据权利要求2所述的一种基于共享近邻聚类的协同过滤方法,其特征在于,所述 步骤8中目标用户U对项目P的预测评分值pred(U,P)为:其中,^表示目标用户U项目评分的平均值,表示用户V项目评分的平均值,为用 户V的评分值,Sim(U,V)为目标用户U与用户V的相似度,为:其中,ru,p代表用户U的评分值,S化表用户U的平均评分,5代表用户V的平均评分。
【专利摘要】本发明公开了一种基于共享近邻聚类的协同过滤方法,首先根据用户的评分记录,对用户进行聚类,将偏好相近的用户凝聚到同一个簇中;然后将目标用户与各个簇的代表进行相似度计算,选出相似簇构成搜索空间再搜寻最近邻居;最后根据最近邻居来对目标用户进行评分预测并生成推荐列表。本发明中聚类技术可以将大量的数据点组合成具有相似属性的簇,能够发现规模较大的数据集潜在的模式和结构。将聚类技术用于协同过滤算法,能够将相似的用户聚集在簇中,仅需要查找几个相似簇就能获取大部分相似用户,使搜寻最近邻居的时间大大缩短,提高方法的实时性。
【IPC分类】G06K9/62, G06F17/30
【公开号】CN104933156
【申请号】CN201510359159
【发明人】周红芳, 郭杰, 王心怡, 刘杰, 李锦 , 段文聪, 何馨依
【申请人】西安理工大学
【公开日】2015年9月23日
【申请日】2015年6月25日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1