1.简介
个性化推荐是解决信息超载问题最有效的工具之一。本文对经典的个性化推荐算法做了简单的介绍,并且讨论了这些算法的优缺点。本文主要介绍了:协同过滤系统;基于内容的推荐系统;混合推荐系统以及基于用户——产品二部图网络结构的推荐系统。
2.推荐系统简介
一个完整的推荐系统由 3 个部分组成:收集用户信息的行为记录模块, 分析用户喜好的模型分析模块和推荐算法模块。行为记录模块负责记录用户的喜好行为,例如问答、评分、购买、下载、浏览等,问答和打分的信息相对好收集,然而有的用户不愿意向系统提供这些信息, 那么就需要通过其他方式对用户的行为进行分析,例如购买、下载、浏览等行为;通过这些用户的行为记录分析用户的潜在喜好产品和喜欢程度,这就是模型分析模块要完成的工作;模型分析模块的功能能够对用户的行为记录进行分析,建立合适的模型来描述用户的喜好信息。最后是推荐算法模块, 利用后台的推荐算法,实时地从产品集合中筛选出用户感兴趣的产品进行推荐。其中,推荐算法模块是推荐系统中最为核心的部分.。
3.协同过滤系统
协同过滤系统是第一代被提出并得到广泛应用的推荐系统。其核心思想可以分为两部分:首先,是利用用户的历史信息计算用户之间的相似性;然后,利用与目标用户相似性较高的邻居对其他产品的评价来预测目标用户对特定产品的喜好程度。系统根据这一喜好程度来对目标用户进行推荐。
协同过滤推荐系统的算法可以分为两类:基于记忆的和基于模型的算法 。其中,基于记忆的算法根据系统中所有被打过分的产品信息进行预测。基于模型的算法是收集打分数据进行学习并推断用户行为模型,进而对某个产品进行预测打分;基于模型的协同过滤算法和基于记忆的算法的不同在于, 基于模型的方法不是基于一些启发规则进行预测计算, 而是基于对已有数据应用统计和机器学习得到的模型进行预测;基于模型的协同过滤推荐系统有概率相关模型,极大熵模型,线性回归,基于聚类的 Gibbs 抽样算法,Bayes 模型等等。
协同过滤系统有以下的优点:(1)具有推荐新信息的能力,可以发现用户潜在的但自己尚未觉察的兴趣偏好。(2)能够推荐艺术品、音乐、电影等难以进行内容分析的产品。
它也面临很多问题:(1)如何对新用户进行推荐或如何推荐新产品给用户(冷启动问题);(2)打分稀疏性问题;(3)算法可扩展性问题;(4)随着用户数量的增多,计算量成线性加大,其性能会越来越差。
4.基于内容的推荐系统
最初的基于内容的推荐是协同过滤技术的延续与发展,它不需要依据用户对项目的评价意见,而是依据用户已经选择的产品内容信息计算用户之间的相似性,进而进行相应的推荐。随着机器学习等技术的完善,现在的基于内容的推荐系统可以分别对用户和产品建立配置文件,通过分析已经购买(或浏览) 过的内容,建立或更新用户的配置文件。系统可以比较用户与产品配置文件的相似度,并直接向用户推荐与其配置文件最相似的产品。基于内容的推荐算法的根本在于信息获取和信息过滤,因为在文本信息获取与过滤方面的研究较为成熟,现有很多基于内容的推荐系统都是通过分析产品的文本信息进行推荐。
基于内容推荐的优点有:(1)可以处理新用户和新产品问题(冷启动)。由于新用户没有选择信息,新产品没有被选信息,因此协同过滤推荐系统无法处理这类问题。但是基于内容的推荐系统可以根据用户和产品的配置文件 进行相应的推荐。(2)实际系统中用户对产品的打分信息非常少,协同过滤系统由于打分稀疏性的问题,受到很大的限制。基于内容的推荐系统可以不受打分稀疏性问题的约束。(3)能推荐新出现的产品和非流行的产品,能够发现隐藏的“暗信息”。 (4)通过列出推荐项目的内容特征,可以解释为什么推荐这些产品,使用户在使用系统的时候具有很好的用户体验。
5.基于网络结构的推荐算法
基于网络结构的推荐算法不考虑用户和产品的内容特征,而仅仅把它们看成抽象的节点,所有算法利用的信息都藏在用户和产品的选择关系之中。
5.1 基于二部分图资源分配的推荐算法
考虑一个由个用户和个产品构成的推荐系统,其中如果用户选择过产品, 就在和之间连接一条边,否则。由此, 这个系统可以用一个具有个节点的二部分图表示。对于任意目标用户,推荐算法的目的是把所有没有选择过的产品按照喜欢的程度进行排序,并且把排名靠前的那些产品推荐给。
在该推荐算法中,要提高算法的准确性有以下几种方法: 在同样的用户喜好程度下,推荐的产品度越小越好;可以通过去除重复属性获得高精确度的算法 ;可以通过引入耦合阈值提高算法精确性并降低算法复杂性。
5.2 基于传播的用户相似性度量
传统的协同过滤算法是利用皮尔逊系数来计算用户相似度,这里基于传播的用户相似性度量算法的主要思想是利用资源分配原理计算用户之间的相似性,进而利用协同过滤算法向用户进行个性化推荐。这里假设所有产品的贡献是一样的,也就是说被1000个人选中和被1个人选中的产品的影响力是一样的(同一个产品)。这个算法验证了产品的度信息确实影响了推荐的准确率,降低大度节点的影响力有利于提高推荐的准确度。
6.混合推荐系统
协同过滤,基于内容,以及基于网络结构的推荐算法在投入实际运营的时候都有各自的缺陷,因此实际的推荐系统大多把不同的推荐算法进行结合,提出了混合推荐算法。
6.1 独立系统相互结合的推荐系统
建立混合推荐系统的方法之一即是独立地应用协同过滤、基于内容和基于网络结构的算法进行推荐;然后将两种或多种系统的推荐结果结合起来,利用预测打分的线性组合进行推荐;又或者,只推荐某一时刻在某一个评价指标下表现更好的算法的结果。
6.2 在协同过滤系统中加入基于内容的算法
该算法是利用用户的配置文件进传统的协同过滤计算;用户的相似度通过基于内容的配置文件计算而得,而非共同打过分的产品的信息;这样可以克服协同过滤系统中的稀疏性问题;这个方法的另一个好处就是不仅仅当产品被配置文件相似的用户打了分才能被推荐,如果产品与用户的配置文件很相似也会被直接推荐。
7.其他推荐算法
(1)关联规则分析:关联规则关注用户行为的关联模式。例如,购买香烟的人大都会购买打火机,因此可以在香烟和打火机之间 建立关联关系,通过这种关联关系向用户推荐其他产品。
(2)基于社会网络分析的推荐算法:利用用户的购买行为建立用户对产品的偏好相似性,并依此向用户推荐产品并预测产品的出售情况,从而增加用户的黏着性。
8.结论
本文主要介绍的协同过滤系统,基于内容的推荐系统,混合推荐系统以及基于用户—产品二部图网络结构的推荐系统。其中协同过滤算法和基于网络结构的算法都存在冷启动问题,无法对新用户和新产品进行推荐。基于内容的推荐算法对获取的数据要求较高,无法处理多媒体数据。
注:本篇总结简要概括了本论文所介绍的推荐算法。原文中的介绍更加详细,可点击论文链接参考学习。