协同过滤推荐算法综述

这篇博客是对推荐系统中协同过滤算法的综述,包括基于用户和物品的协同过滤,One-Class协同过滤和Slope One算法。博主探讨了各种算法的优缺点,如UserCF和ItemCF的社会化与个性化特性,以及Slope One的高效率和在数据稀疏时的局限性。此外,还讨论了推荐系统的作用、评价指标以及协同过滤在推荐系统中的核心地位。
摘要由CSDN通过智能技术生成

        第一年接触数据挖掘和机器学习,然后在博士师兄的讨论下确定了推荐系统的学习方向,这篇算是对一年的学习进行的总结,其中用户-物品的算法主要是参考项亮老师的那本书,One Class CF主要是Yang Qiang 老师的那篇论文的理解,Slope One 也是一些见解,同时加上了北邮林德军学长的一篇论文中非常好的地方,内容都很基本。

        

推荐系统研究早在20世纪90年代就被提出,但是真正受到学术界和工业界的关注反而是在最近几年,电子商务网站的兴起与所谓的BIG DATA时代的到来,给推荐系统这一方向提供了极好的发展平台,最近几年学术界的关于推荐算法的文章喷涌而出,都在强调自己的算法是如何的精确与高效。各大电子商务网站均有自己的推荐系统部门。然而推荐系统的核心在于推荐算法,也是推荐系统的灵魂,本文主要针对现今经典的推荐算法进行总结和评价。

2、推荐系统

1)推荐系统概述

互联网时代的快速发展,大量的信息系统、资源、网站的建设,使得人们在享受快速的信息获取方式的同时,却又产生了如何高效准确的去获取自己所需要的信息的困惑。于是便出现了搜索引擎,最著名的便是美国的谷歌搜索了,搜索引擎在解决信息过载的问题上是跨时代的,到目前为止仍是不可替代的。但是它并不具有个性化搜索的功能,它对于相同的关键词,其搜索结果是相同的;同时在电子商务网站,搜索引擎并不能给用户带来有效的购买建议;最后,由于商业竞价排名的影响,搜索引擎的结果并非是最合适用户的信息。

于是便催生了个性化系统的发展,即推荐系统。所谓个性化,便是对不同的用户系统能够做出不同的用户反馈。即在相同的电子商务网站,得到的确实不尽相同的网站页面。推荐系统主要根据用户在网站产生的行为,例如浏览、评分、点赞等等,通过建立模型将用户可能感兴趣的信息推荐给用户。虽然目前的发展其实还未达到真正的个性化,即每个人都是独立的模型,但是在当前技术条件下,也基本满足了个性化的需求。

推荐系统的定义有很多,可能不同行业的研究者对此有不同的理解,但总体的核心都是利用用户产生的行为对用户进行分析建模,为用户提供信息和建议。推荐系统的核心在于推荐算法,在最近几年,学术界关于推荐算法的论文非常多,但总体都是在经典的协同过滤算法进行改进,本文主要对经典的算法进行综述与评价。

一般来说,推荐系统的作用可以概括为以下几点:

1)提高服务质量,帮助用户快速检索信息。

推荐系统可以挖掘用户兴趣,可以让用户迅速找到自己想要的商品或者产生明确的购买倾向。

2)促进用户购买欲,提高销售能力。

用户在购物时,推荐系统能够有针对性的向用户提供高质量的推荐商品,可以有效促进用户的购买欲,进而可以提高电子商务网的销售能力。

3)提供个性化的服务。

用户在电子商务系统中购物时,推荐系统做出的推荐都是针对每一个用户的,而不是大众,推荐系统提供的服务让用户感觉此时推荐系统完全在为其一个人工作,提供一对一的服务。

4)提高用户忠诚度

在电子商务中,通过推荐系统提供的高效商品推荐,用户能够轻松的购买到自己满意的商品,无疑会继续吸引用户下次继续选择该网站,使得用户更加依赖于此电子商务,提高了对网站的忠诚度。

(2)推荐系统结构

推荐系统的完整框架主要是由用户交互接口、个性化推荐引擎、用户兴趣模型表示、推荐引擎、数据仓库、操作数据库等构成。

从总体层次结构看,推荐系统一般分为:信息输入模块、推荐系统生成模块、推荐输出模块。

3推荐结果的评价指标

任何推荐算法都要通过评测,才能评估它的推荐质量。推荐系统评测的问题吸引了很多研究人员的研究,常用的推荐评测指标有:准确度(accuracy),覆盖度(coverage),多样性(diversity),新颖性(novelty),惊喜度(serendipity)等等。下面将详细讨论这些评测指标。

l 准确度

准确度是推荐系统里最常用的指标,在预测评分的系统和Top-N的推荐系统中有不同的准确度度量方法。在评分预测的问题中,我们常用平均绝对误差(MAE)或者均方误差(RMSE)来评测评分预测的准确度:

这里,是测试集。是算法预测的用户对物品的打分,是数据集中用户对的实际打分。早期的推荐系统研究中多用MAE作为评测指标,但自从Netflix大奖赛中研究者们用RMSE作为评测指标后,RMSE逐渐成为评分预测问题中预测准确度的主要评测指标。

Top-N推荐问题和评分预测问题不同,他的目的是对每一个用户,通过分析他们的历史行为,给他们推荐N个他们最可能会喜欢的物品。给定一个推荐算法,对于用户,令是算法的推荐列表,是测试集中用户喜欢的物品集合,此时可以通过准确率(Precision)和召回率(Recall)来对量推荐的精度:

上面所述的方法都是离线评测方法。此外还可以在线评测推荐系统的准确度。最多的评测指标是点击率,即有多大比例的用户看到推荐结果后点击了推荐结果。此外,有些推荐系统设有反馈机制,让用户直接对推荐结果表示喜欢或者不喜欢,利用这些反馈数据,也可以度量推荐系统的准确度,比如可以用有百分之多少的用户表示喜欢来度量推荐的准确度。

l 覆盖度

推荐系统的一个重要任务是解决长尾的问题,即如何将长尾中的物品推荐为喜欢它们的用户。一个好的推荐系统应该不仅给用户推荐他们满意的物品,而且应该能够让高质量的物品出现在用户的推荐列表中。推荐系统的覆盖度度量了推荐系统能把多大比例的物品推送给至少一个用户。如果令是推荐系统给用户的推荐列表,那么推荐系统的覆盖率定义为:

其中,是用户集合,是物品集合。从上面的定义可以看到覆盖度介于(0,1]之间。覆盖度越大的推荐系统能够更好的发掘长尾。此外,准确度和覆盖度之间并没有直接的联系,准确度高等的推荐并不一定有高的覆盖度。比如考虑两种推荐算法,算法A给所有用户都推荐N个最热门的物品,算法B给用户随机推荐物品。算法A的准确度高于算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值