推荐系统作为一种有效的信息过滤工具,由于互联网的不断普及、个性化趋势和计算机用户习惯的改变,将变得更加流行。尽管现有的推荐系统也能成功地进行推荐,但它们仍然面临着冷启动、数据稀疏性和用户兴趣漂移等问题的挑战。本文概述了推荐系统的研究现状,对推荐算法进行了分类,介绍了几种经典的推荐算法,主要包括:基于内容的推荐算法、协同过滤推荐算法和混合推荐算法,并对推荐系统未来的研究趋势进行了展望。 Recommender systems are effective tools of information filtering that are prevalent due to continuous popularization of the Internet, personalization trends, and changing habits of computer users. Although existing recommender systems are successful in producing decent recommendations, they still suffer from challenges such as cold-start, data sparsity, and user interest drift. This paper summarizes the research status of recommendation system, presents an overview of the field of recommender systems, describes the classical recommendation methods that are usually classified into the following three main categories: content-based, collaborative and hybrid recommendation algorithms, and prospects future research directions.
周春华,沈建京,李艳,郭晓峰
信息工程大学,河南 郑州
收稿日期:2019年9月3日;录用日期:2019年9月18日;发布日期:2019年9月25日
推荐系统作为一种有效的信息过滤工具,由于互联网的不断普及、个性化趋势和计算机用户习惯的改变,将变得更加流行。尽管现有的推荐系统也能成功地进行推荐,但它们仍然面临着冷启动、数据稀疏性和用户兴趣漂移等问题的挑战。本文概述了推荐系统的研究现状,对推荐算法进行了分类,介绍了几种经典的推荐算法,主要包括:基于内容的推荐算法、协同过滤推荐算法和混合推荐算法,并对推荐系统未来的研究趋势进行了展望。
关键词 :推荐系统,冷启动,数据稀疏,协同过滤
Copyright © 2019 by author(s) and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
随着信息技术迅速发展和在线服务的普及,人们能够快速获取大量信息,这也使得人们从信息匮乏的时代跨进了“信息过载”的时代。数据的“爆炸式”增长,为人类记忆和处理信息的能力带来了极大的挑战,大量冗余信息严重干扰对有用信息的提取和利用,增加信息处理的成本。个性化和智能化的代理、搜索引擎和推荐系统是被大家广泛使用的克服信息过载的主要工具或技术 [
推荐系统通过分析用户的特点、项目(被推荐物品或服务的统称)的特征、用户的历史行为、以及其他一些辅助信息,主动为用户推荐满足他们兴趣和需求的项目,属于主动式提供服务 [
在推荐系统中,典型的推荐问题主要有两种:评分预测和Top-N推荐。评分预测一直是推荐系统研究的热点,是指根据用户对项目的历史评分,学习用户的兴趣模型,预测用户对未评分项目的打分;而Top-N推荐通常更符合实际的应用需求,是指提供用户可能喜欢的前N个项目的有序列表。基于以上推荐问题,学术界和工业界提出了很多推荐理论和技术。经典的推荐算法主要分为三类:基于内容的推荐算法、协同过滤推荐算法和混合推荐算法 [
目前,很多推荐系统中都综合集成了各种的推荐方法和技术,虽然能提升推荐效果,但仍然面临着很多挑战,其中,冷启动问题、数据稀疏问题和用户兴趣漂移问题是推荐系统面临的三大难题。冷启动问题是指针对新用户、新项目或新系统没有历史评分数据的推荐问题;数据稀疏问题是指在海量的用户和项目信息中评价数据集的稀疏问题;用户兴趣漂移问题是指用户的兴趣随着时间、地点甚至是人物的变化而变化,如何建模用户的兴趣问题也是推荐系统面临的一大难题。
推荐系统需要根据用户的历史行为和兴趣预测用户未来的行为和兴趣,因此大量的用户行为数据就成为推荐系统的重要组成部分和先决条件。当推荐系统积累数据量过少时,如何设计个性化推荐系统且让用户对推荐结果满意从而愿意使用推荐系统,就是冷启动问题,这也是推荐系统面临的一大难题。
冷启动主要分为三类:
(1) 用户冷启动:如何给新用户做个性化推荐的问题,新用户刚使用网站的时候,系统并没有他的行为数据。
(2) 项目冷启动:解决如何将新的项目推荐给可能对它感兴趣的用户。
(3) 系统冷启动:如何在新开发网站设计个性化推荐系统,此时网站上用户很少,用户行为也少,只有一些商品的信息。
现在推荐系统处理的数据规模越来越大,用户和物品数目动辄百千万计,用户项目评分矩阵是高维稀疏的,且两个用户之间选择的重叠也会非常少,则传统的基于相似度计算的算法和基于关联分析的算法效果都不会太好。因此评价数据集的稀疏度非常必要。如果以用户–项目评分矩阵中已评分数据量占评分总量的比例来衡量系统的稀疏性,稀疏度越小,传统算法的精度越低。
比如,目前最大规模的电子商务平台淘宝网,其用户和商品数量都非常庞大。截至2014年底,淘宝网拥有注册用户近5亿,日活跃用户超1.2亿,在线商品数量达到10亿,假如要用基于用户–项目评分矩阵的协同过滤算法,那么用户–项目评分矩阵的大小是1.2亿 × 10亿。而平均每个用户的商品浏览数量可能不超过20,那么在用户–项目评分矩阵中,只有1.2亿 × 20的输入是有值的,稀疏的度达到20/10亿 = 2.0e−8,远远小于百万分之一。在这个规模下,任意两个用户的浏览的商品交集都非常非常小,计算得到的相似度往往近似为0,那么传统的基于相似度计算的过滤算法将得不到理想的效果。因此,数据稀疏性问题也是过滤算法面临的一大挑战,一般来说,数据规模越大,数据稀疏性会越大,而能够处理稀疏数据的算法将会有更好的应用。
随着时间的推移,用户的工作生活会不断变化,用户的兴趣爱好也会发生改变,将导致推荐的准确度逐渐下降,这就是用户兴趣漂移问题,这一问题给推荐系统同样带来了很大的挑战。在信息过载和快速迭代的时代,能够有效地识别出用户所发生的兴趣变化对于推荐系统来说非常重要,而未考虑兴趣漂移的推荐系统将会逐渐失去竞争力。
引起用户兴趣变化的主要原因:(1) 随着科学技术的进步和信息量的不断增长,用户会接触到新的领域信息,兴趣可能会变化到不同的领域。(2) 用户由于年龄增长或受到实际生活中不同情况的影响,用户的自身原有的兴趣和关注点会发生改变。(3) 用户兴趣受新闻事件或项目流行度的影响,会随时间、节日和人物的变化而变化。
根据推荐方式的不同,传统的推荐算法主要分为三类:基于内容的推荐算法(Content-Based, CB)、协同过滤推荐算法(Collaborative Filtering, CF)和混合推荐算法。其中,协同过滤算法又可分为基于记忆的协同过滤算法(memory-based)和基于模型的协同过滤算法(model-based)。基于记忆的协同过滤算法包括基于用户的协同过滤算法(User-based Collaborative Filtering, UserCF) [
图1. 推荐算法分类
基于内容的推荐算法充分利用用户的个人资料和项目的特征来生成推荐项,向目标用户推荐与其过去喜欢的内容特征相似的项目 [
基于内容推荐算法的步骤主要有三步:第一步:项目表示。提取项目内容特征来表示项目;第二步:学习用户偏好模型。利用用户过去喜欢(及不喜欢)的项目特征数据,学习用户的偏好模型;第三步:产生推荐列表。通过比较用户偏好模型与候选项目的特征,为用户推荐一组相似度最大的项目。具体过程如图2所示。基于内容推荐的关键就是计算项目内容特征向量之间的相似度,相似度计算的主要通过向量的余弦相似度来表示 [
图2. 基于内容的推荐算法架构
基于内容的推荐又可以分为基于案例的推理技术和基于属性的技术 [
基于内容的推荐系统的主要优点是用户独立性、可解释性,以及可解决项目冷启动问题。然而,随着个人隐私问题越来越受到互联网用户的关注,基于内容的推荐方法收集用户档案变得越来越困难,同时这种方法需要有效的特征提取,传统的浅层模型依赖于人工设计特征,其有效性及可扩展性非常有限,制约了基于内容的推荐方法的性能。由于只依赖于用户过去对某些项目的喜好,所以无法挖掘出用户的潜在兴趣,又新用户没有喜好历史,它还面临着新用户冷启动问题。
协同过滤推荐算法是推荐系统中最流行的推荐算法,它充分利用用户的历史行为数据来生成推荐项,协同过滤是建立在这样的假设基础上的,如果用户X和Y对t个项目进行相似的评分,或者有相似的行为(例如购买、观看、聆听),那么用户就会对其他项目进行类似的评分或行为 [
通常,基于CF推荐系统包含m个用户的列表 U = { u 1 , u 2 , ⋯ , u m } 和n个项目列表 P = { p 1 , p 2 , ⋯ , p n } 。系统构造一个m × n的用户–项目矩阵,其中包含用户对项目的评分,其中每个元素值rij表示用户ui对项目pj给出的评分。CF算法要么预测目标用户a对某个未评分项目q的评分,要么向用户a推荐其最喜欢的Top-N项目列表。CF算法的一般过程如图3所示。
图3. CF算法的一般过程
CF算法主要采用两大类方法来解决推荐生成问题:
1. 基于内存的协同过滤算法
基于内存的CF算法可以使用所有的用户–项目数据或一个样本集来生成预测。每个用户都有一个与其有着相似兴趣的群体,被称为邻居,通过识别新用户(或活动用户)的邻居,可以预测他或她对新项目的偏好。
基于内存的CF算法主要采用基于邻域的协同过滤,步骤如下:计算两个用户或两个项目之间的相似度,相似度反映了用户之间或项目之间的距离或相关性;通过将用户对所有项目所有评分加权平均或将所有用户对项目的所有评分加权平均,也可以使用简单的加权平均 [
UserCF是推荐系统中最古老的算法,它的诞生标志着推荐系统的诞生。UserCF向目标用户推荐与其兴趣相似的用户过去喜欢且目标用户不知道的项目。兴趣相似度计算是通过用户的历史行为的相似度来衡量的。ItemCF是目前业界应用最多的算法,很多推荐算法的基础都是该算法。ItemCF给用户推荐那些和他们之前喜欢的项目相似的项目。不同于基于内容的推荐算法,ItemCF不是利用项目的内容特征计算项目之间的相似度,而是通过分析用户的行为记录计算项目之间的相似度。相似度的计算通常有三种方法:Pearson相关系数、Jaccard相似系数和余弦相似度 [
2. 基于模型的协同过滤算法
不同于基于内存的算法,基于模型的算法是根据已有数据应用统计和机器学习得到模型进行预测。模型的设计和开发(如机器学习、数据挖掘算法等)可以使系统学会根据训练数据识别复杂的模式,然后根据所学习的模型对测试数据或真实数据的协同过滤任务进行智能预测。基于模型的CF算法包括聚类模型、贝叶斯模型、概率模型、最大熵模型和矩阵分解等等。
基于聚类模型的推荐算法通常将聚类作为一个中间步骤,利用聚类的结果进行进一步的分析或处理,以执行分类或其他任务。聚类CF模型可以有不同方式的应用。比如,O’Connor和Herlocker [
基于矩阵分解的协同过滤算法是近年来协同过滤算法中一种非常著名的方法,是一种基于潜在变量分解和降维的无监督学习方法。矩阵分解模型将用户和项目映射到维数为d的联合潜在因子空间,将用户与项目的交互结果建模为该空间的内积 [
r u i = q i T p u (1)
矩阵分解是一种发现数据背后隐藏结构的强大技术,是一种非常精确的降维方法。常用的分解模型主要有:奇异值分解(Singular Value Decomposition, SVD)、主成分分析(Principal Component Analysis, PCA)、概率矩阵分解(Probabilistic Matrix Factorization, PMF)、非负矩阵分解(Probabilistic Matrix Factorization, PMF) [
协同过滤算法是目前最流行的推荐技术,不仅可以发现用户潜在的兴趣偏好,具有推荐新信息的能力,还能解决基于内容推荐中一些项目难以进行内容分析的问题,如:电影、音乐、艺术品等。
每种方法都有各自的局限性,没有一种方法可以独领风骚,它们在各自的领域表现出来的效果也各有千秋,于是在实际的应用中,通常根据实际情况将各种算法混合在一起使用,所以就有了混合推荐技术。混合推荐技术融合了基于内容的过滤和协同过滤算法中两种或两种以上推荐技术的特点,从而利用每种技术的优势,提高性能。混合推荐技术非常有用,因为它可以克服传统推荐方法的大多数限制,将它们组合起来以获得更好的结果。混合推荐技术的方法有很多:加权型、切换型、交叉型、特征组合型、瀑布型、特征递增型、元层次型。
加权型:输出是由多种不同推荐方法加权组合而成。
切换型:根据问题背景和实际情况采用不同的推荐技术。
交叉型:同时采用多种推荐技术给出多种推荐结果,为用户提供参考。
瀑布型:后一个推荐方法优化前一个推荐方法:它是一个分阶段的过程,首先用一种推荐技术产生一个较为粗略的候选结果,在此基础上使用第二种推荐技术对其做出进一步精确地推荐。
特征组合型:将来自不同推荐数据源的特征组合起来,由另一种推荐技术采用。
特征递增型:将一种方法的推荐输出作为另一种方法的输入。
元层次型:用一种推荐方法产生的模型作为另一种推荐方法的输入。
近年来,随着以深度学习为核心的认知智能技术快速兴起和发展,对深度学习的研究取得爆炸式的增长,深度学习已在语音识别、图像处理、自然语言处理等领域取得了突破性的进展和丰富的成果,深度学习在推荐任务中的应用也受到国际学术界和工业界越来越多的关注。推荐系统国际会议(ACM RecSys)自2016年起定期举办基于深度学习的推荐系统研讨会,国内外许多大学和研究机构也对基于深度学习的推荐系统开展了广泛研究。深度学习给推荐体系结构带来了革命性的变化,为提高推荐者的性能带来了更多的机会。基于深度学习的推荐系统克服了传统模型的局限性,实现了高质量推荐,受到了人们的广泛关注。
大多数推荐模型都将推荐过程看作静态过程,这使得捕获用户的时间意图和及时响应变得困难。近年来,强化学习在个性化推荐方面开始受到关注 [
近年来,由于受深度学习研究的影响,注意力机制得到了广泛应用和更深入研究,如在图像处理、语音识别、视频识别、自然语言处理等领域都取得了很好的效果 [
推荐结果的可解释性是指在为用户提供推荐的同时,给出推荐的理由。推荐系统的目的是为用户推荐其可能会感兴趣的项目,然后通过算法推荐达到节省用户时间、提升用户满意度、为公司创造更多的商业价值的目的。要想达到这个目的就需要让用户信任推荐系统,只有信任了,用户才会经常使用推荐系统。那么如何让用户信任呢?一种比较好的方法是为用户推荐项目的同时给用户提供推荐的理由,向用户解释清楚是基于什么原因给他推荐的。因此,最近几年越来越多的推荐算法开始注重推荐结果的可解释性,希望能与用户产生沟通交流,直接增强用户体验,间接地增强推荐效果 [
学者们已在该领域做了大量工作 [
对于推荐系统来说,推荐准确率是评价推荐质量最重要的指标,并且在Netflix Prize大赛中,推荐准确率是作为评价算法优劣的唯一标准 [
推荐系统作为大数据时代信息过载解决的有效手段,受到学术界和工业界的极大关注。本文总结了推荐系统面临的三大挑战,对目前的推荐算法进行了分类,介绍了几类经典的推荐算法,并对推荐系统未来的研究热点做了总结和预测。虽然现有的工作已经为深入地开展推荐系统研究奠定了坚实的基础,仍然还有很多问题没有彻底解决,且这些问题对该领域的发展至关重要。除了本文总结的三大挑战,还有系统的可扩展性、系统的脆弱性、大数据处理与增量计算等。并且随着用户对推荐系统的要求不断提高,个性化推荐系统也需要更加的精确化、智能化和人性化。
国家自然科学基金(61773399)。
周春华,沈建京,李 艳,郭晓峰. 经典推荐算法研究综述Review of Classical Recommendation Algorithms[J]. 计算机科学与应用, 2019, 09(09): 1803-1813. https://doi.org/10.12677/CSA.2019.99202