改进 Elastic Stack 中的信息检索:对段落检索进行基准测试

news2024/11/24 19:07:47

作者:Grégoire Corbière, Quentin Herreros, Thomas Veasey

 

在之前的博客文章中,我们讨论了信息检索的常见方法,并介绍了模型和训练阶段的概念。 在这里,我们将检查基准解决方案,以公平的方式比较各种方法。 请注意,基准测试的任务并不简单,可能会导致人们对模型在现实场景中的表现产生误解。

从历史上看,BM25 和学习检索模型之间的比较一直基于有限的数据集,甚至仅基于这些密集模型的训练数据集:MSMARCO,这可能无法准确表示模型在数据上的性能。 尽管这种方法对于展示密集模型在特定领域中针对 BM25 的表现非常有用,但它并没有抓住 BM25 的关键优势之一:它能够在许多领域中表现良好,而无需监督微调。 因此,使用这样一个特定的数据集来比较这两种方法可能被认为是不公平的。

BEIR 论文(“BEIR:信息检索模型零样本评估的异构基准”,Takhur 等人,2021 年)提出了解决在通用环境中评估信息检索方法的问题。 该论文提出了一个框架,使用来自不同主题的 18 个公开数据集来对最先进的检索系统进行基准测试。

在这篇文章中,我们使用这些数据集的子集合来针对两个经过专门恢复训练的密集模型来对 BM25 进行基准测试。 然后我们将说明使用这些密集模型之一的微调策略可实现的潜在增益。 我们计划在下一篇博客文章中重新讨论这个基准,因为它构成了我们在零样本设置中使用语言模型增强 Elasticsearch 相关性所做的测试的基础。

BEIR 数据集

不同检索方法的性能可能存在很大差异,具体取决于查询类型、文档大小或主题。 为了评估数据集的多样性并识别基准中潜在的盲点,使用经过训练来识别自然问题的分类算法来理解查询类型。 结果总结于表 1。

BEIR 数据集子集比较

 

在我们的基准测试中,我们选择不包含 MSMARCO,只是为了强调在不熟悉的环境中的性能。 当用例数据的性质未知或资源限制阻止专门调整模型时,在不同于训练数据的设置中评估模型很有价值。

搜索相关性指标

选择适当的指标对于准确评估模型的排名能力至关重要。 在各种可用的指标中,三个通常用于搜索相关性:

  • 平均倒数排名 (Mean Reciprocal Rank - MRR) 是最直接的指标。 虽然它很容易计算,但它只考虑结果列表中的第一个相关项,并忽略单个查询可能具有多个相关文档的可能性。 在某些情况下,MRR 可能就足够了,但通常不够精确。
  • 平均精度 (Mean Average Precision - MAP) 在排名列表中表现出色,并且适用于二元相关性评级(文档要么相关,要么不相关)。 然而,在细粒度评级的数据集中,MAP 无法区分高度相关的文档和中等相关的文档。 此外,仅当列表重新排序时才合适,因为它对顺序不敏感; 搜索工程师会更喜欢相关文档首先出现。
  • 标准化贴现累积收益 (Normalized Discounted Cumulative Gain - NDCG) 是最完整的指标,因为它可以处理多个相关文档和细粒度的文档评级。 这是我们将在本博客和未来博客中研究的指标。

所有这些指标都应用于固定大小的检索文档列表。 列表大小可能会根据手头的任务而有所不同。 例如,重新排序任务之前的初步检索可能会考虑前 1000 个检索到的文档,而单阶段检索可能会使用较小的列表大小来模仿用户的搜索引擎行为。 我们选择将列表大小固定为前 10 个文档,这与我们的用例一致。

BM25 和域外密集模型

在我们之前的博客文章中,我们注意到密集模型由于其训练设计而针对特定数据集进行了优化。 虽然它们已被证明在此特定数据集上表现良好,但在本节中,我们将探讨它们在域外使用时是否保持其性能。 为此,我们使用默认设置和 English 分析器(analyzer)在 Elasticsearch 中比较了两个最先进的密集检索器(msmarco-distilbert-base-tas-b 和 msmarco-roberta-base-ance-fristp)与 BM25 的性能。

NDCG@10(BM25) 与  最先进的密集模型基准

 

这两个密集模型在 MSMARCO 上的表现均优于 BM25(如 BEIR 论文中所示),因为它们是专门针对该数据集进行训练的。 然而,它们在域外通常更糟。 换句话说,如果模型不能很好地适应你的特定数据,那么与 BM25 相比,使用 kNN 和密集模型很可能会降低你的检索性能。

微调密集模型

前面的描述中对密集模型的描述并不是全貌。 通过使用代表该用例的一些标记数据针对特定用例进行微调,可以提高它们的性能。 如果你有一个经过微调的嵌入模型,Elastic Stack 是一个很好的平台,可以为你运行推理并使用 ANN 搜索检索类似文档。

