推荐系统与推荐算法综述

一、时代背景

大数据时代产生了海量的数据,数据对企业来说是一种隐形的资产,里面蕴含了丰富的价值。但是,大数据体量之大、种类之繁以及产生速率之快,海量的数据并不都是有价值的,用户从海量的数据中提取有用的、针对性的信息需要花费很大的时间成本。比如,当你面对如此多的电影列表,你想找到一部最符合自己兴趣的电影,因为电影数量之多,你不可能把所有的电影简介都看一遍。那么怎么解决这个问题呢?电影平台搜集你过去看过的全部电影,分析了解你对什么类型电影感兴趣,然后针对性的把你感兴趣的电影主动的罗列给你,你不用花费太多的精力便可快速找到满足自己需求的电影。推荐系统便是为解决这类实际需求而诞生了。
推荐系统的兴起与互联网的发展息息相关。最早的自动化协同过滤系统可以追溯到 1994 年,明尼苏达大学双城分校计算机系的 GroupLens 研究组设计了名为 GroupLens 的新闻推荐系统。该工作 不仅首次提出了协同过滤的思想,并且为推荐问题建立了一个形式化的模型,为随后几十年推荐 系统的发展带来了巨大影响。该研究组后来创建了 MovieLens 推荐网站,一个推荐引擎的学术研 究平台,其包含的数据集是迄今为止推荐领域引用量最大的数据集。
历史上将推荐系统的研究推向高潮的事件非 Netflix 百万美金大赛莫属。2006 年,Netflix 宣布提供一百万美元奖金给第一个能将现有推荐算法的准确度提升 10%以上的参赛者。在 2006 年北京市商品住宅成交均价才 8 千元左右。重赏之下必有勇夫,这项百万美金大赛一经宣布,立即吸引了 186 个国家的 4 万多支参赛队伍鹿逐中原。随后几年,大量经典的推荐算法涌现出来。其中最有影响 力的当属 SVD++模型,这篇论文也在 2018 年的 SIGKDD 大会上被评选上了 Test of Time Award,实 至名归。Netflix 比赛对推荐系统的影响,可以类比到 ImageNet 挑战赛对图像识别技术发展的影响。

二、推荐系统的特点

作为一种信息过滤系统,推荐系统具有以下两个最显著的特性:
(1)主动化。从用户角度考虑,门户网站和搜索引擎都是解决信息过载的有效方式,但它们都需要用户提供明确需求,当用户无法准确描述自己的需求时,这两种方式就无法为用户提供精确的服务了。而推荐系统不需要用户提供明确的需求,而是通过分析用户和物品的数据,对用户和物品进行建模,从而主动为用户推荐他们感兴趣的信息。
(2)个性化。推荐系统能够更好的发掘长尾信息,即将冷门物品推荐给用户。热门物品通常代表绝大多数用户的兴趣,而冷门物品往往代表一小部分用户的个性化需求,在电商平台火热的时代,由冷门物品带来的营业额甚至超过热门物品,发掘长尾信息是推荐系统的重要研究方向。

长尾数据
互联网上的很多数据分布都属于长尾分布,即大部分数据的使用频率很低,只有少部分的数据被广泛使用,这小部分数据其实就是热门数据,但如果把热门数据和冷门数据的使用量作对比,会发现冷门数据的使用量远远大于热门数据的使用量,这也许和人们想象中相反,但这是经过长时间的统计分析得出的结论。用户的行为数据其实也符合这一规律,无论从物品角度的物品流行度,还是用户角度的用户流行度都符合长尾分布。

三、推荐系统的核心–推荐算法

1、独立推荐算法

(1)基于人口统计信息的推荐
这一类是最简单的推荐算法了,它只是简单的根据系统用户的基本信息发现用户的相关程度,然后进行推荐,例如对一定收入和年龄的用户推荐购房广告。目前在大型系统中已经较少使用。
(2)基于规则的推荐
这类算法常见的比如基于最多用户点击,最多用户浏览等,属于大众型的推荐方法,在目前的大数据时代并不主流。
(3)基于内容的推荐
基于内容的推荐是在推荐引擎出现之初应用最为广泛的推荐机制,它的核心思想是根据推荐物品或内容的元数据,发现物品或者内容的相关性,然后基于用户以往的喜好记录,推荐给用户相似的物品。
基于内容的推荐模型有两大优点,首先是只要得到了物品或者用户的档案,就可以处理冷启动的问题;其次,因为档案都是显式的特征,最终的模型有比较好的可解释性。
(4)基于协同过滤的推荐
协同过滤推荐是目前学术界研究得最广泛的方法。它不需要使用用户或者物品的档案 资料,只需要收集用户历史的行为记录,发掘其中用户和用户、物品与物品之间潜在的相似性, 并基于这种群组的相似性完成推荐。
协同过滤模型可以分为两类:基于邻域的方法和基于模型的方法。

