系列文章目录
第一章 好的推荐系统
文章目录
一、 信息过载问题的解决方案发展史
分类目录(催生雅虎等):这些分类目录网站将著名的网站分门别类,方便用户根据类别查找网站。
搜索引擎(催生谷歌等):需用户主动提供准确的关键词来搜索信息。
推荐系统:通过分析用户的历史行为给用户的兴趣建模,从而主动给用户推荐能够满足他们兴趣和需求的信息。
随着互联网规模扩大,分类目录只能覆盖少量热门网站,越来越不能满足用户需求,诞生了搜索引擎和推荐系统,两者形成互补,搜索引擎满足了用户明确目的时的主动搜索,推荐引擎能够在用户没有明确目的时帮助他们发现感兴趣的新内容。
二、推荐系统的任务
解决信息过载问题
联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。
个性化推荐
从物品的角度出发,推荐系统可以更好地发掘物品的长尾。《长尾理论》一书指出80%的销售额来自于20%的热门商品,除这些热门商品,其它商品被称为长尾商品,热门商品往往代表了绝大多数用户的需求,而长尾商品往往代表了一小部分用户的个性化需求。推荐系统通过挖掘用户行为,找到用户用户的个性化需求,从而将长尾商品准确推荐给需要它的用户,帮助用户发现那些感兴趣但是很难发现的商品。
三、推荐算法的本质
通过一定方式(好友、历史兴趣、用户注册信息等)将用户和商品联系起来,而不同的推荐系统利用了不同的方式。
四、个性化推荐系统的应用
个性化推荐成功应用条件:存在信息过载;用户大部分时候没有明确需求。
个性换推荐系统需要依赖用户的行为数据。几乎所有的推荐系统应用都是由前台的展示页面(缩略图、标题、评分、推荐理由、用户反馈:喜欢/不喜欢/跳过)、后台的日志系统以及推荐算法系统3部分构成。
4.1 电子商务
最佳应用:亚马逊电子商务网站,其推荐系统深入各类产品,最主要的应用有个性化商品推荐列表和相关商品的推荐列表,该系统让每个用户都能拥有一个自己的在线商店,并且能在商店中找到自己感兴趣的商品。
个性化推荐列表
基于物品的推荐算法:给用户推荐那些和他们之前喜欢的物品相似的物品。
基于好友的个性化推荐:按照用户的好友关系,给用户推荐他们的好友喜欢的物品。
相关推荐列表
“打包销售”:包含购买了这个商品的用户也经常购买的其它商品。
历史推荐:浏览过这个商品的用户经常购买的其它商品。
这两种相关推荐列表的区别就是使用不同用户行为计算物品的相关性。
4.2 电影和视频网站
最佳应用:Netflix(在线视频业务),YouTube,Hulu
基于物品的推荐算法
证明个性化推荐有效性的实验:(YouTube)比较个性化推荐的点击率和热门视频列表的点击率.
4.3 个性化音乐网络电台
最佳应用:Pandora、Last.fm、豆瓣电台
Pandora的推荐算法主要基于内容,来自于音乐基因工程的项目,音乐家和对音乐感兴趣的工程师会对歌曲的不同特性(如旋律、节奏、编曲、歌词等)进行标注,这些标注被称为音乐的基因,根据音乐的基因计算歌曲的相似度,并给用户推荐和他之前喜欢的音乐在基因上相似的其他音乐。
Last.fm的算法主要基于好友的个性化推荐,利用用户行为(所有用户的听歌记录及用户对歌曲的反馈)计算不同用户对歌曲的喜好相似度,从而推荐和其有相似听歌爱好的其他用户喜欢的歌曲。同时,该公司也建立了社交网络,可给好友推荐自己喜欢的歌曲。
4.4 社交网络
最佳应用:Facebook、Twitter
社交网络中的个性化推荐主要应用在三个方面:
1、利用用户的社交网络信息对用户进行个性化的物品推荐;
2、信息流的会话推荐;
3、给用户推荐好友。
Facebook最宝贵的数据有两个,一个是用户之间的社交网络关系,另一个是用户的偏好信息,其推出了一个推荐API,可根据用户好友喜欢的信息,给用户推荐他们的好友最喜欢的物品。除推荐物品之外还可以推荐其他用户的会话。每个用户在Facebook的个人首页都能看到好友的各种分享,并能对这些分享进行评论。每个分享和它所有评论被称为一个会话,Facebook开发了EdgeRank算法可以对会话进行排序,使用户能够尽量看到熟悉的好友的最新会话。除此之外,Facebook还给用户推荐可能认识的人。
4.5 个性化阅读
最佳应用:Google Reader、鲜果网、Zite、Flipboard
Google Reader允许用户关注自己感兴趣的人,然后看到所关注用户分享的文章。
Zite收集用户对文章的偏好信息(用户反馈),更新用户的个性化文章列表。
Digg根据用户的历史计算用户之间的兴趣的相似度,然后给用户推荐和他兴趣相似的用户喜欢的文章。
4.6 基于位置的服务
位置是很重要的上下文信息,基于位置给用户推荐离他近且他感兴趣的服务,用更有可能去消费。
Foursquare推出了探索功能,给用户推荐好友在附近的行为。
4.7 个性化邮件
Tapestry是一个个性化邮件推荐系统,可通过分析用户阅读邮件的历史行为和习惯对新邮件进行重新排序,从而提高用户的工作效率。
谷歌2010年推出了优先级收件箱功能。
4.8 个性化广告
广告定向投放(将广告投放给他的潜在客户群)。
个性化广告投放和个性化推荐按的区别是,个性化推荐着重于帮用户找到可能令他们感兴趣的物品,而广告推荐着重于帮助广告找到对他们感兴趣的用户,即一个以用户为中心,另一个以广告为中心。
个性化广告投放技术主要分为3种:
上下文广告:通过分析用户正在浏览的网页内容,投放和网页内容相关的广告。代表系统是谷歌的Adsense。
搜索广告:通过分析用户在当前会话中的搜索记录,判断用户的搜索目的,投放和用户目的相关的广告。
个性化展示广告:根据用户的兴趣,对不同的用户投放不同的展示广告。代表系统是雅虎。
五、推荐系统评测
好的推荐系统不仅仅能准确预测用户的行为(预测用户会购买某样商品,结果真的购买了),而且能够扩展用户的视野,帮助用户发现那些他们可能感兴趣,但却不那么容易发现的东西(用户已经准备购买,再去推荐就毫无意义,例如预测太阳会从东方升起)。同时,推荐系统要帮助商家将那些被埋没在长尾中的好商品介绍给可能对它们感兴趣的用户。
完整的推荐系统一般存在3个参与方:用户、物品提供方和提供推荐系统的网站。一个好的推荐系统是能让3方共赢的系统。为了全面评测推荐系统对三方利益的影响,将提出不同的指标,包括准确度、覆盖度、新颖度、惊喜度、信任度、透明度等。
5.1 推荐系统实验方法
离线实验
通过日志系统获得用户行为数据,并按照一定格式生成一个标准的数据集,再根据规则分成训练集和测试集,在训练集上训练用户兴趣模型,在测试集上预测效果,最终根据事项定义的离线指标评测算法在测试集上的预测效果。
用户调查
离线实验的指标和实际的商业指标存在差距,高预测准确率 != 高用户满意度。最好的办法是将算法直接上线测试,但是对算法会不会降低用户满意度不太有把握的情况下,上线测试有较高风险,所以上线测试前一般需要做一次用户调查测试。
用户调查需要一些真实用户,让他们在需要测试的推荐系统上完成一些任务。在他们完成任务时,我们需要观察和记录他们的行为,并让他们回答一些问题。通过分析用户行为和答案了解测试系统性能。
优点:获得体现用户主观感受的指标,出现失误易修复;
缺点:用户调查成本高,很难保证测试用户和真实用户分布相同,设计双盲实验(实验人员和用户)非常困难。
在线实验
完成离线实验和用户调查后,可以将推荐系统上线做A/B test,只测试在离线实验和用户调查中表现较好的算法。切分流量是A/B test的关键,不同的层以及控制这些层的团队(前端、后端等)需要从一个统一的地方获得自己A/B test的流量,而不同层之间的流量应该是正交的。
一般,一个新的推荐算法最终上线,需完成上述3个实验。
5.2 评测指标
用户满意度
用户调查或者在线实验获得。
1、调查问卷;
2、反馈界面。
3、指标度量:点击率、用户停留时间、转化率等
预测准确度
离线评测指标
1、评分预测:预测用户对物品的评分行为,通过RMSE和MAE来计算评分预测的预测准确度;
2、TopN推荐:一般通过准确率/召回率度量。
3、覆盖率:描述一个推荐系统对物品长尾的发掘能力,最简单的定义是推荐系统给每个用户推荐出来的物品占总物品集合的比例。
4、多样性:推荐列表中物品的两两不相似性。
5、新颖性:给用户推荐以前没听过的物品。
6、惊喜度
7、信任度
8、实时性
9、健壮性
10、商业目标
5.3 评测维度
用户维度
用户的人口统计学信息、活跃度、是否是新用户等
物品维度
物品的属性信息、流行度、平均分、是否是新加入的物品
时间维度
季节、工作日、周末、白天、晚上等