推荐系统
简介
“推荐系统的基本任务是联系用户和物品,解决信息过载的问题”
信息过载:
- 分类目录:yahoo,hao123
- 搜索引擎:google,百度
- 推荐系统:amazon,今日头条
架构
示例
- 电子商务:amazon
评测
实验方式
- 离线实验:在离线数据集上进行,简单
- 用户调查:
- 在线实验:AB测试
评测指标
召回率: 有多少比例用户物品包含在最终推荐列表中
$Recall =\frac{\sum_{u}{|R(u)\cap{T(u)}}|}{\sum_u{|T(u)|}}$
准确率:最终的推荐列表中有多少比例是发生过的用户物品评分记录
$Precision = \frac{\sum_{u}{|R(u)\cap{T(u)}|}}{\sum_{u}{|R(u)|}}$
用户满意度
预测准确度
- 评分预测
- TopN推荐
覆盖率:推荐出来的物品占总物品集合的比例。
$Coverage = \frac{|U_{u\in{U}}R(u)|}{|I|}$
多样性:推荐列表需要能够覆盖用户不同的兴趣领域
新颖性:给用户推荐那些他们以前没有听说过的物品
惊喜度:“如果推荐结果和用户的历史兴趣不相似,但却让用户觉得满意,那么就可以说推荐结果的惊喜度很高”
信任度:
实时性:1. 推荐系统需要实时地更新推荐列表来满足用户新的行为变化;2. “推荐系统需要能够将新加入系统的物品推荐给用户
健壮性:衡量了一个推荐系统抗击作弊的能力
商业目标:
经典推荐算法
基于邻域的算法
- 基于用户的协同过滤算法(UserCF)
- 找到和目标用户兴趣相似的用户集合。
Jaccard公式:
$W_{uv} = \frac{|N(u)\cap{N(v)}|}{|N(u)\cup{N(v)}|}$
余弦相似度:
$W_{uv} = \frac{|N(u)\cap{N(v)}|}{\sqrt{|N(u)||N(v)|}}$
改进:
$W_{uv} = \frac{\sum_{i\in{N(u)I N(v)}}{\frac{1}{log1 + |N(i)|}}}{\sqrt{|N(u)||N(v)|}}$ (User-IIF)
- 从相似用户集合中选择与目标用户最相似的K个用户喜欢的物品。
基于物品的协同过滤算法(ItemCF)
隐语义模型(LFM,latent factor model)
基于图的模型(graph-based model)
- 二分图