个性化推荐算法有很多种,这里主要对3类推荐算法进行介绍。
(1)基于协同过滤的推荐算法
基于协同过滤(Collaborative Filtering)算法借鉴了日常生活中“物以类聚,人以群分”的思想,是目前应用最广泛也是最成功的推荐算法。如果和自己关系很好的朋友购买了某种商品,那么自己也很有可能购买这种商品;如果购买者非常喜欢某种商品,那么与该类商品比较类似的商品,这个用户也很有可能购买。协同过滤的主要思想是发现最近邻和计算相似度,通过计算用户间的相似度来发现相似用户群,然后根据目标用户的相似用户群的兴趣、爱好和评价等,对目标用户的评价进行预测并排序,把排在前N个的项目推荐给目标用户。根据在计算相似度时,过滤的方式不同,协同过滤算法可以分为:基于用户的协同过滤(User-based Collaborative Filtering)和基于项目的协同过滤(Item-based Collaborative Filtering)。
1)基于用户的协同过滤
基于用户的协同过滤也称为“启发式/内存式”方法,主要是通过所有用户的偏好、评分等数据来计算用户间的相似度,然后根据相似度的高低找到与目标用户最相似的前k个用户作为其最近邻用户群,用该最近邻用户群的历史评分数据来预测目标用户对未曾发现的每一个物品的可能评分,根据一定的原则对评分物品进行排序形成物品列表,并将物品列表推荐给目标用户。该推荐方法主要基于两个假设:一是相似用户具有相似的购买行为;二是用户的偏好在一段时间内具有一致性和稳定性。基于用户的协同过滤原理,如图2.2所示。
图2.2 基于用户的协同过滤原理
Fig.2.2 The principle of User-based collaborative filtering
2)基于项目的协同过滤
随着互联网和电子商务的飞速发展,数以万计的用户和项目数据需要被计算,计算用户间的相似度变得越来越困难,特别是对实时性要求较高的场景,计算大量的潜在最近邻用户需要付出很高的时间代价,并且计算复杂度与用户数量的平方成正比。因此,基于用户的协同过滤技术基本不适合应用到大型的电子商务网站中。并且用户间的相似性在不同的时间、地点、心情等条件下也在不断地变化,但是项目间的相似性具有一定的稳定性,此时基于项目的协同过滤应运而生,它更适合离线处理,大大提升了算法的扩展性。该方法与基于用户的协同过滤很相似,它是基于项目的相似度进行推荐,认为如果用户喜欢某一类项目,那么与其所喜欢的项目集中类似的项目应该有类似的评分,所以该方法是通过项目来寻找目标用户的类似用户。该方法的目的主要是解决协同过滤算法的扩展性和精确性问题,其原理如图2.3所示。
图2.3 基于项目的协同过滤原理
Fig.2.3 The principle of Item-based collaborative filtering
基于协同过滤的推荐算法得到广泛的应用与其自身的优点紧密相连。首先,它可以用于非结构化的项目中,例如视频、音乐、图书、艺术品等结构比较复杂,内容难以分析的项目,并且也可以很好发现用户的新兴趣;其次,能有效发现内容上完全不相似的项目,关于推荐的内容,用户事先也无法预知。同时,协同过滤算法会随着用户数量的增加,其推荐性能也在不断地提升,并且是以用户为中心自动推荐,不需要专业的知识。(www.xing528.com)
但是,基于协同过滤的推荐算法也存在一些不足:第一,冷启动问题。对于新用户,因为没有该用户的兴趣和爱好等行为信息,不能为该用户进行正确的项目推荐;对于新项目,由于没有任何用户关于该项目的评分信息,因此无法将该项目推荐给其他用户。第二,稀疏性问题。在实际问题中涉及的用户数量和需要推荐的项目数量都非常大,每一个用户涉及的项目也很有限,造成用户对项目的评分也很有限,形成的评分矩阵也非常稀疏,这样通过计算相似度寻找目标用户相当困难,最终使得推荐性能的降低。
(2)基于内容的推荐算法
基于内容(Content-based)推荐的本质是信息检索技术和信息过滤技术,它通过对用户已选择项目的信息进行分析,获得用户与项目间的偏好关系,从而向用户推荐项目。该算法不是根据用户对项目的评分信息来计算相似度,而是对用户选择的项目信息进行分析(该过程可以形成“配置文件”),然后计算将要推荐的项目和已选择的项目,即计算“配置文件”间的相似性,从而完成推荐。显然在计算相似度前,首先是提取项目的特征描述和用户的兴趣描述,即建立“配置文件”。关于项目特征描述的建立,有很多方法,例如贝叶斯模型、空间向量模型和神经网络模型等;用户的兴趣描述是关于用户对感兴趣项目的描述,并根据这些描述得到用户的兴趣和爱好。所以基于内容推荐的难点是建立“配置文件”。特别对于视频和音频文件,提取其唯一的标示非常困难,建立“配置文件”也非常困难;而对于文本文件,非常容易处理,所以当前很多基于内容的推荐都是对项目的描述进行分析来获得“配置文件”。其推荐原理,如图2.4所示。
图2.4 基于内容推荐的原理
Fig.2.4 The principle of Content-based Recommender
基于内容推荐的算法不关心用户间的关系,对于每个用户都互相独立。在推荐过程中,可以根据用户的反馈信息,进一步提升推荐算法的推荐效果。它主要是面向大规模和超大规模的海量数据,一般这些数据都是半结构化或无结构化,同时提取“配置文件”的过程是对这些文本数据进行处理的过程,并且在推荐过程中过滤掉冗余的信息,从而将符合用户兴趣的项目推荐给用户。
基于内容的推荐系统可以与基于协同过滤的推荐系统进行优点互补。首先,不存在冷启动和数据稀疏性问题。该方法不依赖用户对项目的评分,而靠的是对项目信息的特征描述,并且具有简单、有效等优点,不存在冷启动和数据稀疏性问题。其次,可以很好地推荐新项目。该方法主要依靠对项目特征描述的分析,对新项目可以很好的处理;但是对于新用户,该系统将无能为力。再次,用户的体验度更好。该方法是根据用户对项目描述的分析,得到用户的兴趣和偏好,进而实现个性化的推荐,同时该方法产生的推荐结果具有易懂、易理解和直观等特点。当然,基于内容的推荐系统也存在如下缺点:
①基于内容推荐的核心是对象特征的提取,对于音频、视频等比较复杂且难以分析的文件,无法准确地提取对应的特征,或提取的特征不完备、不精确,这样将会影响推荐的效果。
②基于内容的推荐是根据用户对喜欢项目的特征描述来计算未知项目的相似度,用于计算的特征描述都是用户已知的。此外,在推荐时,只有项目的特征与用户的兴趣爱好匹配时才能推荐,因此,该方法难以发现用户的新兴趣和新爱好。
(3)混合推荐算法
对前面介绍的推荐技术分析,可以发现每种算法都具有各自的优缺点。为了能够发挥各种推荐算法的优点,并尽可能地完善其缺点,在实际应用中往往把多种推荐算法结合起来,形成混合推荐算法。常用的混合推荐技术有基于算法混合的推荐算法和基于推荐结果的混合推荐算法两种。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。