算法工程师修仙之路:推荐系统实践(一)

第一章 好的推荐系统

什么是推荐系统


  • 随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过载(information overload)的时代。在这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战:作为信息消费者,如何从大量信息中找到自己感兴趣的信息是一件非常困难的事情;作为信息生产者,如何让自己生产的信息脱颖而出,受到广大用户的关注,也是一件非常困难的事情。推荐系统就是解决这一矛盾的重要工具。

  • 推荐系统的任务就是联系用户和信息,一方面把帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。

  • 推荐系统是目前互联网世界最常见的智能产品形式。从电子商务、音乐视频网站,到作为互联网经济支柱的在线广告和新颖的在线应用推荐,到处都有推荐系统的身影。

  • 一般认为,推荐系统这个研究领域源于协同过滤算法的提出。比如,可以按照数据分成协同过滤、内容过滤、社会化过滤,也可以按照算法分成基于邻域的算法、基于图的算法、基于矩阵分解或者概率模型的算法。

  • 为了解决信息过载的问题,已经有无数科学家和工程师提出了很多天才的解决方案,其中代表性的解决方案是分类目录和搜索引擎。

  • 和搜索引擎一样,推荐系统也是一种帮助用户快速发现有用信息的工具。和搜索引擎不同的是,推荐系统不需要用户提供明确的需求,而是通过分析用户的历史行为给用户的兴趣建模,从而主动给用户推荐能够满足他们兴趣和需求的信息。因此,从某种意义上说,推荐系统和搜索引擎对于用户来说是两个互补的工具。搜索引擎满足了用户有明确目的时的主动查找需求,而推荐系统能够在用户没有明确目的的时候帮助他们发现感兴趣的新内容。

  • 从物品的角度出发,推荐系统可以更好地发掘物品的长尾(long tail)。主流商品往往代表了绝大多数用户的需求,而长尾商品往往代表了一小部分用户的个性化需求。因此,如果要通过发掘长尾提高销售额,就必须充分研究用户的兴趣,而这正是个性化推荐系统主要解决的问题。推荐系统通过发掘用户的行为,找到用户的个性化需求,从而将长尾商品准确地推荐给需要它的用户,帮助用户发现那些他们感兴趣但很难发现的商品。

  • 三种推荐方式:

    • 社会化推荐( social recommendation):即让好友给自己推荐物品。
    • 基于内容的推荐(content-based filtering):推荐系统可以自动化通过分析用户曾经看过的内容找到用户喜欢的物品,然后给用户推荐这些物品。
    • 基于协同过滤的推荐( collaborative filtering):如果能找到和用户历史兴趣相似的一群用户,分析他们喜欢的物品,然后给用户推荐这些物品。
  • 推荐算法的本质是通过一定的方式将用户和物品联系起来,而不同的推荐系统利用了不同的方式。

个性化推荐系统的应用


电子商务

  • 和搜索引擎不同,个性化推荐系统需要依赖用户的行为数据,因此一般都是作为一个应用存在于不同网站之中。在互联网的各类网站中都可以看到推荐系统的应用,而个性化推荐系统在这些网站中的主要作用是通过分析大量用户行为日志,给不同用户提供不同的个性化页面展示,来提高网站的点击率和转化率。

  • 广泛利用推荐系统的领域包括电子商务、电影和视频、音乐、社交网络、阅读、基于位置的服务、个性化邮件和广告等。尽管不同的网站使用不同的推荐系统技术,但总地来说,几乎所有的推荐系统应用都是由前台的展示页面、后台的日志系统以及推荐算法系统3部分构成的

  • 电子商务网站是个性化推荐系统的一大应用领域。著名的电子商务网站亚马逊是个性化推荐系统的积极应用者和推广者,被RWW(读写网)称为“推荐系统之王”。 亚马逊的推荐系统深入到了其各类产品中,其中最主要的应用有个性化商品推荐列表和相关商品的推荐列表。

  • 个性化推荐列表采用了一种基于物品的推荐算法( item-based method),该算法给用户推荐那些和他们之前喜欢的物品相似的物品。除此之外,亚马逊还有另外一种个性化推荐列表,就是按照用户在Facebook的好友关系,给用户推荐他们的好友在亚马逊上喜欢的物品。

  • 除了个性化推荐列表,亚马逊另一个重要的推荐应用就是相关推荐列表。当你在亚马逊购买一个商品时,它会在商品信息下面展示相关的商品。

  • 亚马逊有两种相关商品列表,一种是包含购买了这个商品的用户也经常购买的其他商品,另一种是包含浏览过这个商品的用户经常购买的其他商品。这两种相关推荐列表的区别就是使用了不同用户行为计算物品的相关性。

  • 相关推荐列表最重要的应用就是打包销售( cross selling)。当你在购买某个物品的时候,亚马逊会告诉你其他用户在购买这个商品的同时也会购买的其他几个商品,然后让你选择是否要同时购买这些商品。如果你单击了同时购买,它会把这几件商品“打包”,有时会提供一定的折扣,然后卖给你。

