协同过滤推荐方法及系统技术方案

技术编号:19322048 阅读:24 留言:0更新日期:2018-11-03 11:42
本申请公开了一种协同过滤推荐方法及系统,该协同过滤推荐方法包括:生成用户‑物品评分矩阵;根据所述用户‑物品评分矩阵采用预设的分类算法对所有的用户进行分组;根据预设的差值计算方法计算每个分组下任意两个物品间的用户平均评分差值;根据物品间的用户平均评分差值计算每个分组下用户对未评分物品的评分,并根据计算结果补全所述用户‑物品评分矩阵;根据补全的所述用户‑物品评分矩阵进行推荐输出。本申请解决了Slope One系列的基于物品的协同过滤算法由于没有区分用户之间的差异性,导致推荐的准确性较低的问题。

Collaborative filtering recommendation method and system

This application discloses a collaborative filtering recommendation method and system. The collaborative filtering recommendation method includes: generating a user-item score matrix; grouping all users according to the user-item score matrix using a preset classification algorithm; and calculating any two users under each grouping according to the preset difference calculation method. User's average score difference between items; User's average score difference between items; User's score on items not scored under each group is calculated according to the average score difference between items; User's score matrix is complemented according to the calculation result; Recommended output is made according to the complemented user's score matrix. This application solves the problem that Slope One's product-based collaborative filtering algorithm does not differentiate between users, resulting in low accuracy of recommendation.

【技术实现步骤摘要】
协同过滤推荐方法及系统
本申请涉及一种推荐方法,具体而言,涉及一种协同过滤推荐方法及系统。
技术介绍
随着互联网的发展,人们正处于一个信息爆炸的时代。面对海量的信息数据,如何筛选、过滤出用户感兴趣的信息是推荐系统需要解决、优化的核心问题。为了减少过拟合的发生,简化算法实现,基于SlopeOne算法的易实现的基于物品的协同过滤算法被提了出来。但是在实施这种基于SlopeOne算法的协同过滤算法时专利技术人发现,该系列算法由于没有区分用户之间的差异性,可能会导致一些偏好不同的用户数据一同等参与了计算预测,这样会降低高相似用户的作用效果,降低了推荐的准确性。针对上述问题,专利技术人提出了一种解决方案。
技术实现思路
本申请的主要目的在于提供一种协同过滤推荐方法,以解决基于SlopeOne算法的协同过滤算法由于没有区分用户之间的差异性,导致推荐的准确性较低的问题。为了实现上述目的,根据本申请的一个方面,提供了一种协同过滤推荐方法。根据本申请的协同过滤推荐方法包括:生成用户-物品评分矩阵;根据所述用户-物品评分矩阵采用预设的分类算法对所有的用户进行分组;根据预设的差值计算方法计算每个分组下任意两个物品间的用户平均评分差值;根据物品间的用户平均评分差值计算每个分组下用户对未评分物品的评分,并根据计算结果补全所述用户-物品评分矩阵;根据补全的所述用户-物品评分矩阵进行推荐输出。进一步的,所述根据所述用户-物品评分矩阵采用预设的分类算法对所有的用户进行分组,包括:根据所述用户-物品评分矩阵计算用户间的相似性;根据所述用户间的相似性采用所述预设的分类算法对所有的用户进行分组。进一步的,所述根据预设的差值计算方法计算每个分组下任意两个物品间的用户平均评分差值,包括:获取第一分组中所有对第一物品和第二物品进行评分的用户的第一物品评分和第二物品评分;根据所述第一物品评分和所述第二物品评分计算出在第一分组中所述第一物品和所述第二物品间的用户平均评分差值。进一步的,所述根据物品间的用户平均评分差值计算每个分组下用户对未评分物品的评分,包括,根据如下公式计算每个分组下用户对未评分物品的评分:此处,uj(k)为第k分组中的用户u对未评分物品j的评分,ui(k)为第k分组中的用户u对物品i的评分,diffi,j(k)为第k分组中物品i和物品j的用户平均评分差值,|U(i)∩U(j)∩Uk|为第k分组中对物品i和物品j都评分的用户数,N(u)为第k分组中的用户u的所有评分物品。进一步的,所述生成用户-物品评分矩阵,包括:收集用户对物品的评分数据;根据所述用户对物品的评分数据生成用户-物品评分矩阵。为了实现上述目的,根据本申请的另一方面,提供了一种协同过滤推荐系统。根据本申请的协同过滤推荐系统包括:评分矩阵生成模块,用于根据用户对物品的评分数据生成用户-物品评分矩阵;用户分组模块,用于根据所述用户-物品评分矩阵采用预设的分类算法对所有的用户进行分组;评分差值计算模块,用于根据预设的差值计算方法计算每个分组下任意两个物品间的用户平均评分差值;评分矩阵补全模块,用于根据物品间的用户平均评分差值计算每个分组下用户对未评分物品的评分,并根据计算结果补全所述用户-物品评分矩阵;推荐输出模块,用于根据补全的所述用户-物品评分矩阵进行推荐输出。进一步的,所述用户分组模块包括:第一计算模块,用于根据所述用户-物品评分矩阵计算用户间的相似性;第二计算模块,用于根据所述用户间的相似性采用所述预设的分类算法对所有的用户进行分组。进一步的,所述评分矩阵补全模块包括:第三计算模块,用于根据物品间的用户平均评分差值计算每个分组下用户对未评分物品的评分;补全执行单元,用于根据通过计算得出的所述用户对未评分物品的评分补全所述用户-物品评分矩阵。进一步的,所述协同过滤推荐系统还包括:数据收集模块,用于收集用户对物品的评分数据。在本申请实施例中,通过聚类算法先计算出高相似性用户组,针对高相似性用户组基于SlopeOne算法计算物品间的用户平均评分差值,并根据物品的用户平均评分差值在组内计算每个用户对未评分物品的打分情况,有效地解决了高相似用户的作用效果,达到了提高推荐准确率的目的,进而解决了基于SlopeOne算法的协同过滤算法由于没有区分用户之间的差异性,导致推荐的准确性较低的问题。附图说明构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是第一实施例协同过滤推荐方法流程示意图;图2是第二实施例协同过滤推荐方法流程示意图;图3是第三实施例协同过滤推荐方法流程示意图;图4是第一实施例协同过滤推荐系统结构示意图;图5是第二实施例协同过滤推荐系统结构示意图;图6是第三实施例协同过滤推荐系统结构示意图;以及图7是第实施例用户-物品评分矩阵。具体实施方式为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。如图1所示,该协同过滤推荐方法包括如下的步骤S101至步骤S105。步骤S101,生成用户-物品评分矩阵。在本步骤中,根据用户的隐式行为反馈计算出评分矩阵。比如在视频推荐领域,常见的用户行为有点击、播放、收藏、评论、分享、点赞等,这里可以对每种行为设置一个权重,比如权重范围是1到5,点击、播放、收藏、评论、分享、点赞的权重分别为1、2、3、4、5。通过解析大量的用户行为日志即可得到用户对视频的评分矩阵。图7为实施例用户-物品评分矩阵的部分内容,‘—’表示用户对改物品没有评分,每一行代表一个用户的行为向量。步骤S102,根据所述用户-物品评分矩阵采用预设的分类算法对所有的用户进行分组。在本步骤中,根据皮尔逊相关系数来计算出用户间的相似性,进而根据用户的相似性通过K-Means聚类算法对所有用户进行分组。步骤S103,根据预设的差值计算方法计算每个分组下任意两个物品间的用户平均评分差值。本步骤计算物品间的用户平均评分差值的方法包括:获取第一分组中所有对第一物品和第二物品进行评分的用户的第一物品评分和第二物品评分;根据所述第一物品评分和所述第二物品评分计算出在第一分组中所述第一物品和所述第二物品间的用户平均评分差值。在本申请的一可选实施例中,物品间的用户平均评分差值可由如下公式计算:其中,diffi,j(k)为第k分组中的用户对物品i和物品j的平均评分差值,ui为第k分组中的用户u对物品i的评分,uj为第k分组中的用户u对物品j的评分,U(i)为第k分组中对物品i评分的用户,U(j)为第k分组中对物品j评分的用户,Uk为第k分组中的所有用户,U(i)∩U(j)∩Uk为第k分组中对物品i和物品j都评分的用户,|U(i)∩U(j)∩Uk|为第k分组中对物品i和物品j都评分的用户数。本文档来自技高网
...

