4.6.2 大数据背景下的个性化推荐系统

我们回到一开始的话题,总有一天你肯定会为每天要打印哪些3D模型而犯愁,因为网上的模型实在是太多了。答案是:个性化推荐系统!基于大数据(比如你以往所有的打印记录、你好友圈的所有打印记录,还有网上所有的3D模型),推荐系统对你的个性偏好进行深度分析(结合4.6.3节将要介绍的深度学习算法)确认,发现你偏好于打印可爱类型的美少女模型。而且通过对模型形状特点(参见第6章的6.2节)的无监督特征学习(参见4.6.3节)发现:你只喜欢拥有大酒糟鼻子的脸型(您的一个特殊癖好)。于是,推荐系统就把那些近期刚刚上架不久的热门美少女模型推荐给你,甚至还帮你自动分类(参见第6章的6.4.1节),设计成多个主题系列,让你摇身变成了一位有高端品位的“卡哇伊大酒糟鼻子美少女3D模型”收藏专家。

言归正传,在大数据的社会背景下,所谓个性化推荐就是根据用户的兴趣特点和购买行为,向用户推荐感兴趣的信息和商品。在当前Web 2.0时代,随着电子商务规模的不断扩大,商品数量和种类快速增长,顾客需要花费大量的时间才能找到自己想买的商品,出现了所谓的信息超载Information Overload)问题。为了解决这个难题,个性化Personalized)推荐系统(Recommender System)应运而生。个性化推荐系统通过分析用户的行为,发现用户的个性化需求、兴趣等,然后将用户感兴趣的信息、产品推荐给用户。推荐系统主要依赖于数据挖掘(Data Mining)和机器学习(Machine Learning)的算法。

通常,以Google、百度为代表的搜索引擎可以让用户通过输入关键词精确找到自己需要的相关信息。但是,如果用户无法想到准确描述自己需求的关键词,此时搜索引擎就无能为力了。和搜索引擎不同,推荐系统不需要用户提供明确的需求,而是通过分析用户的历史行为来对用户的兴趣进行建模,从而主动给用户推荐可满足他们兴趣和需求的信息。因此,搜索引擎和推荐系统对用户来说是两个互补的工具,前者需要用户“主动出击”,后者则让用户“被动笑纳”。

推荐系统现已广泛应用于很多领域,其中最典型并具有良好的发展应用前景的领域就是电子商务领域,如图4-44所示的亚马逊购物网站。

4-44  亚马逊推荐系统的用户界面

推荐系统可认为是一种特殊形式的信息过滤Information Filtering)系统,主要有“协同过滤推荐”、“基于内容的推荐”、“基于关联规则的推荐”、“基于知识推理的推荐”、“组合推荐”这几种智能算法。

如果推荐系统根据用户的历史兴趣来给用户做推荐,那么这种方法被称为“协同过滤推荐”(Collaborative Filtering Recommendation算法。协同过滤是基于这样的原理:首先找到与此用户有相似兴趣的其他用户,然后将他们感兴趣的内容推荐给此用户。其基本思想非常易于理解,在日常生活中,我们往往会通过好朋友的推荐来进行一些选择,如音乐、电影等。协同过滤实际上是通过人与人之间的合作来过滤掉不良信息,因此协同过滤也叫社会过滤social collaborative filtering)。

参考:具体地,给定用户,令喜欢的物品集合,喜欢的物品集合,则用户的兴趣相似度可用如下公式来表示:

Jaccard公式) 或 (余弦相似度)

然后,用户对物品的喜欢程度就可用如下公式来计算:

其中,包含与用户兴趣最接近的个用户,为喜欢物品的用户集合。

如果推荐系统利用了商品的内容描述,计算用户的兴趣和商品描述之间的相似度,来给用户做推荐,则称为“基于内容的推荐”(Content-based Recommendation算法,如4.6.1节提到的魔幻武侠小说的推荐例子。基于内容的推荐不需要其他用户的帮助,不需要依据其他用户对商品的评价意见,因此没有冷启动问题、新上架商品问题、冷门商品问题和稀疏性问题(相比于海量的商品数目,商品的用户评价数目往往非常少,其本质上可归结为数据的高维)。说直白点,就是商品刚上架时,此时还没有一个用户对该商品做出过评价,这时“协同过滤推荐”算法就无法工作,而“基于内容的推荐”算法则没有问题。

基于关联规则的推荐以关联规则为基础,分析用户已经选择的项目与未选择项目之间的关联性得出最后的推荐结果。关联规则推荐的典型例子是购物篮分析,该推荐方法通过发现顾客放入其购物篮中不同商品之间的联系,分析顾客的购买习惯。例如买面包的顾客,还会购买牛奶。通过了解哪些商品频繁地被顾客同时购买,可以把相关的产品摆在一起,达到促销的目的。

基于知识推理的推荐是数据挖掘技术在个性化推荐系统中的应用,它不参考用户对于项目的偏好,而是依据某种知识或者推理来进行推荐。例如,如果用户喜欢冲洗大照片,那么高分辨率相机会对其更有吸引力。具体地,通过对数据库中数据进行分析,发现信息中隐含的有价值的知识,或者在用户和待推荐对象之间构建推理,来进行推荐。此外,基于知识推理的推荐系统还可不断学习用户对推荐的反馈情况,从而达到更高的推荐质量。

除此以上这些,还有基于信任网络的推荐系统、上下文感知推荐系统、基于网络结构的推荐等等。由于各种推荐方法都有优缺点,所以在实际中,组合推荐(Hybrid Recommendation经常被采用。比如分别用基于内容推荐方法和协同过滤推荐方法去产生一个推荐预测结果,然后用某方法组合其结果,以弥补各推荐技术的弱点。判断一个推荐系统的优劣主要有以下评价指标:准确度(Accuracy,包括预测准确度、分类准确度、排序准确度)、覆盖率(Coverage),惊喜性(Serendipity)、新颖性(Novelty)、多样性、用户满意度等。

推荐系统的早期研究主要集中在静态用户行为分析领域,即不考虑用户行为发生的时间,而仅仅研究用户行为中与时间无关的静态模式。近年来,很多研究人员转向研究推荐系统的动态特性,主要包括用户兴趣变化的动态模型,基于时间上下文的推荐等问题。例如一部电影刚上映的时候可能会被很多人关注,但过了几个月后人们逐渐不再感兴趣,所以这时就不能再把它放在最醒目的位置,即使这部电影的评价很高、用户的兴趣跟它很相关。

推荐系统可以更好地发掘信息的长尾(Long Tail。在传统零售超市里,最热门的少数商品往往摆在最醒目的位置,而大量的冷门商品则放在货架的某个角落,很难让人注意到。但在电子商务时代,借助于个性化推荐系统,这些冷门商品也终于可以扬眉吐气、主动被推送到感兴趣用户网页的最醒目位置。