下一代个性化推荐系统

标签: 云计算 算法 | 发表时间:2012-12-24 20:48 | 作者:baiyuzhong
出处:http://www.programmer.com.cn

文/王守崑

本文结合技术及社会需求发展的大背景,讲述了当前推荐系统的价值及所面临的挑战,并指出了下一代个性化推荐系统的设计思路及需要注意的问题。

作为个性化推荐系统核心的协同过滤(Collabora-tive Filtering)算法,是Goldberg等人在1992年的一篇学术论文中最早提出的。他们在这篇文章中提出一种方法,在一个新闻组中,根据 用户下载的新闻计算他们之间在口味上的相似程度,并利用这种相似程度为他们进一步推荐相关的新闻。这也是最早期的个性化推荐系统的雏形。

20世纪90年代中后期,随着电子商务的兴起,个性化推荐系统迎来了第一波高潮,几乎每个大型电子商务网站都把个性化推荐作为重要的营销手段之一。更有文献表 明早期Amazon的35%销售增量都来自它的推荐系统。Amazon的几位科学家和工程师在2000年发表的一篇关于“基于条目的协同过滤”的论文也成为了个性化推荐领域最基础的文献之一,是学术研究与工业实践相结合的典范。之后越来越多的研究者和企业界的工程师投入到了个性化推荐系统的实践中。

21世纪,互联网领域两个根本性的变化使得个性化推荐系统需要面临新的挑战。

第一个变化是随着Web 2.0的兴起,个人用户逐渐成为网站的中心。用户乐于在网络上建立和分享他们的社会关系和兴趣爱好,展示个性。网站的创立者也更重视对用户的基础数据的收 集和分析,从而全方位地满足用户的需求。与传统的以信息为中心的Web 1.0的组织方式相比,Web 2.0强调以用户为中心,对个性化推荐系统的发展起到了极大的促进作用。因此,几乎每个具有一定规模的Web 2.0网站都会建立用户模型,甚至还涌现出不少以个性化推荐为核心的服务。这使得个性化推荐系统的研究和实践获得了非常大的进展。

第二个变化是互联网越来越深入我们的真实生活。与早期的互联网用户不同,如今人们越来越习惯在网络上使用真实身份,维持真实的社会关系,分享真实的生活轨迹。互联网不再是虚拟世界的代表,而是真实世界的一部分。这使得网站的创立者能够更准确地掌握用户的各种信息。而用户对个人隐私的关注也使得工程师在使用这些信息时不得不更加慎重。

对个性化推荐系统来说,这些变化是一把双刃剑:人们提供更多的真实信息有利于提高推荐精度;而同时人们对隐私和信息流动 方向的关注为推荐系统如何使用这些信息设置了更高的门槛。个性化推荐系统不但要考虑推荐的精度,还要考虑在社会网络中信息的来源和用户对这些信息微妙的情 感因素,而这些因素在算法中往往是难以建模和衡量的。

对个性化推荐系统从业者来说,这既是巨大的市场机会,也是前所未有的挑战。如何抓住机会、应对挑战呢?本文试图从当前推荐系统存在的一些问题出发,逐步阐述对下一代个性化推荐系统的初步构想和建议,同时也提出一些值得关注的问题,供本领域的从业者考虑和探讨。

当前推荐系统面临的挑战

根据出发思想的不同,个性化推荐系统可大致分为基于协同过滤和基于内容两种。协同过滤的基本思想前面已有所探讨;基于内容的推荐系统的出发点则更直接,即通 过对被推荐条目的内容进行建模和分析,从而为相关用户推荐出适合的内容。事实上,早期互联网中的人工分类目录就可以看作基于内容进行推荐的雏形。从实际应 用的角度,可更进一步把这两种思想归纳为黑盒推荐和白盒推荐两种模式。

黑盒推荐不需要考虑推荐的具体内容,而是利用机器学习、数据挖掘等统计方式和人工智能的方法对数据进行分析,建立相关模型和优化目标,在一定约束条件下求得最优解或局部最优解作为向用户推荐的内容。

