推荐算法综述

来源:互联网 发布:linux防火墙关闭 编辑:程序博客网 时间:2024/06/05 17:07

推荐算法综述


摘  要: 近年来,互联网信息指数级增长,推荐能够帮助用户发现感兴趣的物品,目前被广泛应用于电子商务、搜索引擎、视频音乐网站、社交网络等。本篇综述将介绍目前主流的推荐方法如基于内容的推荐、协同过滤推荐、基于知识的推荐、基于网络结构的推荐、混合推荐等。除此之外本综述还将介绍深度学习在推荐中的一些应用。并且分析这些算法各自的优缺点。最后总结了目前面临的主要问题。

关键词: 推荐算法,协同过滤,深度学习,数据挖掘

 

0      引言

       在日常生活中,人们经常通过他人口头推荐、新闻媒体报道、调查报告、旅游指南等作出相应的决定。推荐系统则帮助更好地实现这个自然的社会过程,帮助人们筛选书籍、文章、网页、电影、音乐、餐馆、笑话、食品、杂货等等,从而为他们找到最有趣和最有价值的信息[1]。

推荐系统可以被定义为一种程序,它通过对某项产品的相关信息、用户以及项目和用户之间的交互来预测用户的兴趣,从而向特定用户(个人或企业)推荐最适合的项目(产品或服务) [2]。推荐主要目标是从海量信息中选出相关信息从而解决信息过载问题。推荐系统最重要的功能是通过分析用户的行为和其他用户的行为来生成个性化的推荐,从而“猜测”用户的偏好和兴趣 [3]。

以下将简要介绍目前主流的推荐算法如基于内容的推荐、基于协同过滤推荐、基于知识的推荐、基于网络结构的推荐、混合推荐等,也介绍了利用深度学习做推荐的应用。最后提出目前还存在的一些问题。

1         基于内容的推荐算法

       基于内容的推荐系统分析项目描述,以识别对用户特别感兴趣的项目[4],从而推荐给定用户过去喜欢的相似物品。基于内容推荐的基本原则是:1)分析特定用户首选项的描述,以确定可用于区分这些项的主要公共属性(首选项)。这些首选项存储在用户偏好文件中。2)将每个条目的属性与用户概要进行比较,以便只推荐与用户概要具有高度相似性的项目[4]。

 

1.1     基于TF-IDF的推荐

    TF-IDF[5]是一种统计方法,用以评估某一个字词对于一个文件集或者一个语料库中的其中一份文件

的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时也会随着它在语料库中出现的频率成反比下降。即一个词语在一篇文章中出现的次数越多,同时在所有文档中出现的次数越少,越能代表该文章。其中TF指的是某一词语在该文件中出现的次数。这个数字经常被归一化,以防止它偏向长的文章。IDF的主要思想为如果包含某词条的文档越少,IDF越大,则说明词条具有很好的区分能力。

该推荐将文档表示n维空间的向量,每一维对应给定文档词汇表中的一个词。形式上,每篇文档被表示成词权重的向量,由TF-IDF算出其权重。然后用余弦相似度计算方法计算项目文档与用户偏好文件的相似度,从而预测用户对某一特定物品的兴趣。

1.2  基于隐含语义分析的推荐

    关键词的同义和多义现象会导致上述方法的文档相似度计算不准确。针对该问题,提出了隐含语义分析方法[6]。其基本思想是将原始的向量空间通过奇异值分解投影到低维的正交矩阵,从而转换到潜在的语义空间。其基本方法为将一个M*N维词条-文档矩阵进行奇异值分解,取前k个最大的奇异值与其对应的奇异矢量构成新的矩阵来近似替代原来的矩阵。由于矩阵奇异值分解计算量非常大,又提出了概率潜在语义分析模型[7],该模型通过计算文档中共现词的分布分析文档的语义从而克服LSA模型的不足。

2         协同过滤推荐算法

