04 效用评测层 显性指标+标准方法 对推荐效果定量评测

news2024/9/30 15:32:15

你好,我是大师兄。前面三节课我们介绍了推荐系统的数据采集层和数据加工层的相关内容,本节课我们重点介绍下推荐系统效用评价层的评测方法和评测指标。

这里的“效用评测”,通俗点说是指推荐系统输出数据的好坏是否符合用户和商业的预期;往大了说,是指推荐系统是否达成了产品目标,是否增加了用户黏性和访问深度;往小了说,是评估推荐算法的输出结果是否准确、全面。

因此,如果我们想优化一个系统的输出结果,就需要通过相应的评测方法对相应评测指标进行评估。

下面我们先来说说推荐系统效用评测的方法。

评测方法

关于推荐效果的评测方法,市面上主要分为离线评测、在线评测和用户调研这三种,接下来我们详细进行说明。

方法一:离线评测

离线评测方法的实现思路:首先,我们从用户真实历史行为日志中构造一个调用推荐系统的请求,然后调用推荐系统生成推荐结果,最终结合历史上的真实反馈进行定性评测、效果对比。

根据对推荐的问题定义,离线评测方法又可以划分为离线评分预测、离线分类预测、离线排序预测这三种。

1.离线评分预测

在没有显性用户评分的情况下,我们可以将推荐看成一个回归问题,以此来预测用户对物品的评分,然后采用评分预测模型对推荐系统进行评分。

离线评分预测的常见测量指标分为 MAE(平均绝对误差)、RMSE (均方根误差)这两类,它们的计算公式如下所示:

在以上两个公式中,u 代表用户,i 代表物品,T 代表所有评分过的用户, image.png代表用户 u 对物品 i 的真实评分,image.png为推荐算法模型预测的评分。

对比 MAE 指标,我们发现 RMSE 加大了对预测不准的用户物品评分的惩罚,即平方项的惩罚,因此 RMSE 的评测分数会更加苛刻一些。

此外,离线评分预测的衡量指标还包含归一化均方误差(NMRSE)、归一化平均绝对误差(NMAE)等,因篇幅有限,本节课我们就不赘述了。

2.离线分类预测

在没有显性用户评分的情况下,物品主要分为喜欢和不喜欢这两类,因此我们可以把推荐系统看成是一个分类问题,它可以是二分类,也可以是多分类,此时我们往往采用离线分类测试方法来预测用户的行为。

在离线分类预测过程中,我们需要测量的指标主要是准确率(Precision)、召回率(Recall),它们的计算公式如下所示:

其中 u 代表推荐数量,准确率 (P)代表用户感兴趣的物品在推荐的候选集中占了多少比例,召回率(R)代表用户感兴趣的物品在推荐的用户感兴趣的所有物品候选集中占了多少比例。

因为 P 与 R 这两个指标负相关,所以在对推荐系统进行评估时,我们必须同时给出这两个指标。

对同一个模型进行评估时,我们经常需要绘制一条 P-R 曲线后再进行分析,操作起来相对比较麻烦。

为了便于我们进行评估,我们还可以使用综合评价指标(F-Measure)来代替 P-R 曲线,它的计算公式如下所示:

当参数 α=1 时,称作 F1 值:

F1 把准确率和召回率结合在一起进行考虑,当 F1 数值较高时,说明评估结果越准确,因此,它成了一种常见的综合评测方法。

综上可知:在离线分类预测方法中,我们无需预测评分,只需要把分类结果预测准确即可,即我们只需要关注给出的结果用户是否关心就行。

3.离线排序预测

在没有显性用户评分的情况下,我们也可以将推荐系统看作是一个排序学习问题。

对于推荐结果而言,我们天然地认为最合适的结果就应该排在最前面。因为推荐结果主观性非常强,所以我们不能采用搜索引擎排序指标(比如 MAP、MRR、NDCG 等客观性强的指标)对推荐系统进行评价并排序,而是采用 AUC(area under the curve)模型评估指标。

那 AUC 模型评估指标怎么得来的呢?以 58 同城本地服务猜你喜欢某深度学习推荐算法模型的 AUC 曲线为例,如下图所示。

在上图中,ROC(Receiver Operating Characteristic,受试者工作特征) 曲线的横轴为假正例率(FPR),纵轴为真正例率(TPR)。算法模型通过样本逐个预测这两个值,然后通过作图得出了这么一条 ROC 曲线,而 AUC 指的就是 ROC 曲线下方的面积。

由此可见,AUC 量化了 ROC 曲线,AUC 的值越大,说明模型预测输出的概率越合理,也就是排序的结果越合理。

