《推荐系统实践》读书笔记
前言
推荐系统算法有很多,
- 可以按照数据分成协同过滤、内容过滤、社会化过滤,
- 也可以按照算法分成基于邻域的算法、基于图的算法、基于矩阵分解或者概率模型的算法。
第一章 好的推荐系统
什么是推荐系统
在这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战:作为信息消费者,如何从大量信息中找到自己感兴趣的信息是一件非常困难的事情;作为信息生产者,如何让自己生产的信息脱颖而出,受到广大用户的关注,也是一件非常困难的事情。推荐系统就是解决这一矛盾的重要工具。推荐系统的任务就是联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢(如图1-1所示)。(本书后面将信息统称为“物品”,即可以供用户消费的东西。
分类目录 --》 搜索引擎 --》 推荐系统(不需要关键字,可以根据用户以往信息建立兴趣模型)
从某种意义上说,
推荐系统和搜索引擎对于用户来说是两个互补的工具。搜索引擎满足了用户有明确目的时的主动
查找需求,而推荐系统能够在用户没有明确目的的时候帮助他们发现感兴趣的新内容。
选择电影的方式:
- 向朋友咨询,这种方式在推荐系统中称为社会化推荐(social recommendation)
- 喜欢看某个演员或导演,系统会自动化推荐,这是基于 内容(content-based filtering)的推荐
- 找到和自己爱好相似的人,看别人在看什么电影 ,基于协同过滤(collaborative filtering)的推荐
个性化推荐系统的应用
尽管不同的网站使用不同的推荐系统技术,但总地来说,几乎所有的推荐系统应用都是由3部分构成的。
- 前台的展示页面、
- 后台的日志系统
- 推荐算法系统
应用:电子商务,电影或视频网站,音乐电台,社交网络,个性化阅读,基于位置的服务,个性化邮件,个性化广告
什么是好的推荐系统?
一个完整的推荐系统一般存在3个参与方:用户、物品提供者和提供推荐系统的网站。
以图书推荐为例:首先,推荐系统需要满足用户的需求,给用户推荐那些令他们感兴趣的图书。其次,推荐系统要让各出版社的书都能够被推荐给对其感兴趣的用户,而不是只推荐几个大型出版社的书。最后,好的推荐系统设计,能够让推荐系统本身收集到高质量的用户反馈,不断完善推荐的质量,增加用户和网站的交互,提高网站的收入。因此在评测一个推荐算法时,需要同时考虑三方的利益,一个好的推荐系统是能够令三方共赢的系统。
好的推荐系统不仅仅能够准确预测用户的行为,而且能够扩展用户的视野,帮助用户发现那些他们可能会感兴趣,但却不那么容易发现的东西。同时,推荐系统还要能够帮助商家将那些被埋没在长尾中的好商品介绍给可能会对它们感兴趣的用户。
推荐系统的评测
-
离线实现
- 用日志系统的行为数据进行模型训练并进行检验(数据分为训练集和测试集)
-
用户调查
- 优点是可以获得很多体现用户主观感受的指标,相对在线实验风险很低,出现错误后很容易弥补。缺点是招募测试用户代价较大,很难组织大规模的测试用户,因此会使测试结果的统计意义不足
-
在线实验 AB测试
-
评测指标
- 用户满意度
- 预测准确度:RMSE, MAE
- TopN推荐: TopN推荐的预测准确率一般通过准确率(precision)/召回率(recall)度量。
- 覆盖率:推荐系统能够推荐出来的物品占总物品集合的比例。
- 多样性
- 新颖性
- 惊喜度
- 信任度