【推荐算法】推荐系统的评估

这篇文章是笔者阅读《深度学习推荐系统》第五章推荐系统的评估的学习笔记,在原文的基础上增加了自己的理解以及内容的补充,在未来的日子里会不断完善这篇文章的相关工作。

文章目录

离线评估

在离线环境中利用已有的数据划分训练集和测试集对模型进行评估

划分数据集方法

机器学习常用划分方法:Holdout法、交叉验证、留一法、自助法

客观评价指标

机器学习模型常用指标:准确率、精确率、召回率、均方根误差、对数损失

​ 对于推荐模型,点击率的预测(++预测模型++ )正确与否并不是最终目标,最重要的是输出一个用户感兴趣的物品列表(++排序模型++),排序模型是根据模型的输出概率对兴趣物品排序,因此应该采用适合评估排序序列的指标来评估模型。

P-R曲线
  • why work(能够更关注正样本的分数)

P-R曲线是精确率-查全率曲线,精确率和查全率两个指标都是关于正样本的相关计算,当阈值设置高时,查全率低,此时得分越高的物品被优先推荐,而不是简单的实现二分类,因此,P-R曲线更适合排序模型。

  • 参考学习链接:
ROC/AUC
  • why work

因为AUC描述的物理意义是在样本中随机抽取一个正样本和负样本,正样本的得分大于负样本得分的概率,反映了模型区分正负样本的能力,通过ROC的绘制避免了单一阈值达赖的偏差,此外,AUC对正负样本的比例不敏感(因为是随机各抽一个)

mAP
NDCG

!NOTE

编者提到了在真正的离线实验中并不需要选择过多的评价指标,更重要的是快速定位,排除不可行的思路。

A/B 测试

又称为"分桶测试"、"分流测试",设置单一变量,通过实验组A与对照组B进行对比评估,是模型上线前的最后一道测试,与离线测试不同,离线测试无法消除有偏数据的影响,并且无法还原实际工程环境(数据丢失、网络延迟)

分桶原则

  • 层与层之间正交:层与层之间的对照实验时独立的,不相互影响;

  • 同层之间互斥:同一个数据用于不同的实验组;

评估指标

与离线测试不同,线上测试能够直接计算业务的核心指标,因此更注重对点击率、转化率等实际业务之表的对比。

存在的问题

  1. A/B测试占用了过多的资源,当新提出的模型推荐效果差时还会对用户造成损害;
  2. 分组用户样本分布不平衡

Interleaving

Interleaving是一种快速线上评估方法,在大量初始算法中筛选出work的算法再进行A/B测试,解决A/B测试在测试时样本可能分布不平衡的问题,对相同用户给与两种方案,看用户更喜欢哪种(类似于chatgpt有时会给两种方案看用户更喜欢哪种)

缺点

  1. 需要大量的辅助性数据标识;
  2. 只能对算法的相对评估;

灵敏度对比

需要多少样本才可以评估不同算法的优劣性,图中可以看出, Interleaving 方法利用 1 0 3 10^3 103个样本就能判定算法 A是否比 B 好,而 A/B 测试则需要 1 0 5 10^5 105个样本才能将 p-value 降到 5%以下。这就意味着利用一组 A/B 测试的资源,可以做 100 组 Interleaving 实验,这无疑极大地加强了线上测试的能力。

相关推荐
Xの哲學6 分钟前
Linux RCU (Read-Copy-Update) 机制深度分析
linux·网络·算法·架构·边缘计算
聚客AI12 分钟前
🙈AI Agent的未来:工具调用将如何重塑智能应用?
人工智能·agent·mcp
悟能不能悟13 分钟前
if __name__=‘__main__‘的用处
python
Source.Liu24 分钟前
【Python基础】 15 Rust 与 Python 基本类型对比笔记
笔记·python·rust
前端世界25 分钟前
Python 正则表达式实战:用 Match 对象轻松解析拼接数据流
python·正则表达式·php
数模加油站31 分钟前
25高教社杯数模国赛【C题国一学长思路+问题分析】第二弹
算法·数学建模·数模国赛·高教社杯全国大学生数学建模竞赛
小跌—1 小时前
Linux:进程信号理解
linux·c++·算法
幂简集成1 小时前
通义灵码 AI 程序员低代码 API 课程实战教程
android·人工智能·深度学习·神经网络·低代码·rxjava
Tadas-Gao1 小时前
阿里云通义MoE全局均衡技术:突破专家负载失衡的革新之道
人工智能·架构·大模型·llm·云计算
xiaozhazha_1 小时前
快鹭云业财一体化系统技术解析:低代码+AI如何破解数据孤岛难题
人工智能·低代码