bitren豪对《集体智慧编程》的笔记(2)
-
第1页 第一章 集体智慧导言
Netflix公司根据顾客以往的租片信息为其提供相应的推荐。
Netflix的推荐系统:利用每位老顾客对影片的喜好数据,为以前从未访问过该网站的其他顾客提供推荐。
Google采用全新的方法对搜索结果进行排序——利用上百万个web站点上的链接来决定哪些页面的相关性最大。
它们都使用了先进的算法,将来自不同人数的数据加以组合,进而得出新的结论。
————————————————————————————————————————————什么是集体智慧?
为了创造新的想法,将一群人的偏好、行为或思想组合在一起。
如早期使用调查问卷或普查,使我们得出关于群组的统计结论。
例子:金融市场里,价格并不是由某个个体所决定的,它是由许多独立个体的交易行为所共同决定的。市场将知识、经验和无数人的意志组织在一起,形成一种不依赖个人观点的预测。
Google的PageRank 算法: 搜集用户的数据,进行计算分析,从而创造可以增强用户体验的新信息。
如何利用开放的API来搜集数据?
什么是机器学习?
例子:电子邮件过滤。
决策树非常直观;而神经网络则像一个黑盒,要复现结果背后的推导过程非常困难。
机器学习的局限
所有ML算法都有过度归纳的可能性——基于少数事例的强归纳很少是完全精确的。
现实生活中的例子。
Google: 利用 web 链接对网页进行排名; 搜集不同用户对广告的点击信息,进行广告定位。
带有推荐系统的web 站点: 如网易云音乐等; 建立定制的广播电台。
市场预测。
交友网站:从参与者那里搜集信息来确定交友的最佳配对。 任何成功的匹配算法很可能涉及一个持续不断的求值过程——算法会反复判断选定的匹配成功与否。
学习算法的其他用途。
生物工艺学、金融欺诈侦测、机器视觉(独立组元分析技术)、
-
第7页 第二章 提供推荐
本章:如何根据群体偏好来为人们提供推荐?
具体而言:如何构建一个系统,用以寻找具有相同品味的人,并根据他人的喜好自动给出推荐。
协同过滤。CF
搜集偏好。
不管偏好是如何表达的,我们需要将它们对应到数字。比如1代表已购买,0代表未购买。又如投票网站,-1代表不喜欢,0代表没有投票,1代表喜欢。又如在线购物,未购买是0,已浏览为1,已购买为2。
寻找相近用户。
计算相似度评价值:1 欧几里得距离 2.皮尔逊相关度
1. 欧几里得距离相似度定义为:1/(两人的欧氏距离+1), 在0到1之间。如2人有一样的偏好,则返回1。
2。皮尔逊相关系数:度量2个变量(矢量)相关程度的方法,取值在-1到1之间。1表示完全正线性关系,例如一个向量是另一个向量的 k倍(k>0), 带入计算得到 r=1; r=0表示完全无关; r=-1 表示完全负线性关系。
该相关系数是判断两组数据与某一直线拟合的一种度量,修正了 “夸大分值”的情况。
————————————————————————————————————
应该选用哪一种相似性度量方法?
有很多方法可以衡量两组数据间的相似程度,使用哪一种方法最优取决于具体应用。
————————————————————————————————————
为评论者打分
最后函数给出的结果是元组构成的列表: [(分值1, 他人1),(分值2,他人2) ,……],即所谓 “根据某个指定人员,对字典里的其他评论者打分”。当然,表达式中的 “分值” 要使用之前定义的相似度函数 similarity. 最后用 .sort() 和 .reverse() 进行排序。
————————————————————————————————————
推荐物品 recommending items
为 Toby 推荐其还未看过(评分)的影片!!
根据每个评价者的相似度计算加权平均分值(相近的人对于整体评价值有更多的贡献)
2. 考虑:一部受更多人评价的影片会对结果产生更大的影响,要修正这个问题。
说白了,为Toby提供建议,就需要给每部影片打分。打分的依据很简单:
除了 Toby 外的评分者的分数分别乘以相似度之和/ (相似度之和)
最后,得到一个经过加权评分的影片列表。、
发现:选择不同的相似性度量方法,对结果的影响微乎其微。
总结:建立一个涉及人员、物品和评价值的字典,就可以借此为任何人提供意见了。
————————————————————————————————————
匹配商品
如何了解哪些商品彼此相近?
很简单,想象字典中的人员和商品对调。可以复用以前写过的关于求相近人员的程序 TopMatches。
实际存在相关评价值为负的情况,表明喜欢影片 A 的人,存在不喜欢片子B的倾向。
应用:可以为某部影片推荐相近的评论者,比如邀请谁和自己一起去看某部影片。
为影片A推荐还没看过它的人(这些人应该对A的相似影片打了较高的加权平均分值);
或是帮助零售商找到购买某些商品的潜在用户。
————————————————————————————————————
构建一个基于