Elasticsearch:评估搜索相关性 - 第 1 部分

作者:来自 Elastic Thanos Papaoikonomou, Thomas Veasey

这是一系列博客文章中的第一篇,讨论如何在更好地理解 BEIR 基准的背景下考虑评估你自己的搜索系统。我们将介绍具体的技巧和技术,以便在更好地理解 BEIR 的背景下改进你的搜索评估流程。我们还将介绍导致评估可靠性降低的常见陷阱。最后,我们注意到 LLM 为搜索工程师提供了一个强大的新工具,我们将通过示例展示如何使用它们来帮助评估搜索。

介绍

要改进任何系统,你需要能够衡量其运行情况。在搜索环境中,BEIR(Benchmarking-InformationRetrieval - 或相当于 MTEB 排行榜的检索部分)被认为是信息检索社区的 “holy grail - 圣杯”,这一点并不奇怪。这是一个结构良好的基准,包含不同任务的各种数据集。更具体地说,涵盖以下领域:

  • 论证检索(ArguAna、Touche2020)
  • 开放域问答(HotpotQA、Natural Questions、FiQA)
  • 段落检索(MSMARCO)
  • 重复问题检索(Quora、CQADupstack)
  • 事实核查(FEVER、Climate-FEVER、Scifact)
  • 生物医学信息检索(TREC-COVID、NFCorpus、BioASQ)
  • 实体检索(DBPedia)
  • 引文预测(SCIDOCS)

它提供了一个单一统计数据 nDCG@10,该统计数据与系统在返回的顶级结果中与每个任务示例最相关的文档的匹配程度有关。对于搜索系统来说,人类与顶级结果(top results)的相关性互动至关重要。然而,评估搜索有许多细微差别,而单一的汇总统计数据会忽略这些细微差别。

BEIR 数据集的结构

每个基准都有三个工件:

  • 要检索的语料库或文档
  • 查询
  • 查询的相关性判断(又名 qrels)。

相关性判断以零或更大的分数提供。非零分数表示文档与查询有某种关联。

表 1:数据集统计数据。这些数字是根据数据集的测试部分(MSMARCO 的开发)计算得出的。
DatasetCorpus size#Queries in the test set#qrels positively labeled#qrels equal to zero#duplicates in the corpus
Arguana8,6741,4061,406096
Climate-FEVER5,416,5931,5354,68100
DBPedia4,635,92240015,28628,2290
FEVER5,416,5686,6667,93700
FiQA-201857,6386481,70600
HotpotQA5,233,3297,40514,81000
Natural Questions2,681,4683,4524,021016,781
NFCorpus3,63332312,334080
Quora522,93110,00015,67501,092
SCIDOCS25,6571,0004,92825,0002
Scifact5,18330033900
Touche2020382,545499321,9825,357
TREC-COVID171,3325024,76341,6630
MSMARCO8,841,8236,9807,4370324
CQADupstack (sum)457,19913,145

