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

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

文章目录

    • 离线评估
      • 划分数据集方法
      • 客观评价指标
        • P-R曲线
        • ROC/AUC
        • mAP
        • NDCG
    • A/B 测试
      • 分桶原则
      • 评估指标
      • 存在的问题
    • Interleaving
      • 缺点
      • 灵敏度对比

离线评估

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

划分数据集方法

机器学习常用划分方法: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 方法利用 1 0 3 10^3 103个样本就能判定算法 A是否比 B 好,而 A/B 测试则需要 1 0 5 10^5 105个样本才能将 p-value 降到 5%以下。这就意味着利用一组 A/B 测试的资源,可以做 100 组 Interleaving 实验,这无疑极大地加强了线上测试的能力。

image

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

专题1:AI大模型在汽车行业的应用现状与展望

前言: 本文是《大模型在汽车行业的典型应用实践》100w字长文预告的一篇,本文没有泛泛的去做行业应用现状的介绍,而是通过引入行业调研报告的方式,进行详解,用事事和数据来说话,具有很好的参考意义。 一、…

开源ISP介绍(1)——开源ISP的Vivado框架搭建

开源github链接:bxinquan/zynq_cam_isp_demo: 基于verilog实现了ISP图像处理IP 国内Gitee链接:zynq_cam_isp: 开源ISP项目 基于以上开源链接移植项目到正点原子领航者Zynq7020开发板,并对该项目的Vivddo工程进行架构详解,后续会…

【Java基础面试题009】Java的I/O流是什么?

相关知识补充:黑马-字符集、IO流(一).pdf Autism_Btkrsr/Blog_md_to_pdf - 码云 - 开源中国 (gitee.com) 黑马-IO流(二).pdf Autism_Btkrsr/Blog_md_to_pdf - 码云 - 开源中国 (gitee.com) 回答重点 Java的I/O&…

Python Tkinter 模块

Python 支持多种图形界面的第三方库,包括 TkQtwxWidgets… Python 提供的 Tkinter 模块,就是 Tk GUI 工具包的接口。 Tkinter Tk 是图形库,支持多种操作系统,使用 Tcl 语言开发; Tk 会调用操作系统提供的本地 GUI …

详细介绍下oracle建库过程中核心脚本dbcore.bsq

在我们搭建oracle 11g数据库过程中,当我们设置好安装参数后,最后一步进行数据库安装时,oracle安装进程实际上调用的是$ORACLE_HOME/rdbms/admin/sql.bsq脚本进行建库。今天我们将详细介绍下其中的核心脚本dbcore.bsq。 一、建库脚本 我们先看…

解决`-bash: ./configure:/bin/sh^M:解释器错误: 没有那个文件或目录`的问题

解决`-bash: ./configure:/bin/sh^M:解释器错误: 没有那个文件或目录`的问题 一、错误原因分析二、解决方法方法一:使用`dos2unix`工具方法二:使用`sed`命令方法三:使用`tr`命令方法四:在文本编辑器中转换方法五:在Windows系统中使用适当的工具三、预防措施四、总结在使…

linux安全-firewalld防火墙-基础讲解

目录 一、 防火墙技术分类 二、 firewalld 三、 firewalld支持的类型的NAT 四、 富语言 五、 firewalld配置方式 六、 firewall-cmd命令 七、 小实验 这篇文章将对 firewalld 防火墙的基础知识进行介绍 firewalld简介:firewalld的作用是为包过滤机制提供匹配…

图的概念即存储结构(C++实现图【1】)

目录 1. 图的基本概念 2. 图的存储结构 2.1 邻接矩阵 2.1.1私有成员变量 2.1.2类模板的声明 2.1.3构造函数 2.1.4获取顶点下标 2.1.5添加边的信息 2.1.6打印图 2.1.7测试用例 2.2邻接表 2.2.1私有成员变量 2.2.2Edge类 2.2.3类模板的声明 2.2.4构造函数 2.2.5获取顶点下标 2.2.…

使用Tauri创建桌面应用