协同过滤(CF)推荐算法是根据相似用户的兴趣爱好推荐物品给用户,从而帮助用户更好地做决定[8]。协同过滤算法分为两类:基于记忆方法,基于模型方法。其中基于记忆的方法又分为基于用户和基于项目两种。基于模型的方法则采用数据挖掘和机器学习等方法,根据目标用户的历史数据构造出合适的模型,根据该模型来推荐。

2.1     基于记忆的协同过滤算法

基于记忆的协同过滤算法使用全部或者一些用户项数据库来生成一个预测。每个用户都是一群有着相似兴趣的人的一部分。通过识别活动用户的所谓邻居,可以生成对新条目的偏好预测[1]。在基于用户的协同过滤算法中,用户将收到类似用户喜欢的项目的推荐。在基于项目的协调过滤算法中用户将收到与过去相似的项目的推荐。用户或项目之间的相似性可以通过皮尔逊相似度[9],余弦相似度等方法来计算。在采用上述方法时,只有对同一样物品打分的用户才被考虑进去。当收到非常少量的评价的条目与其他条目高度相似性时,这就会影响相似性的准确性。为了提高相似度的准确性,通过将调整后的余弦方法与杰卡德相似系数通过加权的方式相结合,提出了一种增强的基于项目的协调过滤方法10]。为了解决基于单一评级的方法的缺点,多标准协作的过滤技术得到了很好地发展[11]。

2.2     基于模型的协同过滤算法

在基于模型的协调过滤算法中,推荐被看成分类或者预测。可以采用机器学习、数据挖掘的算法让系统通过训练历史数据来识别复杂的模型,然后根据学习到的模型对测试数据或者真实数据进行智能预测。该算法常用的模型有贝叶斯分类、聚类、线性回归、马尔科夫决策过程等。采用该方法可以在一定程度上解决用户-项目评分矩阵的稀疏性问题。

2.2.1基于贝叶斯分类的推荐算法

    贝叶斯分类器在基于模型的推荐系统中很受欢迎,它是解决分类问题的一种概率方法。把推荐问题看成一个分类问题。例如在用户给物品打分例子中,现在可以把具体打几分看成一个类。通过历史数据训练得到贝叶斯分类器,然后就可以将该用户的特征输入到模型中,模型则会算出该用户对该商品的打分,从而实现推荐。

2.2.2基于聚类的推荐算法

     聚类是将项聚成几个不同的簇,在同一簇内的项比不在同一簇内项更相似。聚类可以减少查找最近邻居的计算成本。薛等人[12]提出了在推荐系统中使用聚类的典型方法。该方法用来平滑个别用户未分级的数据,可以用来自同一簇的数据预测在该簇却没分级的项。此外,假设最近的邻居也应该在N个最相似的活跃用户簇中,只有这N个才会被选中,这使得系统能够进行可伸缩[10]。聚类技术也用于通过分组项来解决推荐系统中的冷启动问题[13]。也有团队使用了聚类算法来识别和解决灰羊问题[14]。

2.2.3基于线性回归的推荐算法

在某些情况下,两个向量在欧氏距离上可能是很大,但是它们在使用余弦或皮尔逊相似度来计算时却很相似,这时基于记忆的协同过滤算法并不合适,需要更好的解决方案。此外,在现实生活推荐系统中,数字评分也很常见,因此对数字值进行预测的回归方法有助于解决这些问题[1]。

在该方法中,可以根据用户的历史数据,采用线性回归的方法为用户建立线性预测模型。在建立模型的过程中,采用梯度下降算法更新优化各个属性的权重。由于线性回归模型也是基于用户-项目矩阵,受矩阵稀疏性、噪音等影响大,故可采用奇异值分解的方法进行数据预处理,从而一定程度上解决数据稀疏性问题。

2.2.4基于马尔科夫决策过程的推荐算法

    基于马尔科夫决策过程的协同过滤算法并没有将推荐视为一个预测问题,沙尼等人[15]将其视为一个连续的优化问题,并将马尔科夫决策过程(MDPs)模型用于推荐系统。一个MDP模型可以定义为4元组(S,A,R,Pr),S表示由项目序列构成的状态集,A表示动作集,每一个动作是向用户推荐某个项目,R表示对每种状态、动作的奖励函数,Pr是每个状态之间的状态转移概率。一个MDP最优策略就是最大化其收益。从初始方法  =   R(s,a),根据前一次动作计算回报函数的值,然后每一步用最新的回报更新方针,迭代收敛到一个最优策略[16,17]。以此方式产生收益最大化的推荐列表。