表 1 列出了构成 BEIR 基准的数据集的一些统计数据,例如语料库中的文档数量、测试数据集中的查询数量以及 qrels 文件中的正/负(查询、文档)对数量。快速浏览数据后,我们可以立即推断出以下内容:

  • 大多数数据集在 qrels 文件中不包含任何负面关系,即零分数,这明确表示文档与给定查询无关。
  • 每个查询的平均文档关系数(#qrels/#queries)从 ArguAna 的 1.0 到 TREC-COVID 的 493.5 不等,但大多数情况下的值小于 5。
  • 一些数据集的语料库中存在重复文档,在某些情况下可能会导致错误的评估,即当文档被认为与查询相关但其重复项不相关时。例如,在 ArguAna 中,我们已识别出 96 个重复文档对案例,其中每个文档对只有一个文档被标记为与查询相关。通过 “expanding - 扩展” 初始 qrels 列表以包括重复项,我们观察到 nDCG@10 得分平均相对增加约 1%。
{"_id": "test-economy-epiasghbf-pro02b","title": "economic policy international africa society gender house believes feminisation","text": "Again employment needs to be contextualised with …","metadata": {}
}
{"_id": "test-society-epiasghbf-pro02b","title": "economic policy international africa society gender house believes feminisation","text": "Again employment needs to be contextualised with …","metadata": {}
}

ArguAna 中重复对的示例。在 qrels 文件中,只有第一个似乎与查询(“test-economy-epiasghbf-pro02a”)相关(作为反驳)

在 MTEB 排行榜上比较模型时,人们很容易关注平均检索质量。这是模型整体质量的一个很好的代表,但它不一定能告诉你模型的表现如何。由于结果是按数据集报告的,因此有必要了解不同数据集与搜索任务的密切关系,并仅使用最相关的数据集对模型进行重新评分。如果你想深入挖掘,你还可以检查与各种数据集语料库的主题重叠。按主题对质量指标进行分层可以更细致地评估它们的具体优势和劣势。

这里需要注意的一点是,如果文档未在 qrels 文件中标记,则默认情况下它被视为与查询无关。我们深入研究这个领域,并收集一些证据来进一步阐明以下问题:“How often is an evaluator presented with (query, document) pairs for which there is no ground truth information? - 评估者多久会遇到一次没有基本事实信息的(查询、文档)对?”。这很重要的原因是,当只有浅层标记可用时(因此并非每个相关文档都标记为浅层标记),一个信息检索系统可能会被判定为比另一个更差,因为它 “选择” 显示不同的相关(但未标记)文档。这是创建高质量评估集时常见的问题,尤其是对于大型数据集。为了切实可行,手动标记通常侧重于当前系统返回的最佳结果,因此可能会错过盲点中的相关文档。因此,通常最好将更多资源集中在更少查询的更完整标记上,而不是广泛的浅层标记。

为了开始我们的分析,我们实施以下场景(参见 notebook):

  • 首先,我们将每个数据集的语料库加载到 Elasticsearch 索引中。
  • 对于测试集中的每个查询,我们使用 BM25 检索前 100 个文档。
  • 我们使用各种 SOTA 重新排序模型对检索到的文档进行重新排序。
  • 最后,我们报告来自步骤 2(检索后)和步骤 3(重新排序后)的前 10 个文档的 “判断率”。换句话说,我们计算 qrels 文件中具有分数的前 10 个文档的平均百分比。

我们使用的重新排序模型列表如下:

  • Cohere's rerank-english-v2.0 and rerank-english-v3.0
  • BGE-base
  • mxbai-rerank-xsmall-v1
  • MiniLM-L-6-v2
表 2:根据检索/重新排序的前 10 个文档计算的每对(数据集,重新排序器)的判断率
RetrievalReranking
DatasetBM25 (%)Cohere Rerank v2 (%)Cohere Rerank v3 (%)BGE-base (%)mxbai-rerank-xsmall-v1 (%)MiniLM-L-6-v2 (%)
Arguana7.544.877.874.524.536.84
Climate-FEVER5.756.248.159.367.797.58
DBPedia61.1860.7864.1563.963.567.62
FEVER8.899.9710.0810.199.889.88
FiQa-20187.0211.0210.778.439.19.44
HotpotQA12.5914.514.7615.114.0214.42
Natural Questions5.948.848.718.378.148.34
NFCorpus31.6732.933.9130.6332.7732.45
Quora12.210.4613.0411.2612.5812.78
SCIDOCS8.629.419.718.048.798.52
Scifact9.079.579.779.39.19.17
Touche202038.7830.4132.2433.0637.9633.67
TREC-COVID92.498.498.293.899.697.4
MSMARCO3.976.006.036.075.476.11
CQADupstack (avg.)5.47

从表 2 中,除了 TREC-COVID(覆盖率 > 90%)、DBPedia(~65%)、Touche2020 和 nfcorpus(~35%)之外,我们发现大多数数据集在检索或重新排序后的标记率在 5% 到 10% 多一点之间。这并不意味着所有这些未标记的文档都是相关的,但其中可能有一个子集(尤其是那些位于顶部位置的文档)可能是正面的。

随着通用指令调整语言模型的出现,我们有了一个强大的新工具,可以自动判断相关性。这些方法通常计算成本太高,无法在线用于搜索,但在这里我们关注的是离线评估。在下文中,我们将使用它们来探索一些 BEIR 数据集存在浅层标记的证据。

为了进一步研究这一假设,我们决定专注于 MSMARCO,并选择 100 个查询的子集以及当前未标记为相关的前 5 个重新排序的文档(使用 Cohere v2)。我们遵循了两种不同的评估路径:首先,我们使用精心调整的提示(稍后将详细介绍)来启动最近发布的 Phi-3-mini-4k 模型,以预测文档与查询的相关性(或不相关性)。同时,这些案例也被手动标记,以便评估 LLM 输出和人类判断之间的一致率。总体而言,我们可以得出以下两个结论:

  • LLM 响应和人类判断之间的一致率略高于 80%,这似乎足以作为该方向的起点。
  • 在 54.5% 的案例中(基于人类判断),返回的文档被发现与查询实际上相关。换一种说法:对于 100 个查询,我们有 107 个文档被判定为相关,但至少有 0.545 x 5 x 100 = 273 个额外的文档实际上是相关的!

以下是从 MSMARCO/dev 数据集中提取的一些示例,其中包含查询、带注释的真(positive)文档(来自 qrels)和由于标记不完整而导致的假(negative)文档:

示例 1:

{"query":{"_id": 155234,"text": "do bigger tires affect gas mileage"},"positive_doc":{"_id": 502713,"text": "Tire Width versus Gas Mileage. Tire width is one of the only tire size factors that can influence gas mileage in a positive way. For example, a narrow tire will have less wind resistance, rolling resistance, and weight; thus increasing gas mileage.",},"negative_doc":{"_id": 7073658,"text": "Tire Size and Width Influences Gas Mileage. There are two things to consider when thinking about tires and their effect on gas mileage; one is wind resistance, and the other is rolling resistance. When a car is driving at higher speeds, it experiences higher wind resistance; this means lower fuel economy."}
}

示例 2:

{"query":{"_id": 300674,"text": "how many years did william bradford serve as governor of plymouth colony?"},"positive_doc":{"_id": 7067032,"text": "http://en.wikipedia.org/wiki/William_Bradford_(Plymouth_Colony_governor) William Bradford (c.1590 \u00e2\u0080\u0093 1657) was an English Separatist leader in Leiden, Holland and in Plymouth Colony was a signatory to the Mayflower Compact. He served as Plymouth Colony Governor five times covering about thirty years between 1621 and 1657."},"negative_doc":{"_id": 2495763,"text": "William Bradford was the governor of Plymouth Colony for 30 years. The colony was founded by people called Puritans. They were some of the first people from England to settle in what is now the United States. Bradford helped make Plymouth the first lasting colony in New England."}
}

手动评估此类特定查询是一种普遍有用的技术,可用于了解搜索质量,可补充 nDCG@10 等定量指标。如果你有一组代表性查询,并且在更改搜索时始终运行这些查询,那么它将为你提供有关性能如何变化的重要定性信息,而这些信息在统计数据中是不可见的。例如,它可以让你更深入地了解搜索返回的错误结果:它可以帮助你发现检索结果中明显的错误、相关错误类别(例如误解特定领域的术语)等等。

我们的结果与 MSMARCO 评估的相关研究一致。例如,Arabzadeh 等人遵循类似的程序,他们雇用众包工作人员进行偏好判断:除其他事项外,他们表明,在许多情况下,与 MSMARCO qrels 文件中的文档相比,重新排名模块返回的文档更受欢迎。另一个证据来自 RocketQA 重新排名器的作者,他们报告说,经过手动检查,发现 70% 以上的重新排名文档是相关的。

主要收获和后续步骤

  • 对更好的基本事实的追求永无止境,因为它对于基准测试和模型比较至关重要。如果谨慎使用并按照适当的说明进行调整,LLMs 可以在一些评估领域提供帮助
  • 更一般地说,鉴于基准测试永远不会完美,最好从纯分数比较转向更强大的技术来捕捉统计上显着的差异。Arabzadeh 等人的工作提供了一个很好的例子,他们根据他们的发现建立了 95% 的置信区间,表明各个运行之间存在显着(或不显着)差异。在随附的 notebook 中,我们使用引导程序提供了置信区间的实现。
  • 从最终用户的角度来看,在阅读基准测试结果时考虑任务对齐很有用。例如,对于构建 RAG 管道并知道最典型的用例涉及从不同来源收集多条信息的 AI 工程师来说,评估其检索模型在 multi-hop QA 数据集(如 HotpotQA)上的性能比评估整个 BEIR 基准的全局平均值更有意义

在下一篇博文中,我们将深入探讨使用 Phi-3 作为 LLM 评判员以及对其进行调整以预测相关性的过程。

准备好自己尝试了吗?开始免费试用。

希望将 RAG 构建到你的应用程序中?想要使用矢量数据库尝试不同的 LLM?

在 Github 上查看我们针对 LangChain、Cohere 等的示例笔记本,并立即加入 Elasticsearch Relevance Engine 培训。

原文:Elasticsearch search relevance: Evaluating using the BEIR benchmark — Search Labs

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

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

相关文章

静态网站怎么更新数据

今天看到个问题 我不是行业从业者,但目前遇到一个问题 我公司网站为纯静态,除了直接从html里修改文字外能不能这样 建立一个xml或者txt文档,其中有很多信息,例如网站名称,电话,备案号等,一行一行…

Java 网络编程(TCP编程 和 UDP编程)

1. Java 网络编程(TCP编程 和 UDP编程) 文章目录 1. Java 网络编程(TCP编程 和 UDP编程)2. 网络编程的概念3. IP 地址3.1 IP地址相关的:域名与DNS 4. 端口号(port)5. 通信协议5.1 通信协议相关的…

40.简易频率计(基于等精度测量法)(3)

(1)BCD8421码:十进制数字转换成BCD8421码的方法 补零:你需要显示多少位数字,就在前面补上四倍的位宽。比如你要显示一个十进制8位的数字,就在前面补上8*432个零。判断:判断补零部分显示的十进制…

叉车指纹一键启动/熄火车辆,“锁”住叉车安全

在现代工业领域,叉车作为重要的物流搬运工具,其安全性和便捷性一直是人们关注的焦点。为此,我们引入了一项技术——叉车指纹一键启动/熄火系统,真正实现了叉车安全的“锁定”。 这项技术不仅仅是简单的启动或关闭车辆的手段&#…

Axure RP移动端医院在线挂号app问诊原型图模板

医疗在线挂号问诊Axure RP原型图医院APP原形模板,是一款原创的医疗类APP,设计尺寸采用iPhone13(375*812px),原型图上加入了仿真手机壳,使得预览效果更加逼真。 本套原型图主要功能有医疗常识科普、医院挂号…

云监控(华为) | 实训学习day3(10)

实现数据的增删改查 SpringBoot框架模式 向送外卖一样理解 写程序 1、准备食材(java bean) 2、菜谱(pojo接口->预制->sql 语句) 3、service处理 4、controller 派送 5、用户请求->页面 一、Spring Boot实现增加 第一步:食材(表),用户增加,这里还是用户…

【Android studio环境搭建】Android studio连接夜神模拟器

Android studio连接夜神模拟器 一、 步骤 1.下载好Android Studio和夜神模拟器, 2.打开夜神模拟器,找到其安装目录下的 nox_adb.exe文件 3.右键进入cmd命令打开,管理员权限执行下面命令 PS D:\Program Files\Nox\bin> .\nox_adb.exe connect 127.…

【论文解读】VoxelNeXt: Fully Sparse VoxelNet for 3D Object Detection and Tracking

VoxelNeXt 摘要引言方法Sparse CNN Backbone AdaptationSparse Prediction Head 3D Tracking实验结论 摘要 3D物体检测器通常依赖于手工制作的方法,例如锚点或中心,并将经过充分学习的2D框架转换为3D。因此,稀疏体素特征需要通过密集预测头进…

免费的数字孪生平台助力产业创新,让新质生产力概念有据可依

关于新质生产力的概念,在如今传统企业现代化发展中被反复提及。 那到底什么是新质生产力?它与哪些行业存在联系,我们又该使用什么工具来加快新质生产力的发展呢?今天我将介绍一款为发展新质生产力而量身定做的数字孪生工具。 新…

OpenCv 如何在 Java 中使用

Java 项目引入 OpenCv 环境准备OpenCv介绍下载Maven 安装动态链接库 完成 环境准备 JDK 8 OpenCv 4.0.0 Maven 3.9 Windows 11 OpenCv 介绍 OpenCV(开源计算机视觉库)是一个功能强大的计算机视觉和机器学习库。它提供了广泛的工具和算法,用…

MYSQL中的库表建立基础操作

任务:新建产品库mydb6_product, 新建3张表如下: 一, employees表 (1):id,整型,主键 (2):name,字符串,最大长度50,不能为空 &#xff…

【Django】网上蛋糕商城后台-类目管理

1.类目管理列表实现 当管理员进入后台管理后,点击类目管理,向服务器发出请求 path(admin/type_list/,viewsAdmin.type_list), # 处理商品分类管理列表请求 def type_list(request):# 读取分页页码try:ym request.GET["ym"]except:ym 1# 查…

html2canvas + jspdf 纯前端HTML导出PDF的实现与问题

前言 这几天接到一个需求,富文本编辑器的内容不仅要展示出来,还要实现展示的内容导出pdf文件。一开始导出pdf的功能是由后端来做的,然后发现对于宽度太大的图片,导出的pdf文件里部分图片内容被遮盖了,但在前端是正常显…

【Node.js】会话控制

express 中操作 cookie cookie 是保存在浏览器端的一小块数据。 cookie 是按照域名划分保存的。 浏览器向服务器发送请求时,会自动将 当前域名下可用的 cookie 设置在请求头中,然后传递给服务器。 这个请求头的名字也叫 cookie ,所以将 c…

LLaMA 背景

什么是LLaMA? 模型介绍:LLaMA是Meta开发的语言模型,旨在推动开放科学和人工智能的实践。 参数范围:这些模型的参数数量从7B到65B不等,覆盖了不同规模的需求。 训练数据:LLaMA模型是在数万亿个公开数据集的…

Python算法实现之排序算法的Python实现详解

概要 排序算法是计算机科学中最基础和最重要的算法之一。它们在数据处理中起着关键作用,广泛应用于搜索、数据分析和优化等领域。本文将详细介绍几种常见的排序算法及其Python实现,包括冒泡排序、选择排序、插入排序、归并排序和快速排序,并通过具体示例代码展示它们的工作…

推荐一款基于Spring Boot 框架开发的分布式文件管理系统,功能齐全,非常便捷(带私活源码)

前言 在数字化时代,文件管理是企业和个人用户的基本需求。然而,现有的文件管理系统往往存在一些痛点,如存储空间有限、文件共享困难、缺乏在线编辑功能、移动端适配性差等。这些问题限制了用户在不同设备和场景下的文件处理能力。 为了解决…

【20】读感 - 架构整洁之道(二)

概述 继上一篇文章讲了前两章的读感,已经归纳总结的重点,这章会继续跟进的看一下,深挖架构整洁之道。 编程范式 编程范式从早期到至今,提过哪些编程范式,结构化编程,面向对象编程,函数式编程…

ClickHouse 入门(二)【基础SQL操作】

1、ClickHouse 1.1、SQL 操作 这里只介绍一些和我们之前 MySQL 不同的语法; 1.1.1、Update 和 Delete ClickHouse 提供了 Delete 和 Update 的能力,这类操作被称为 Mutation 查询(可变查询),它可以看 做 Alter 的一…

负载均衡 lvs

1. 4层转发(L4) 与 7层转发(L7) 区别 4层转发(L4) 与 7层转发(L7) 区别 转发基于的信息 状态 常用的服务 L4 基于网络层和传输层信息: L4转发主要依赖于网络层IP头部(源地址,目标地址,源端口,目标端口)和传输层头部&#xff…