不过,AUC 是一个相对量,并不是一个绝对量,在这里,我们无法说明多高的 AUC 才能达到模型上线要求,需要我们在同种条件下进行比较才行,因为它与训练数据和测试数据存在很大关系。

通过以上三种离线评测方法的介绍,我们得知:在离线评测过程中,我们无需投入大量的人力及开销,真正实现全自动运行,成本较低。

方法二:在线评测

常言道:“是骡子是马拉出来遛遛”。任何模型经过离线评测后,都需要在实际场景中接受检验才行,也就是这部分我们要讲的内容——在线评测。

在线评测主要是用来比较新老算法的效用,也就是线上 AB 分流实验。

AB 分流实验利用假设检验的工具,在实战条件下判定新模型是否对测量指标有效。它不光可以用来评估算法模型,同时也可以用来评估其他策略或者 UI 的改动(UI 的每一次改动我们称之为一个特性)。

以某种分流的方法给每个特性的实验分配一定流量时,因每个实验的流量不同,从而互不干扰,这种就叫单层实验框架。

由于大量的实验对流量比较稀缺,所有现有的 AB 测试实验大部分基于 Google 的论文《Overlapping Experiment Infrastructure: More, Better, Faster Experimentation》重叠分层实验框架进行设计,其中就有由大师兄在 2014 年设计的 58 同城通用实时对照分层实验平台“日晷”系统。

这个系统采用分层架构的方式把用户进行了切分,充分考虑了流量的再利用和用户体验,同时通过组建实验委员会对实验进行评定并把实验结论作为决策的依据,一切以数据说话,决策上摆脱了所谓“专家”的控制。

而且重叠分层实验框架通过复用接入流量,实现了对不同层次的子系统进行了流量共享,对同层实验进行了流量划分。同时,重叠分层实验框架通过用户 id 及时间维度对单一访问用户进行了划分,以此避免单一用户产生不同的用户体验。

接下来我们介绍下重叠分层实验框架的几个基本概念:域(Domain)、层(Layer)、实验(Experiment)。

我们把每一个正在进行的测试就称作一个实验,多个并行且互斥的实验构成了一个层,而一个完整的流量划分就称作一个域。

以 58 同城本地服务中在线 AB 测试的一个划分为例,我们来解释一下流量与实验、层、域之间的关系。

根据上图,我们把流量与实验之间的关系进行了相关梳理。

  • 流量进入 Layer1,我们通过实验 EXP1 、实验 EXP2 的流量分配百分比随机选择一个实验;

  • 流量进入 Layer2,只有实验 EXP3,我们选择实验 EXP3;

  • 流量进入 Layer3,EXP4、EXPx 可视为 2 个大实验,然后通过流量分配百分比选择实验。

EXPx,此时实验 EXPx 被分成了 2 个层:Layer3-1 子层(包括EXP5、EXP6、EXP7)和 Layer3-2 子层(包括 EXP8),接下来我们先走 Layer3-1 ,然后选择一个实验,假设我们选择了实验 EXP6,往下走我们就是选择实验 EXP7;

然后依次类推到 EXP9。

在线评测方法除了支持重叠分层实验以外,还支持对实验进行自动化评估,为我们的工作带来了不少便利。

使用重叠分层实验框架后,PM 可以独立进行实验配置、实现管理、实验统计和评估,而不需要依赖 RD,大大节省了 RD 成本。而且实验与实验之间可并行,大大提升了评估效率,还能将实验对业务系统的逻辑侵入降到最低。同时因实验过程中干扰较少,也大大保证了实验结果的可信度,能帮助公司快速推进数据驱动进程,改变以往拍脑袋决策的弊病。

58 同城本地服务推荐系统针对各业务的算法分流也第一时间接入了实验系统,节省了部门大量的运维成本,也大大简化了推荐系统的架构,同时实验系统还多次发现并辅助业务人员定位线上问题,肩负起了数据实时监控的职责。

由于在线评测方法涉及大量统计学知识,这部分内容本节课我们不单独展开说明,如果你有需要可以选择拉勾教育的其他课程进行学习。

方法三:用户调研

离线评测和在线评测方法输出的都是足够客观的指标,而使用推荐系统的用户体验一般都是主观的,因此,如果我们想要获取一些主观的用户反馈,用户调研算是一种非常传统且很有效的方法。毕竟最终使用推荐系统的还是我们人本身,由机器产出的统计数据不能够代表一切。

那用户调研的具体实现过程是什么样呢?

