《推荐系统实践》摘要

推荐系统的基本任务是联系用户和物品,解决信息过载的问题


个性化推荐:

  • 社会化推荐
  • 基于内容的推荐
  • 基于协同过滤的推荐

尽管不同的网站使用不同的推荐系统技术,但总地来说,几乎所有的推荐系统应用都是由前台的展示页面、后台的日志系统以及推荐算法系统3部分构成的。

电子商务、影视娱乐平台、个性音乐电台、社交网络、个性阅读、个性化邮件、个性化广告

个性化推荐的成功应用需要两个条件。第一是存在信息过载,因为如果用户可以很容易地从所有物品中找到喜欢的物品,就不需要个性化推荐了。第二是用户大部分时候没有特别明确的需求,因为用户如果有明确的需求,可以直接通过搜索引擎找到感兴趣的物品。


什么才是好的推荐系统?这是推荐系统评测需要解决的首要问题。一个完整的推荐系统一般存在3个参与方(如图1- 22所示):用户、物品提供者和提供推荐系统的网站。以图书推荐为例,首先,推荐系统需要满足用户的需求,给用户推荐那些令他们感兴趣的图书。其次,推荐系统要让各出版社的书都能够被推荐给对其感兴趣的用户,而不是只推荐几个大型出版社的书。最后,好的推荐系统设计,能够让推荐系统本身收集到高质量的用户反馈,不断完善推荐的质量,增加用户和网站的交互,提高网站的收入。因此在评测一个推荐算法时,需要同时考虑三方的利益,一个好的推荐系统是能够令三方共赢的系统。

所以,好的推荐系统不仅仅能够准确预测用户的行为,而且能够扩展用户的视野,帮助用户发现那些他们可能会感兴趣,但却不那么容易发现的东西。同时,推荐系统还要能够帮助商家将那些被埋没在长尾中的好商品介绍给可能会对它们感兴趣的用户。

在推荐系统中,主要有3种评测推荐效果的实验方法,即离线实验(offlineexperiment)、用户调查(userstudy)和在线实验(onlineexperiment)。


评分预测的预测准确度一般通过均方根误差(RMSE)和平均绝对误差(MAE)计算。

TopN推荐的预测准确率一般通过准确率(precision)/召回率(recall)度量。

覆盖率(coverage)描述一个推荐系统对物品长尾的发掘能力。


不同的网站需要根据自己的特点设计评分系统,而不是一味照搬其他网站的设计。YouTube的用户主要将精力放在看视频上,因此他们只有在特别不满或者特别满意时才会评分,因此二级评分系统就足够了。但如果是评论网站,用户主要将精力放在评论上,这时多级评分系统就是必要的。

仅仅基于用户行为数据设计的推荐算法一般称为协同过滤算法。学术界对协同过滤算法进行了深入研究,提出了很多方法,比如基于邻域的方法(neighborhood- based)、隐语义模型(latentfactormodel)、基于图的随机游走算法(randomwalkongraph)等。在这些方法中,最著名的、在业界得到最广泛应用的算法是基于邻域的方法,而基于邻域的方法主要包含下面两种算法。
基于用户的协同过滤算法 这种算法给用户推荐和他兴趣相似的其他用户喜欢的物品。
基于物品的协同过滤算法 这种算法给用户推荐和他之前喜欢的物品相似的物品。


冷启动的方式:

  • 提供非个性化的推荐 非个性化推荐的最简单例子就是热门排行榜,我们可以给用户推荐热门排行榜,然后等到用户数据收集到一定的时候,再切换为个性化推荐。
  • 利用用户注册时提供的年龄、性别等数据做粗粒度的个性化。
  • 利用用户的社交网络账号登录(需要用户授权),导入用户在社交网站上的好友信息,然后给用户推荐其好友喜欢的物品。
  • 要求用户在登录时对一些物品进行反馈,收集用户对这些物品的兴趣信息,然后给用户推荐那些和这些物品相似的物品。
  • 对于新加入的物品,可以利用内容信息,将它们推荐给喜欢过和它们相似的物品的用户。
  • 在系统冷启动时,可以引入专家的知识,通过一定的高效方式迅速建立起物品的相关度表。