ReviewofClassicalRecommendationAlgorithms
ChunhuaZhou,JianjingShen,YanLi,XiaofengGuo
InformationEngineeringUniversity,ZhengzhouHenan
Received:Sep.3rd,2019;accepted:Sep.18th,2019;published:Sep.25th,2019
ABSTRACT
RecommendersystemsareeffectivetoolsofinformationlteringthatareprevalentduetocontinuouspopularizationoftheInternet,personalizationtrends,andchanginghabitsofcomputerusers.Althoughexistingrecommendersystemsaresuccessfulinproducingdecentrecommendations,theystillsufferfromchallengessuchascold-start,datasparsity,anduserinterestdrift.Thispapersummarizestheresearchstatusofrecommendationsystem,presentsanoverviewofthefieldofrecommendersystems,describestheclassicalrecommendationmethodsthatareusuallyclassifiedintothefollowingthreemaincategories:content-based,collaborativeandhybridrecommendationalgorithms,andprospectsfutureresearchdirections.
Keywords:RecommenderSystems,Cold-Start,DataSparsity,CollaborativeFiltering
经典推荐算法研究综述
周春华,沈建京,李艳,郭晓峰
信息工程大学,河南郑州
收稿日期:2019年9月3日;录用日期:2019年9月18日;发布日期:2019年9月25日
摘要
推荐系统作为一种有效的信息过滤工具,由于互联网的不断普及、个性化趋势和计算机用户习惯的改变,将变得更加流行。尽管现有的推荐系统也能成功地进行推荐,但它们仍然面临着冷启动、数据稀疏性和用户兴趣漂移等问题的挑战。本文概述了推荐系统的研究现状,对推荐算法进行了分类,介绍了几种经典的推荐算法,主要包括:基于内容的推荐算法、协同过滤推荐算法和混合推荐算法,并对推荐系统未来的研究趋势进行了展望。
关键词:推荐系统,冷启动,数据稀疏,协同过滤
ThisworkislicensedundertheCreativeCommonsAttributionInternationalLicense(CCBY).
1.引言
在推荐系统中,典型的推荐问题主要有两种:评分预测和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.0e8,远远小于百万分之一。在这个规模下,任意两个用户的浏览的商品交集都非常非常小,计算得到的相似度往往近似为0,那么传统的基于相似度计算的过滤算法将得不到理想的效果。因此,数据稀疏性问题也是过滤算法面临的一大挑战,一般来说,数据规模越大,数据稀疏性会越大,而能够处理稀疏数据的算法将会有更好的应用。
2.3.用户兴趣漂移问题
3.推荐算法分类
Figure1.Theclassificationofrecommendationalgorithms
4.经典推荐算法
4.1.基于内容的推荐算法
Figure2.Thearchitectureofcontent-basedrecommendationalgorithm
4.2.协同过滤推荐算法
协同过滤推荐算法是推荐系统中最流行的推荐算法,它充分利用用户的历史行为数据来生成推荐项,协同过滤是建立在这样的假设基础上的,如果用户X和Y对t个项目进行相似的评分,或者有相似的行为(例如购买、观看、聆听),那么用户就会对其他项目进行类似的评分或行为[38]。
Figure3.ThegeneralprocessofCFalgorithm
CF算法主要采用两大类方法来解决推荐生成问题:
1.基于内存的协同过滤算法
基于内存的CF算法可以使用所有的用户–项目数据或一个样本集来生成预测。每个用户都有一个与其有着相似兴趣的群体,被称为邻居,通过识别新用户(或活动用户)的邻居,可以预测他或她对新项目的偏好。
2.基于模型的协同过滤算法
不同于基于内存的算法,基于模型的算法是根据已有数据应用统计和机器学习得到模型进行预测。模型的设计和开发(如机器学习、数据挖掘算法等)可以使系统学会根据训练数据识别复杂的模式,然后根据所学习的模型对测试数据或真实数据的协同过滤任务进行智能预测。基于模型的CF算法包括聚类模型、贝叶斯模型、概率模型、最大熵模型和矩阵分解等等。
基于聚类模型的推荐算法通常将聚类作为一个中间步骤,利用聚类的结果进行进一步的分析或处理,以执行分类或其他任务。聚类CF模型可以有不同方式的应用。比如,O’Connor和Herlocker[8]以及胡蓉等人[9]使用聚类技术将数据划分为簇,然后在每个簇中使用基于内存的CF算法进行预测。Chee等人[40]使用k=2的k-means方法,提出了RecTree方法,在递归地构造RecTree的过程中,将原始的大型评级数据划分为两个子簇。所得到的RecTree类似于一个不平衡的二叉树,预测是由目标用户所属的叶子节点进行的。基于聚类的推荐算法具有很好的可扩展性,因为它们在更小的集群中进行预测,而不是在整个数据集中进行预测。但其推荐质量普遍较低。
矩阵分解是一种发现数据背后隐藏结构的强大技术,是一种非常精确的降维方法。常用的分解模型主要有:奇异值分解(SingularValueDecomposition,SVD)、主成分分析(PrincipalComponentAnalysis,PCA)、概率矩阵分解(ProbabilisticMatrixFactorization,PMF)、非负矩阵分解(ProbabilisticMatrixFactorization,PMF)[41]。矩阵分解能够有效地处理海量数据集、稀疏的评价矩阵、可扩展性以及基于用户/项目的CF算法的冷启动问题。
协同过滤算法是目前最流行的推荐技术,不仅可以发现用户潜在的兴趣偏好,具有推荐新信息的能力,还能解决基于内容推荐中一些项目难以进行内容分析的问题,如:电影、音乐、艺术品等。
4.3.混合推荐算法
每种方法都有各自的局限性,没有一种方法可以独领风骚,它们在各自的领域表现出来的效果也各有千秋,于是在实际的应用中,通常根据实际情况将各种算法混合在一起使用,所以就有了混合推荐技术。混合推荐技术融合了基于内容的过滤和协同过滤算法中两种或两种以上推荐技术的特点,从而利用每种技术的优势,提高性能。混合推荐技术非常有用,因为它可以克服传统推荐方法的大多数限制,将它们组合起来以获得更好的结果。混合推荐技术的方法有很多:加权型、切换型、交叉型、特征组合型、瀑布型、特征递增型、元层次型。
加权型:输出是由多种不同推荐方法加权组合而成。
切换型:根据问题背景和实际情况采用不同的推荐技术。
交叉型:同时采用多种推荐技术给出多种推荐结果,为用户提供参考。
瀑布型:后一个推荐方法优化前一个推荐方法:它是一个分阶段的过程,首先用一种推荐技术产生一个较为粗略的候选结果,在此基础上使用第二种推荐技术对其做出进一步精确地推荐。
特征组合型:将来自不同推荐数据源的特征组合起来,由另一种推荐技术采用。
特征递增型:将一种方法的推荐输出作为另一种方法的输入。
元层次型:用一种推荐方法产生的模型作为另一种推荐方法的输入。
5.推荐系统研究热点和趋势
5.1.深度学习与现有推荐算法的结合
5.2.基于强化学习的推荐
5.3.融合注意力机制的推荐
近年来,由于受深度学习研究的影响,注意力机制得到了广泛应用和更深入研究,如在图像处理、语音识别、视频识别、自然语言处理等领域都取得了很好的效果[48][49][50]。在推荐系统领域也取得了不少成果,文献[51]从不同角度将注意力机制应用在电影推荐系统中,学习用户的行为偏好,提高推荐精度。文献[52]利用双层注意力机制分别构建用户特征网络和项目特征网络,预测特定用户可能给出的项目评分;文献[53]考虑用户行为的异构性,通过自我注意对行为之间产生影响,构建基于注意力机制的用户行为模型。可见注意力机制在推荐系统中的应用研究已成为一个热点。
5.4.推荐结果的可解释性
5.5.推荐结果的多样性和公平性
对于推荐系统来说,推荐准确率是评价推荐质量最重要的指标,并且在NetflixPrize大赛中,推荐准确率是作为评价算法优劣的唯一标准[59]。但是,如果只考虑推荐的准确性,很容易陷入一个单一类别的局部最优解,造成用户兴趣的同质性。为了给用户带来更好的体验,获得更好的用户满意度,推荐结果的多样性、新颖性和公平性受到研究人员的重视。推荐结果的多样性能够向用户推荐彼此相似度低的项目,从而开阔用户的视野,发散用户的兴趣[60],能更好地发现具有“新颖性”的项目[61],并增加冷门项目被推荐的机会。文献[62][63][64][65]也分别提出了不同的方法来提高推荐结果的多样性和公平性。如何在保证推荐准确率的前提下,有效提高推荐多样性已成为推荐系统研究的热点问题。