电影和视频网站

  • 在电影和视频网站中,个性化推荐系统也是一种重要的应用。它能够帮助用户在浩瀚的视频库中找到令他们感兴趣的视频。在该领域成功使用推荐系统的一家公司就是Netflix,它和亚马逊是推荐系统领域最具代表性的两家公司。

  • 从Netflix的推荐理由来看,它们的算法和亚马逊的算法类似,也是基于物品的推荐算法,即给用户推荐和他们曾经喜欢的电影相似的电影。

个性化音乐网络电台

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

  • 在这两个条件下,个性化网络电台无疑是最合适的个性化推荐产品。目前有很多知名的个性化音乐网络电台。国际上著名的有Pandora和Lastfm,国内的代表则是豆瓣电台。它们都不允许用户点歌,而是给用户几种反馈方式——喜欢、不喜欢和跳过。经过用户一定时间的反馈,电台就可以从用户的历史行为中习得用户的兴趣模型,从而使用户的播放列表越来越符合用户对歌曲的兴趣。

  • 社交网络

    • 社交网络中的个性化推荐技术主要应用在三个方面:
      • 利用用户的社交网络信息对用户进行个性化的物品推荐;
      • 信息流的会话推荐;
      • 给用户推荐好友。
  • Facebook最宝贵的数据有两个,一个是用户之间的社交网络关系,另一个是用户的偏好信息。因此, Facebook推出了一个推荐API,称为Instant Personalization。该工具根据用户好友喜欢的信息,给用户推荐他们的好友最喜欢的物品。

  • 除了利用用户在社交网站的社交网络信息给用户推荐本站的各种物品,社交网站本身也会利用社交网络给用户推荐其他用户在社交网站的会话。每个用户在Facebook的个人首页都能看到好友的各种分享,并且能对这些分享进行评论。每个分享和它的所有评论被称为一个会话,如何给这些会话排序是社交网站研究中的一个重要话题。 为此, Facebook开发了EdgeRank算法对这些会话排序,使用户能够尽量看到熟悉的好友的最新会话。

  • 除了根据用户的社交网络以及用户行为给用户推荐内容,社交网站还通过个性化推荐服务给用户推荐好友。

个性化阅读

  • Google Reader是一款流行的社会化阅读工具。它允许用户关注自己感兴趣的人,然后看到所关注用户分享的文章。

  • 和Google Reader不同,个性化阅读工具Zite则是收集用户对文章的偏好信息。在每篇文章右侧, Zite都允许用户给出喜欢或不喜欢的反馈,然后通过分析用户的反馈数据不停地更新用户的个性化文章列表。

基于位置的服务

  • 随着移动设备的飞速发展,用户的位置信息已经非常容易获取,而位置是一种很重要的上下文信息,基于位置给用户推荐离他近的且他感兴趣的服务,用户就更有可能去消费。基于位置的服务往往和社交网络结合在一起。

个性化邮件

  • 我们每天都会收到大量的邮件,这些邮件有些对我们很重要(比如领导交代任务的邮件),有些比较次要(比如别人邀约周末打球的邮件),还有些是垃圾邮件。垃圾邮件可以通过垃圾邮件过滤器去除,但在正常的邮件中,如果能够找到
    对用户重要的邮件让用户优先浏览,无疑会大大提高用户的工作效率。

  • 目前在文献中能够查到的第一个推荐系统Tapestry就是一个个性化邮件推荐系统,它通过分析用户阅读邮件的历史行为和习惯对新邮件进行重新排序,从而提高用户的工作效率。

  • 谷歌于2010年推出了优先级收件箱功能。该产品通过分析用户对邮件的历史行为,找到用户感兴趣的邮件,展示在一个专门的收件箱里。用户每天可以先浏览这个邮箱里的邮件,再浏览其他邮件。

个性化广告

  • 个性化广告投放和狭义个性化推荐的区别是,个性化推荐着重于帮助用户找到可能令他们感兴趣的物品,而广告推荐着重于帮助广告找到可能对它们感兴趣的用户,即一个是以用户为核心,而另一个以广告为核心。

  • 目前的个性化广告投放技术主要分为三种。

    • 上下文广告
      • 通过分析用户正在浏览的网页内容,投放和网页内容相关的广告。
      • 代表系统是谷歌的Adsense。
    • 搜索广告
      • 通过分析用户在当前会话中的搜索记录,判断用户的搜索目的,投放和用户目的相关的广告。
    • 个性化展示广告
      • 我们经常在很多网站看到大量展示广告(就是那些大的横幅图片),它们是根据用户的兴趣,对不同用户投放不同的展示广告。
      • 雅虎是这方面研究的代表。

猜你喜欢

转载自blog.csdn.net/faker1895/article/details/85059766