基于领域的算法
UserCF:推荐更社会化,反映了用户所在小型兴趣群体中物品的热门程度;
ItemCF:推荐更个性化,反映了用户自己的兴趣传承;
基于用户的协同过滤算法
UserCF主要包括两个步骤:
- 找到和目标用户兴趣相似的用户集合
- 找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户
可以通过余弦相似度计算用户u、v的兴趣相似度。
但是,直接计算,时间复杂度很大,可以先建立物品到用户的倒排表,再建立矩阵,再得到用户兴趣相似度。
再通过公式计算用户u对物品i的感兴趣程度。
原始的余弦相似度公式较为粗糙,有改进版。
基于物品的协同过滤算法
给用户推荐和他之前喜欢的物品相似的物品。
ItemCF业界应用最多。
UserCF缺点:时间、空间复杂度高;难以对推荐结果进行解释。
步骤:
- 计算物品之间的相似度
- 根据物品的相似度和用户的历史行为给用户生成推荐列表
改进1:ItemCF-IUF算法,惩罚活跃用户
改进2:ItemCF-Norm算法,将ItemCF的相似度矩阵按最大值归一化,可以提高推荐的准确率、覆盖率和多样性。
改进3:哈利波特问题,惩罚热门物品
基于LFM隐语义模型
基于人口统计学
基于ALS推荐
常用推荐系统算法分类
- 基于人口统计学的推荐与用户画像
- 基于内容的推荐与特征工程
- 基于协同过滤的推荐