推荐系统中常用评价指标及其实现

推荐系统中常用评价指标及其实现

定义

0 符号系统

符号含义备注
K, kTop-K 推荐中的 K 值, 比如 Top-5 表示给每个用户推荐 5 个物品
U U U用户总数量
I I I物品总数量
u u u代指一个用户
i i i代指一个物品
R ( u ) \mathcal{R}(u) R(u)给用户 u u u 推荐的物品列表
T ( u ) \mathcal{T}(u) T(u)用户 u u u 的真实交互列表

1 评分指标

1.1 平均绝对误差(Mean Absolute Error, MAE)
1.2 均方误差(Mean Squared Error)
1.2 均方根误差(Root Mean Absolute Error, RMSE)

2 准确性指标

2.1 召回率(Recall)

Recall 表示推荐的列表中预测正确的占总体的比例.
R e c a l l @ K = 1 U ∑ u = 1 U ∣ R ( u ) ∩ T ( u ) ∣ ∣ T ( u ) ∣ \mathrm{Recall}@K=\frac{1}{U}\sum_{u=1}^{U}\frac{\mid\mathcal{R}(u)\cap\mathcal{T}(u)\mid}{\mid\mathcal{T}(u)\mid} Recall@K=U1u=1UT(u)R(u)T(u)

2.2 精确度(Precision)

Precision 表示推荐的列表中有多少是正确的.
P r e c i s i o n @ K = 1 U ∑ u = 1 U ∣ R ( u ) ∩ T ( u ) ∣ ∣ R ( u ) ∣ = 1 U ∑ u = 1 U ∣ R ( u ) ∩ T ( u ) ∣ K \mathrm{Precision}@K=\frac{1}{U}\sum_{u=1}^{U}\frac{\mid\mathcal{R}(u)\cap\mathcal{T}(u)\mid}{\mid\mathcal{R}(u)\mid}=\frac{1}{U}\sum_{u=1}^{U}\frac{\mid\mathcal{R}(u)\cap\mathcal{T}(u)\mid}{K} Precision@K=U1u=1UR(u)R(u)T(u)=U1u=1UKR(u)T(u)

3 排名指标

3.1 命中率(Hit Ratio, HR)

HR 表示推荐列表中至少有一个物品命中的比例.