有多种方法可以微调密集模型,其中一些方法非常复杂。 然而,这篇博文不会深入探讨这些方法,因为这不是重点。 相反,我们测试了两种方法来衡量无需大量特定领域训练数据即可实现的潜在改进。 第一种方法 (FineTuned A) 涉及使用带标签的正文档并从语料库中随机选择文档作为负文档。 第二种方法 (FineTuned B) 涉及使用带标签的正面文档,并使用 BM25 来识别从 BM25 角度来看与查询相似但未标记为正面的文档。 这些被称为 “hard negatives”。

使用 SciFact BEIR 数据集中的 1000 个三元组微调 msmarco-distilbert-base-tas-b 的 NDCG@10 曲线

 

标记数据可能是微调中最具挑战性的方面。 根据主题和领域的不同,手动标记正面文档可能既昂贵又复杂。 不完整的标签也会给 hard negatives 挖掘带来问题,对微调造成不利影响。 最后,随着时间的推移,数据库中主题或语义结构的变化将降低微调模型的检索准确性。

结论

我们使用 13 个数据集建立了信息检索的基础。 BM25 模型在零样本设置中表现良好,即使是最先进的密集模型也很难在每个数据集上进行竞争。 这些初始基准表明,如果没有适当的域内训练,当前的 SOTA 密集检索就无法有效使用。 调整模型的过程需要标记工作,这对于资源有限的用户来说可能不可行。

在我们的下一篇博客中,我们将讨论不需要创建标记数据集的高效恢复系统的替代方法。 这些解决方案将基于混合检索方法。

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

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

相关文章

基于高精度三维机器视觉的螺丝锁付系统应用

Part.1 行业背景 随着社会经济的发展、科技的进步及工业水平的提高,智能工业发展模式在全球范围内备受关注。螺丝锁付作为最常用的装配连接方式,在加工制造的各个环节得到了广泛应用,如:玩具、电子产品、塑胶、汽车零部件、通讯设…

freemark生成pdf

