PAIRDISTILL: 用于密集检索的成对相关性蒸馏方法

在当今海量数据时代,有效的信息检索(IR)技术对于从庞大数据集中提取相关信息至关重要。近年来,密集检索技术展现出了相比传统稀疏检索方法更加显著的效果。

现有的方法主要从点式重排序器中蒸馏知识,这些重排序器为文档分配绝对相关性分数,因此在进行比较时面临不一致性的挑战。为解决这一问题,来自国立台湾大学的研究者Chao-Wei Huang和Yun-Nung Chen提出了一种新颖的方法——成对相关性蒸馏(Pairwise Relevance Distillation, PAIRDISTILL)。

PAIRDISTILL的主要研究目的是:

  1. 利用成对重排序的优势,为密集检索模型的训练提供更细粒度的区分。
  2. 提高密集检索模型在各种基准测试中的性能,包括领域内和领域外的评估。
  3. 探索一种可以跨不同架构和领域进行一致性改进的方法。

方法改进详细描述

PAIRDISTILL方法的核心思想是利用成对重排序器提供的细粒度训练信号来增强密集检索模型的训练。该方法的主要组成部分包括:

成对重排序:与传统的点式重排序不同,成对重排序同时比较两个文档,估计一个文档相对于另一个文档与查询的相关性。形式上,给定查询q和两个文档di和dj,成对重排序器估计的概率为:

这种方法通过仅建模di和dj的相对相关性来缓解校准问题。

成对相关性蒸馏:PAIRDISTILL的目标是让密集检索器模仿成对重排序器的输出分布。密集检索器预测的成对相关性分布定义为:

训练目标是最小化密集检索器和成对重排序器的成对相关性分布之间的KL散度:

迭代训练策略:为了提高检索器的性能并避免过拟合固定的文档集,PAIRDISTILL采用了迭代训练策略。每次迭代中,使用前一次迭代训练的检索器构建索引并检索前k个文档,然后进行重排序和微调。

综合损失函数:PAIRDISTILL的完整损失函数包括对比学习损失、点式知识蒸馏损失和成对相关性蒸馏损失:

其中λKD和λpair是表示蒸馏损失权重的超参数。

下图2展示了PAIRDISTILL方法的整体框架:

(图2:PAIRDISTILL方法框架示意图)

这种方法不仅可以应用于有监督的数据集,还可以用于零样本域适应任务。在没有标记训练数据的情况下,可以使用以下简化的损失函数:

通过这种创新的方法,PAIRDISTILL能够从成对比较中蒸馏知识,使模型学习到更细致的文档相关性区分,从而提高密集检索模型的整体性能。

实验设置

研究者进行了广泛的实验来验证PAIRDISTILL方法的有效性。主要的实验设置如下:

  1. 数据集:- MS MARCO:用作监督数据集,包含502K训练查询和8.8百万段落。- TREC DL19和DL20:用于额外的领域内评估。- BEIR:包含18个检索数据集,用于评估领域外检索性能。- LoTTE:包含来自StackExchange的问题和答案,涵盖多个主题。
  2. 评估指标:- MS MARCO:使用MRR@10和Recall@1000- TREC和BEIR:使用NDCG@10- LoTTE:使用Success@5
  3. 模型实现:- 初始检索器:采用预训练的ColBERTv2- 点式重排序器:使用MiniLM- 成对重排序器:采用duoT5-3B
  4. 训练细节:- 每个查询检索top-100段落- 对每个查询采样50对段落进行成对重排序- 使用4个V100 GPU进行训练

主要实验结果

PAIRDISTILL在多个基准测试中都取得了显著的性能提升。主要结果如下:

  1. 领域内评估:在MS MARCO开发集上,PAIRDISTILL达到了40.7的MRR@10,优于所有基线模型,包括其初始化模型ColBERTv2(39.7)。在TREC DL19上也达到了最佳性能,在TREC DL20上达到了第二佳性能。
  2. 领域外评估:- BEIR数据集:PAIRDISTILL在18个任务中的6个达到了最佳性能,在16个数据集上持续优于ColBERTv2。- LoTTE数据集:在搜索和论坛子集中都达到了最先进的性能。
  3. 开放域问答:在NaturalQuestions、TriviaQA和SQuAD数据集上,PAIRDISTILL在Recall@5指标上持续优于所有基线模型。

性能改进分析

