个性化推荐技术的十大挑战

个性化推荐经常被人误解为细分市场和精准营销这两个概念。虽然它们之间有一些联系,但实质上却相差甚远。本文不仅清楚地讲述了个性化推荐技术,更列出了其所面临的十大挑战。

很多人都知道个性化推荐,却有不少认识上的误区。有的人认为个性化推荐就是细分市场和精准营销,但实际上细分市场和精准营销往往是把潜在的用户分成 很多群体,这与基于全体的统计相比固然有了长足的进步,但距离“为每一个用户量身定做的信息服务”还有很大的差距,只有做个性化才能实现亚马逊CEO Jeff Bezos的梦想“如果我有100万个用户,我就为他们做100万个亚马逊网站”。

所以,市场细分只是初级阶段,而个性化推荐则是市场细分的极致。还有人 认为个性化推荐等同于协同过滤,这可能是因为协同过滤出现得比较早并且比较容易被大众理解,但实际上协同过滤只不过是众多个性化推荐技术中的一个早期成 员,远不能代表个性化推荐技术。

随着个性化的商业应用延展到用户生活信息流的方方面面,个性化推荐技术也在日新月异不断发展,类似于协同过 滤这样的早期技术已经不能满足新环境下的要求,无法解决新出现的问题。令人兴奋的是,过去十年中,我们见证了无数顶尖级专家与学者投身于推荐方法与技术的 创新中。今天,还些人认为个性化推荐技术的研究已经进入了很成熟阶段,没有什么特别激动人心的问题和成果。事实却恰恰相反,现在个性化推荐技术面临很大的 挑战,我们之前只看到了个性化推荐技术难题这座冰山所露出的一角。

本文将列出个性化推荐技术所面临的十个挑战(仅代表个人观点),其中有一些是很多年前就认识到但一直没有得到解决的长期问题。事实上,有些挑战是不可能完全解决的,只能提出改良方案,还有一些是在最近研究中提出来的焦点问题。

数据稀疏性问题

现在推荐系统规模越来越大,用户和商品(包括音乐、网页、文献等 物品)数目动辄百千万计,而且用户之间选择的重叠非常少。如果以用户和商品之间已有的选择关系占所有可能存在的选择关系的比例来衡量系统的稀疏性,那么我 们平时研究最多的MovieLens数据集的稀疏度是4.5%,Netflix是1.2%,Bibsonomy是0.35%,Delicious是 0.046%,这些其实是非常密的数据。

想想淘宝上号称有8亿商品,平均而言一个用户能浏览800件吗?估计不能,因此稀疏度应该在百万分 之一或以下的量级。数据非常稀疏,使得绝大部分基于关联分析的算法(如协同过滤)效果都不好。本质上,这个问题是无法完全克服的。解决这个问题的办法很 多,例如可以通过扩散的算法,从原来的一阶关联(两个用户有多少相似打分或者共同购买的商品)到二阶甚至更高阶的关联(假设关联性或者说相似性本身是可以 传播的),也可以添加一些默认的打分,从而提高相似性的分辨率。一般而言,数据规模越大就越稀疏。现在认为能够处理稀疏数据的算法(如扩散、迭代寻优、转 移相似性等)更有价值。

冷启动问题

因为新用户罕有可以利用的行为信息,所以很难给出精确的推荐。反过来,由于新商品被选择次数很少,也难以找到合适的办法推荐给用户。一种办法是利用文本信息进行辅助推荐,或者通过注册和询问得知一些用户的属性信息,比如年龄、居住城市、受教育程度、性别和职业等。

最 近广泛应用的标签系统提供了解决冷启动问题的可能方案,因为标签既可以看作是商品内容的萃取,同时也反映了用户的个性化喜好。以《桃姐》这部电影为例,有 的人打的标签是“伦理”,有的人打的标签是“刘德华”,两个人看的电影一样,但兴趣点可能不尽相同。当然,利用标签也只能是提高有少量行为的用户的推荐准 确性,对于纯粹的冷启动用户,没有任何帮助,因为这些人还没有打过任何标签。

有趣的是,最近的研究显示,新用户更容易选择特别流行的商品。无论如何,这都是一个好消息,说明使用热销榜也能获得不错的结果。冷启动问题还可以通过多维数据的交叉推荐部分解决,其精确度和多样性又远胜于热销榜,这一点后面会进一步介绍。

大数据处理与增量计算问题

因 为数据很稀疏,大部分数据都拥有百千万计的用户和商品,所以如何快速高效地处理这些数据成为迫在眉睫的问题。而算法时间和空间上的复杂性,尤其是前者,得 到了空前重视。一个高效的算法,要么复杂性很低,要么能够很好地并行化,要么两者兼具。局部扩散算法在这两个方面都具有明显优势。

另一种解 决方法是设计增量算法。也就是说,当产生新用户、新商品和新的连接关系时,算法的结果不需要在整个数据集上重新进行计算,而只需考虑所增加节点和连边局部 的信息,对原有的结果进行微扰,快速得到新结果。一般而言,随着加入的信息量的增多,这种算法的误差会积累变大,最终每过一段时间还是需要利用全局数据重 新进行计算。

一个特别困难的挑战是如何设计一种能够保证其误差不会累积的算法,也就是说其结果与利用全部数据重新计算的结果之间的差异不会单调上升。我们把这种算法叫做自适应算法,它是增量算法的一个加强版本,其设计要求和难度更高。

现在业界已经在应用增量算法。例如,百分点科技推荐引擎中的若干算法都采用了增量技术,使得用户每次浏览收藏或者购买商品后其推荐列表立刻得到更新。当然,只是该引擎的部分算法实现了增量技术,没有达到所有算法都能够自适应学习的程度,还有很长的路要走。