《推荐系统实践》_推荐系统的浅解

   说到推荐,大家都不陌生,我们去超市、去商场会有工作人员给我推荐各种商品,去吃饭店员会推荐各种菜品,各种广告(电视广告、户外广告、网络广告等)也会为各种商品作大肆宣传,包括我们周围身边的朋友在用到认为好的产品的时候也会向我们推荐,总之,推荐无处不在、无时不在,它是我们生活常态的一部分,然而,这些推荐都只是某些单一产品的单一推荐,产品与产品之间的关联性不强,好些时候对我们来说并未能激起我们很大的兴趣和关注,在需要的时候寻找起来又不是那么的方便。

   随着社会的发展,商品愈加的丰富,人们的选择愈加的困难,很多时候人们也进入了“选择困难症”状态;并且随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过载(information overload)的时代 。在这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战:对于信息消费者,从大量信息中找到自己感兴趣的信息是一件非常困难的事情;对于信息生产者,让自己生产的信息脱颖而出,受到广大用户的关注,也是一件非常困难的事情。这时候,推荐系统应用而生,它是解决这一矛盾的重要工具,它的任务是联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。

   如今推荐系统在互联网的产品和应用中被广泛采用,包括大家经常使用的相关搜索、话题推荐、电子商务的各种产品推荐、社交网络上的交友推荐等。但是,至今还没有一本书从理论上对它进行系统地分析和论述。《推荐系统实践》这本书恰恰弥补了这个空白。该书总结了当今互联网主要领域、主要公司、各种和推荐有关的产品和服务,包括:亚马逊的个性化产品推荐、Netflix的视频和DVD推荐、Pandora的音乐推荐、Facebook的好友推荐、Google Reader的个性化阅读等。阐述了和推荐系统有关的理论基础和评价推荐系统优劣的各种标准与方法,比如覆盖率、满意度、AB测试等。由于这些评估很大程度上取决于对用户行为的分析,因此本书也介绍了用户行为分析方法,并且给出了计算机实现的算法。

   本书一共8章,按照书的内容我认为可以分为三部分,第一部分(第1章)主要介绍推荐系统的概念,并回答什么是好的推荐系统;第二部分(第2-6章)如何解决推荐系统的冷启动问题,并且如何从用户行为信息数据入手利用设计算法去对用户进行做好的、恰当的推荐;第三部分(第7-8章)是推荐系统实例和评分预测问题的补充。

一、推荐系统的概念及好的推荐系统标准。

  推荐系统就是自动联系用户和物品的一种工具,它能够在信息过载的环境中帮助用户发现令他们感兴趣的信息,也能将信息推送给对它们感兴趣的用户。推荐系统通过发掘用户的行为,找到用户的个性化需求,从而将长尾商品准确地推荐给需要它的用户,帮助用户发现那些他们感兴趣但很难发现的商品。

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

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

   推荐系统的计算方法有:离线试验、用户调查、在线试验;评测指标有:用户满意度、预测准确度(包含评分预测、TopN推荐)、覆盖率、多样性、新颖性、惊喜度、信任度、实时性、健壮性、商业目标等。

