好的推荐系统
- 什么是推荐系统
随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过载(information overload)的时代。在这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战:信息消费者,如何从大量信息中找到自己感兴趣的信息是一件非常困难的事情;作为信息生产者,如何让自己生产的信息脱颖而出,受到广大用户的关注,也是一件非常困难的事情。推荐系统就 是解决这一矛盾的重要工具。
推荐系统的任务就是联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。
信息过载,催生了分类目录和搜索引擎,随着互联网规模的不断扩大,分类目录只能覆盖少量的热门网站,无法满足用户的需求,同时搜索引擎需要用户提供准确的关键字来寻找信息,无法满足用户的很多其他需求,比如用户很多情况下无法找到准确描述自己需求的关键词。
推荐系统是一种帮助用户快速发现有用信息的工具,其不需要用户提供明确的需求,而是通过分析用户的历史行为给用户的兴趣建模,从而主动给用户推荐能够满足其兴趣和需求的信息。
推荐系统通过发掘用户的行为,找到用户的个性化需求,从而将长尾商品准确的推荐给需要他的用户,帮助用户发现那些他们感兴趣但很难被发现的商品。
以看电影为例:
- 向朋友咨询。 社会化推荐
- 通过搜索引擎搜索,看返回结果中的相关信息。这种方式在推荐系统中称为基于内容的推荐
- 查看排行榜,找好评度高的电影,进一步扩展,找到和自己历史兴趣相似的用户,查看他最近在看什么电影。这种方式称为基于协同过滤的推荐。
推荐算法的本质是通过一定的方式将用户和物品联系起来,而不
同的推荐系统利用了不同的方式。联系用户和物品的常用方式,比如利用好友、用户的历史兴趣记录以及用户的注册信息等
- 个性化推荐系统的应用
个性化推荐在网站中的主要作用是通过分析大量用户行为日志,给不同的用户提供不同的个性化页面展示,来提高网站的点击率和转化率。
2.1 电子商务
亚马逊个性化推荐列表
-
推荐结果的标题、缩略图以及其他内容属性
-
推荐结果的平均分,平均分反应了推荐结果的总体质量
-
推荐理由
-
上面提到的个性化推荐列表采用了一种基于物品的推荐算法(item-based method),该算法给用户推荐那些和他们之前喜欢的物品相似的物品。
-
亚马逊还有另外一种个性化推荐列表,就是按照用户在Facebook的好友关系,给用户推荐他们的好友在亚马逊上喜欢的物品。
-
除了个性化推荐列表,亚马逊另外一个重要的推荐系统就是相关推荐列表。亚马逊有两种相关商品列表,一种是包含购买了这个商品的用户也经常购买的其他商品,另一种是包含浏览过这个商品的用户经常购买的其他商品。这两种相关推荐列表的区别就是使用了不同用户行为计算物品的相关性。
-
此外,推荐列表最重要的应用就是打包销售(cross selling)。当你在购买某个商品的时候亚马逊告诉你其他用户在购买这个商品的时候也会购买其他几个商品,然后让你选择是否要同时购买这些商品。如果你单击了同时购买,它会把这几件商品“打包”,有时会提供一定的折扣,然后卖给你(后来被很多电子商务网站作为标准的应用)
2.2 电影和视频网站
Netflix,YouTube、Hulu和亚马逊的算法类似,也是基于物品的推荐算法,即给用户推荐和他们曾经喜欢的电影相似的电影。
2.3 个性化音乐网络电台
Pandora背后的音乐推荐算法主要来自于一个叫做音乐基因工程的项目,Pandora的算法主要基于内容,其音乐家和研究人员亲自听了上万首来自不同歌手的歌,然后对歌曲的不同特性(比如旋律、节奏、编曲和歌词等)进行标注,这些标注被称为音乐的基因。然后,Pandora会根据专家标注的基因计算歌曲的相似度,并给用户推荐和他之前喜欢的音乐在基因上相似的其他音乐。
Last.fm记录了所有用户的听歌记录以及用户对歌曲的反馈,在这基础上计算出不同用户在歌曲上的喜好相似度,从而给用户推荐和他有相似听歌爱好的其他用户喜欢的歌曲。同时,Last.fm也建立了一个社交网络,让用户能够和其他用户建立联系,同时也能让用户给好友推荐自己喜欢的歌曲。和Pandora相比,Last.fm没有使用专家标注,而是主要利用用户行为计算歌曲的相似度
2.4 社交网络
社交网络中的个性化推荐技术主要应用在3个方面:
- 利用用户的社交网络信息对用户进行个性化的物品推荐;
- 信息流的会话推荐;
- 给用户推荐好友
2.5 个性化阅读
- Google Reader是一款流行的社会化阅读工具。它允许用户关注自己感兴趣的人,然后看到所关注用户分享的文章。
- 性化阅读工具Zite则是收集用户对文章的偏好信息,然后通过分析用户的反馈数据不停地更新用户的个性化文章列表。
- 新闻阅读网站Digg,首先根据用户的Digg历史计算用户之间的兴趣相似度,然后给用户推荐和他兴趣相似的用户喜欢的文章。
2.6 基于位置的服务
位置是一种很重要的上下文信息,基于位置给用户推荐离他近的且他感兴趣的服务,用户就更有可能去消费
Foursquare推出了探索功能,给用户推荐好友在附近的行为。
2.7 个性化邮件
通过分析用户阅读邮件的历史行为和习惯对新邮件进行重新排序,从而提高用户的工作效率
2.8 个性化广告
个性化广告投放和狭义个性化推荐的区别是,个性化推荐着重于帮助用户找到可能令他们感兴趣的物品,而广告推荐着重于帮助广告找到可能对它们感兴趣的用户,即一个是以用户为核心,而另一个以广告为核心。
目前的个性化广告投放技术主要分为3种。
- 上下文广告:通过分析用户正在浏览的网页内容,投放和网页内容相关的广告。代表系 统是谷歌的Adsense。
- 搜索广告:通过分析用户在当前会话中的搜索记录,判断用户的搜索目的,投放和用户 目的相关的广告。
- 个性化展示广告:我们经常在很多网站看到大量展示广告(就是那些大的横幅图片),它们是根据用户的兴趣,对不同用户投放不同的展示广告。
- 推荐系统评测
在评测一个推荐算法时,需要同时考虑三方的利益,一个好的推荐系统是能够令三方共赢的系统。
在推荐系统中,主要有3种评测推荐效果的实验方法,即离线实验(offline experiment)、用户调查(user study)和在线实验(online experiment)。
离线实验
- 好处是不需要真实用户参与,可以直接快速地计算出来,从而方便、快速地测试大量不同的算法。
- 缺点是无法获得很多商业上关注的指标,如点击率、转化率等,而找到和商业指标非常相关的离线指标也是很困难的事情。
用户调查
- 优点是可以获得很多体现用户主观感受的指标,相对在线实验风险很低,出现错误后很容易弥补。
- 缺点是招募测试用户代价较大,很难组织大规模的测试用户,因此会使测试结果的统计意义不足。此外,在很多时候设计双盲实验非常困难,而且用户 在测试环境下的行为和真实环境下的行为可能有所不同,因而在测试环境下收集的测试指标可能在真实环境下无法重现
在线测试
- 优点是可以公平获得不同算法实际在线时的性能指标,包括商业上关注的指标。
- 缺点主要是周期比较长,必须进行长期的实验才能得到可靠的结果