H R @ K = 1 U ∑ u = 1 U h r ( u ) h r ( u ) = { 1 , R ( u ) ∩ T ( u ) ≠ ∅ 0 , R ( u ) ∩ T ( u ) = ∅ \mathrm{HR}@K=\frac{1}{U}\sum_{u=1}^{U}\mathrm{hr}(u)\\ \mathrm{hr}(u)=\left\{ \begin{aligned} &1,\mathcal{R}(u)\cap\mathcal{T}(u)\neq\varnothing\\ &0,\mathcal{R}(u)\cap\mathcal{T}(u)=\varnothing \end{aligned} \right. HR@K=U1u=1Uhr(u)hr(u)={1,R(u)T(u)=0,R(u)T(u)=

3.2 平均倒数排名(Mean Reciprocal Rank, MRR)

M R R @ K = 1 U ∑ u = 1 U 1 r a n k ( u ) \mathrm{MRR}@K=\frac{1}{U}\sum_{u=1}^{U}\frac{1}{\mathrm{rank}(u)} MRR@K=U1u=1Urank(u)1

r a n k ( u ) \mathrm{rank}(u) rank(u)表示对用户 u u u 的推荐中( R ( u ) \mathcal{R}(u) R(u)), 第一个命中的项目在推荐列表( R ( u ) \mathcal{R}(u) R(u))中的次序, 若没有命中, 则 r a n k ( u ) → ∞ \mathrm{rank}(u)\to\infty rank(u)​.

MRR calculation example

3.3 Mean Average Precision (MAP)

M A P @ K = 1 U ∑ u = 1 U A P @ K u A P @ K u = 1 ∣ R ( u ) ∩ T ( u ) ∣ ∑ k = 1 K P r e c i s i o n ( k ) × r e l ( k ) \mathrm{MAP}@K=\frac{1}{U}\sum_{u=1}^{U}{\mathrm{AP}@K}_{u}\\ {\mathrm{AP}@K}_{u}=\frac{1}{\mid\mathcal{R}(u)\cap\mathcal{T}(u)\mid}\sum_{k=1}^{K}\mathrm{Precision}(k)\times\mathrm{rel}(k) MAP@K=U1u=1UAP@KuAP@Ku=R(u)T(u)1k=1KPrecision(k)×rel(k)

P r e c i s i o n ( k ) \mathrm{Precision}(k) Precision(k): 计算用户 u u u 的推荐列表中的第 k k k 个元素位置的 P r e c i s i o n @ k \mathrm{Precision}@k Precision@k.

r e l ( k ) \mathrm{rel}(k) rel(k): 当用户 u u u 的推荐列表中的第 k k k 个元素命中时 r e l ( k ) = 1 rel(k)=1 rel(k)=1, 否则 r e l ( k ) = 0 rel(k)=0 rel(k)=0​.

Precision at K example

Average precision example

Average precision example

3.4 归一化折损累计增益(Normalized Discounted Cumulative Gain, NDCG)

N D C G @ K = 1 U ∑ u = 1 U D C G @ K u I D C G @ K D C G @ K u = ∑ i = 1 K r e l ( i ) log ⁡ 2 ( i + 1 ) I D C G @ K = ∑ i = 1 K 1 log ⁡ 2 ( i + 1 ) \mathrm{NDCG}@K=\frac{1}{U}\sum_{u=1}^{U}\frac{\mathrm{DCG}@K_{u}}{\mathrm{IDCG}@K}\\ \mathrm{DCG}@K_{u}=\sum_{i=1}^{K}\frac{\mathrm{rel}(i)}{\log_{2}(i+1)}\\ \mathrm{IDCG}@K=\sum_{i=1}^{K}\frac{1}{\log_{2}(i+1)} NDCG@K=U1u=1UIDCG@KDCG@KuDCG@Ku=i=1Klog2(i+1)rel(i)IDCG@K=i=1Klog2(i+1)1

r e l ( i ) \mathrm{rel}(i) rel(i): 当用户 u u u 的推荐列表中的第 i i i 个元素命中时 r e l ( i ) = 1 rel(i)=1 rel(i)=1, 否则 r e l ( i ) = 0 rel(i)=0 rel(i)=0​.

3.5 多样性
3.6 新颖性

新颖性评估推荐物品对用户的独特程度, 它衡量推荐物品与流行物品的不同程度.

3.7 惊喜度
3.8 信任度
3.9 实时性
3.10 健壮性

实现

参考资料

[1] 推荐系统有哪些常用的评价标准

[2] 推荐系统研究中常用的评价指标

[3] 【推荐算法】从零开始做推荐(二)——TopK推荐的评价指标,计算原理与样例

[4] 推荐系统常用评价指标及其 Python 实现

[5] 推荐系统中的常用评价指标:NDCG,Recall,AUC,GAUC

[6] 评价指标 - HR, MRR, NDCG

[7] 详解评价指标MAP和NDCG(从推荐系统的角度)

[8] 如何理解推荐系统中的MAP评估指标?

[9] 10 metrics to evaluate recommender and ranking systems

[10] Mean Average Precision (MAP) in ranking and recommendations

[11] Normalized Discounted Cumulative Gain (NDCG) explained

[12] Mean Reciprocal Rank (MRR) explained

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

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

相关文章

腾讯云服务器如何购买省钱?2024年优惠券和优惠活动整理

腾讯云代金券领取渠道有哪些?腾讯云官网可以领取、官方媒体账号可以领取代金券、完成任务可以领取代金券,大家也可以在腾讯云百科蹲守代金券,因为腾讯云代金券领取渠道比较分散,腾讯云百科txybk.com专注汇总优惠代金券领取页面&am…

Windows 10中打开控制面板的13种方法,总有一种适合你

前言 虽然有传言称微软将取消控制面板,但它不会那么快消失。一些重要的设置仅在Windows 10的经典控制面板中找得到,它们不在设置应用程序中。本文有13种方法可以打开控制面板。 搜索开始菜单 你可以使用“开始”菜单的搜索功能搜索PC上的任何应用程序。在任务栏左侧的搜索…

设计模式|工厂模式

文章目录 1. 工厂模式的三种实现2. 简单工厂模式和工厂方法模式示例3. 抽象工厂模式示例4. 工厂模式与多态的关系5. 工程模式与策略模式的关系6. 面试中可能遇到的问题6.1 **工厂模式的概念是什么?**6.2 **工厂模式解决了什么问题?**6.3 **工厂模式的优点…

Redis如何设置键的生存时间或过期时间

键的生存时间或过期时间 概述。 通过EXPIRE命令或者PEXIPIRE命令,客户端可以以秒或者毫秒精度为数据库中的某个键设置生存时间(Time To Live,TTL),在经过指定的秒数或者毫秒数之后,服务器就会自动删除生存时间为0的键: 127.0.0.1:6379>…

策略模式实战

项目推荐最近开发完成的项目中使用到了策略模式,实现多种支付方式,避免了后期支付方式if-else代码的冗余,也有利于后期支付的一个扩展。同时这个项目非常适合于做毕设,想了解这个项目的同学可以联系我QQ:3808898981 前…

Python学习:注释和运算符

python 注释 在Python中,注释用于在代码中添加解释、说明或者提醒,但并不会被解释器执行。Python中的注释以#开头,直到行末为止。下面是关于Python注释的详细解释和举例: 单行注释:使用#符号在行的开头添加注释&…

【MySQL】图形化界面工具DataGrip安装&配置&使用

前言 大家好吖,欢迎来到 YY 滴MySQL系列 ,热烈欢迎! 本章主要内容面向接触过C Linux的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的…

NVIDIA Chat with RTX教程使用以及CUDA和CUDNN

基本环境安装:CUDA12.1CUDNNcudnn-windows-x86_64-8.9.7.29_cuda12-archive 1、CUDA下载 CUDA官方安装教程: https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html CUDA Toolkit的下载: CUDA Toolkit 12.1 Downloads | NVIDIA Dev…

vue3封装对话框el-dialog组件

实现逻辑: 1、引入对话框组件; 2、对话框组件中定义一个方法,通过defineExpose({})暴漏出去; 3、组件使用,并用ref绑定; 4、点新增和编辑的时候,通过ref调用对话框暴漏出来的方法,并…

【数据可视化】Echarts中的其它图表

个人主页 : zxctscl 如有转载请先通知 文章目录 1. 前言2. 绘制散点图2.1 绘制基本散点图2.2 绘制两个序列的散点图2.3 绘制带涟漪特效的散点图 3. 绘制气泡图3.1 绘制标准气泡图3.2 绘制各国人均寿命与GDP气泡图3.3 绘制城市A、城市B、城市C三个城市空气污染指数气…

塑料工厂5G智能制造数字孪生可视化平台,推进塑料行业数字化转型

塑料工厂5G智能制造数字孪生可视化平台,推进塑料行业数字化转型。塑料制造行业作为重要的工业领域,亟需借助这一平台实现产业升级与转型,以适应市场的变化和提高生产效率。传统的塑料制造过程往往存在生产效率低下、资源浪费、环境污染等问题…

突发!OpenAI服务异常!!!

2024/3/20傍晚7点,笔者的朋友在使用OpenAI时,页面提示服务异常,由此引发了我的深思:人工智能的脆弱性与未来的挑战 2024年3月20日,傍晚7点,一个普通的周二,我的朋友在尝试使用OpenAI时&#xf…

方案开发行业迎来新数字化转型新浪潮

着科技的不断发展和市场需求的日益增长,方案开发行业正迎来新一轮的创新浪潮。数字化转型已成为该行业的关键词,各大企业纷纷加大研发投入,以期在激烈的市场竞争中脱颖而出。 近年来,方案开发行业在范围内取得了显著的发展。根据…

从初学者到专家:Java枚举的完整指南

1.枚举的概念 在Java中,枚举是一种特殊的数据类型,用于定义一组有限的命名常量。枚举提供了一种更直观、更可读的方式来表示一组相关的常量,并且可以为这些常量绑定其他数据或行为。 背景:枚举是在JDK1.5以后引入的。 主要用途…

【JavaScript】JavaScript 程序流程控制 ② ( 循环流程控制 | 循环要素 - 循环体 / 循环终止条件 | for 循环语法结构 )

文章目录 一、JavaScript 程序流程控制 - 循环流程控制1、循环流程控制2、循环要素 - 循环体 / 循环终止条件3、for 循环语法结构 - 循环控制变量 / 循环终止条件 / 操作表达式4、for 循环 完整代码示例 一、JavaScript 程序流程控制 - 循环流程控制 1、循环流程控制 在 程序开…

杰发科技AC7801——Keil编译的Hex大小如何计算

编译结果是Keil里面前三个数据的总和: 即CodeRoDataRWData的总和。 通过ATCLinkTool工具查看内存,发现最后一个字节正好是5328 注意读内存数据时候需要强转成32位,加1000的 增加1024的地址只需要加256即可

关于paper中的一些硬件知识

一. OS中的event Information in event traces from software systems can help developers with performance analysis, debugging and troubleshooting 1.事件的概念 已知软件系统中的event能够帮助开发者对系统进行性能分析、调试以及定位,那我们应该仔细考虑…

突破图神经网络技术瓶颈!新阶段3大创新方向大幅提高模型性能

针对传统的图神经网络在处理非结构化数据、捕捉高阶关系等方面的局限性,研究者们提出了众多优化方案。 这其中,超图神经网络、几何图神经网络、动态图神经网络作为GNN发展的前沿方向,不仅提供了更加丰富和灵活的方法来处理各种复杂的图数据&…

【Linux】Linux安装软件---软件包管理器 yum

主页:醋溜马桶圈-CSDN博客 专栏:Linux_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1.Linux中安装软件 1.1 源代码安装 1.2 rpm包安装 1.3 yum安装 1.3.1 举例 1.3.2 图示yum下载安装 2.Linux系统的生态 如何选…

第9关:请将(S2,J6,P4,200)插入供应情况关系表SPJ

任务描述 请将(S2,J6,P4,200)插入供应情况关系表SPJ 相关知识 供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商 供应某种零件 给某工程项目的数量为QTY。 SPJ表如下图&…