3         基于知识的推荐算法

基于知识的推荐算法利用用户的显式需求,以及产品领域的深度知识来计算推荐,并通过这两种方式来解决一些产品交易不频繁导致评分数据少以及过时的问题[18]。该方法与协同过滤和基于内容的方法相比没有冷启动问题,因为在每一次推荐的会话中,推荐的需求都是被直接引出。但也有知识获取困难,知识整理花费成本高等问题。

3.1     基于约束的推荐算法

       基于约束的推荐方法利用预先定义的推荐知识库显式地定义约束(过滤器约束、兼容性约束等),把推荐任务看作是解决一个约束满足问题的过程,满足约束的候选项(产品)就推荐给用户。基于约束的推荐方法通常被用来为那些不经常被购买并且十分复杂的产品构建推荐系统,例如专业设备、金融服务、电子政务服务等。其推荐知识库通常定义为两组变量的集合:( )和三个不同的约束的集合:( )。其中客户特性 描述了客户可能的需求,产品特性 描述了一个给定产品种类的特性,约束 是对客户需求可能的实例化的系统约束,过滤条件 定义了潜在客户需求和特定产品种类的关系,产品 表示产品特性在可允许范围内的实例。这些变量和约束就是约束满足问题的主要成分[19]。一个约束满足问题的解决方案包括所有的变量具体实例化以及所有特定的约束得以满足。

3.2     基于样例的推荐算法

    基于样例的推荐将推荐视为一种评估问题[18]。它是知识库推荐技术的一种常见方式,在这种技术中,基于样例的推荐系统将项目描述为案例,并通过检索与用户的查询或概要文件最相似的样例来生成推荐[20]。很多基于样例推荐应用程序都支持用户评论接口,用户可以评论出产品与他们预期的差值,比如,一个以传统食物为特色的餐厅的用户可能会评论“应该更具有创造性”并且期望获得更现代的烹饪风格[21]。这样的接口有一个优势,即允许用户动态地提出需求来响应示例。

4         基于网络结构的推荐算法

       基于网络结构的推荐算法不考虑用户和项目的内容特征,而仅仅把他们看成抽象的节点[22]。当用户

对项目的有某种行为(选择、购买、浏览等)时,用户和项目之间就发生了某种联系。算法利用的信息就隐藏在用户和项目之间的选择关系中,它通过分析用户和项目之间构成的关系网络找到其他没有连接的节点之间的潜在的联系,然后进行个性化推荐。

       周涛、Huang、刘建国、张翼成等人使用二分图模型将物理学理论和网络理论应用于推荐算法中,提出了不同的推荐策略。其中周涛等人提出了一种全新的基于资源动态分配的推荐算法[23]。Huang等人将图的扩散学原理应用于协同过滤算法中,可以部分解决数据稀疏的问题[22]。刘建国等人将资源分配理论应用于基于用户的协同过滤算法中,提出了计算与用户相似的前N项用户的协同过滤算法。张翼成等考虑用户对产品的打分信息,在更复杂的环境下实现了基于热传导和物质扩散的推荐算法。

5  基于深度学习的推荐算法

       在过去的几十年里,在许多应用领域里深度学习(DL)取得了巨大的成功,比如计算机视觉和语音识别。最近,深度学习已经极大地改变了推荐系统架构,并带来了更多的机会,创造了更好地用户体验。基于深度学习的推荐系统最近取得了很大的进步,克服了传统模式的障碍,获得了高质量的推荐。深度学习能够有效地捕获非线性和非平常的用户与项目之间的关系,并支持将更复杂的抽象作为更高层次的数据表示。此外,它还从丰富的可访问的数据源,如上下文、文本和视觉信息等捕获了数据本身中复杂的关系 [24]。

       最近,许多公司为了进一步提高他们的推荐质量采取了深度学习的方法。卡温顿等[25]在YouTube上应用了一种基于神经网络的推荐算法。Cheng等人[26]为谷歌商店推荐系统提出了一个基于深度学习的模型。Shumpei等人为雅虎新闻提出了一种基于循环神经网络的推荐系统。所有这些模型都经受住了在线测试,并比传统模型有了显著的改进。因此,我们可以看到,深度学习在推荐应用领域引发了一场非凡的革命[24]。

