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

news/2024/12/5 2:25:50/文章来源:https://www.cnblogs.com/DLShark/p/18585261

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

离线评估

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

划分数据集方法

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

客观评价指标

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

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

P-R曲线

  • why work(能够更关注正样本的分数)

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

  • 参考学习链接:

ROC/AUC

  • why work
  • 参考学习链接:【评价指标】ROC曲线与AUC-CSDN博客

mAP

NDCG

[!NOTE]

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

A/B 测试

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

分桶原则

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

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

image

评估指标

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

存在的问题

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

Interleaving

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

image

缺点

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

灵敏度对比

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

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/846384.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

考研打卡(34)

开局(34) 开始时间 2024-12-03 22:36:03 结束时间 2024-12-03 23:17:57为什么昨天没写,因为昨天想死,但我jio得不能每天都想死吧,所以今天该写了数据结构如果一棵二叉树的先序序列是…a…b…,中序序列是…b…a…,则_______(北京师范大学 2015年) A 节点a和节点b分别在…

Educational Codeforces Round 172 (Rated for Div. 2)题解记录(A~D)

比赛链接:https://codeforces.com/contest/2042 这场爆了,卡死在C题了,QWQ.卡题得跳题啊!!! A.Greedy Monocarp 题面: 有 \(n\) 个箱子,第 \(i\) 个箱子最初包含 \(a_i\) 枚硬币。对于每个箱子,你可以选择任意非负数(0或更大)的硬币添加到该箱子中,有一个约束条件:…

Educational Codeforces Round 172 (Rated for Div. 2)(A~D)

比赛链接:https://codeforces.com/contest/2042 这场爆了,卡C题了,QWQ.卡题得跳一跳!!! A.Greedy Monocarp 题面: 有 \(n\) 个箱子,第 \(i\) 个箱子最初包含 \(a_i\) 枚硬币。对于每个箱子,你可以选择任意非负数(0或更大)的硬币添加到该箱子中,有一个约束条件:所有…

树上的最远距离

题目 题目描述 给定一棵树,对于每一个点,输出离它最远的点到它的距离。 输入格式 第一行包含整数 \(n\)。 接下来 \(n-1\) 行,每行包含两个整数 \(a_i,b_i\),表示点 \(a_i\) 和 \(b_i\) 之间存在一条边。 输出格式 输出一行 \(n\) 个整数,第 \(i\) 个数表示离节点 \(i\) 最…

go 多线程

goroutine以及gmp原理go 多线程 进程、线程、和协程进程分配系统资源(CPU 时间、内存等)基本单位 有独立的内存空间,切换开销大线程:进程的一个执行流,是 CPU 调度并能独立运行的的基本单位同一进程中的多线程共享内存空间,线程切换代价小 多线程通信方便 从内核层面来看…

第57篇 docker的常用命令

1 镜像管理2 容器管理3 容器运行4 网络管理5 插件管理6 数据卷管理7 日常操作8 常用dockerfile指令

技术美术学习路线

技术美术学习路线 理想路线 第一个阶段熟练一门编程语言(课设写个例如医院管理系统,图书管理系统之类的):C/python/C++/C#,并尝试用它写一个飞机大战小游戏养成良好的审美,每日收集图片,鉴赏各种美术风格从Unity客户端开始学习,之后逐步学习技术美术:如何不写代码却能…

Pwn-栈溢出

原理 基本的栈帧结构(以 x64 的栈为例)(图片摘自Hello-CTF) RBP 为栈底寄存器,RSP 为栈顶寄存器,分别记录了栈帧中记录数据部分的起始和终止地址。函数的临时变量的在内存中的位置都是通过这两个寄存器加减偏移确定的。 栈底分别还记录了上一个栈帧的 RBP 的值,以及函数的…

DSB的数字正交解调

1.DSB调制过程 ​ DSB信号是一种双边带调幅调制信号,又叫双边带调幅,通过改变载波的振幅来实现基带数据的传输。 其函数表达式如下: \[s(t) = m(t)*cos(2\pi ft + \varphi) \]其中:m(t):表示基带信号。 \(cos(2\pi ft + \varphi )\):表示载波信号。2.DSB的数字正交解调 ​ …

JDY-68A模块语音播报

该模块引脚如下图所示:连接其中的VCC与GND即可让蓝牙模块运行起来 如果要实现播放手机中的声音,需要参考下面图中第10个引脚其中Audio是声音输出,连接功放模块的输入+,而功放模块中的输入-直接接地线即可。 该模块有个问题就是其为贴片设计,需要自行设计底板,但是如果只是要测试…

《代数学基础Ⅰ》期中考试分析

总体分析:本次考试得分85(17%),尚可,但未达到自己的预期(90+)。 错题分析:目前未下发答题纸,我觉得主要有两方面问题。 1. 分类讨论不全,特别关注分式的分母能否取零导致的分类 2. 当且仅当的证明,这是一个充要条件,充分性多数情况下比较难证,要多加练习。(坏了,…

第56篇 docker简单介绍

1.docker介绍 Docker是一个用于构建,运行,传送 应用程序的平台。以下所有环境打包成一个集装环境1.1 为什么要用docker? 第一点:安装依赖过多 如果不用docker,需要部署一个带有数据库的,前后端服务的应用时,就要执行step的步骤安装环境,网站才能运行该应用第二点:不同…