推荐算法常见的评估指标

news2024/11/13 9:24:28

推荐算法评估指标比较复杂,可以分为离线和在线两部分。召回、粗排、精排和重排由于定位区别,其评估指标也会有一定区别,下面详细讲解。

1 召回评价体系

召回结果并不是最终推荐结果,其本质是为后续排序层服务的,故核心在于覆盖率,而不需要追求绝对的准确率。因此精排中常用的AUC等指标,不能用来衡量召回效果。常用的召回评价指标有Hit Rate差异率、Top-K召回率平均点击位置等。

Hit Rate在召回中使用十分广泛。它可以衡量用户点击的物品,被包含在召回前N条结果中的概率。计算过程如公式所示,其中Dtest表示测试集,I为指示函数(Indicator function)。

差异率则用来衡量某一通路与其他通路的差异。特别是新增一路召回时,通常需要能带来一些之前没有被召回的新物品,从而提升整体覆盖率。差异率可以表达为,新增物品数量与该通路召回总数的比值。

Top-K召回率可以衡量召回结果对真实候选的覆盖率。其定义为召回前K个结果中目标物品个数,与目标物品总数的比值。计算过程如公式所示,其中di表示第i个召回结果,T为目标物品集合,N为其总数。

还可以通过用户点击的物品,在召回结果中的平均位置,来评估其效果。其他指标还有NDCGMRRMAP等。另外不可忽视的是,人工体验和评估召回结果,仍然是一个推荐工程师必备的素养。最后,离线评估完成后,还需要在线AB测试,从而确认最终效果。\

2 粗排评价体系

粗排评价体系主要分为三部分:召回能力排序能力效率指标。召回能力可以衡量粗排和精排的一致性,防止粗排排名靠前的物品无法在精排阶段透出。可以通过如下方法计算:选取一个物品候选集,同时给粗排和精排打分并排序,二者Top-K物品重合个数,除以总物品个数,即为召回率。

排序能力的评估可以采用AUC和GAUC等指标,与精排基本一致,此处不再赘述。效率指标主要包括QPS( Queries Per Seconds)和RT(Return Time)等。其中QPS通过计算每秒可以承受的请求数,来衡量模型吞吐率。RT通过计算系统返回结果的平均时间,来衡量模型耗时。

3 精排评价体系

精排相对比较纯粹,主要围绕排序能力效率指标。其中排序能力尤为关键,是整个推荐系统个性化能力和分发精准性的核心。离线评估主要以AUC和GAUC等指标为准。在线评估则通过AB测试来实现。

AUC是衡量二分类模型优劣的一种评价指标,表示预测的正例排在负例前面的概率。AUC的详细讲解,可以参见文章 所向披靡的张大刀:万字长文深入浅出AUC。

AUC表示模型将正样本排在负样本前面的概率,取值范围在0.5到1之间,是衡量模型排序能力的核心指标。但在推荐场景有一定不足。离线评估时,对不同用户的不同样本一起计算 。但在线上预测时,模型只需要保证对同一用户,正样本尽量排在负样本前面,而不用关心不同用户之间的样本顺序关系。基于此经常出现离线 上涨,但上线后业务指标并没有上涨的情况。

基于这一问题,GAUC被引入来解决上述问题。其计算过程如下公式所示。

其中i表示第i个用户,n为用户总数。#imperssioni表示第i个用户的曝光数,也就是正负样本总数。AUCi表示该用户的AUC。总结下来,GAUC计算过程为,先对各用户分别计算他们的AUC,然后利用其样本数进行加权平均。GAUC的计算是用户粒度的,可以保证离在线的一致性。

4 重排评价体系

重排是推荐系统最后一层,除了要考虑算法效率外,还需要兼顾用户体验问题。其中多样性是用户体验十分重要的组成部分。其评估包括客观指标和主观体验,可以从如下角度出发:

(1) 业务指标:例如用户次日留存、用户点击率和人均订单等。通过A/B测试一般可以观测它们。

(2) 多样性指标:可以从用户和物品两个角度评估,例如平均每个用户的曝光类目数,或曝光物品同属一个类目的概率等。通常可以从类目、作者和其他标签等多个维度进行数据分析。

(3) 人工体验:抽样进行人工体验,评估多样性。这是最贴近用户的做法,但主观性偏强,不同人的评估标准不容易统一。人工体验评估,千万不可忽略。算法工程师要经常去体验自己的实际业务场景。

(4) ILS指标:用来评估单个用户的多样性程度。在物品展现列表中,任意两个物品属于同一个类目的概率,值越低代表多样性越好。

系列文章,欢迎关注。

谢杨易个人主页

精通推荐算法1:为什么需要推荐系统(系列文章,建议关注)

推荐算法架构1:召回(系列连载,建议关注)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【深度学习目标检测】十五、基于深度学习的口罩检测系统-含GUI和源码(python,yolov8)

YOLOv8是一种物体检测算法,是YOLO系列算法的最新版本。 YOLO(You Only Look Once)是一种实时物体检测算法,其优势在于快速且准确的检测结果。YOLOv8在之前的版本基础上进行了一系列改进和优化,提高了检测速度和准确性。…

通过IP地址识别风险用户

随着互联网的迅猛发展,网络安全成为企业和个人关注的焦点之一。识别和防范潜在的风险用户是维护网络安全的关键环节之一。IP数据云将探讨通过IP地址识别风险用户的方法和意义。 IP地址的基本概念:IP地址是互联网上设备的独特标识符,它分为IP…

前端工程化相关