白盒推荐则是深入到被推荐的条目内容之中,依据对条目的先验知识和对用户的理解进行相关匹配的推荐,推荐的过程中也会用到机器学习和数据挖掘的算法,但先验知识的来源往往是专家领域的知识。

这两种模式各有优劣。在实践中,通常会融合两种模式的优势建立所谓混合模型以求得更好的推荐效果。从实际应用来看,考虑到可扩展性及系统建立的成本,大型商用的个性化推荐系统大多以黑盒推荐为基础,我们先来谈谈黑盒推荐的优劣。

黑盒推荐的核心是机器学习和数据挖掘算法,有着坚实的数学基础和明确的优化指标与方法,所以推荐质量有基本的保证。搭建系统既不需要领域内的知识,也不需要 过多的人工干预,同时模型的鲁棒性比较好,应对用户和条目的增长不需要付出更多额外的努力。这些优势使得黑盒推荐获得了非常广泛的应用。但随着前面提到的 互联网领域的两个根本性变化的影响,黑盒推荐的弊端也越来越多地显现出来(如图1所示)。

图1 黑盒推荐的弊端

对于以协同过滤为基础的推荐算法的弊端,文献中讨论比较多的是冷启动问题,即数据稀少的情况下难以获得高质量的推荐。这是黑盒推荐在系统启动时面临的最大挑 战。事实上,即便有了启动数据,在数据稀疏的情况下黑盒系统偶尔也会放大噪声,给出低质量的推荐。有人甚至专门为此造了一个单词,叫做 “freakommendation”⁽³⁾,用来指代那些稀奇古怪的推荐。

例如在某著名电子商务网站上,每年母亲节时都有鲜花促销,十几 岁的青少年在为母亲购买鲜花之余,顺便会为自己买上几部恐怖片。系统中的鲜花和恐怖片便建立了相似关联,在有人购买鲜花时系统便会推荐恐怖片,反之亦然。 这种推荐自然会引起很多用户的不适,虽然从统计意义的优化指标(如RMSE或者MAE)来看系统达到了最优,但对于某些主观性的因素,比如用户对系统推荐 的信任和心理感受,却有着相当负面的影响。这些影响可能很难用具体的指标和数字来衡量,但它们对一个产品的成败来说,往往是长期的、根本性的,甚至是决定 性的。

与冷启动相反,在实践中,还可以看到另一种较少被文献所提及的现象,称为“宏观与微观的悖论”。当从宏观的系统角度转向微观的用户角 度时,我们会惊奇地发现,随着数据的增长,整个系统在各项量化的推荐指标上的表现会越来越好,而对那些贡献了更多数据和内容的重度用户,却越来越倾向于给 出平庸和保守的推荐。

这个悖论的尴尬之处在于,几乎每个个性化推荐系统都宣称用户所获得的推荐质量会随着数据的增加和用户的积累而显著提 高,但实际所看到的却是整体用户推荐质量的改善并不意味着每一个用户群体推荐质量的改善。黑盒推荐的基础是基于统计的机器学习算法,为了在欠拟合 (Under-fitting)和过拟合(Over-fitting)之间求平衡,总有将结果拉回平均的倾向。

这就意味着,随着用户贡献数据的增多,用户的多个兴趣维度往往会被当做白噪声过滤掉。这种效应对推荐系统的影响也是根本性的。对任何产品来说,留不住活跃的用户都是致命的缺陷。

图1描述了黑盒推荐模式的推荐质量和用户收藏之间的关系,可以比较清晰地划分为三个阶段。

  • 第一阶段,用户收藏较少,系统在宏观和微观层面都面临冷启动问题,此时的推荐质量低于用户的预期。这是用户在使用个性化推荐系统时的第一个门槛,会把相当一部分用户阻挡在产品外。
  • 第二阶段,随着用户收藏的增长,系统对用户兴趣的建模更加准确,推荐质量也获得显著提升,这是推荐系统和用户之间的蜜月期,此时的推荐往往会给用户带来惊喜,能够有效地帮助用户发掘他们未知但感兴趣的领域。
  • 第三阶段,也就是前面提到的宏观和微观的悖论所产生的阶段。此时,虽然从各项指标来看推荐质量还在继续改善,但用户所切身感受到的却是推荐系统能给他们提供的帮助越来越少,推荐内容趋于平庸,缺乏眼前一亮的惊喜。