为了深入理解PAIRDISTILL的性能改进,研究者进行了一系列消融实验和分析:

  1. 消融研究:- 移除成对蒸馏损失(Lpair)会导致性能下降到39.7。- 移除点式蒸馏损失(LKD)会进一步降低性能至39.4。- 这表明两种蒸馏损失都对模型性能有重要贡献。
  2. 不同初始化:使用bert-base-uncased初始化时,PAIRDISTILL仍能达到40.3的性能,证明该方法对初始化不敏感。
  3. 跨架构有效性:在DPR架构上的实验显示,PAIRDISTILL也能持续提升性能,从34.8提升到36.8,证明该方法可以跨不同的密集检索架构有效应用。
  4. 迭代训练效果:实验表明,第二次迭代可以进一步提升性能,之后趋于收敛。
  5. 零样本域适应:在FiQA、BioASQ和Climate-FEVER数据集上的实验显示,PAIRDISTILL在零样本域适应任务中也能有效提升性能。

结论与影响

PAIRDISTILL方法通过利用成对重排序器提供的细粒度训练信号,显著提升了密集检索模型的性能。该方法在多个基准测试中都达到了最先进的水平,不仅在领域内评估中表现出色,在领域外和零样本场景中也展现了强大的泛化能力。

这项研究为密集检索领域提供了新的研究方向,展示了利用更细粒度的相关性信息来改进检索模型的潜力。PAIRDISTILL方法的成功也为其他自然语言处理任务中的知识蒸馏技术提供了启发。

尽管如此,研究者也指出了该方法的一些局限性,主要是在训练过程中可能需要更多的训练对,这可能会增加计算资源的需求。未来的研究方向可能包括如何在保持性能的同时减少所需的训练对数量,以及进一步探索该方法在其他相关任务中的应用。

https://avoid.overfit.cn/post/4e825b6cc5b44ce7962f59c873afb7e4

喜欢就关注一下吧:

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

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

相关文章

CSP-J Day 5 模拟赛补题报告

姓名:王胤皓,校区:和谐校区,考试时间: 2024 2024 2024 年 10 10 10 月 5 5 5 日 9 : 00 : 00 9:00:00 9:00:00~ 12 : 30 : 00 12:30:00 12:30:00,学号: S 07738 S07738 S07738 请关注作者的…

计算机系统基础概述

什么是计算机? 计算机是一种利用电子技术进行信息处理的设备,它能够接收、存储、处理和提供数据。计算机通过执行一系列预定义的指令来处理数据,这些指令通常被称为程序。计算机的核心功能包括算术运算、逻辑判断、数据存储和信息检索 计算…

IDEA基础开发配置以及和git的联动

1.1方向一:工具介绍 我今天要介绍的就是学习Java大部分情况下都会选择的一款工具-----IDEA,这个和我们熟悉的这个pycharm一样,都是属于这个Jetbrains公司的,虽然我对于这个并不是很了解,但是确实知道一点,…

七、泛型数组集合类

泛型&数组&集合类 泛型定义官方高阶扩展函数协变与逆变*泛型界限*类型擦除* 数组数组的创建数组的使用可变长参数原生类型数组嵌套数组 集合类List集合Set集合Map集合迭代器集合与数组扩展操作序列 泛型 定义 为了统计学生成绩,要求设计一个Score对象&…

25游卡(服务器)面试经验 游卡最常见面试问题总结

目录 【面试经历】 问题+详细答案 面试流程 面试攻略 【面试经历】 秋招目前面了十多家,第一家不开摄像头且表示麦不好要求找个耳机的。贴面经(纯八股) 1.HTTP与HTTPS 2.MTU如何设置,过大过小的后果 3.DNS过程 4.如何创建进程/线程,孤儿进程 5.java从文件到运行的过程…

LinuxO(1)调度算法

概念 在Linux中,O(1)调度算法是一种进程调度算法。O(1)表示算法的时间复杂度是常数级别的,与系统中的进程数量无关。 运行队列结构 他采用了两个运行队列,一个活动队列和一个过期队列。活动队列中的进程是有资格获取CPU时间片的进程&#x…

进程概念 | 进程状态 | 进程优先级

进程的基本概念 课本概念:程序的一个执行实例,正在执行的程序等。核心观点:担当分配系统资源(cpu时间、内存)的实体。 资源占用 它占用系统资源向CPU时间,内存等不同进程的资源是相互隔离的,确…

X3U·可编程控制器的定位控制

FX3U可编程控制器的定位控制进行说明。 一、概要 FX3U可编程控制器可以向伺服电机、步进电机等输出脉冲信号,从而进行定位控制。 脉冲频率高的时候,电机转得快:脉冲数多的时候,电机转得多。用脉冲频率、脉冲数来设定定位对象…