工具方法: 知道软件包名,拿到源码或者路径的方法 在浏览器输入以下内容,就可以找到你想要的。。。 unpkg.com/输入包名 一、模块化 ESM特性清单: 自动采取严格模式,忽略“use strict”每个ESM模块都是单独的私有作用…

“华为杯“第四届中国研究生数学建模竞赛-D题:邮路规划与邮车调度

目录 摘 要: 1.问题的重述 2.模型的假设与符号说明 2.1 针对本问题,本文做出如下假设 2.2 符号说明 3.问题的数学模型 4.问题的求解 4.1 问题一的求解 4.1.1 最少邮车数的求法 4.1.2 邮路规划及路径选择 4.1.3 问题的求解结果 4.2 问题二的求…

FPGA之初探

FPGA的构成 基本逻辑单元CLB CLB是FPGA的基本逻辑单元, 一个 CLB 包括了 2 个 Slices,所以知道Slices的数量就可以知道FPGA的“大概”逻辑资源容量了。一个 Slice 等于 4 个6输入LUT8个触发器(flip-flop)算数运算逻辑,每个 Slice 的 4 个触发…

在线的货币兑换平台源码下载

在线的货币兑换平台,可帮助全球各地的个人和企业将货币从一种货币兑换为另一种货币。该货币兑换平台是 Codecanyon 中最先进的脚本。 源码下载:https://download.csdn.net/download/m0_66047725/88728084

VMware 安装及创建一个 CentOS Stream 的详细指南

文章目录 1. 简介2. 下载和安装1)通过官网安装2)通过电脑管家安装 3. 下载操作系统镜像包4. 创建虚拟机结语 1. 简介 在过去,服务器通常是运行单一操作系统和应用程序的物理设备。这就导致了硬件资源浪费和管理复杂性的增加。为了解决这些问…

【C++刷题】位运算

【C刷题】位运算 一、二进制中最右侧的11、位1的个数(1)题目链接(2)解析(3)代码 2、比特位计数(1)题目链接(2)解析(3)代码 3、汉明距离…

LTESniffer:一款功能强大的LTE上下行链路安全监控工具

关于LTESniffer LTESniffer是一款功能强大的LTE上下行链路安全监控工具,该工具是一款针对LTE的安全开源工具。 该工具首先可以解码物理下行控制信道(PDCCH)并获取所有活动用户的下行链路控制信息(DCI)和无线网络临时…

重温经典struts1之自定义全局异常处理类处理异常以及<exeception>标签的配置

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 前面的文章,我们学习了,Action类中调用Service,通过try…catch代码块,catch自定义异常类,通过ActionMessage…

cesium粒子效果——船舰水花效果

效果: 实现思路(最后有完整代码): 与上篇文章思路一样 无非就是更换了模型与粒子图片以及粒子的配置,上一篇文章链接:https://blog.csdn.net/m0_63701303/article/details/135551667?spm1001.2014.3001.5…

neo4j 图数据库 py2neo 操作 示例代码

文章目录 摘要前置NodeMatcher & RelationshipMatcher创建节点查询获取节点节点有则查询,无则创建创建关系查询关系关系有则查询,无则创建 Cypher语句创建节点 摘要 利用py2neo包,实现把excel表里面的数据,插入到neo4j 图数据…

React Native 环境安装

Notion – The all-in-one workspace for your notes, tasks, wikis, and databases. 搭建开发环境 React Native 中文网 Homebrew(包管理器) → rvm(ruby版本管理) → ruby → cocoapods 安装 Homebrew Homebrew /bin/ba…

java每日一题——ATM系统编写(答案及编程思路)

前言: 基础语句学完,也可以编写一些像样的程序了,现在要做的是多加练习,巩固下知识点,打好基础,daydayup! 题目:模仿银行ATM系统,可以创建用户,存钱,转账&…

分布式搜索引擎--认识

elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 。 elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛…

极简Oracle 11g Release 2 (11.2.0.1.0)

注意:此法无法安装oracle11g(11.2.0.4),会报如下错: [FATAL] [INS-10105] The given response file /assets/db_install.rsp is not valid. 一、下载解压ORACLE安装包。 从 oracle 官网 下载所需要的安装包,这里我们以 oracle 11…

【MCAL】MCU模块详解

目录 前言 正文 1. MCU模块介绍 2. MCU依赖的模块 3. MCU模块提供服务 3.1 时钟的初始化 3.2 MCU模式的配置 3.3 MCU软件复位功能 3.4 RAM的初始化 4.MCU重要数据类型 4.1 Mcu_ResetType 4.2 Mcu_ModeType 5. MCU重要API 5.1 Mcu_Init 5.2 Mcu_InitClock 5.3 M…

Open3D 点云等比例缩放(20)

Open3D 点云等比例缩放(20) 一、算法介绍二、算法实现1.代码世人慌慌张张,不过图碎银几两, 偏偏这碎银几两,能解世间万种慌张。 一、算法介绍 实现这样一个功能,沿着中心,按照指定的比例,比如1/2,缩小或者放大点云,保存到新的文件中 二、算法实现 1.代码 import…

Matlab:toposort

语法: n toposort(G) %调用toposort函数,对有向图G进行拓扑排序,并将排序结果存储在变量n中 n toposort(G,Order,algorithm) [n,H] toposort(___) %使用了两个输出参数的形式来调用toposort函数。除了返回排序结果n外&am…

uniapp 编译后文字乱码的解决方案

问题: 新建的页面中编写代码,其中数字和图片都可以正常显示,只有中文编译后展示乱码 页面展示也是乱码 解决方案: 打开HuilderX编辑器的【文件】- 【以指定编码重新打开】- 【选择UTF-8】 然后重新编译就可以啦~ 希望可以帮到你啊~