推荐系统之协同过滤
TOC
数据集
- 上下文
上下文指用户当前访问所处的环境,如时间,地点,网络类型,机器型号等信息。
- 隐式反馈数据集
通常是指服务器日志,可能含有上下文,如浏览历史。
- 显式反馈数据集
通常是指用户调查,反馈模块等的数据,如电影的评分,是否喜欢。
协同过滤
根据用户已有的行为或意见预测当前用户最可能感兴趣的物品。
数据集通常由三部分构成:用户集合,物品集合,用户物品行为集合。
协同过滤的主要算法分为两类:
- 基于用户的协同过滤:
根据相似用户预测前前用户最可能感兴趣的物品。
- 基于物品的协同过滤
根据用户的历史行为预测当前用户最可能感兴趣的物品。
基于用户的协同过滤
核心算法-用户相似度
- 余弦相似度
- Jaccard公式
时间复杂度为O(|U|*|V|)
- Pearson相关系数
以上公式均可以引入平均值来提高准确率。
基于物品的协同过滤
核心算法 - 物品相似度
主要通过分析用户行为记录计算物品间的相似度
基于物品的协同过滤算法主要分为两步:
- 计算物品间的相似度
- 根据物品的相似度和用户的历史行为生成推荐列表
相关公式
- 余弦公式
N(i)为购买过物品i的用户集合。$$W_{ij}$$为物品i与物品j的相似度。
- 使用IUF(Inverse User Frequence)修正后的物品相似度公式
N(u)为用户u购买过的物品集合
- 物品相似度归一化
归一化可以提高准确度、覆盖率以及多样性