所谓推荐算法就是利用用户的一些行为,通过一些数学算法,推测出用户可能喜欢的东西。推荐算法主要分为两种。
基于内容的推荐
基于内容的推荐方法就是根据用户过去的浏览记录来想用户推荐用户没有接触过的推荐项。
基于内容的推荐比较容易理解,他是通过两样东西的内容之间的相关性进行推荐。比如说,A喜欢一篇400字文章,里面出现了“豆瓣”这个词100次。哪么系统就会推荐一些同样出现了“豆瓣”这个词很多次的文章给A。这就是基于内容的推荐,他的好处是比较好理解、简单、高效,缺点就是只能用来推荐文章等一些文字的东西。对于图片等一些多媒体的内容就无从下手了。
基于协同过滤的推荐(三种经典算法)
基于协同过滤的推荐算法,正好弥补了这个缺点,它理论上可以推荐世界上的任何一种东西。图片、音乐、样样可以。协同过滤算法主要是通过对未评分项进行评分 预测来实现的。
(1)基于用户的协同过滤算法 这种算法基于一个这样的假设“跟你喜好相似的人喜欢的东西你也很有可能喜欢。”所以基于用户的协同过滤主要的任务就是找出用户的最近邻居,从而根据最近邻 居的喜好做出未知项的评分预测。
这种算法主要分为3个步骤:
一,用户评分。可以分为显性评分和隐形评分两种。显性评分就是直接给项目评分(例如给百度里的用户评分),隐形评分就是通过评价或是购买的行为给项目评分 (例如在有啊购买了什么东西)。
二,寻找最近邻居。这一步就是寻找与你距离最近的用户,测算距离一般采用以下三种算法: 1.皮尔森相关系数。 2.余弦相似性。 3调整余弦相似性。 调整余弦 相似性似乎效果会好一些。
挑选邻居可以分为两种标准:固定数量的邻居和基于相似度门槛的邻居
三,推荐。产生了最近邻居集合后,就根据这个集合对未知项进行评分预测。把评分最高的N个项推荐给用户。
这种算法存在性能上的瓶颈,当用户数越来越多的时候,寻找最近邻居的复杂度也会大幅度的增长。因而这种算法无法满足及时推荐的要求,不适合用户数目较大,且频繁变动的情况。有了最近邻集合,就可以对目标用户的兴趣进行预测,生成推荐结果。通常根据推荐目的的不同,可以进行多种形式的推荐。
(2)基于项的协同过滤算法 根基于用户的算法相似,只不过第二步改为计算项之间的相似度。由于项之间的相似度比较稳定可以在线下进行,所以解决了基于用户的协同过滤算法存在的性能瓶 颈。
(3)slope one
是一种简单的推荐算法。
最常见的推荐结果有两种,Top-N 推荐和关联推荐。
Top-N 推荐,这里的 Top-N 和一般网站(比如 digg)上见到的“最热门”列表是不同的。热门列表是基于全部数据集产生的,它对每个人都是一样的;Top-N 推荐是针对单个用户产生的,它对每个人是不一样的:通过对你的最近邻用户进行统计,选择出现频率最高且在你的评分项目中不存在的项目作为推荐结果。豆瓣上的“排行”栏目,应该是传统的“热门”列表,不是 Top-N 推荐。
关联推荐,也称为基于关联规则的推荐。与传统关联规则针对全部数据进行挖掘不同的是,此方法仅对最近邻用户的购买记录进行关联规则挖掘。如果你曾经购买过关联规则左边的商品,而没有购买过关联规则右边的商品,那么就把右边的这个商品推荐给你。它最突出的优点就是,可以帮助你发现你感兴趣的而以前却从来没有注意过的商品。例如,网站上写:买了A的人也买了B
。
分类:基于用户的协同过滤算法
一些资料:
维基百科:http://zh.wikipedia.org/zh-cn/%E5%8D%94%E5%90%8C%E9%81%8E%E6%BF%BE
推荐算法之进阶介绍: http://blog.csdn.net/crazyhacking/article/details/8111282
协同过滤推荐之slope one : http://blog.csdn.net/crazyhacking/article/details/8110699
Recommender systems : http://www.cs.carleton.edu/cs_comps/0607/recommend/recommender/itembased.html
IBM 的三篇详细的综述:
http://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy1/index.html?ca=drs-
http://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy2/index.html?ca=drs-
http://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy3/index.html?ca=drs-
各种推荐算法的综述:电子商务中的个性化算法
基于用户的协同过滤系统 http://blog.sina.com.cn/s/blog_4d9a06000100am1t.html
基于项的推荐:http://blog.csdn.net/huagong_adu/article/details/7362908
carleton大学关于推荐系统的项目:http://www.cs.carleton.edu/cs_comps/0607/recommend/recommender/itembased.html
综合参考自:
http://baike.baidu.com/view/5909535.htm
http://thebigforest.blog.35.cn/archives/28
http://blog.sina.com.cn/s/blog_602feaa80100fjpc.html