6  混合推荐算法

协同过滤推荐是基于用户的历史数据和物品评分进行推荐,对物品的特征和用户的特殊偏好并不了解,而基于内容的推荐刚好可以弥补这一缺点,由此产生了混合推荐系统。混合推荐系统是综合运用了多种推荐算法对物品进行推荐,其中研究最多的是协同过滤方法和基于内容的推荐算法混合。在推荐系统中可以将各种算法并行运行,一起输出最后结果,或者将各个推荐算法顺序运行,一个推荐的输出作为另一个推荐的输入,或者将多种推荐算法整合成一个算法进行推荐。一般来说,算法的混合方式可以以下几种:加权式、切换式、混合式、特征组合式、层叠式、特征递归式、元层次式等[27]

7  推荐算法面临的问题

    推荐算法在实际应用中取得了重大的成功,在各大互联网公司都有着各种应用。但是随着站点内容复杂性和用户数量不断增加,推荐算法也面临一系列挑战。

7.1  数据稀疏性问题

       在一个大的推荐系统中,用户评价过的项目占总项目的比例非常小,这就造成了数据稀疏性问题。

基于用户的推荐算法通过相似度计算找出与目标用户相似度高的用户 ,相似度计算方法基于两个用户对共同项目的评分 ,评分数据的稀疏将导致两者只具有很少的共同评分项目 ,因此为目标用户计算出的最近邻用户不准确.。

7.2  冷启动问题

       冷启动分为用户冷启动和项目冷启动,用户冷启动指当新用户进入推荐系统时,由于用户评分数据少

很难为其推荐。同样的,项目冷启动为当新项目进入推荐系统时,由于项目被很少人评分而不能被正确推荐。

7.3  可扩展性和实时性

       寻找最近邻居的计算量随着用户和项目数量的增加而大大增加。系统需要在毫秒级处理这么多的用户

和项目并推荐,通常会有实时性和可拓展性问题。

7.4  推荐准确性和多样性之间的平衡

       要保证推荐系统的质量就要兼顾推荐准确性、多样性和覆盖率等。而目前大部分算法都是以牺牲多

样性为代价。如何保证推荐准确性的同时提高算法推荐的多样性和新颖性也是目前面临的一个热点问题。

8     总结

       目前协同过滤的推荐算法、基于内容的推荐、混合推荐等几种比较常用的推荐算法已广泛地应用于包

括电子商务在内的各种领域,极大地提升了用户体验。但也存在着不少问题,例如数据稀疏性问题、冷启动问题、可扩展性问题等。随着近几年深度学习的快速发展以及在多领域的应用为推荐系统提供了一种新思路,可能利用深度学习的方法能够解决传统推荐算法中面临的问题。

 

  

 

 

 


参考文献:

  [1]  Su X, Khoshgoftaar T M. Asurvey of collaborative filtering techniques[M]. Hindawi Publishing Corp. 2009.

  [2]  J. Bobadilla, F. Ortega, A.Hernando, A. Gutiérrez, Recommender systems survey, Knowledge-Based Systems, 46(2013) 109-132.

 [3]   P. Resnick, H.R. Varian, Recommender systems, Communications of theACM, 40 (1997) 56-58.

 [4]   M. Pazzani, D. Billsus, Content-based recommendation systems, in: P.Brusilovsky, A. Kobsa, W. Nejdl (Eds.) The Adaptive Web, Springer BerlinHeidelberg2007, pp. 325-341.

 [5]   Salton G. Automatic text processing[M]. Addison-Wesley LongmanPublishing Co. Inc. 1989.

 [6]   Deerwester S. Indexing by latent semantic analysis[J]. Journal ofthe Association for Information Science & Technology, 1990, 41(6):391-407.

 [7]   Hofmann T. Unsupervised Learning by Probabilistic Latent SemanticAnalysis[J]. Machine Learning, 2001, 42(1-2):177-196.

 [8]   M. Deshpande, G. Karypis, Item-based top-N recommendationalgorithms, ACM Transactions on Information Systems (TOIS), 22 (2004) 143-177

 [9]   P. Resnick, N. Iacovou, M. Suchak, P. Bergstrom, J. Riedl,GroupLens: an open architecture for collaborative filtering of netnews,  Proceedings of the 1994 ACM Conference onComputer Supported Cooperative Work, ACM, Chapel Hill, North Carolina, USA,1994, pp. 175-186.

