推荐系统评估
-
好的推荐系统可以实现用户、内容提供方、服务提供方三者共赢。如下图所示:
-
显式反馈与隐式反馈
显式反馈的主要表现为对于书籍电影的评分、是否喜欢此推荐。用户的准确性高、数量少、获取成本较高;隐式反馈主要表现为对于视频播放、点击、下载,物品的购买、加入购物车。用户的准确性低、数量多、获取成本较低。而推荐系统更看重隐式反馈。 -
常用的评估指标
- 准确性:
评分预测:RMSE、MAE算法
TopN推荐:召回率、精准率
A/B 测试:对比不同的算法 在线上运行对关键指标的影响,金丝雀发布、baseline。 - 覆盖度:这里我们会讨论信息熵的概念,通过熵的浑浊程度来进行推荐,熵值越高说明效果越好。
- 多样性:推荐列表中两两物品的不相似性。
- 新颖性:未曾关注的类别、作者。
- 惊喜性:历史不相似(惊)但很满意(喜)。
实现惊喜性往往会牺牲准确率;使⽤历史⾏为预测⽤户对某个物品的喜爱程度;系统过度强调实时性。
推荐系统探索与利用问题
- Exploitation(开发 利用):选择现在可能最佳的⽅案。
- Exploration(探测 搜索):选择现在不确定的⼀些⽅案,但未来可能会有⾼收益的⽅案。
- 在做两类决策的过程中,我们要不断更新对所有决策的不确定性的认知,优化长期的⽬标,在两者之间得到权衡。
- EE问题实践:兴趣扩展: 相似话题, 搭配推荐;人群算法: userCF 用户聚类;平衡个性化推荐和热门推荐比例;随机丢弃用户行为历史,随机扰动模型参数。
- EE可能带来的问题:
- 探索伤害用户体验, 可能导致用户流失
- 探索带来的长期收益(留存率)评估周期长, KPI压力大
- 如何平衡实时兴趣和长期兴趣
- 如何平衡短期产品体验和长期系统生态
- 如何平衡大众口味和小众需求
总体来说EE的问题是相互矛盾的做法。
推荐系统评估方法
- 问卷调查::成本高,容易被用户忽视,不太能完美实现。
- 离线评估:缺点:只能在用户看到过的候选集上做评估, 且跟线上真实效果存在偏差、只能评估少数指标;优点:速度快, 不损害用户体验。
- 在线评估:金丝雀发布 & A/B测试 。
- 综合实践:离线评估和在线评估结合, 定期做问卷调查。
推荐系统冷启动
推荐系统冷启动概念
- ⽤户冷启动:如何为新⽤户做个性化推荐。
- 物品冷启动:如何将新物品推荐给⽤户(协同过滤)。
- 系统冷启动:⽤户冷启动+物品冷启动。
- 推荐系统依赖历史数据,没有历史数据⽆法预测⽤户偏好。这时我们该怎么办呢?
- 用户冷启动:
- 尽可能多的收集用户信息、构建用户画像(TAG)
- 根据用户的标签可以做人群聚类,用以有用户的行为做推荐。
- 更多地使用当前的流行度推荐。
- 物品冷启动:
- 物品打标签(TAG),构建物品画像。
- 基于内容的推荐。
- 系统冷启动
- 如果应用缺少用户行为数据>>>基于内容的推荐。
- 随着用户行为积累的越来越多>>>协同过滤。
- 基于内容推荐+协同过滤。