二、如何解决推荐系统的冷启动问题,并且如何从用户行为信息数据入手利用设计算法去对用户进行做好的、恰当的推荐。

   为了让推荐结果符合用户口味,我们需要深入了解用户。如何才能了解一个人呢?《论语·公冶长》中说“听其言,观其行”,也就是说可以通过用户留下的文字和行为了解用户兴趣和需求。实现个性化推荐的最理想情况是用户能在注册的时候主动告诉我们他喜欢什么,但这种方法有3个缺点:首先,现在的自然语言理解技术很难理解用户用来描述兴趣的自然语言;其次,用户的兴趣是不断变化的,但用户不会不停地更新兴趣描述;最后,很多时候用户并不知道自己喜欢什么,或者很难用语言描述自己喜欢什么。因此,我们需要通过算法自动发掘用户行为数据,从用户的行为中推测出用户的兴趣,从而给用户推荐满足他们兴趣的物品。

   用户行为数据的分析是很多优秀产品设计的基础,个性化推荐算法通过对用户行为的深度分析,可以给用户带来更好的网站使用体验。然而用户行为数据中蕴涵着很多不是那么显而易见的规律,而个性化推荐算法的任务就是通过计算机去发现这些规律,从而为产品的设计提供指导,提高用户体验。互联网中的用户行为有很多种,比如浏览网页、购买商品、评论、评分等。要用一个统一的方式表示所有这些行为是比较困难的,本书认为一个用户行为主要由6部分组成,即产生行为的用户和行为的对象、行为的种类、产生行为的上下文、行为的内容和权重。

   基于用户行为分析的推荐算法是个性化推荐系统的重要算法,学术界一般将这种类型的算法称为协同过滤算法。顾名思义,协同过滤就是指用户可以齐心协力,通过不断地和网站互动,使自己的推荐列表能够不断过滤掉自己不感兴趣的物品,从而越来越满足自己的需求。在协同过滤算法中,最著名的、在业界得到最广泛应用的算法是基于邻域的方法,而基于邻域的方法主要包含下面两种算法:基于用户的协同过滤算法(UserCF),这种算法给用户推荐和他兴趣相似的其他用户喜欢的物品;基于物品的协同过滤算法(ItemCF),这种算法给用户推荐和他之前喜欢的物品相似的物品。

   基于用户的协同过滤算法主要包括两个步骤:1)、找到和目标用户兴趣相似的用户集合;2)、找到和目标用户兴趣相似的用户集合。基于物品的协同过滤算法也同样的主要分为两步:1)、计算物品之间的相似度;2)、根据物品的相似度和用户的历史行为给用户生成推荐列表。UserCF给用户推荐那些和他有共同兴趣爱好的用户喜欢的物品,而ItemCF给用户推荐那些和他之前喜欢的物品类似的物品。从这个算法的原理可以看到,UserCF的推荐结果着重于反映和用户兴趣相似的小群体的热点,而ItemCF的推荐结果着重于维系用户的历史兴趣。换句话说,UserCF的推荐更社会化,反映了用户所在的小型兴趣群体中物品的热门程度,而ItemCF的推荐更加个性化,反映了用户自己的兴趣传承,并且ItemCF的一个优势就是可以提供推荐解释,即利用用户历史上喜欢的物品为现在的推荐结果进行解释。

   荐系统需要根据用户的历史行为和兴趣预测用户未来的行为和兴趣,因此大量的用户行为数据就成为推荐系统的重要组成部分和先决条件。对于很多像BAT、亚马逊、京东、当当这样的网站来说,这或许不是个问题,因为它们目前已经积累了大量的用户数据,但是对于很多做纯粹推荐系统的网站,或者很多在开始阶段就希望有个性化推荐应用的网站来说,如何在没有大量用户数据的情况下设计个性化推荐系统并且让用户对推荐结果满意从而愿意使用推荐系统,就是冷启动的问题。

  冷启动问题(cold start)主要分3类。1、用户冷启动,用户冷启动主要解决如何给新用户做个性化推荐的问题。当新用户到来时,我们没有他的行为数据,所以也无法根据他的历史行为预测其兴趣,从而无法借此给他做个性化推荐。2、物品冷启动,物品冷启动主要解决如何将新的物品推荐给可能对它感兴趣的用户这一问题。3、系统冷启动,系统冷启动主要解决如何在一个新开发的网站上(还没有用户,也没有用户行为,只有一些物品的信息)设计个性化推荐系统,从而在网站刚发布时就让用户体验到个性化推荐服务这一问题。对于这3种不同的冷启动问题,有不同的解决方案。一般来说,可以参考如下解决方案。1)、提供非个性化的推荐,非个性化推荐的最简单例子就是热门排行榜,我们可以给用户推荐热门排行榜,然后等到用户数据收集到一定的时候,再切换为个性化推荐。 2)、利用用户注册时提供的年龄、性别等数据做粗粒度的个性化。3)、 利用用户的社交网络账号登录(需要用户授权),导入用户在社交网站上的好友信息,然后给用户推荐其好友喜欢的物品。4)、要求用户在登录时对一些物品进行反馈,收集用户对这些物品的兴趣信息,然后给用户推荐那些和这些物品相似的物品。5)、对于新加入的物品,可以利用内容信息,将它们推荐给喜欢过和它们相似的物品的用户。6)、在系统冷启动时,可以引入专家的知识,通过一定的高效方式迅速建立起物品的相关度表。

   如前面所述,本书认为一个用户行为主要由6部分组成,即产生行为的用户和行为的对象、行为的种类、产生行为的上下文、行为的内容和权重。在做推荐系统计算时,主要是利用用户的标签数据(主要是UGC标签)、上下文信息(时间、地点的上下文信息)和社交网络数据(朋友圈、社交圈、兴趣圈等),在书中,作者对这三者做了详细的介绍以及基于这些数据的推荐算法,由于总体比较深入和专业,算法也比较多。在此就不做详细的介绍。

