发明名称 一种大规模协同过滤的推荐系统
摘要 本发明公开了一种大规模协同过滤的推荐系统,其中:全局项目相似度创建模块将全局用户项目数据库中的所有项目作为输入,计算所有项目间的相似度,并降序排列后输出结果;用户评分平滑模块把全局用户项目数据库中的所有用户作为输入,输出平滑过用户评分的全局用户项目数据库;局域用户项目数据库创建模块负责从输入的全局用户项目数据库中选择部分用户和项目,输出局域用户项目数据库;推荐模块从局域用户项目数据库的输入中输出对当前用户的推荐结果。本发明系统通过将在全局用户项目数据库上的协同过滤问题转化为在局域用户项目数据库上的协同过滤,大大地降低了用于预测的用户项目数据库的大小,显著地提高了推荐结果的准确性。
申请公布号 CN102663128B 申请公布日期 2014.11.05
申请号 CN201210123544.8 申请日期 2012.04.24
申请人 南京师范大学 发明人 张大强;徐玉杰;刘清;杨明;吉根林
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 南京知识律师事务所 32207 代理人 汪旭东
主权项 一种大规模协同过滤的推荐系统,其特征在于,该系统包括全局项目相似度创建模块、用户评分平滑模块、局域用户项目数据库创建模块和推荐模块,其中:所述的全局项目相似度创建模块,将全局用户项目数据库中的所有项目作为输入,使用相似度函数来计算任意两个项目间的相似度,并将结果降序排列后输出全局项目相似度的矩阵;所述相似度函数的计算方法是:先找出同时已评价过这两个项目的所有用户,计算出每个用户对这两个项目各自的评分与其平均评分的差值,称之为项差;把所有用户对两个项目的项差相乘后累加在一起,称之为项差和;再把这些用户对两个项目各自的项差和平方后开方相乘在一起,再用上述计算出的项差和来除;所述的用户评分平滑模块,将全局用户项目数据库中的所有用户作为输入,输出平滑过用户评分的全局用户项目数据库,即对于组中活跃用户未评分的每个项目,根据该组中已经评分过该项目的用户的评分的差异性,来平滑活跃用户对该项目的评分;具体通过以下步骤完成:首先利用最近邻或者期望最大化方法将全局用户项目数据库中的所有项目,根据评分纪录,划分为不同的组;接着,对于组中的每个活跃项目,计算该组中所有已经评价过该活跃项目的用户的评分与该用户平均评分差的和与该组中所有已经评过项目的用户数的商,得到项评差;然后,对于该组中的各个用户,平滑其所有没有评分的记录,即对该用户没有评分的记录,赋予该用户的平均评分与该组对该项目的簇项差的和;最后,对于每个用户,计算其与各个组之间的相似度大小来构造输出其所对应的用户与组的关系远近列表,即组列表;所述的局域用户项目数据库创建模块,负责从输入的全局用户项目数据库中选择部分用户和项目,输出局域用户项目数据库;所述的推荐模块,从局域用户项目数据库的输入中输出推荐系统对当前用户的推荐结果,通过以下步骤完成:(1)首先计算以下三部分的评分:活跃用户对与项目相似的项目评分、与活跃用户相似的用户对同一项目的评分及与项目相似的项目的评分,(2)接着,根据融合函数来融合步骤(1)得到的上述三部分的评分,并把这个评分反馈给推荐系统,这样用户就对活跃项目有了评分,(3)然后,对于活跃用户所有未评分的项目进行预测,重复步骤(1)和(2)来构造局域用户项目数据库,(4)最后,推荐模块从活跃用户对所有相似项目的评分中挑选评分最高的前多项作为推荐结果输出。
地址 210046 江苏省南京市栖霞区文苑路1号