数据挖掘——协同过滤推荐算法

一、背景介绍

随着信息技术的发展,我们正身处一个数据爆炸的时代。指数增长的数据给信息生产者和信息消费者带来了新的问题。
对于信息生产者:如何让自己生产的信息脱颖而出,受到广大用户的关注?
对于信息消费者:如何从大量的信息中找到自己感兴趣的信息?
为了解决以上问题,推荐系统应运而生

1.1推荐系统

推荐系统的核心功能是:
1.帮助用户发现对自己有价值的信息
2.让信息能够展现在对它感兴趣的用户前面

推荐系统使用一系列不同的技术,这些系统可分为两大类:
基于内容的系统(Content-based System)
协同过滤系统(Collaborative Filtering System)

1.2效用矩阵

在推荐系统应用中,存在两类元素,一类称为用户(User),另一类称为项(Item)。用户会偏爱某些项,这些偏好信息必须要从数据中梳理出来。数据本身会表示成一个效用矩阵(utility matrix),该矩阵中每个用户-项对所对应的元素值代表的是当前用户对当前项的喜好程度。这些喜好程度来自一个有序集合,比如1~5的整数集合,这些整数代表用户对项的评级(比如分别代表评论的星级)。
我们假设该矩阵是稀疏的,即意味着大部分元素都未知。一个未知的评级也暗示着我们对当前用户对当前项的喜好信息还不清楚。
在这里插入图片描述
推荐系统的目标是预测效用矩阵的空白元素

1.3传统推荐模型

推荐系统自诞生以来经历了多次发展迭代,其模型也从一开始的传统模型发展为深度学习模型,本文重点关注传统推荐模型,来帮助读者较好地入门。
在这里插入图片描述

二、算法原理

2.1协同过滤算法

基本思想:根据用户之前的喜好以及其他兴趣相近的用户的选择来给当前用户推荐物品
协同过滤算法集中关注用户和项之间的关系,并且它仅仅基于用户行为数据,而不依赖于项或用户的任何附加信息(这里的附加信息指项或用户的自身属性,如用户的年龄职业性别,项的产地产家等)
目前应用比较广泛的协同过滤算法是基于邻域的方法,而这种方法主要有一下两种算法:
基于用户的协同过滤算法(UserCF)
给用户推荐和他兴趣相近的其他用户喜欢的物品
在这里插入图片描述

基于项的协同过滤算法(ItemCF)
给用户推荐和他之前喜欢的项相似的项
在这里插入图片描述
因此,如何寻找相似用户或者相似项,就是该算法接下来要解决的问题

2.2相似度计算

推荐算法通过效用矩阵的行或列来计算用户或项之间的相似度,常用的相似度计算方式有以下三种:
jaccard相似度
余弦相似度
皮尔逊相关系数

2.2.1 jaccard相似度

忽略了效用矩阵中的具体值而只关注所评分项的集合。
两个集合A和B的交集元素在A和B的并集中所占比例,称为两个集合的jaccard相似度,用符号J(A,B)表示。
在这里插入图片描述
以前面提到的效用矩阵为例:
在这里插入图片描述
J(A,B) = 0.2
J(A,C) = 0.5
可见,在jaccard相似度的计算下,用户A与用户C更相似

2.2.2 余弦相似度

把效用矩阵的空白部分看成0,计算用户向量A和B的夹角大小,夹角越小,说明两个用户向量在方向上更一致,两个用户更相似。
计算方式:在这里插入图片描述
对于n维用户向量i(x11,x12,x13…x1n) 和 j(x21,x22,x23…x2n),其余弦相似度为:在这里插入图片描述
以上面效用矩阵为例,A和B的余弦相似度为:在这里插入图片描述
A和C的余弦相似度为:
在这里插入图片描述
可见,在余弦相似度的计算下,用户A更接近B而不是C

2.2.3 皮尔逊相关系数

由于有的用户倾向于打高分,有的用户倾向于打低分,因此,相比于余弦相似度,皮尔逊相关系数通过使用用户平均分对独立评分进行修正,减少了用户评分偏置的影响:
在这里插入图片描述
具体计算方法:两个向量各减去它们的平均值,再计算cosine值。

