传统的推荐算法分为三大类:
1、基于内容的推荐(Content Based,CB),基于用户特征属性和item的特征之间的匹配程度来做推荐,推荐效果强依赖于特征工程的好坏。
- 好处是用户独立性,不需要协同考虑其他用户特征,这也意味着一个缺点就是可供我们分析的内容有限。
- 再一个好处是没与用户互动(评分、购买、加购物车等)过的新的item也可以被推荐。
- 最大的缺点是过度特化,推荐的items没有创新性和惊喜。
2、协同过滤(CF),利用的信息是用户和item之间的互动信息(多用的是用户评分矩阵),CF在评分矩阵信息较为稠密的时候表现好于CB,并且CF可以捕捉到一些复杂的难以表达的信息;在实际应用中CF经常会产生意外的惊喜的推荐,这一点也暗示着CF方法不适合做公共基金推荐等严肃的推荐任务(因为CF主要基于稀疏的、不完整的数据做推荐);再一个CF存在冷启动问题。
CF分为:
(1)Memory based rec,基于记忆的推荐又可以分为:基于用户的推荐和基于item的推荐。
基于用户的推荐:给目标用户做推荐时考虑与其最相似的N个用户的喜好信息,这一类方法有一个潜在的假设就是说如果两个用户过去有相似的偏好,那么他们未来也有相似的偏好,用户偏好不随时间变化。
基于item的推荐,有两种,以电影推荐为例:一种是如果用户看过电影A,直接将与A相似的电影推荐给该用户;再一种是根据用户看过的电影与A的相似度来决定。
基于item的推荐更常用,因为:
1) User-based 方法随着用户数量的不断增多,“最近邻用户搜索”会成为整个算法的瓶颈。Item-based 方法通过计算items之间的相似性来代替用户之间的相似性。对于items来讲,它们之间的相似性要稳定很多,因此可以离线进行相似性计算步骤,提高推荐效率。
2)同一个item得到的评分比较类似,分布较稳定,而一个用户对不同items的评分方差却很大。
3)一个item的属性特征变化不大,而用户画像变化频繁,兴趣经常变化。
(2)Model based rec,基于一些分类、聚类、关联规则等机器学习模型来做推荐,最出名的是矩阵分解类方法。
(3)也有人把CF分为三大类,除了前两类外,还有SLIM及其改进方法。
3、混合推荐方法,CF+CB,分为两大类:
(1)松耦合混合推荐:将用户或item的属性信息作为辅助信息来为CF提供特征,整个过程是单向的,CF中的UI互动矩阵并没有反馈来促进辅助信息中特征的提取。
(2)紧耦合混合推荐:双向的,CF中的UI互动矩阵信息guide辅助信息的特征提取过程,而提取的特征再来improve CF方法的性能
(2)效果是要好于(1)的。