读书笔记《集体智慧编程》Chapter 2 : Make Recommendations-阿里云开发者社区

开发者社区> 吞吞吐吐的> 正文

读书笔记《集体智慧编程》Chapter 2 : Make Recommendations

简介:
+关注继续查看
本章概要
本章主要介绍了两种协同过滤(Collaborative Filtering)算法,用于个性化推荐:
  • 基于用户的协同过滤(User-Based Collaborative Filtering,又称 K-Nearest Neighbor Collaborative Filtering)
  • 基于条目的协同过滤(Item-Based Collaborative Filtering)
本章还介绍两种向量相似性算法:
  • 欧氏距离(Euclidean Distance)
  • 皮尔斯稀疏(Pearson Coefficient)
 
协同过滤
协同过滤是在一大群用户中寻找一些与你的用户相似的用户,然后将这些找到的用户使用过但是你没有使用过的物品(如电影,书籍,商品)推荐给你的用户,因为你与这些用户具有类似的爱好。
 
相似度算法
欧氏距离是平面几何距离的n维扩展,值越大,越不相似,为了使得当距离越大时,越相似,需要对其欧氏距离转换,转换方式如下:
euc-dist(x,y)  ===>    1/(1+euc-dist(x,y))
皮尔斯系数可以描述两个向量的相关性,表示的两个向量在二维坐标上分布为一条直线的程度,值在-1~1之间,越大,越相关。皮尔斯稀疏可以修复分数通胀(grade inflation)问题,举个例子,A,B两个用户具有集齐相似的兴趣,只是A打分相对较严格,一般比平均分低一分,但是A与B的pearson系数却可以完美的为1.这种特性根据你的应用而定,可能会需要,至少在电影推荐的例子上是需要的,但是其他例子里面可能不需要.
 
User-Based Collaborative Filtering (or the K-Nearest Neighbor Collaborative Filtering)
计算你其他人所有人相似度,取前k个。
在k个人中,取出我没有看过的电影,然后根据相似度与对应用户对电影的打分成绩,作加权平均值,分值越大,代表我可能越有兴趣额。
这是一个通用算法,可以讲商品,替换电影打分,那么就可以推断我可能感兴趣的商品。返回来也可以,可以根据商品推断潜在购买者。抽象为下面的关系:
  • 用户:影评 --> 推荐电影
  • 影评:用户 --> 预测其他用户影评(没多大意义)
  • 用户:商品 --> 推荐商品
  • 商品:用户 --> 潜在购买用户    商品之间的关系相对stable,相比于人之间的关系
 
 
Item-Based Collaborative Filtering(基于条目的系统过滤)
基于用户的协同过滤最大的问题在于性能,计算量太大,当用户陡增时无法做到实时推荐。因为每次推荐都要计算k个最近的用户,开销很大。
 
基本条目过滤的思路:计算出条目之间的相似性(相对稳定,可以在空闲时间计算),然后将根据用户用过的条目和该条目对应用户没有用过的条目,计算加权平均值,推荐给用户。
最大的好处是条目之间的关系相对稳定,可以提前计算。而且条目计算的结果可以优化,只计算每个条目最相似的k个条目,k << n(总体条目数)。
相比于基于用户的协同顾虑,它更适合于稀疏矩阵。
基于条目的协同过滤,可以参见论文《Item-Based Collaborative Filtering Recommendation Algorithms
更具此问题,基于条目的协同过滤比基于用户的系统过滤更准确。
 
声明:如有转载本博文章,请注明出处。您的支持是我的动力!文章部分内容来自互联网,本人不负任何法律责任。
本文转自bourneli博客园博客,原文链接:http://www.cnblogs.com/bourneli/archive/2012/11/11/2765325.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
推荐10个堪称神器的 Java 学习网站
推荐10个堪称神器的 Java 学习网站
3 0
【愚公系列】2021年11月 C#版 数据结构与算法解析(斐波那契查找)
【愚公系列】2021年11月 C#版 数据结构与算法解析(斐波那契查找)
4 0
【愚公系列】2021年11月 C#版 数据结构与算法解析(插值查找)
【愚公系列】2021年11月 C#版 数据结构与算法解析(插值查找)
3 0
【愚公系列】2021年11月 C#版 数据结构与算法解析(交换排序-冒泡排序)
【愚公系列】2021年11月 C#版 数据结构与算法解析(交换排序-冒泡排序)
3 0
Kalman算法C++实现代码(编译运行通过)
Kalman算法C++实现代码(编译运行通过)
5 0
【愚公系列】2021年11月 数据结构与算法解析(顺序查找)
【愚公系列】2021年11月 数据结构与算法解析(顺序查找)
4 0
【愚公系列】2021年11月 C#版 数据结构与算法解析(二分查找)
【愚公系列】2021年11月 C#版 数据结构与算法解析(二分查找)
4 0
【愚公系列】2021年11月 C#版 数据结构与算法解析(分块查找)
【愚公系列】2021年11月 C#版 数据结构与算法解析(分块查找)
3 0
【愚公系列】2021年11月 C#版 数据结构与算法解析(交换排序-快速排序)
【愚公系列】2021年11月 C#版 数据结构与算法解析(交换排序-快速排序)
2 0
【愚公系列】2021年11月 C#版 数据结构与算法解析(树查找)
【愚公系列】2021年11月 C#版 数据结构与算法解析(树查找)
4 0
4252
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载