【技术保护点】
1.一种协同过滤推荐方法,其特征在于,包括:生成用户‑物品评分矩阵;根据所述用户‑物品评分矩阵采用预设的分类算法对所有的用户进行分组;根据预设的差值计算方法计算每个分组下任意两个物品间的用户平均评分差值;根据物品间的用户平均评分差值计算每个分组下用户对未评分物品的评分,并根据计算结果补全所述用户‑物品评分矩阵;根据补全的所述用户‑物品评分矩阵进行推荐输出。

【技术特征摘要】
1.一种协同过滤推荐方法,其特征在于,包括:生成用户-物品评分矩阵;根据所述用户-物品评分矩阵采用预设的分类算法对所有的用户进行分组;根据预设的差值计算方法计算每个分组下任意两个物品间的用户平均评分差值;根据物品间的用户平均评分差值计算每个分组下用户对未评分物品的评分,并根据计算结果补全所述用户-物品评分矩阵;根据补全的所述用户-物品评分矩阵进行推荐输出。2.根据权利要求1所述的协同过滤推荐方法,其特征在于,所述根据所述用户-物品评分矩阵采用预设的分类算法对所有的用户进行分组,包括:根据所述用户-物品评分矩阵计算用户间的相似性;根据所述用户间的相似性采用所述预设的分类算法对所有的用户进行分组。3.根据权利要求1所述的协同过滤推荐方法,其特征在于,所述根据预设的差值计算方法计算每个分组下任意两个物品间的用户平均评分差值,包括:获取第一分组中所有对第一物品和第二物品进行评分的用户的第一物品评分和第二物品评分;根据所述第一物品评分和所述第二物品评分计算出在第一分组中所述第一物品和所述第二物品间的用户平均评分差值。4.根据权利要求1所述的协同过滤推荐方法,其特征在于,所述根据物品间的用户平均评分差值计算每个分组下用户对未评分物品的评分,包括,根据如下公式计算每个分组下用户对未评分物品的评分:此处,uj(k)为第k分组中的用户u对未评分物品j的评分,ui(k)为第k分组中的用户u对物品i的评分,diffi,j(k)为第k分组中物品i和物品j的用户平均评分差值,|U(i)∩U(j)∩Uk|为第k分组中对物品i和物品j都评分的用户数,N(u)为第k分组中的用户u的所有评分物品。5....

【专利技术属性】
技术研发人员:张可于敬纪达麒陈运文
申请(专利权)人:达而观信息科技上海有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1