基于用户和物品的协同过滤是通过统计学方法对数据进行分析的,因此也称为基于内存的协同过滤或基于邻域的协同过滤;一般来说,基于用户的协同过滤适用于社交和群体类推荐,例如新闻、热点等;基于物品的协同过滤更适用于个性化推荐,例如个人电台、个人阅读等。
基于模型的协同过滤(用户和物品)是主流,该方法有:用关联规则做协同过滤、用聚类算法做协同过滤、用分类算法做协同过滤、用回归算法做协同过滤、用矩阵分解做协同过滤、用隐因子模型做协同过滤等。

推荐方法 优点 缺点
基于规则推荐 能发现新兴趣点
不要领域知识
能考虑非产品特性
规则抽取难、耗时
产品名同义性问题
个性化程度低
基于内容推荐 可以解决新用户冷启动问题
推荐结果直观,容易解释
复杂属性不好处理
要有足够数据构造分类器
协同过滤推荐 新异兴趣发现、不需要领域知识
随着时间推移性能提高
推荐个性化、自动化程度高
能处理复杂的非结构化对象
稀疏问题
可扩展性问题
新用户冷启动问题
质量取决于历史数据集
系统开始时推荐质量差

2、综合推荐算法

推荐算法虽然都可以为用户进行推荐,但每一种算法在应用中都有不同的效果。UserCF的推荐结果能够很好的在广泛的兴趣范围中推荐出热门的物品,但却缺少个性化;ItemCF能够在用户个人的兴趣领域发掘出长尾物品,但却缺乏多样性;基于内容推荐依赖于用户特征和物品特征,但能够很好的解决用户行为数据稀疏和新用户的冷启动问题;矩阵分解能够自动挖掘用户特征和物品特征,但却缺乏对推荐结果的解释,因此,每种推荐方法都各有利弊,相辅相成。
实际应用的推荐系统通常都会使用多种推荐算法,比如使用基于内容或标签的推荐算法来解决新用户的冷启动问题和行为数据稀疏问题,在拥有了一定的用户行为数据后,根据业务场景的需要综合使用UserCF、ItemCF、矩阵分解或其他推荐算法进行离线计算和模型训练,通过采集用户的社交网络数据、时间相关数据、地理数据等综合考虑进行推荐,保证推荐引擎的个性化,提高推荐引擎的健壮性、实时性、多样性和新颖性。

在推荐算法的组合方式上,有研究人员提出了七种组合思路
(1)加权(Weight):加权多种推荐技术结果。
(2)变换(Switch):根据问题背景和实际情况或要求决定变换采用不同的推荐技术。
(3)混合(Mixed):同时采用多种推荐技术给出多种推荐结果为用户提供参考。
(4)特征组合(Feature combination):组合来自不同推荐数据源的特征被另一种推荐算法所采用。
(5)层叠(Cascade):先用一种推荐技术产生一种粗糙的推荐结果,第二种推荐技术在此推荐结果的基础上进一步作出更精确的推荐。
(6)特征扩充(Feature augmentation):一种技术产生附加的特征信息嵌入到另一种推荐技术的特征输入中。
(7)元级别(Meta-level):用一种推荐方法产生的模型作为另一种推荐方法的输入。

四、推荐方式及其效果评估

推荐系统在为用户推荐物品时通常有两种方式:

1、评分预测

此方法一般通过学习用户对物品的历史评分,预测用户可能会为他没有进行评分的物品打多少分,通常用于在线视频、音乐等服务的推荐。
评分预测的效果评估一般通过均方根误差(RMSE)和平均绝对误差(MAE)计算。对于测试集T中的一个用户u和物品i,令r(ui)是用户u对物品i的实际评分,而ȓ(ui)是推荐系统给出的预测评分,则有:

2、TopN推荐

此方法一般不考虑评分,而是为用户提供一个个性化推荐列表,通过预测用户对物品的兴趣度对列表进行排序,选取其中前N个物品推荐给用户,通常用于电子商务、社交网络、互联网广告推荐。
TopN推荐一般通过准确率(precision)、召回率(recall)和F1值(平衡分数)度量。令R(u)是为用户推荐的物品列表,T(u)是用户实际行为列表。

0%