【牛顿迭代法求极小值】

牛顿迭代法求极小值 仅供参考 作业内容与要求 作业内容 作业要求 递交报告 代码 编程实现 计算偏导数 故上述非线性方程组的根可能为 f ( x , y ) f(x, y) f(x,y)的极值点,至于是极小值点还是极大值点或鞍点,就需要使用微积分中的黑塞矩阵来判断了。…

25重庆长安深蓝控制器开发面试经验 深蓝最常见面试问题总结

【面试经历】 秋招气氛组选手的第一场面试,9.17网申,9.24电话约面,9.26线上面试。问得很细,全长约1个小时 1. 自我介绍、项目介绍 2.项目细节,遇到了哪些困难;有没有PCB设计经验DC-DC芯片选型,电源噪声的原因、怎么消除、 3.画BUCK和BOOST拓扑图,讲原理 4.了解MCU的主…

C(十三)for、while、do - while循环的抉择 --- 打怪闯关情景

前言: 继C(十)for循环 --- 黑神话情景之后👉 https://blog.csdn.net/2401_87025655/article/details/142684637 今天,杰哥想用一个打怪闯关的场景让与大家一起初步认识一下for、while、do - while循环的抉择。&#xf…

【FPGA开发】Modelsim如何给信号分组

前面已经发布过了一篇关于 Modelsim 的入门使用教程,针对的基本是只有一个源文件加一个仿真tb文件的情况,而实际的工程应用中,往往是顶层加多个底层的源文件结构,如果不对信号进行一定的分组,就会显得杂乱不堪&#xf…

一个真实可用的登录界面!

需要工具: MySQL数据库、vscode上的php插件PHP Server等 项目结构: login | --backend | --database.sql |--login.php |--welcome.php |--index.html |--script.js |--style.css 项目开展 index.html: 首先需要一个静态网页&#x…

【深度学习】— 多层感知机介绍、 隐藏层、从线性到非线性、线性模型的局限性

【深度学习】— 多层感知机介绍 4.1 多层感知机4.1.1 隐藏层线性模型的局限性引入隐藏层 4.2 从线性到非线性线性组合的局限性引入非线性堆叠更多隐藏层 4.1 多层感知机 在第 3 节中,我们介绍了 softmax 回归,并实现了其从零开始的实现和基于高级 API 的…

MFC多媒体定时器实例(源码下载)

用MFC多媒体定时器做一个每1秒钟加一次的计时器,点开始计时按钮开始计时,点关闭计时按钮关闭计时。 1、在库文件Med_timeDlg.h文件中添加代码 class CMed_timeDlg : public CDialog { // Construction public:CMed_timeDlg(CWnd* pParent NULL); // st…

EEPROM读写实验——FPGA学习笔记18

一、EEPROM简介 Electrically Erasable Progammable Read Only Memory:是指带电可擦可编程只读存储器,是一种常用的非易失性存储器(掉电数据不丢失) EEPROM发展历史 我们这次实验所用的AT24C64存储容量为64Kbit,内部分成256页&am…

成都睿明智科技有限公司真实可靠吗?

在这个日新月异的电商时代,抖音作为短视频与直播电商的佼佼者,正以前所未有的速度重塑着消费者的购物习惯。而在这片充满机遇与挑战的蓝海中,成都睿明智科技有限公司以其独到的眼光和专业的服务,成为了众多商家信赖的合作伙伴。今…

《python语言程序设计》2018版第8章19题几何Rectangle2D类(中)-同志们我要起飞了

前言 昨天的原始绘制两个矩形的代码段draw_rec2原始draw_rec2运行结果我们不是上面往右转90.我怎么往左转90不对吗??? ☺️结果利用已建立完的Rectangle2D类来实现Rectangle2D类的代码可以找上集看,今天是锻炼的一天好几个倒立体式解锁了.祝大家愉快 经过昨天晚上的努力我终…

97. UE5 GAS RPG 实现闪电链技能(二)

书接上回,如果没有查看上一篇文章的同学推荐先看上一章,我们接着实现闪电链技能。 在上一章最后,我们实现了闪电链的第一条链,能够正确显示特效,接下来,我们先实现它的音效和一些bug修复。 我们在多端网络里…

cnn突破四(生成卷积核与固定核对比)

cnn突破三中生成四个卷积核,训练6万次,91分,再训练6万次,95分,不是很满意,但又找不到问题点,所以就想了个办法,使用三个固定核,加上三层bpnet神经网络,看看效…