三、推荐系统实例和评分预测问题的补充。

   推荐系统实例中主要补充了三个架构:外围架构、推荐系统架构、推荐引擎的架构。

外围架构如下图:

   从图中可以看出,推荐系统要发挥强大的作用,除了推荐系统本身,主要还依赖于两个条件——界面展示(UI)和用户行为数据。

推荐系统架构如下图:

   从图中可看出,推荐系统的核心任务被拆解成两部分,一个是如何为给定用户生成特征,另一个是如何根据特征找到物品。

推荐引擎的架构如下图:

  推荐系统需要由多个推荐引擎组成,每个推荐引擎负责一类特征和一种任务,而推荐系统的任务只是将推荐引擎的结果按照一定权重或者优先级合并、排序然后返回,它使用一种或几种用户特征,按照一种推荐策略生成一种类型物品的推荐列表。推荐引擎的架构中还包含了几个模块和算法,就不一一介绍啦。

   评分预测问题的补充:之前都是在讨论TopN推荐,即给定一个用户,如何给他生成一个长度为N的推荐列表,使该推荐列表能够尽量满足用户的兴趣和需求。本书之所以如此重视TopN推荐,是因为它非常接近于满足实际系统的需求,实际系统绝大多数情况下就是给用户提供一个包括N个物品的个性化推荐列表。但是,很多从事推荐系统研究的同学最早接触的却是评分预测问题。

   评分预测问题基本都通过离线实验进行研究。在给定用户评分数据集后,研究人员会将数据集按照一定的方式分成训练集和测试集,然后根据测试集建立用户兴趣模型来预测测试集中的用户评分。评分预测算法也有多种:平均值、基于领域的方法、隐语义模型与矩阵分解模型、加入时间信息、模型融合等,需要在实践中去应用合理的模型和算法。

四、总结。

   本书着重介绍了推荐系统的各种算法设计和系统设计的方法,并且利用一些公开的数据集离线评测了各种算法。对于无法通过离线评测知道算法性能的情况,本书引用了很多著名的用户调查实验来比较不同的算法。

   但是由于不同网站中的用户行为有很大的差异,所以推荐系统很难有放之四海而皆准的结论。因此本书非常鼓励读者在自己的数据集上重复本书的实验,再得到适合自己具体情况的结论。

   由于我自身缺乏一定的技术基础,因此在阅读本书并且在做概述的时候更多的是从概念性的内容出发,对算法和代码的介绍及评价基本上没有涉及到。总体而言本书还可以,技术性描述比较强,就是涉及代码的部分好多都没了。更适合有数据挖掘基础的人看,比较专业,不过概念的地方也描述的蛮清楚的,没有基础的读者(如我这样的)也能从中窥得一斑,学到一些关于推荐系统的理念和方法,了解其是如何去应用的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容