推荐系统简介(The Brief Introduction of Recommender Systems)

Contents

一、背景

推荐系统已经广泛运用于我们生活中,从亚马逊和淘宝上购物,网页云音乐的歌单、头条的推荐新闻等等。那么什么是推荐系统,为什么会出现推荐系统。推荐系统的应用、评测及试验方法什么。下面我们简要介绍。 image1

二、什么是推荐系统

  • 推荐系统的任务就是联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢
  • 发掘用户的行为,找到用户的个性化需求,从而将长尾商品准确地推荐给需要它的用户,帮助用户发现那些他们感兴趣但很难发现的商品。
  • 推荐系统就是自动联系用户和物品的一种工具,它能够在信息过载的环境中帮助用户发现令他们感兴趣的信息,也能将信息推送给对它们感兴趣的用户。

三、 解决信息过载的方法

  1. 对于信息
    • 消费者:找到自己感兴趣的
    • 生产者:让自己生产的信息脱颖而出,受到广大用户的关注
  2. 信息过载(Information overload):
    • 分类目录:以雅虎为代表,是将著名网站分门别类,从而方便用户根据类别查找公司。
    • 搜索引擎:以谷歌为代表的搜索引擎可以让用户通过搜索关键同找到自己需要的信息。
    • 推荐系统,和搜索引擎一样,是一种帮助用户快速发展有用信息的工具。通过分析用户的历史行为,给用户的兴趣建模,从而主动给用户推荐能够满足他们兴趣和需求的信息。
  3. 分类目录和搜索引擎的缺点:
    • 分类目录:随着互联网规模的不断扩大,分类目录网站也只能覆盖少量的热门网站,越来越不能满足用户的需求。
    • 搜索引擎需要用户主动提供准确的关键同来寻找信息,因此不能解决用户的很多其他需求,比如当用户无法找到准确描述自己需求的关键同时。
  4. 推荐系统的优点:
    • 从物品的角度出发,推荐系统可以更好地发掘物品的长尾(long tail),挑战传统的2/8原则
    • 主流商品往往代表了绝大多数用户的需求,而长尾商品往往代表了一小部分用户的个性化需求。
  5. 从技术角度来看,搜索引擎和推荐系统的区别在于:
    • 搜索引擎,注重搜索结果之间的关系和排序;
    • 推荐系统,需要研究用户的兴趣模型,利用社交网络的信息进行个性化的计算;
    • 搜索引擎,由用户主导,需要输入关键词,自行选择结果。如果结果不满意,需要修改关键词,再次搜索;
    • 推荐系统,由系统主导,根据用户的浏览顺序,引导用户发现自己感兴趣的信息;
  6. 从某种意义上来说:
    推荐系统和搜索引擎对于用户来说是两个互补的工具。搜索引擎满足了用户有明确目的时的主动查找需求,而推荐系统能够在用户没有明确目的的时候帮助他们发现感兴趣的新内容。

四、 个性化推荐系统的应用

和搜索引擎不同,个性化推荐系统需要依赖用户的行为数据,因此一般都是作为一个应用存在于不同网站之中。

  1. 电子商务
    亚马逊
    • 个性化商品推荐列表:基于物品的推荐算法和基于好友的推荐算法
    • 相关商品的推荐列表:购买过这个商品的用户经常购买的其他商品,​浏览过这个商品的用户经常购买的其他商品。
  2. 电影和视频网站
    • ​Netflix:基于物品的推荐算法
    • YouTube:基于物品的推荐算法
  3. 个性化音乐网络电台
    • Pandora:基于内容,背后的音乐推荐算法主要来自于一个叫做音乐基因工程的项目。
    • Last.fm:记录了所有用户的听歌记录以及用户对歌曲的反馈,在这一基础上计算出不同用户在歌曲上的喜好相似度,从而给用户推荐和他有相似听歌爱好的其他用户喜欢的歌曲。
  4. 社交网络
    • 利用用户的社交网络信息对用户进行个性化的物品推荐
    • 信息流的会话推荐
    • 给用户推荐好友
  5. 个性化阅读
  6. 基于位置的服务
  7. 个性化邮件
  8. 个性化广告
    • 上下文广告:通过分析用户正在浏览的网页内容,投放和网页内容相关的广告。
    • 搜索广告:通过分析用户在当前回话中的搜索记录,判断用户的搜索目的,投放和用户目的相关的广告。
    • 个性化展示广告:我们经常在很多网站看到大量展示广告,它们是根据用户的兴趣,对不同用户投放不同的展示广告。