首先,我们需要寻找到一部分真实的目标用户,然后观察和记录他们在推荐系统上的行为轨迹,再邀请他们回答一些问题,紧接着根据他们行为数据和调研答案进行分析,最终评价推荐系统的推荐质量。

因此方法操作起来简单,因此我们就不过多讨论了。

其他辅助评测指标

在对推荐系统进行评测时,我们除了使用以上常用的评测指标之外,还可以使用一些辅助指标,如覆盖率、多样性、新颖性等。

1.覆盖率

覆盖率作为流量分发系统的基本能力,主要用来描述针对长尾物品的发掘能力。

根据描述的主体不同,它分为用户的覆盖率和物品的覆盖率这两种。严格意义上来说,用户的覆盖率应该叫作渗透率(这里我们不做过多解释),关于物品的覆盖率的计算公式如下所示:

其中 U 是使用推荐服务的用户集合,I 是所有的物品集合。

从上面的定义我们可以看到,一个好的推荐系统,覆盖率越高越好。

2.多样性

多样性描述了推荐列表中两两物品之间的相似性,也从侧面反映了用户的满意度情况。假设我们定义了物品 i 和物品 j 的相似度,那么用户 u 的推荐列表 R(u) 的多样性定义如下所示。

而整体多样性可以定义为所有用户多样性的平均值。

通过计算公式,我们总结出,多样性的平均值越大,越可以带动不太流行的物品的曝光量。

3.新颖性

新颖性主要用来帮助用户发现自己不知道的感兴趣物品的能力。人都是喜新厌旧的,推荐给用户一些新的东西,能提升用户的探索欲望和好奇心。

在实际操作中,新颖性的常用评测方法是把用户之前在网站中曝光过的物品从推荐列表中过滤掉。

关于这部分内容,我想强调一点:在选择评价推荐系统的指标时,我们需要先明白各个指标的局限性,因为世上没有完美的指标。同时,指标无需选择过多,别对技术指标产生太强依赖。

本节总结

道德经中说:“孰知其极,其无正也”。推荐系统是一个复杂系统,在实际业务中,如何选择评测指标和评测方法,需要我们根据实际业务场景来定。

对于推荐算法评测方法,如果你还有不同的见解?欢迎在留言区进行互动、交流。05 讲我将带你进入推荐系统算法的世界。

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

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

相关文章

window 安装 openssl

文章目录 前言window 安装 openssl1. 下载2. 安装3. 配置环境变量4. 测试 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差,实在白嫖的话…

C++ 十进制与十六进制之间相互转换

十进制与十六进制之间相互转换 10_to_16 与二进制类似,十进制转十六进制对16整除,得到的余数的倒序即为转换而成的十六进制,特别地,如果超过10以后,分别用ABCDEF或abcdef来代替10、11、12、13、14、15。 代码1: #in…

Codeforces Round 954 (Div. 3) F. Non-academic Problem

思路&#xff1a;考虑缩点&#xff0c;因为是无向图&#xff0c;所以双连通分量缩完点后是一棵树&#xff0c;我们去枚举删除每一条树边的答案&#xff0c;然后取最小值即可。 #include <bits/stdc.h>using namespace std; const int N 3e5 5; typedef long long ll; …

【学术会议征稿】第四届机械自动化与电子信息工程国际学术会议(MAEIE 2024)

第四届机械自动化与电子信息工程国际学术会议&#xff08;MAEIE 2024&#xff09; 2024 4th International Conference on Mechanical Automation and Electronic Information Engineering 由安徽大学主办&#xff0c;安徽大学电气工程与自动化学院、安徽省人机共融系统与智能…

利用远程桌面进行开发,

现在的软硬件开发都涉及庞杂的软硬件环境和多种外设总线部署&#xff0c;这时我们利用远程工具和windows自带的wsl虚拟机环境再配合vscode的remote ssh远程开发模式&#xff0c;可自由的在linux windows android等平台上切换&#xff0c;让开发更顺畅&#xff0c;也可以更好的利…

数据结构--单向链表篇(python实现)

写在开头 链表&#xff08;Linked list&#xff09;是一种常见的基础数据结构&#xff0c;是一种线性表&#xff0c;但是并不会按线性的顺序存储数据&#xff0c;而是在每一个节点里存到下一个节点的指针(Pointer) 链表的优缺点 优点 不需要预先知道数据大小&#xff0c;实现灵…

简易限流实现

需求描述 写一个1秒两个的限流工具类&#xff0c;2r/s 使用semaphore 代码实现-类似令牌桶算法 public class LimitHelper {private int maxLimit;private Semaphore semaphore;private int timeoutSeconds;public LimitHelper(int maxLimit, int timeoutSeconds) {this.max…