2.3结果预测

基于以上几种相似度计算方法,可以计算出向量之间的相似度,由此选出与目标用户最接近的前N个用户,根据这些用户对项的打分来估计目标用户对该项的评分
常用的方式是利用用户相似度和相似用户的评价来加权平均,计算出当前用户的预测评价:
在这里插入图片描述

2.4相似度对偶性

效用矩阵可看成有关用户信息的矩阵,也可看成有关项信息的矩阵,或者同时与两种信息有关的矩阵。
因此,前面所介绍的寻找相似用户的方法都可以应用在效用矩阵的列向量上来寻找相似项。

2.5举例

采用余弦相似度计算用户向量的相似度,基于以下效用矩阵,请预测用户1对项目2的评分(最相似用户取top-2用户)
在这里插入图片描述
由于要预测用户1对项目2的评分,先找出除用户1以外所有对项目2评分过的用户:3,4,5,7。
然后分别计算他们与用户1的余弦相似度:
在这里插入图片描述
比较大小后可得Top-2用户为User3和User5,则用户1对项目2的评分预测为:
在这里插入图片描述

2.6优缺点分析

User-basedCF算法存在两个重大问题:

1.1数据稀疏性
一个大型的电子商务推荐系统一般有非常多的物品,用户可能买的其中不到1%的物品,不同用户之间买的物品重叠性较低,导致算法无法找到一个用户的邻居,即偏好相似的用户。这导致UserCF不适用于那些正反馈获取较困难的应用场景(如酒店预订, 大件商品购买等低频应用)

1.2算法扩展性
基于用户的协同过滤需要维护用户相似度矩阵以便快速的找出Top-n相似用户, 该矩阵的存储开销非常大,存储空间随着用户数量的增加而增加,不适合用户数据量大的情况使用。

ItemCF算法因为物品直接的相似性相对比较固定,所以可以预先在线下计算好不同物品之间的相似度,把结果存在表中,当推荐时进行查表,计算用户可能的打分值,可以一定程度上解决前面两个问题

协同推荐过滤算法存在的共性问题:

2.1较差的稀疏矩阵处理能力
热门物品具有很强的头部效应, 容易跟大量物品产生相似, 而尾部物 品由于特征向量稀疏, 导致很少被推荐

2.2无法利用更多信息
协同过滤的特点就是完全没有利用到物品本身或者是用户自身的属性, 仅仅利用了用户与物品的交互信息就可以实现推荐,比较简单高效, 但这也是它的一个短板所在, 由于无法有效的引入用户年龄, 性别,商品描述,商品分类等一系列用户特征、物品特征和上下文特征, 这就造成了有效信息的遗漏,不能充分利用其它特征数据。

2.7用户聚类和项聚类

使用某种距离计算方法来对某个对象进行聚类,比如项。
可使用某种能留下许多簇的聚类算法对效用矩阵多次使用,直到我们直观上认为两种簇的数目合理为止
在这里插入图片描述

2.8降维处理

效用矩阵分解成两个细长矩阵的乘积

方法:UV分解(SVD奇异值分解的一个实例)

假设M是一个拥有一些空白元素的n×m效用矩阵,U和V分别是n×d和d×m维的矩阵。若找到一个U矩阵和V矩阵,使得UV和M在M上的非空元素非常相近,则可以使用UV上的元素来估计效用矩阵M的空白元素

评估指标:均方根误差(RMSE)

三、算法实验

问题描述

商城购物预测

步骤:
1.问题描述

2.实验过程

3.预测结果

数据预处理

通过用户的购买信息表,来预测用户接下来可能会购买的物品。

数据来源:阿里天池离线赛
在这里插入图片描述

采用方法

将此次实验所需要的数据进行提取,得到User-Item矩阵:
在这里插入图片描述

横轴:item编号;纵轴:User编号

打分含义:
0:未点击
1:浏览
2:收藏
3:添加购物车
4:购买