[10]  Lu J, Wu D, Mao M, et al.Recommender system application developments[J]. Decision Support Systems, 2015,74(C):12-32.

[11]  M. Nilashi, O.b. Ibrahim, N.Ithnin, Multi-criteria collaborative filtering with high accuracy using higherorder singular value decomposition and Neuro-Fuzzy system, Knowledge-BasedSystems, 60 (2014) 82-101.

[12]  G.-R. Xue, C. Lin, Q. Yang, W.Xi, H.-J. Zeng, Y. Yu, Z. Chen, Scalable collaborative filtering usingcluster-based smoothing,  Proceedings ofthe 28th Annual International ACM SIGIR Conference on Research and Developmentin Information Retrieval, ACM, Salvador, Brazil, 2005, pp. 114-121.

[13]  S.K. Shinde, U. Kulkarni,Hybrid personalized recommender system using centering-bunching basedclustering algorithm, Expert Systems with Applications, 39 (2012) 1381-1387.

[14]  M.A. Ghazanfar, A.Prügel-Bennett, Leveraging clustering approaches to solve the gray-sheep usersproblem in recommender systems, Expert Systems with Applications, 41 (2014)3261-3275.

[15]  G.Shani,D.Heckerman,and R.I.Brafman,“AnMDP-based recommender system,” Journal of Machine Learning Research, vol. 6,pp. 1265–1295, 2005.

[16]  R. A. Howard, DynamicProgramming and Markov Processes, MIT Press, Cambridge, Mass, USA, 1960.

[17]  R. S. Sutton and A. G. Barto,Reinforcement Learning: An Introduction, MIT Press, Cambridge, Mass, USA, 1998.

[18]  Felfernig A, Burke R.Constraint-based recommender systems: technologies and research issues[M].2008.

[19]  Tsang E P K. Foundations ofconstraint satisfaction[M]. DBLP, 1993.

[20]  B. Smyth, Case-basedrecommendation, in: P. Brusilovsky, A. Kobsa, W. Nejdl (Eds.) The Adaptive Web,Springer Berlin Heidelberg2007, pp. 342-376.

[21]  Burke, R., Hammond, K., andYoung, B. 1997. The FindMe Approach to Assisted Browsing. IEEE Expert, 12(4),pages 32-40.

[22]  Huang Z, Zeng D D, Chen H.Analyzing Consumer-Product Graphs: Empirical Findings and Applications inRecommender Systems[J]. Management Science, 2007, 53(7):1146-1164.

[23]  Zhou T, Ren J, Medo M, et al.Bipartite network projection and personal recommendation.[J]. Physical Review EStatistical Nonlinear & Soft Matter Physics, 2007, 76(2):046115.

[24]  Zhang S, Yao L, Sun A. DeepLearning based Recommender System: A Survey and New Perspectives[J]. 2017.

[25]  Paul Covington,Jay Adams,and EmreSargin .2016. Deep neural networks for youtube recommendations.In Proceedingsof the 10th ACM Conference on Recommender Systems.ACM,191–198.

[26]  Cheng H T, Koc L, Harmsen J, etal. Wide & Deep Learning for Recommender Systems[J]. 2016:7-10.

[27]  孟婷婷. 基于社交网络的推荐算法应用研究[D]. 重庆大学, 2015.

 

原创粉丝点击