freemark生成pdf 字体库 simsun.ttc 解决中文问题 /*** 生成pdf* param params* param templPath* param ftlName* param htmlPath* param pdfPath* param fontPath* return*/public String processPdf(Map<String, Object> params, String templPath, String ftlName,…

CodeMirror 对 XML 文档熟悉及元素控制自定义

CodeMirror 是一个网络代码编辑器组件。它可以在网站中用于实现支持多种编辑功能的文本输入字段&#xff0c;并具有丰富的编程接口以允许进一步扩展。 本文为 xml 格式的代码提示约束格式规范的自定义示例内容。 先看效果&#xff0c;如下&#xff1a; 官方 Demo 的完整代码如…

【MATLAB第52期】#源码分享 | 基于MATLAB的高斯过程GPR超参数(sigma)自动优化算法 时间序列预测模型 五折交叉验证

【MATLAB第52期】#源码分享 | 基于MATLAB的高斯过程GPR超参数&#xff08;sigma&#xff09;自动优化算法 时间序列预测模型 五折交叉验证 后台私信回复“52期”即可免费获取数据及代码。 一、效果展示 二、优化思路 1.数据 一列时间序列数据 &#xff0c;滑动窗口尺寸为15。…

《前端开发 实践之 Webstorm 学习》

目录 Webstorm 简介官方下载地址安装记录-教程下载其他版本方法 是否推送数据统计许可证激活插件功能版本控制查看代码责任人插件(annotate) Webstorm 简介 作为 jetbrains 公司旗下一款 JavaScript 开发工具&#xff0c;Web前端开发神器之一 个人博客地址&#xff1a; 官方下载…

网络安全自学黑客入门(超详细)

前言 前几天发布了一篇 网络安全&#xff08;黑客&#xff09;自学 没想到收到了许多人的私信想要学习网安黑客技术&#xff01; 却不知道从哪里开始学起&#xff01;怎么学&#xff1f;如何学&#xff1f; 今天给大家分享一下&#xff0c;很多人上来就说想学习黑客&#xf…

银河麒麟服务器V10 SP1 .Net6.0 开机自动启动

开机自动启动&#xff0c;折腾了一小天&#xff0c;设置/etc/init.d/ 、update-rc.d&#xff0c;可能刚开始用&#xff0c;经验不多吧&#xff0c;尝试多种方式我的服务怎么都启动不起来&#xff0c;根据之前nginx和redis的自动启动经验&#xff0c;使用systemd管理服务&#x…

【EXCEL】给数据添加图表(数据条、柱状图、折线图等),快速分析功能图文详解

目录 0.环境 1.背景简介 2.具体实现 2.1 给数据添加数据条 实现效果&#xff1a; 具体操作&#xff1a; 2.2 给数据添加柱状图图表 实现效果&#xff1a; 具体操作&#xff1a; 2.3 给数据添加迷你图&#xff08;在表格中的折线图&#xff09; 实现效果&#xff1a; …

基于PyQt5的桌面图像调试仿真平台开发(13)图像边缘显示

系列文章目录 基于PyQt5的桌面图像调试仿真平台开发(1)环境搭建 基于PyQt5的桌面图像调试仿真平台开发(2)UI设计和控件绑定 基于PyQt5的桌面图像调试仿真平台开发(3)黑电平处理 基于PyQt5的桌面图像调试仿真平台开发(4)白平衡处理 基于PyQt5的桌面图像调试仿真平台开发(5)…

JavaWeb学习笔记1

目录 web标准 三个组成部分 HTML 标题标签 水平线标签 换行标签 图片标签 布局标签&#xff1a; 超链接标签 属性&#xff1a; 视频标签&#xff1a; 音频标签&#xff1a; 段落标签&#xff1a; 文本加粗标签&#xff1a; 表格标签 表单标签 表单项 CSS Css引入方式…

1.6 OSI 七层参考模型

OSI 参考模型 OSI参考模型解释的通信过程OSI参考模型数据封装与通信过程物理层功能数据链路层功能网络层的功能传输层功能会话层功能表示层功能应用层功能 开放系统互连 (OSI)参考模型是由国际标准化组织 (ISO) 于1984年提出的分层网络体系结构模型目的是支持异构网络系统的互联…

数学建模--TOPSIS

代码 topsis.m Positivization.m inter2Max.m Mid2Max.m Min2Max.m

C++学习 函数

目录 函数 函数的定义 函数的调用 值传递 常见的样式 函数的声明 函数的分文件编写 1.创建后缀.h的头文件 2.创建后缀.cpp的源文件 3.头文件中写函数声明 4.源文件中写函数定义 5.函数调用 函数 作用&#xff1a; C中的函数充当了组织和重用代码的重要工具&#xff0c;提供了抽…

8-js高级-3

JavaScript 进阶 - 3 了解构造函数原型对象的语法特征&#xff0c;掌握 JavaScript 中面向对象编程的实现方式&#xff0c;基于面向对象编程思想实现 DOM 操作的封装。 编程思想构造函数原型综合案例 编程思想 学习 JavaScript 中基于原型的面向对象编程序的语法实现&#xff…

大胜归来!妙记多这份「高考填志愿」指南请收好!

2023年高考已经落下帷幕&#xff0c;上周和本周多个省份就要公布高考分数了&#xff0c;志愿填报还会远吗&#xff1f; 不知道自己的分数能报什么院校&#xff1f; 不知道目标院校的王牌专业有哪些&#xff1f; 不知道目标专业的就业方向&#xff1f; 不知道有哪些志愿填报小…

C# 简述.NET中堆和栈的区别

目录 一&#xff0c;引言 二&#xff0c;.NET的堆栈 三&#xff0c;.NET中的托管堆 四&#xff0c;.NET中的非托管堆 五、堆栈、托管堆和非托管堆的比较 六&#xff0c;总结 一&#xff0c;引言 .NET提供了垃圾回收机制&#xff0c;使程序员从内存管理中被解放出来。但这…

Unity 语法详解之查找游戏物体的方法(含查找隐藏物体)

为了更好的看懂&#xff0c;有一个非常基础的知识&#xff0c;如果不知道可以移步去了解一下哦 unity | gameobject和transform的区别和关联通俗解释_gameobject transform_菌菌巧乐兹的博客-CSDN博客 一、前情提要 大写的GameObject是个类&#xff0c;里面写满了物体有关的…

python利用docxtpl将excel数据写入word表格

解决问题一&#xff1a;将excel数据读取&#xff0c;并将其保存在word中的表格 解决问题二&#xff1a;使用xlrd读入excel数据&#xff0c;如果是整数的话&#xff0c;打开word后发现保存变成了浮点数&#xff0c;后边多了“.0”。 问题一、 可以参考docxtpl快速上手使用,数…

电商API知识点整理(二)关键字搜索接口item_search获取商品列表

关键字搜索接口名称&#xff1a;item_search 接口背景&#xff1a; 随着互联网的普及和电子商务市场的快速发展&#xff0c;越来越多的消费者开始通过关键字搜索来寻找自己感兴趣的商品。为了满足用户的需求&#xff0c;电商平台开发了各种搜索接口&#xff0c;其中之一就是i…

22个最佳WordPress网站预约插件(2023)

您是否正在寻找可以节省您和您的客户时间的自动预订或预约插件&#xff1f;您是否厌倦了将业务输给竞争对手&#xff1f;您是否正在寻找一种简化在线预约和预订的方法&#xff1f; 您的网站应该让客人可以轻松查看和预订可用的预约。这是WordPress预约插件可以帮助您实现在线业…