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

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

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

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

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

评测方法

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

方法一:离线评测

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

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

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.mfbz.cn/a/788779.html

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

相关文章

浏览器开发者视角及CSS表达式选择元素

点击想要查看的接口,然后点击检查,便可以切换到该接口对应的html代码 如果F12不起作用的话,点击更多工具,然后选择开发者工具即可 ctrlF可以去查阅相关的CSS表达式选择元素 如果没有加#t1,那么表示的是选择所有的p 使用…

QListWidget、QTreeWidget、QTableWidget的拖放

QListWidget、QTreeWidget、QTableWidget的拖放实验 QAbstractItemView::DragDropMode 的枚举值 QAbstractItemView::NoDragDrop0组件不支持拖放操作QAbstractItemView::DragOnly1组件只支持拖动操作QAbstractItemView::DropOnly 2组件只支持放置操作QAbstractItemView::DragDr…

解释 C 语言中的递归函数

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会! 📙C 语言百万年薪修炼课程 通俗易懂,深入浅出,匠心打磨,死磕细节,6年迭代,看过的人都说好。 文章目…

如何在 C 语言中进行选择排序?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会! 📙C 语言百万年薪修炼课程 通俗易懂,深入浅出,匠心打磨,死磕细节,6年迭代,看过的人都说好。 文章目…

潜在空间可视化(Latent space visualization)

在“深度学习”系列中,我们不会看到如何使用深度学习来解决端到端的复杂问题,就像我们在《A.I. Odyssey》中所做的那样。我们更愿意看看不同的技术,以及一些示例和应用程序。 1、引言 上次(Autoencoders - Deep Learning bits #…

Linux——多线程(五)

1.线程池 1.1初期框架 thread.hpp #include<iostream> #include <string> #include <unistd.h> #include <functional> #include <pthread.h>namespace ThreadModule {using func_t std::function<void()>;class Thread{public:void E…

Python29 Tensorflow的基本知识和使用

1. TensorFlow TensorFlow 是一个开源的机器学习框架&#xff0c;由 Google Brain 团队开发。它用于数据流图的计算&#xff0c;尤其擅长深度学习任务。在 TensorFlow 中&#xff0c;数据流图&#xff08;Data Flow Graph&#xff09;是其核心概念之一&#xff0c;它定义了计算…

Excel第28享:如何新建一个Excel表格

一、背景需求 小姑电话说&#xff1a;要新建一个表格&#xff0c;并实现将几个单元格进行合并的需求。 二、解决方案 1、在电脑桌面上空白地方&#xff0c;点击鼠标右键&#xff0c;在下拉的功能框中选择“XLS工作表”或“XLSX工作表”都可以&#xff0c;如下图所示。 之后&…

徒手绘制 Android 通用进度条

拖动条&#xff08;FlexSeekBar&#xff09;&#xff0c;在Android的各个地方都非常常用&#xff0c;本文旨在自研一套通用的进度条&#xff0c;非常适合车载App使用 样式如下&#xff1a; 使用示例 <!--默认用法--> <com.max.android.ui.seekbar.FlexSeekBarandroi…

Retrofit框架源码深度剖析【Android热门框架分析第二弹】

Android热门框架解析&#xff0c;你确定不来看看吗&#xff1f; OkHttp框架源码深度剖析【Android热门框架分析第一弹】 Retrofit框架源码深度剖析【Android热门框架分析第二弹】 什么是Retrofit&#xff1f; 准确来说&#xff0c;Retrofit 是一个 RESTful 的 HTTP 网络请求…

雷达视频采集卡 HPx-410

产品简介 雷达视频采集卡 HPx-410&#xff0c;应用于接入导航雷达数据&#xff0c;导航雷达视频&#xff0c;适用于JRC雷达、古野furuon雷达、Sperry雷达等多种型号的雷达。 HPx-410 可以接入导航雷达数据&#xff0c;引入导航雷达原始回波&#xff0c;然后将雷达视频采集到计…

centos部署jar包

第一步&#xff1a; 将IDEA中的项目打包为jar,将这个jar文件放到centos服务器上的目录里&#xff0c;我在opt新建api目录&#xff0c;将jar文件放入&#xff0c;如下图&#xff1a; 第二步&#xff1a; 将需要读取的配置文件也放入此目录(其他目录也可以&#xff0c;和脚本中…

Python面试宝典第9题:买卖股票

题目 给定一个整型数组&#xff0c;它的第i个元素是一支给定股票第i天的价格。如果最多只允许完成一笔交易&#xff08;即买入和卖出一支股票一次&#xff09;&#xff0c;设计一个算法来计算你所能获取的最大利润。注意&#xff1a;你不能在买入股票前卖出股票。 示例 1&#…

设计模式之工厂模式(简单工厂、工厂方法、抽象工厂)

写在前面&#xff1a;本文是个人在学习设计模式时的所思所想&#xff0c;汇总了其他博主及自己的感悟思考&#xff0c;可能存在出入&#xff0c;请大家理性食用~~ 工厂模式 在工厂模式中&#xff0c;父类决定实例的生成方式&#xff0c;但并不决定所要生成的具体的类&#xf…

企业应对策略:全面防御.DevicData-P-xxxxxx勒索病毒

引言 在数字化时代&#xff0c;网络安全已成为不可忽视的重要议题。随着互联网的普及&#xff0c;各种网络威胁层出不穷&#xff0c;其中勒索病毒以其独特的攻击方式和巨大的破坏性&#xff0c;给个人用户和企业带来了严重的经济损失和数据安全风险。在众多勒索病毒中&#xff…

前端javascript中的排序算法之选择排序

选择排序&#xff08;Selection Sort&#xff09;基本思想&#xff1a; 是一种原址排序法&#xff1b; 将数组分为两个区间&#xff1a;左侧为已排序区间&#xff0c;右侧为未排序区间。每趟从未排序区间中选择一个值最小的元素&#xff0c;放到已排序区间的末尾&#xff0c;从…

LeetCode加油站(贪心算法/暴力,分析其时间和空间复杂度)

题目描述 一.原本暴力算法 最初的想法是&#xff1a;先比较gas数组和cost数组的大小&#xff0c;找到可以作为起始点的站点(因为如果你起始点的油还不能到达下一个站点&#xff0c;就不能作为起始点)。当找到过后&#xff0c;再去依次顺序跑一圈&#xff0c;如果剩余的油为负数…

11、Python之变量:看得见还是看不见

引言 在前面一篇关于Python变量的文章中&#xff0c;更多地结合对象的内存结构及字节码指令&#xff0c;来看不同代码针对不同的类型的对象的不同效果。 今天这篇文章中&#xff0c;想对新手在使用Python变量中&#xff0c;可能遇到的其他困惑&#xff0c;再展开来说一下。 大…

乐器培训课程报名小程序模板源码

模板介绍 一款实用的音乐课程&#xff0c;乐器培训&#xff0c;艺术类网页课程报名手机小程序模板下载。包含&#xff1a;主页、列表、个人中心、报名等模块。 图片演示 乐器培训课程报名小程序模板源码

《Windows API每日一练》9.13资源-鼠标位图和字符串

鼠标指针位图&#xff08;Mouse Cursor Bitmap&#xff09;是用于表示鼠标指针外观的图像。在 Windows 窗口编程中&#xff0c;可以使用自定义的鼠标指针位图来改变鼠标的外观&#xff0c;并提供更加个性化的用户体验。 ■以下是一些与鼠标指针位图相关的要点&#xff1a; ●…