针对黑盒推荐的弊端,业内的研究者和工程师提出了很多补救的方案。例如结合基于内容的白盒推荐方法来解决冷启动问题从而提高推荐的惊喜度、通过 Transfer Learning的方法利用其他领域的结果和训练的模型获得启动数据,以及利用矩阵分解(Matrix Factorization)的方法改善数据稀疏性的问题。这些方法都收到了不错的效果,值得实践领域的从业者重视。

在前面分析的基础之上,我们尝试提出一种框架性的改进,在解决黑盒推荐弊端的同时探索下一代个性化推荐系统的雏形。

下一代个性化推荐系统

目前,黑盒推荐之所以会面临种种挑战,一个根本问题是推荐系统过分关注短期的优化目标或产品目标,忽视了产品的用户价值和增长的源动力。其表现就是没有把用 户在领域内的动态成长模型纳入到算法框架之中。好的个性化推荐算法,应该是始于用户、终于用户的,并且是一个健康的、动态的、具有自我生长和自我调节能力 的系统。用户是系统的一部分,与系统共同促进和成长。

依据这样的思想,可以把推荐系统分成三个层次(如图2所示)。

 

图2 下一代个性化推荐系统的三个层次

第一层是猜(Prediction),就是提供一个静态的数据集,拿掉其中的一部分,想办法利用剩下的数据把拿掉的部分恢复起来,使得恢复误差做到最小。这部分工 作可以认为是个数学问题,能够形式化并给出严格的定义,这也是目前在学术界和工业界研究得最透彻、解决得最好的一部分。在前几年的Netflix竞赛中, 层出不穷的新算法和持续的推荐精度的改进也让我们看到了这里面隐藏的巨大潜力。这部分工作也是建立个性化推荐系统的第一步,其意义是从数据形成信息。

第二层是预测(Forecasting),把给定的数据集看成一个自洽的系统,预测这个系统下一步的变化。用上一个层次的方法也可以解决这一层次的问题,但 其中有一个重要的区别,即在时间维度上预测要解决的问题在系统之外,而猜要解决的在系统之内。这使得预测比猜在优化指标的设置上要复杂一些。

同时,因为时间方向的不同,所以在系统中要考虑人的心理和社会环境因素起到的作用。这两个因素的作用使预测的系统比上一个层次的复杂度高了很多,原来的方法 可行,但未必有效。解决预测的问题,仅从给定的数据出发是不够的,需要整合其他来源的数据,可能需要先验知识,甚至需要一点用户的认知和心理模型。目前, 商用的个性化推荐系统都在或多或少地解决这个问题。这部分工作是建立一个真正有用的个性化推荐系统,其意义是从信息形成知识。

第三层是推荐(Recommendation),这才是真正意义的个性化推荐。这个系统应该具备所推荐领域的知识,同时还要认识它的每一个用户。这个系统能够自我启 动,同时能够生长和进化;这个系统是有记忆的,同时还能够学习。这个系统没有严格的定义,同时它的基本技术架构可能也不会仅局限于目前流行的个性化推荐系 统的各种框架、技术和算法之中。随着计算能力的飞速发展和数据的极大丰富,当前我们有理由向着那些更高的目标迈进。这部分工作会给用户带来全新的、突破性的体验,成为用户的良师益友,其意义是从知识形成系统。

几个值得关注的问题

