Computer Science and Application 计算机科学与应用, 2019, 9(9), 1803-1813
Published Online September 2019 in Hans. www.hanspub/journal/csa
doi/10.12677/csa.2019.99202
Review of Classical Recommendation
Algorithms
Chunhua Zhou, Jianjing Shen, Yan Li, Xiaofeng Guo
Information Engineering University, Zhengzhou Henan
Received: Sep. 3rd, 2019; accepted: Sep. 18th, 2019; published: Sep. 25th, 2019
关于禁毒的文章
白雪却嫌
Abstract
Recommender systems are effective tools of information filtering that are prevalent due to cont i-nuous popularization of the Internet, personalization trends, and changing habits of computer us-ers. Although existing recommender systems are successful in producing decent recommend a-tions, they still suffer from challenges such as cold-start, data sparsity, and ur interest drift. This paper summarizes the rearch status of recommendat ion system, prents an overview of the field of recommender systems, describes the classical recommendation methods that are usually classified into the following three main categories: content-bad, collaborative and hybrid recommendation algorithms, a nd prospects future rearch directions.
Keywords
Recommender Systems, Cold-Start, Data Sparsity, Collaborative Filtering
经典推荐算法研究综述
周春华,沈建京,李艳,郭晓峰
信息工程大学,河南郑州
收稿日期:2019年9月3日;录用日期:2019年9月18日;发布日期:2019年9月25日
摘要
推荐系统作为一种有效的信息过滤工具,由于互联网的不断普及、个性化趋势和计算机用户习惯的改变,将变得更加流行。尽管现有的推荐系统也能成功地进行推荐,但它们仍然面临着冷启动、数据稀疏性和用户兴趣漂移等问题的挑战。本文概述了推荐系统的研究现状,对推荐算法进行了分类,介绍了几种经
周春华等
典的推荐算法,主要包括:基于内容的推荐算法、协同过滤推荐算法和混合推荐算法,并对推荐系统未来的研究趋势进行了展望。
关键词
推荐系统,冷启动,数据稀疏,协同过滤
Copyright © 2019 by author(s) and Hans Publishers Inc.
This work is licend under the Creative Commons Attribution International Licen (CC BY).
creativecommons/licens/by/4.0/
come的现在分词
1. 引言
随着信息技术迅速发展和在线服务的普及,人们能够快速获取大量信息,这也使得人们从信息匮乏的时代跨进了“信息过载”的时代。数据的“爆炸式”增长,为人类记忆和处理信息的能力带来了极大的挑战,大量冗余信息严重干扰对有用信息的提取和利用,增加信息处理的成本。个性化和智能化的代理、搜索引擎和推荐系统是被大家广泛使用的克服信息过载的主要工具或技术[1]。然而,与返回与用户查询匹配的相关结果的搜索引擎或检索系统不同,推荐系统根据用户的需求和偏好提供个性化的推荐。
鬼吹箫
推荐系统通过分析用户的特点、项目(被推荐物品或服务的统称)的特征、用户的历史行为、以及其他一些辅助信息,主动为用户推荐满足他们兴趣和需求的项目,属于主动式提供服务[2]。推荐系统不仅可以根据用户的偏好推荐与用户偏好相似的项目,甚至可以在没有用户偏好的情况下,帮助用户发现他们感兴趣的新内容。推荐系统作为解决信息过载的有效方法,已成为学术界和工业界的关注热点,并在很多领域发挥着重要作用,如:电子商务、电影和视频、音乐、社交网络、阅读、广告、基于位置的服务、新闻和个性化邮件等。
在推荐系统中,典型的推荐问题主要有两种:评分预测和Top-N推荐。评分预测一直是推荐系统研究的热点,是指根据用户对项目的历史评分,学习用户的兴趣模型,预测用户对未评分项目的打分;而Top-N推荐通常更符合实际的应用需求,是指提供用户可能喜欢的前N个项目的有序列表。基于以上推荐问题,学术界和工业界提出了很多推荐理论和技术。经典的推荐算法主要分为三类:基于内容的推荐算法、协同过滤推荐算法和混合推荐算法[3]。
2. 推荐系统存在的问题
目前,很多推荐系统中都综合集成了各种的推荐方法和技术,虽然能提升推荐效果,但仍然面临着很多挑战,其中,冷启动问题、数据稀疏问题和用户兴趣漂移问题是推荐系统面临的三大难题。冷启动问题是指针对新用户、新项目或新系统没有历史评分数据的推荐问题;数据稀疏问题是指在海量的用
户和项目信息中评价数据集的稀疏问题;用户兴趣漂移问题是指用户的兴趣随着时间、地点甚至是人物的变化而变化,如何建模用户的兴趣问题也是推荐系统面临的一大难题。
2.1. 冷启动问题
推荐系统需要根据用户的历史行为和兴趣预测用户未来的行为和兴趣,因此大量的用户行为数据就成为推荐系统的重要组成部分和先决条件。当推荐系统积累数据量过少时,如何设计个性化推荐系统且让用户对推荐结果满意从而愿意使用推荐系统,就是冷启动问题,这也是推荐系统面临的一大难题。
周春华等
冷启动主要分为三类:
(1) 用户冷启动:如何给新用户做个性化推荐的问题,新用户刚使用网站的时候,系统并没有他的行为数据。
(2) 项目冷启动:解决如何将新的项目推荐给可能对它感兴趣的用户。
教师家访记录内容(3) 系统冷启动:如何在新开发网站设计个性化推荐系统,此时网站上用户很少,用户行为也少,只有一些商品的信息。
2.2. 数据稀疏问题
现在推荐系统处理的数据规模越来越大,用户和物品数目动辄百千万计,用户项目评分矩阵是高维稀疏的,且两个用户之间选择的重叠也会非常少,则传统的基于相似度计算的算法和基于关联分析的算法效果都不会太好。因此评价数据集的稀疏度非常必要。如果以用户–项目评分矩阵中已评分数据量占评分总量的比例来衡量系统的稀疏性,稀疏度越小,传统算法的精度越低。
比如,目前最大规模的电子商务平台淘宝网,其用户和商品数量都非常庞大。截至2014年底,淘宝网拥有注册用户近5亿,日活跃用户超1.2亿,在线商品数量达到10亿,假如要用基于用户–项目评分矩阵的协同过滤算法,那么用户–项目评分矩阵的大小是1.2亿× 10亿。而平均每个用户的商品浏览数量可能不超过20,那么在用户–项目评分矩阵中,只有1.2亿× 20的输入是有值的,稀疏的度达到20/10亿= 2.0e−8,远远小于百万分之一。在这个规模下,任意两个用户的浏览的商品交集都非常非常小,计算得到的相似度往往近似为0,那么传统的基于相似度计算的过滤算法将得不到理想的效果。因此,数据稀疏性问题也是过滤算法面临的一大挑战,一般来说,数据规模越大,数据稀疏性会越大,而能够处理稀疏数据的算法将会有更好的应用。减法表
2.3. 用户兴趣漂移问题
随着时间的推移,用户的工作生活会不断变化,用户的兴趣爱好也会发生改变,将导致推荐的准确度
逐渐下降,这就是用户兴趣漂移问题,这一问题给推荐系统同样带来了很大的挑战。在信息过载和快速迭代的时代,能够有效地识别出用户所发生的兴趣变化对于推荐系统来说非常重要,而未考虑兴趣漂移的推荐系统将会逐渐失去竞争力。
引起用户兴趣变化的主要原因:(1) 随着科学技术的进步和信息量的不断增长,用户会接触到新的领域信息,兴趣可能会变化到不同的领域。(2) 用户由于年龄增长或受到实际生活中不同情况的影响,用户的自身原有的兴趣和关注点会发生改变。(3) 用户兴趣受新闻事件或项目流行度的影响,会随时间、节日和人物的变化而变化。
糖蛋白3. 推荐算法分类
根据推荐方式的不同,传统的推荐算法主要分为三类:基于内容的推荐算法(Content-Bad, CB)、协同过滤推荐算法(Collaborative Filtering, CF)和混合推荐算法。其中,协同过滤算法又可分为基于记忆的协同过滤算法(memory-bad)和基于模型的协同过滤算法(model-bad)。基于记忆的协同过滤算法包括基于用户的协同过滤算法(Ur-bad Collaborative Filtering, UrCF) [4]和基于项目的协同过滤算法(Item-bad Collaborative Filtering, ItemCF) [5][6][7];基于模型的协同过滤算法包括基于聚类模型的(Clustering Model, CM) [8][9]、基于贝叶斯模型的(Bayesian Model, BM) [10]、基于概率模型的(Probabilistic Model, PM) [11][12]、基于最大熵模型的(Maximum Entropy Model, MEM) [13]和基于
矩阵分解的(Matrix Factorization, MF) [14][15]等协同过滤算法。混合推荐技术主要分为:加权型(Weighted)、切换型(Switching)、
周春华等
交叉型(Mixed)、特征组合型(Feature combination)、瀑布型(Cascade)、特征增强型(Feature augmentation)、元层次型(Meta-level) [16]。除了这些经典的推荐算法,还有一些特定的推荐技术,包括基于知识的(Knowledge-Bad, KB) [17][18][19][20][21]、基于上下文感知的(Context-Aware, CA) [22][23][24][25]、基于信任感知的(Trust-Aware, TA) [26][27]、基于模糊的(Fuzzy-Bad, FB) [28]、基于社交网络的(Social network-Bad, SB) [29]、基于群组的(Group-Bad, GB) [30][31]和基于深度学习的技术(Deep Learn-ing-Bad, DLB) [32][33][34][35]等推荐每种方法都有其优点和局限性。推荐算法的具体分类如图1所示。
Figure 1. The classification of recommendation algorithms
图1.推荐算法分类
4. 经典推荐算法
4.1. 基于内容的推荐算法
基于内容的推荐算法充分利用用户的个人资料和项目的特征来生成推荐项,向目标用户推荐与其过去喜欢的内容特征相似的项目[36]。比如,用户经常阅读包含“推荐”、“协同过滤”和“偏好”关键词的文章,基于内容的推荐系统就会推荐与推荐系统有关的文章。
基于内容推荐算法的步骤主要有三步:第一步:项目表示。提取项目内容特征来表示项目;第二步:学习用户偏好模型。利用用户过去喜欢(及不喜欢)的项目特征数据,学习用户的偏好模型;第三步:产生推荐列表。通过比较用户偏好模型与候选项目的特征,为用户推荐一组相似度最大的项目。具体过程如图2所示。基于内容推荐的关键就是计算项目内容特征向量之间的相似度,相似度计算的主要通过向量的余弦相似度来表示[37]。
Figure 2. The architecture of content-bad recommendation algorithm
图2. 基于内容的推荐算法架构
周春华 等
基于内容的推荐又可以分为基于案例的推理技术和基于属性的技术[3]。基于案例的推理技术会推荐与用户之前喜欢的项目相关度最高的项目,而基于属性的技术是推荐与用户个人资料属性匹配的项目。
基于内容的推荐系统的主要优点是用户独立性、可解释性,以及可解决项目冷启动问题。然而,随着个人隐私问题越来越受到互联网用户的关注,基于内容的推荐方法收集用户档案变得越来越困难,同时这种方法需要有效的特征提取,传统的浅层模型依赖于人工设计特征,其有效性及可扩展性非常有限,制约了基于内容的推荐方法的性能。由于只依赖于用户过去对某些项目的喜好,所以无法挖掘出用户的潜在兴趣,又新用户没有喜好历史,它还面临着新用户冷启动问题。
4.2. 协同过滤推荐算法
协同过滤推荐算法是推荐系统中最流行的推荐算法,它充分利用用户的历史行为数据来生成推荐项,协同过滤是建立在这样的假设基础上的,如果用户X 和Y 对t 个项目进行相似的评分,或者有相似的行为(例如购买、观看、聆听),那么用户就会对其他项目进行类似的评分或行为[38]。
大楷通常,基于CF 推荐系统包含m 个用户的列表{}12,,,m U u u u = 和n 个项目列表{}12,,n P p p p = ,。系统构造一个m × n 的用户–项目矩阵,其中包含用户对项目的评分,其中每个元素值r ij 表示用户u i 对项目p j 给出的评分。CF 算法要么预测目标用户a 对某个未评分项目q 的评分,要么向用户a 推荐其最喜欢的Top-N 项目列表。CF 算法的一般过程如图3所示。
Figure 3. The general process of CF algorithm
图3. CF 算法的一般过程
CF 算法主要采用两大类方法来解决推荐生成问题:
1. 基于内存的协同过滤算法
基于内存的CF 算法可以使用所有的用户–项目数据或一个样本集来生成预测。每个用户都有一个与其有着相似兴趣的群体,被称为邻居,通过识别新用户(或活动用户)的邻居,可以预测他或她对新项目的偏好。
基于内存的CF 算法主要采用基于邻域的协同过滤,步骤如下:计算两个用户或两个项目之间的相似度,相似度反映了用户之间或项目之间的距离或相关性;通过将用户对所有项目所有评分加权平均或将所有用户对项目的所有评分加权平均,也可以使用简单的加权平均[5],为活动用户生成预测。当任务是生成Top-N 推荐时,需要在计算相似度后找到N 个最相似的用户或项目(最近邻),然后将这些邻居聚合起来,得到Top-N 项目列表作为推荐。基于内存的推荐算法主要有:UrCF 、ItemCF 和混合的。UrCF 使用了目标用户a 最近邻的过去偏好,而ItemCF 则使用了与某一项目q 最相似的项目的评分。
UrCF 是推荐系统中最古老的算法,它的诞生标志着推荐系统的诞生。UrCF 向目标用户推荐与
其兴趣相似的用户过去喜欢且目标用户不知道的项目。兴趣相似度计算是通过用户的历史行为的相似度