当前位置: 首页 > news >正文

推荐算法——MRR

定义

        MRR计算的是第一个正确答案的排名的倒数,并对所有查询取平均值。它衡量了模型在排序结果中快速找到正确答案的能力。

其中:

  • Q 是查询的总数。
  • ranki​ 是第 i 个查询中第一个正确答案的排名(位置)。如果第一个正确答案不在结果列表中,则通常将 ranki​ 视为一个非常大的数(在实际计算中可能会设为无穷大,但通常会用0或某个很小的数来近似表示,或者简单地忽略该查询的贡献)。然而,更常见的做法是在计算MRR之前先过滤掉那些没有正确答案的查询。

计算步骤

  1. 确定查询集:首先,你需要有一个查询集,其中包含 Q 个查询。

  2. 获取排序结果:对于每个查询,使用你的模型生成一个排序结果列表。

  3. 找到第一个正确答案的排名:在排序结果列表中,找到第一个正确答案的排名(位置)。如果列表中没有正确答案,则根据具体情况处理(如忽略该查询或将其排名视为无穷大)。

  4. 计算每个查询的倒数排名:对每个查询,计算其第一个正确答案排名的倒数(即 ranki​1​)。

  5. 计算MRR:将所有查询的倒数排名相加,然后除以查询的总数 Q。

注意事项

  • 排名从1开始:在大多数情况下,排名是从1开始的,即第一个结果的位置是1,第二个结果的位置是2,依此类推。

  • 处理没有正确答案的查询:如果某个查询在结果集中没有正确答案,你可以选择忽略该查询(即不在求和时包含它),或者将其倒数排名视为0(这实际上等同于忽略它)。

  • 截断:在某些情况下,你可能只对排序结果的前N个位置感兴趣。在这种情况下,你可以只考虑前N个位置中的第一个正确答案来计算MRR(这被称为MRR@N)。

示例

假设有3个查询,它们的第一个正确答案的排名分别是1、3和5,则:

http://www.lryc.cn/news/397549.html

相关文章:

  • idea中打开静态网页端口是63342而不是8080
  • Vue3框架搭建3:配置说明-prettier配置
  • SQL MySQL定时器/事件调度器(Event Scheduler)
  • 从0到1构建渠道运营体系:实战案例与策略指南
  • Java版Flink使用指南——将消息写入到RabbitMQ的队列中
  • python excel openpyxl
  • C++八股(一)
  • 【Git的基本操作】版本回退 | 撤销修改的三种情况 | 删除文件
  • STM32-I2C
  • 04.ffmpeg打印音视频媒体信息
  • 微信开发授权登录梳理总结
  • HTML5实现我的音乐网站源码
  • UNI_App平台调试指南 debug(十五)
  • LLM之RAG实战(四十一)| 使用LLamaIndex和Gemini构建高级搜索引擎
  • 【错题集-编程题】AOE还是单体?(贪心)
  • 怎么办?我的C盘又爆红了!别慌!博主手把手带你管理你的C盘空间~
  • react启用mobx @decorators装饰器语法
  • 计算机如何学习
  • 【Python 基础】函数 - 1
  • 从0到1开发一个Vue3的新手引导组件(附带遇到的问题以及解决方式)
  • 概率统计(二)
  • 文件类:如何将excel文件转为csv文件(且保留时间格式)?
  • FiddlerScript Rules修改-更改发包中的cookie
  • 直升机停机坪的H代表什么
  • hyperworks软件许可优化解决方案
  • 四川赤橙宏海商务信息咨询有限公司抖音电商服务靠谱吗?
  • 鸿蒙开发:Universal Keystore Kit(密钥管理服务)【密钥派生(C/C++)】
  • 【ARMv8/v9 GIC 系列 6 -- 中断优先级详细介绍】
  • 【CORS 报错】跨域请求问题:CORS 多种环境下的解决方案
  • 【Scrapy】深入了解 Scrapy 中间件中的 process_spider_output 方法