五、推荐系统评测

一个完整的推荐系统一般存在3个参与方:用户、物品提供者和提供推荐系统的网站**。 因此在评测一个推荐算法时,需要同时考虑三方的利益,一个好的推荐系统是能够令三方共赢的系统。 image2

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

六、 推荐系统的试验方法

离线实验

  1. 步骤
    • 通过日志系统获得用户行为数据,并按照一定格式生成一个标准的数据集
    • 将数据集按照一定的规则分成训练集和测试集
    • 在训练集上训练用户兴趣模型,在测试集上进行预测
    • 通过事先定义的离线指标评测算法在测试集上的预测结果。
  2. 优缺点
优点 缺点
不需要有对实际系统的控制权 无法计算商业上关心的指标
不需要用户参与实验 离线实验的指标和商业指标存在差距
速度快、可以测试大量算法  

用户调查

  1. 概述:离线实验的指标和实际的商业指标存在差距,比如预测准确率和用户满意度之间就存在很大差别,高预测准确率不等于高用户满意度。因此,如果要准确评测一个算法,需要相对比较真实的环境。最好的方法就是将算法直接上线测试,但在对算法会不会降低用户满意度不太有把握的情况下,上线测试具有较高的风险,所以在上线测试前一般需要做一次称为用户调查的测试。
  2. 优点
    • 可以获得很多体现用户主观感受的指标
    • 相对在线实验风险很低,出现错误后很容易弥补
  3. 缺点
    • 招募测试用户代价较大,很难组织大规模的测试用户,因此会使测试结果的统计意义不足。
    • 在很多时候设计双盲实验非常困难,而且用户在测试环境下的行为和真实环境下的行为可能有所不同,因而在测试环境下收集的测试指标可能在真实环境下无法重现。
  4. 注意事项
    • 测试用户也不是随便选择的。需要尽量保证测试用户的分布和真实用户的分布相同,比如男女各半,以及年龄、活跃度的分布都和真实用户分布尽量相同。
    • 用户调查要尽量保证是双盲实验,不要让实验人员和用户事先知道测试的目标,以免用户的回答和实验人员的测试受主观成分的影响。

在线实验

  1. 概述:在完成离线实验和必要的用户调查后,可以将推荐系统上线做 AB 测试,将它和旧的算法进行比较。
  2. AB 测试是一种很常用的在线评测算法的实验方法。它通过一定的规则将用户随机分成几组,并对不同组的用户采用不同的算法,然后通过统计不同组用户的各种不同的评测指标比较不同算法,比如可以统计不同组用户的点击率,通过点击率比较不同算法的性能。
  3. AB 测试的优缺点
    • 优点是可以公平获得不同算法实际在线时的性能指标,包括商业上关注的指标。
    • 缺点是周期比较长,必须进行长期的实验才能得到可靠的结果。因此一般不会用 AB 测试测试所有的算法。
  4. 注意一个网站可能分为很多层,要为不同的层分别设计 AB 测试系统,那么不同的 AB 测试之间往往会互相干扰。因此,切分流量是 AB 测试中的关键,不同的层以及控制这些层的团队需要从一个统一的地方获得自己 AB 测试的流量,而不同层之间的流量应该是正交的。

AB测试系统 image3

七、小结:

一般来说,一个新的推荐算法最终上线,需要完成上面所说的 3 个实验。

  • 首先,需要通过离线实验证明它在很多离线指标上优于现有的算法。
  • 然后,需要通过用户调查确定它的用户满意度不低于现有的算法。
  • 最后,通过在线的 AB 测试确定它在我们关心的指标上优于现有的算法。

八、References

[1] 项亮《推荐系统实战》


转载请注明:yezuolin的博客 » 点击阅读原文