要想完全描绘出下一代个性化推荐系统的蓝图还有很长的路要走。下面是几个值得关注的问题。

  • 不同的数据集如何影响推荐算法的表现。用户对于不同的条目有不同的行为,以图书、电影、音乐、新闻、图片、视频、服装等为中心的数据集在稀疏性、时效性、关联程度、反馈快慢等各方面有着不同的特性,如何根据这些特性挑选合适的算法对实践会有很强的指导意义。
  • 对不同的领域,用户期待的推荐形式和对推荐质量的预期各不同。如何把这些相关知识融入到算法之中,再反映到优化指标上,使推荐系统能跟用户一起成长?
  • 推荐系统的优化指标,如何与产品的关键指标相结合,使算法的优化和系统调整更加有的放矢,成为产品的一部分?
  • 对大规模实时的个性化推荐系统而言,如何有效地分配离线与在线计算任务,以及寻找可接受的近似算法,从而求得消耗计算资源和优化在线响应速度之间的平衡?
  • 针对相似性指标的研究。在推荐系统中,如何依据不同的数据集特性和用户特征选择合适的相似性指标?
  • 个性化推荐系统对用户行为的影响。用户的行为是个性化推荐系统的基础,反过来,个性化推荐系统推荐的内容也会对用户的行为产生影响。如何评估这些因素对系统和产品的进一步影响,也是个有意思的话题。

从技术角度来看,以上所提到的这些问题基本都有解决方案。但从其他角度来看,则未必如此。一个关键的角度是:个性化推荐到底是一项技术,一个功能,还是一个产品?这决定了个性化推荐系统未来的发展方向和影响力。

未来的互联网(包括移动互联网),不是平台就是平台的一部分。Amazon是电子商务及其相关基础设施的平台,Google是自由开放的信息平 台,Apple是相对封闭的平台,Facebook是社会关系和私有信息的平台。个性化推荐系统未必会成为平台,但在未来的互联网时代,它会是各个平台核心竞争力的一部分。

作者王守崑,豆瓣网首席科学家兼副总裁,负责算法部门和音乐产品线。目前专注于互联网信息架构与算法、Web2.0网络模式创新、数字音乐、推荐系统与在线收听等应用。

本文选自《程序员》杂志2012年12期,未经允许不得转载。如需转载请联系 [email protected]

《程序员》2012年杂志订阅送好礼活动火热进行中

相关 [下一代 个性 推荐系统] 推荐:

下一代个性化推荐系统

- - 技术改变世界 创新驱动中国 - 《程序员》官网
本文结合技术及社会需求发展的大背景,讲述了当前推荐系统的价值及所面临的挑战,并指出了下一代个性化推荐系统的设计思路及需要注意的问题. 作为个性化推荐系统核心的协同过滤(Collabora-tive Filtering)算法,是Goldberg等人在1992年的一篇学术论文中最早提出的. 他们在这篇文章中提出一种方法,在一个新闻组中,根据 用户下载的新闻计算他们之间在口味上的相似程度,并利用这种相似程度为他们进一步推荐相关的新闻.

个性化推荐系统综述

- Tony - 所有文章 - UCD大社区
上个月写过一篇产品推荐的文章,详情请见《我所了解的产品推荐》,内容很泛,多为工作心得. 本周读了几篇相关的论文,收获颇多,分享点干货. 以下内容摘自《个性化推荐系统的研究进展》,该文发表于2009年1月的《自然科学进展》专题评述,作者是刘建国、周涛、汪秉宏. 我略去了具体的算法和许多公式,重点看原理、思路和比较.

Netflix 公布个性化和推荐系统架构

- - 互联网分析
Netflix的推荐和个性化功能向来精准,前不久,他们公布了自己在这方面的系统架构. 3月27日,Netflix的工程师 Xavier Amatrain和 Justin Basilico在官方博客 发布文章,介绍了自己的个性化和推荐系统架构. 要开发出这样的一个软件架构,能够处理海量现有数据、响应用户交互,还要易于尝试新的推荐方法,这可不一点都不容易.

饭饭:网易有道全新个性化餐馆推荐系统