向github远程仓库中push,要求使用token登录

Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. 如上&#xff0c;当向github远程仓库push时&#xff0c;输入github的用户名和密码出现如上错误&#xff0c;要求使用token登录&#xff0c;此时只需要用户…

【uni-app+Vue3】 API请求封装:让接口调用更便捷

前言&#xff1a;uni-app是一款基于Vue.js框架的跨平台开发工具&#xff0c;可以将代码编译成H5、小程序、App等不同平台的应用。在进行uni-app开发时&#xff0c;网络请求是必不可少的环节。为了方便开发&#xff0c;我们可以封装一些网络请求方法&#xff0c;以便在多个页面中…

数据结构(初阶1.复杂度)

文章目录 一、复杂度概念 二、时间复杂度 2.1 大O的渐进表示法 2.2 时间复杂度计算示例 2.2.1. // 计算Func2的时间复杂度&#xff1f; 2.2.2.// 计算Func3的时间复杂度&#xff1f; 2.2.3.// 计算Func4的时间复杂度&#xff1f; 2.2.4.// 计算strchr的时间复杂度&#xff1f; …

RSRS研报复现——年化21.5%,含RSRS标准分,右偏标准分的Backtrader指标计算(代码+数据)

原创文章第583篇&#xff0c;专注“AI量化投资、世界运行的规律、个人成长与财富自由"。 继续Backtrader&#xff0c;今天讲讲指标扩展。 作为规则型的量化框架&#xff0c;指标是非常重要的元素&#xff0c;它是策略的基础。 我们来扩展一个经典的指标&#xff0c;RSR…

docker 安装教程

机缘 最近在开发用用到了docker,主要是将开发的项目发版到平台上&#xff0c;运用到docker发版&#xff0c;所以才会写这篇文章。 教程 1、安装Hype-v。 在安装之前&#xff0c;首先要检查下电脑系统是否安装Hyper-v功能。 注意&#xff1a;一定要检查电脑系统&#xff0c;…

在繁华与奇迹交织的深圳

在繁华与奇迹交织的深圳&#xff0c;有一本奇书悄然走红&#xff0c;它便是《华强北经济学》&#xff0c;由那位深谙市场脉搏、笔触带风的宋仕强先生所著。这本书&#xff0c;仿佛是华强北这片创业热土的缩影&#xff0c;用一个个生动鲜活的故事&#xff0c;诠释了什么是“从螺…

Go语言---正则表达式

正则表达式是一种进行模式匹配和文本操纵的复杂而又强大的工具。虽然正则表达式比纯粹的文本匹配效率低&#xff0c;但是它却更灵活。按照它的语法规则&#xff0c;只需构造出的匹配模式就能够从原始文本中筛选出几乎任何你想要得到的字符组合。go语言的通过regexp标准包来实现…

【C++报错已解决】Invalid Conversion from ‘const char*’ to ‘char*’

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 引言 ❓ 一、问题描述 &#x1f469;‍&#x1f52c;1.1 报错示例 &#x1f3c6;1.2 报错分析 &#x1f4da;1.3 解决…

【python】PyQt5事件传递,鼠标动作捕获,键盘按键捕获原理与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

Java面试八股之MySQL中的锁及其作用

MySQL中的锁及其作用 MySQL中的锁分类 全局锁&#xff08;Global Lock&#xff09;&#xff1a; 描述&#xff1a;对整个数据库实例加锁&#xff0c;最常见的是FLUSH TABLES WITH READ LOCK命令&#xff0c;主要用于全库备份等场景&#xff0c;阻止所有对表的写入操作。 作…

上海亚商投顾:沪指大涨超1% 两市成交额重回7000亿

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 三大指数昨日放量反弹&#xff0c;午后集体涨超1%&#xff0c;深成指一度涨逾2%。消费电子板块全线爆发。 板…

基于视觉的具身导航

基于视觉的具身导航 背景 什么是&#xff08;视觉的&#xff1f;&#xff09;具身导航 输入机器人观测的当前图像 o t o_t ot​和目标图像 o G o_G oG​&#xff0c;输出当前时间步的控制动作 u t u_t ut​&#xff0c;最终到达指定地点的算法流程。 通用的评价指标 性能指…

教师管理小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;教师管理&#xff0c;个人认证管理&#xff0c;课程信息管理&#xff0c;课堂记录管理&#xff0c;课堂统计管理&#xff0c;留言板管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;课程信息…