当前是在 Windows 环境下 1.准备 系统依赖项 Microsoft C 构建工具WebView2 (Windows10 v1803 以上版本不用下载,已经默认安装了) 下载安装 Rust下载安装 Rust 需要重启终端或者系统 重新打开cmd,键入rustc --version,出现 rust 版本号&…

实验13 使用预训练resnet18实现CIFAR-10分类

1.数据预处理 首先利用函数transforms.Compose定义了一个预处理函数transform,里面定义了两种操作,一个是将图像转换为Tensor,一个是对图像进行标准化。然后利用函数torchvision.datasets.CIFAR10下载数据集,这个函数有四个常见的…

Wwise SoundBanks内存优化

1.更换音频格式为Vorbis 2.停用多余的音频,如Random Container的随机脚步声数量降为2个 3.背景音乐勾选“Stream”。这样就让音频从硬盘流送到Wwise,而不是保存在内存当中,也就节省了内存 4.设置最大发声数Max Voice Instances 5.设置音频…

【测试工具JMeter篇】JMeter性能测试入门级教程(六):JMeter中实现参数化的几种方式

一、参数化的定义 什么是参数化?从字面上去理解的话,就是事先准备好数据(广义上来说,可以是具体的数据值,也可以是数据生成规则),而非在脚本中固化,脚本执行时从准备好的数据中取值。…

2024年11月份实时获取地图边界数据方法,省市区县街道多级联动【附实时geoJson数据下载】

首先,来看下效果图 在线体验地址:https://geojson.hxkj.vip,并提供实时geoJson数据文件下载 可下载的数据包含省级geojson行政边界数据、市级geojson行政边界数据、区/县级geojson行政边界数据、省市区县街道行政编码四级联动数据&#xff0…

【力扣】—— 二叉树的前序遍历、字典序最小回文串

Hi~!这里是奋斗的明志,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 🌱🌱个人主页:奋斗的明志 🌱🌱所属专栏:数据结构 📚本系列文章为个人学…

电脑显示没信号显示屏不亮怎么办?电脑没信号解决方法

电脑没信号显示屏不亮这种故障的原因可能有多种,例如显示器的供电、连接、设置等问题,或者电脑的显卡、内存、硬盘、主板等硬件问题。所以我们想要解决这个问题,也是需要多方面排除找到具体原因然后进行修复。下面将为大家介绍一些常见的电脑…

【docker】Windows11创建Ubuntu-desktop并使用VNC完成远程访问

【docker】Windows11创建Ubuntu-desktop并使用VNC完成远程访问 文章目录 【docker】Windows11创建Ubuntu-desktop并使用VNC完成远程访问前言创建Ubuntu容器下载镜像运行容器连接容器 搭建容器XFCE桌面环境安装ubuntu桌面 总结 前言 docker ubuntu容器在深度学习领域的使用过程…

歇一歇,写写段子

无聊的日子都在写段子1.0 中学的时候喜欢看意林之类的杂志, 里面的作者用乱七八糟的理由跑去旅游,然后说“阻碍你脚步的永远只有逃离的勇气和对生活的热爱”, 我觉得太对了,可惜 12306 付款方式里没有勇气和热爱,不…

1203论文速读

1、Hierarchical Stochastic Block Model for Community Detection in Multiplex Networks∗ (多层网络社区检测的层次随机块模型 ) 全文总结:本文提出了一种新颖的贝叶斯模型,称为分层随机块模型(HSBM)&a…

双向长短期记忆(Bi-LSTM)神经网络介绍

长短期记忆(Long Short-Term Memory, LSTM)神经网络: 1.是Hochreiter和Schmidhuber设计的循环神经网络(Recurrent Neural Network, RNN)的改进版本。LSTM模型借鉴了人类大脑的选择性输入和选择性遗忘机制,获取序列中的关键信息,遗忘和当前预测…

.NET 9 中 LINQ 新增功能实现过程

本文介绍了.NET 9中LINQ新增功能,包括CountBy、AggregateBy和Index方法,并提供了相关代码示例和输出结果,感兴趣的朋友跟随我一起看看吧 LINQ 介绍 语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。 数据查询历来都表示为简单的…