- - 津津乐道 有道官方博客
先做一个小调查,你有没有遇到过下面这些情况. 吃腻了身边的餐馆,到了饭点却经常不知道该去哪里吃饭;掏出手机,发现各种应用里推荐的餐馆翻来覆去总是那几家;而当你出差、旅游、逛街到了陌生的地方时,又常常找不到适合自己口味的餐馆. 如果你的答案是yes的话,你可能会选择随便找个餐馆凑合一下,或是打开一个美食类的网站或手机应用,看看上面的餐馆排行.

腾讯:仅24%用户认为个性化推荐系统“靠谱”

- - 199IT互联网数据中心
盘点科技圈里的时髦词汇,必然少不了一个词:个性化推荐. 借助个性化推荐技术,互联网产品获取或积累用户的兴趣喜好数据后,可以直接为用户提供每个人感兴趣的内容,以此提升产品的内容吸引力. 想要在产品里添加个性化推荐功能已经不是一件难事,事情的难点在于推荐的内容是否准确. 为了解目前用户对该类功能的反馈,企鹅智酷推出了一项调查,以下就是调查结果:.

[原]内容分发平台个性化推荐系统经验简单总结

- - 分布式架构、大数据、机器学习、搜索、推荐、广告
推荐在电商和互联网应用中已经应用的非常广泛,相比于根据query进行主动的搜索,推荐是更加被动的由系统自动推出商品给用户. 搜索的意图比较明显,直接由query给出,而推荐需要计算猜测用户的意图,根据用户历史数据和当前行为,基于各种模型推荐合适的商品,提升用户体验,提高转化率. 不过近些年来,搜索和推荐在底层模型和技术方面越来越趋于融合,利用机器学习的方式来改进搜索和推荐的质量,像搜索排序LTR等等.

Min-Hash和推荐系统

- - xlvector - Recommender System
前几年看Google News Recommendation的那篇Paper,对里面提到的MinHash的算法基本没有注意,因为之前的习惯都是只注意论文的模型那块,至于怎么优化模型一般都只是扫一眼. 不过最近看了大量的Google Paper,发现Google在实现一个算法方面确实有很多独到之处. 其实,Min-Hash是LSH(Locality Sensitive Hash)的一种,我之前对LSH的了解仅仅限于知道它能把两个相似的东西Hash成两个汉明距离接近的2进制数.

推荐系统实战

- - 博客园_首页
推荐算法:基于特征的推荐算法. 推荐算法准确度度量公式:. 其中,R(u)表示对用户推荐的N个物品,T(u)表示用户u在测试集上喜欢的物品集合. 集合相似度度量公式(N维向量的距离度量公式):. 其中,N(u)表示用户u有过正反馈的物品集合. 其中,S(u,k)表示和用户u兴趣最接近的K个用户集合;N(i)表示对物品i有过正反馈的用户集合;w(u,v)表示用户u和用户v的兴趣相似度;r(v,i)表示用户v对物品i的兴趣.

推荐系统杂谈

- - 后端技术杂谈 | 飒然Hang
推荐系统是近些年非常火的技术,不管是电商类软件还是新闻类app,都号称有精准的推荐系统能给你推送你最感兴趣的内容. 现象级的资讯类app“今日头条”就得益于此成为了势头非常猛的一款产品. 本文就针对推荐系统讲述一些相关概念和实践经验. 首先需要明确的就是推荐系统的目标,一般来说不外乎以下几个:. 用户满意性:首当其冲的,推荐系统主要就是为了满足用户的需求,因此准确率是评判一个推荐系统好坏的最关键指标.

推荐系统开源工具 – SVDFeature

- Roger - Resys China
SVDFeature是我们(上海交大Apex实验室)在参加KDDCUP 2011期间开发的. 通过这个工具,我们和港科大(HKUST)的联合小组InnerPeace在KDDCUP 2011中获得Track 1第三名,并创造单模型最好成绩. 在此分享给大家,并希望和大家有更多的交流. (1)基于feature的可扩展性 —— SVDFeature实现了我们的基础模型feature-based matrix factorization.