现有的推荐系统及优缺点
《推荐系统调研报告及综述》 张永峰 清华大学计算机系人工智能研究所
什么是推荐系统
以满足不同用户的不同推荐需求为目的,不同人可以获得不同推荐为重要特征的个性化推荐系统
推荐系统的输入和输出
输入:用户(User)、物品(Item)、评价(Review)
输出: 推荐列表、(推荐理由)
User Profile: 1. 性别、年龄、职业等 2. 将User所有打过分的Item Profile的每一项进行加权平均,得到一个综合的Profile
核心问题:预测和推荐(排序)
典型推荐算法概述及优缺点
一、 基于人口统计学的推荐
当我们需要对一个User进行个性化推荐时,利用第一种User Profile计算其他用户与其之间的相似度,然后挑选出与其最相似的前K个用户,之后利用这些用户的购买和打分信息进行推荐。
优点:计算简单,User Profile相对固定,用户相似度计算可线下完成,便于实现实时响应。
缺点: 计算可信度比较低(即使性别、年龄相似,也可能有截然不同的喜好);推荐结果的可解释性不足,难以让用户信服。
二、 基于内容的推荐
构建User Profile,例如将该User曾经打过份的所有Item的Item Profile做一个加权平均,作为该User的profile。计算该用户未尝试过的Item与该用户的User Profile之间的相似度,并按照相似度由大到小的顺序生成推荐列表。
优点:对新加入的物品没有冷启动(Cold-Start)的问题,不受打分数据稀疏的限制;推荐结果具有较好的可解释性(该物品与你之前曾喜欢过的某物品相似)
缺点: 系统需要复杂的模块甚至手工来预处理物品信息以得到能够代表它们的特征,受信息获取技术的制约,处理对象复杂性高;这种方法无法获取用户并不熟悉但是具有潜在兴趣的物品;可扩展性不好,需要针对不同的领域构建几乎完全不同的Profile。
三、基于协同过滤的推荐
(一)、 memory-based推荐
1、 基于用户的推荐(User-Based)
第一步是执行最近邻搜索(相似偏好),把每一个User看成一个行向量,计算其他所有的User行向量与他的相似度。(Pearson相关性系数、余弦相似度等),选取与该用户相似度最高的前K个用户。推荐方法有两种:Top-N推荐和关联推荐
优点: 在数据集完善、内容丰富的条件下,能够获得较高的准确率,而且能避开Item Profile上的挖掘进行推荐,能够对物品的关联性、用户的偏好进行隐式透明的挖掘。
缺点: 随着系统用户数量的增大,计算Top-K Relevance User的时间会显著增长,使得该方法难以胜任用户量变化巨大的系统;新用户加入,打分记录很少,难以准确计算Top-K Relevance User.
2、基于物品的推荐( Item-Based)
Item-Based 方法是亚马逊网络商城的专利算法。第一步执行临近搜索,把每一个Item看成一个列向量,对于一个Item,我们计算其他所有的Item列向量与它的相似度。有了Item之间的两两相似度之后,就可以进行预测和推荐了。
优点: 计算简单,容易实现实时响应。由于Item被打分的变化剧烈程度低,,因此 Item 相似度的计算一般可以采用离线完成、定期更新的方式,从而减少了线上计算;可解释性好。
缺点: :以物品为基础的系统过滤较少考虑用户之间的差别,因此精
度较 User-Based 方法稍微逊色一点;还有数据稀疏性(Sparsity)和冷启动(Cold-Start)的问题。
(二)、基于模型的推荐(Model-Based Recommendation)
User-Based 或 Item-Based 方法共有的缺点是资料稀疏,难以处理大数据量下的即时结果,因此发展出以模型为基础的协同过滤技术:先用历史数据训练得到一个模型,再用此模型进行预测。
优点: 快速响应,只要训练出了模型,就可以对新用户或新物品进行实时快速计算。
缺点: 问题在于如何将用户实时或者近期新增的喜好信息反馈给训练好的模型,从而提高推荐的准确度,也就是模型的增量训练问题。
(三)、混合型推荐方法(Hybrid-Based Recommendation)
指将多种推荐技术进行混合相互弥补缺点,从而可以获得更好的推荐效果。最常见的是将协同过滤技术和其他技术相结合,以克服
Cold-Start 的问题。
常见混合方法:
加权融合(Weighted):将多种推荐技术的计算结果加权混合产生推荐。
切换(Switch):根据问题背景和实际情况采用不同的推荐技术。
混合(Mix):将多种不同的推荐算法推荐出来的结果混合在一起,其难点是如何重排序。
特征组合(Feature Combination):将来自不同推荐数据源的特征组合起来,由另一种推荐技术采用。
级联型(Cascade):用后一个推荐方法优化前一个推荐方法。
特征递增(Feature Augmentation):前一个推荐方法的输出作为后一个推荐方法的输入,它与级联型的不同之处在于,这种方法上一级产生的并不是直接的推荐结果,而是为下一级的推荐提供某些特征。
元层次混合(Meta-level hybrid):将不同的推荐模型在模型层面上进行深度的融合,而不仅仅是把一个输出结果作为另一个的输入。