ComputerScienceandApplication计算机科学与应用,2019,9(9),1803-1813PublishedOnlineSeptember2019inHans.://doi.org/10.12677/csa.2019.99202文章引用:周春华,沈建京,李艳,郭晓峰.经典推荐算法研究综述[J].计算机科学与应用,2019,9(9):1803-1813.DOI:10.12677/csa.2019.99202ReviewofClassicalRecommendationAlgorithmsChunhuaZhou,JianjingShen,YanLi,XiaofengGuoInformationEngineeringUniversity,ZhengzhouHenanReceived:Sep.3rd,2019;accepted:Sep.18th,2019;published:Sep.25th,2019AbstractRecommendersystemsareeffectivetoolsofinformationfilteringthatareprevalentduetoconti-nuouspopularizationoftheInternet,personalizationtrends,andchanginghabitsofcomputerus-ers.Althoughexistingrecommendersystemsaresuccessfulinproducingdecentrecommenda-tions,theystillsufferfromchallengessuchascold-start,datasparsity,anduserinterestdrift.Thispapersummarizestheresearchstatusofrecommendationsystem,presentsanoverviewofthefieldofrecommendersystems,describestheclassicalrecommendationmethodsthatareusuallyclassifiedintothefollowingthreemaincategories:content-based,collaborativeandhybridrecommendationalgorithms,andprospectsfutureresearchdirections.KeywordsRecommenderSystems,Cold-Start,DataSparsity,CollaborativeFiltering经典推荐算法研究综述周春华,沈建京,李艳,郭晓峰信息工程大学,河南郑州收稿日期:2019年9月3日;录用日期:2019年9月18日;发布日期:2019年9月25日摘要推荐系统作为一种有效的信息过滤工具,由于互联网的不断普及、个性化趋势和计算机用户习惯的改变,将变得更加流行。尽管现有的推荐系统也能成功地进行推荐,但它们仍然面临着冷启动、数据稀疏性和用户兴趣漂移等问题的挑战。本文概述了推荐系统的研究现状,对推荐算法进行了分类,介绍了几种经周春华等DOI:10.12677/csa.2019.992021804计算机科学与应用典的推荐算法,主要包括:基于内容的推荐算法、协同过滤推荐算法和混合推荐算法,并对推荐系统未来的研究趋势进行了展望。关键词推荐系统,冷启动,数据稀疏,协同过滤Copyright©2019byauthor(s)andHansPublishersInc.ThisworkislicensedundertheCreativeCommonsAttributionInternationalLicense(CCBY).引言随着信息技术迅速发展和在线服务的普及,人们能够快速获取大量信息,这也使得人们从信息匮乏的时代跨进了“信息过载”的时代。数据的“爆炸式”增长,为人类记忆和处理信息的能力带来了极大的挑战,大量冗余信息严重干扰对有用信息的提取和利用,增加信息处理的成本。个性化和智能化的代理、搜索引擎和推荐系统是被大家广泛使用的克服信息过载的主要工具或技术[1]。然而,与返回与用户查询匹配的相关结果的搜索引擎或检索系统不同,推荐系统根据用户的需求和偏好提供个性化的推荐。推荐系统通过分析用户的特点、项目(被推荐物品或服务的统称)的特征、用户的历史行为、以及其他一些辅助信息,主动为用户推荐满足他们兴趣和需求的项目,属于主动式提供服务[2]。推荐系统不仅可以根据用户的偏好推荐与用户偏好相似的项目,甚至可以在没有用户偏好的情况下,帮助用户发现他们感兴趣的新内容。推荐系统作为解决信息过载的有效方法,已成为学术界和工业界的关注热点,并在很多领域发挥着重要作用,如:电子商务、电影和视频、音乐、社交网络、阅读、广告、基于位置的服务、新闻和个性化邮件等。在推荐系统中,典型的推荐问题主要有两种:评分预测和Top-N推荐。评分预测一直是推荐系统研究的热点,是指根据用户对项目的历史评分,学习用户的兴趣模型,预测用户对未评分项目的打分;而Top-N推荐通常更符合实际的应用需求,是指提供用户可能喜欢的前N个项目的有序列表。基于以上推荐问题,学术界和工业界提出了很多推荐理论和技术。经典的推荐算法主要分为三类:基于内容的推荐算法、协同过滤推荐算法和混合推荐算法[3]。2.推荐系统存在的问题目前,很多推荐系统中都综合集成了各种的推荐方法和技术,虽然能提升推荐效果,但仍然面临着很多挑战,其中,冷启动问题、数据稀疏问题和用户兴趣漂移问题是推荐系统面临的三大难题。冷启动问题是指针对新用户、新项目或新系统没有历史评分数据的推荐问题;数据稀疏问题是指在海量的用户和项目信息中评价数据集的稀疏问题;用户兴趣漂移问题是指用户的兴趣随着时间、地点甚至是人物的变化而变化,如何建模用户的兴趣问题也是推荐系统面临的一大难题。2.1.冷启动问题推荐系统需要根据用户的历史行为和兴趣预测用户未来的行为和兴趣,因此大量的用户行为数据就成为推荐系统的重要组成部分和先决条件。当推荐系统积累数据量过少时,如何设计个性化推荐系统且让用户对推荐结果满意从而愿意使用推荐系统,就是冷启动问题,这也是推荐系统面临的一大难题。OpenAccess周春华等DOI:10.12677/csa.2019.992021805计算机科学与应用冷启动主要分为三类:(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-Based,CB)、协同过滤推荐算法(CollaborativeFiltering,CF)和混合推荐算法。其中,协同过滤算法又可分为基于记忆的协同过滤算法(memory-based)和基于模型的协同过滤算法(model-based)。基于记忆的协同过滤算法包括基于用户的协同过滤算法(User-basedCollaborativeFiltering,UserCF)[4]和基于项目的协同过滤算法(Item-basedCollaborativeFiltering,ItemCF)[5][6][7];基于模型的协同过滤算法包括基于聚类模型的(ClusteringModel,CM)[8][9]、基于贝叶斯模型的(BayesianModel,BM)[10]、基于概率模型的(ProbabilisticModel,PM)[11][12]、基于最大熵模型的(MaximumEntropyModel,MEM)[13]和基于矩阵分解的(MatrixFactorization,MF)[14][15]等协同过滤算法。混合推荐技术主要分为:加权型(Weighted)、切换型(Switching)、周春华等DOI:10.12677/csa.2019.992021806计算机科学与应用交叉型(Mixed)、特征组合型(Featurecombination)、瀑布型(Cascade)、特征增强型(Featureaugmentation)、元层次型(Meta-level)[16]。除了这些经典的推荐算法,还有一些特定的推荐技术,包括基于知识的(Knowledge-Based,KB)[17][18][19][20][21]、基于上下文感知的(Context-Aware,CA)[22][23][24][25]、基于信任感知的(Trust-Aware,TA)[26][27]、基于模糊的(Fuzzy-Based,FB)[28]、基于社交网络的(Socialnetwork-Based,SB)[29]、基于群组的(Group-Based,GB)[30][31]和基于深度学习的技术(DeepLearn-ing-Based,DLB)[32][33][34][35]等推荐每种方法都有其优点和局限性。推荐算法的具体分类如图1所示。Figure1.Theclassificationofrecommendationalgorithms图1.推荐算法分类4.经典推荐算法4.1.基于内容的推荐算法基于内容的推荐算法充分利用用户的个人资料和项目的特征来生成推荐项,向目标用户推荐与其过去喜欢的内容特征相似的项目[36]。比如,用户经常阅读包含“推荐”、“协同过滤”和“偏好”关键词的文章,基于内容的推荐系统就会推荐与推荐系统有关的文章。基于内容推荐算法的步骤主要有三步:第一步:项目表示。提取项目内容特征来表示项目;第二步:学习用户偏好模型。利