方法:
基于物品的K近邻协同过滤推荐算法,使用余弦相似度计算item之间的相似程度,输出相似的最大的K个商品编号
在这里插入图片描述

实验结果

使用了余弦相似度的ItemCF所预测的部分结果如图下所示:
在这里插入图片描述

左边代表了用户序号

右边代表了该用户接下来会购买的商品编号

实验总结

ItemCF对UserCF协同过滤的一种改良。

用户数远大于物品数时,而且物品的变更频率不高,物品的相似度相对于用户的兴趣来讲比较稳定。这个时候使用基于物品的协同过滤是比较好的选择。

还是无法很好的解决数据稀疏性问题,可以采取对相似物品进行聚类、简单填值、降维、结合内容的过滤方法等。

四、参考文献

在这里插入图片描述

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
【摘要】 W.eb2.0技术将互联网带入了一个崭新的时代,互联网用户在互联网生活中发挥着越来越主动的作用,用户不再只是被动地从互联网上接受信息,而是主动地创造信息,并利用Web2.0平台与其他用户进行交互和分享。随着互联网用户的飞速增长,以用户为中心的信息生产模式造成了互联网信息的爆炸式增长,人们正面临着越来越严重的“信息过载”问题。“信息过载”问题是指,人们无法从海量的信息中快速准确的定位到自己所需要的信息。目前,解决信息过载问题的技术主要分两类,第一类是以搜索引擎为代表的信息检索技术,第二类是以推荐系统为代表的信息过滤技术。两者最重要的区别在于用户通过搜索引擎获取的信息的质量的好坏在很大程度上依赖于用户对于信息求描述的准确程度,而推荐系统不需要用户提供明确的需求,而是从用户的历史行为和数据中出发,建立相关的模型从而挖掘出用户的需求和兴趣,从而以此为依据从海量的信息中为用户筛选出用户感兴趣的信息。由此可见,在用户需求不明确时,推荐系统的作用显得尤为重要。到目前为止,已经有许多推荐算法被提出,协同过滤是这些算法中应用最多且最为有效的推荐算法。虽然协同过滤算法已经被成功地应用到许多商业推荐系统中,但是仍然存在着诸如数据稀疏问题、冷启动问题等亟待解决。随着互联网的飞速发展,以微博为代表的各种社交媒体纷纷涌现,以用户为中心的社交网站产生了海量的和用户兴趣相关的数据,如何有效的利用这些数据来改进推荐算法的性能已经成为一个重要的研究领域。针对以上关键问题,本文展开了如下几个方面的研究。第一,协同过滤中相似度模型的研究。用户(项目)相似度计算是基于内存的协同过滤算法中最为关键的问题,正负标注信息不对称和数据稀疏性导致了传统的相似度模型不准确从而影响推荐精度。本文针对这两个问题,提出了基于变权重和罚函数的用户相似度模型。实验结果表明,本文提出的算法能够有效缓解上述两个问题,从而提高推荐精度。第二,融合社交网络信息的协同过滤算法研究。丰富的社交网络信息给推荐系统带来的新的机遇也提出了更大的挑战,如何有效地挖掘海量的社交网络信息以提高推荐算法的精度是社交网络推荐系统研究的核心问题。本文基于腾讯微博用户的真实社交网络信息,构建有效的用户相似度模型,并将该相似度模型与基于评价矩阵信息的用户相似度模型相结合,提出了融合社交网络信息的协同过滤算法。实验结果表明,通过融合社交网络信息,数据稀疏问题得到了明显缓解且推荐精度显著提高。第三,基于用户与基于项目的融合协同过滤算法的研究。根据不同的假设,协同算法可以分为基于用户的方法与基于项目的方法。本文研究了两种方法在推荐性能与效果上的本质差别,并在此基础上针对两种方法的优缺点进行模型融合,提出了融合基于用户和基于项目的融合协同过滤算法。实验结果表明,基于用户的方法更擅长于热门推荐而基于项目的方法更擅长于长尾推荐,本文提出的模型融合算法能有效的缓解数据稀疏问题并提高算法精度。第四,协同过滤算法中的全局模型融合与局部模型融合研究。目前存在着许多有效的协同过滤算法(例如基于内存的方法与基于模型的方法、基于用户的方法与基于项目的方法),不同的算都具有各自的优势和缺陷。本文提出了不同的方法对于不同的用户(项目)的适用程度不一致的观点。基于上述观点,本文通过机器学习的方法,自动发现用户(项目)对于各种方法的适应程度,并进行局部模型融合。实验结果表明,局部融合模型比全局融合模型具有更高的推荐精度。 还原 【Abstract】 The fast development of Web2.0technology sparked a new revolution of the in-ternet. Users now play a new role in the world of internet, they take the initiative to generate information instead of simply getting information from the web. As the rapid growth of the users’population, the user-centric information generation mode leads to the exponential growth of the available information in internet, which cause the infor-mation overload problem. The information overload problem refers that people can not quickly and accurately locate the information they need. Currently, the technology to solve information overload problem can be classified into to two categories. The first technology is information retrieval represented by the search engine and the second is information filtering represented by recommender systems. The most important differ-ence between these two technologies is that search engines need queries formatted by the user and recommender systems need no queries. Thus the quality of the results of search engines depend on how users describe their information needs. Recommender systems however, filter out the information that the user is interested in by exploiting users’profile data and historical activities(watching,listening,buying etc.). So, recom-mender systems can play an very important role in the situation that uses’can not tell their information need precisely.Many recommendation algorithms have been proposed by both academia and in-dustry, collaborative filtering is one of the most effective recommendation algorithms. Collaborative filtering algorithm has been successfully applied to many commercial recommender system, but there are still issues such as the data sparsity problem and the cold start problem to be solved. With the rapid rise of social media, user-centric social networking web sites generate vast amounts of data which may reflects users’interests, how to leverage these data to improve the performance of the recommendation algorith-m has become a very hot research area. In view of the above key issues, this dissertation launched a study of the following aspects.First, research on the similarity model of collaborative filtering. User/item simi-larity calculation is the most critical issue in the memory-based collaborative filtering algorithms, sparsity of the rating matrix and unbalance of negative and positive ratings causes inaccurate similarity computation, thus limit the recommendation quality. In this dissertation, we introduce a weighting scheme and a penalty function to address the above issue. Experiment results show that improved similarity model can significantly improve the recommendation accuracy.Second, Integrating social information into collaborative filtering. The rich social information brings great opportunities for recommendation system. How to effectively leverage the abundant social network information to improve the accuracy of recom-mendation systems is the core issue of the research on social recommendation systems. In this dissertation, we build an user similarity model based on Tencent micro-blogging users’ real social network information, and effectively combine the social information based similarity model and the rating information based similarity model. Experiment results show that the proposed approach can effectively ease the data sparsity problem and improve the recommendation quality.Third, combining user-based and item-based collaborative algorithms using stacked regression. Collaborative filtering algorithms can be classified in
【资源说明】 基于协同过滤算法的电影推荐系统python源码+PPT报告(数据挖掘大作业).zip基于协同过滤算法的电影推荐系统python源码+PPT报告(数据挖掘大作业).zip基于协同过滤算法的电影推荐系统python源码+PPT报告(数据挖掘大作业).zip基于协同过滤算法的电影推荐系统python源码+PPT报告(数据挖掘大作业).zip基于协同过滤算法的电影推荐系统python源码+PPT报告(数据挖掘大作业).zip基于协同过滤算法的电影推荐系统python源码+PPT报告(数据挖掘大作业).zip 基于协同过滤算法的电影推荐系统python源码+PPT报告(数据挖掘大作业).zip 基于协同过滤算法的电影推荐系统python源码+PPT报告(数据挖掘大作业).zip 基于协同过滤算法的电影推荐系统python源码+PPT报告(数据挖掘大作业).zip 【备注】 1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载使用体验! 2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师、企业员工。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。在使用过程中,如有问题或建议,请及时沟通。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值