【IR 论文】Google 对通过 prompt LLM 做 Query Expansion 的工作

news2024/10/6 1:34:26

论文:Query Expansion by Prompting Large Language Models
⭐⭐⭐
Google Research, arxiv:2305.03653

论文速读

之前我在论文笔记 Query2doc 中介绍了信息检索(IR)以及 Query Expansion 的相关背景知识。

本篇文章是 Google 发表的关于对 LLM 进行 prompt 来做 Query Expansion 的论文,所采取的思路与 Query2doc 相似,但侧重点不同。

论文的思路如下:

整体思路

可以看到,也是把 user query 带上 prompt 输入给 LLM,然后拼接 user query 和 LLM 响应得到 Query Expansion 的结果,将其输入给 Retrieval System 来完成检索。

其中“concat”这个拼接过程,也是为了提高 user query 的权重,把 user query 重复了 5 遍再与 LLM response 拼接,做法与 Query2doc 十分相似:

concat 公式

本文工作主要研究 sparse retrieval 的场景,与之前 Query2doc 的工作的区别主要如下:

  • 不同 prompt 的研究:这篇文章研究了多种不同的 prompt 方式,包括 Q2D、Q2D/ZS、Q2D/PRF、Q2E、Q2E/ZS、Q2E/PRF、CoT 和CoT/PRF,而 Query2Doc 论文主要关注单一的少样本提示。(这几种 prompt 方法的具体含义可以参考原论文)
  • 生成查询扩展术语:这篇文章的工作重点是生成 query expansion terms,而不是像 Query2doc 论文那样生成整个 pseudo-document 作为 expansion。
  • 模型大小的多样性:这篇文章在多种不同大小的模型上测试了提示的性能,以更好地理解LLM方法在查询扩展上的实用能力和局限性。而Query2Doc论文使用的是一个更大的模型,且没有详细比较不同模型大小的性能。
  • 开源模型的使用:这篇文章完全使用开源模型进行实验,以促进研究的可复制性和开放性。相比之下,Query2Doc 论文使用的是一种只能通过第三方 API 访问的特定类型的模型。
  • 实验数据集:这篇文章在 MS-MARCO 和 BEIR 数据集上进行了实验,以验证 LLMs 在查询扩展中的有效性,而 Query2Doc 论文可能使用了不同的数据集或实验设置。
  • 性能提升:文章中提到,通过使用CoT提示,尤其是结合PRF文档的CoT/PRF提示,可以在保持召回率的同时,提高排名指标,如MRR@10和NDCG@10,而传统的查询扩展方法可能会牺牲这些排名指标来提高召回率。
  • 模型大小对性能的影响:文章还探讨了不同模型大小对查询扩展性能的影响,并发现CoT方法只需要3B参数的模型就能达到与BM25+Bo1基线相当的效果,而Q2D方法则至少需要11B参数的模型。

实验结果

本论文做了大量的实验,文中展示的实验数据对比值得一看:

实验结果
每个指标的最好结果已经用黑体进行了标注,可以看到,CoT 的 prompt 下可以让 LLM 生成的 expansion 表现更好。原文作者认为,CoT 这种特殊的 prompt 指示模型通过将其答案分解为多个步骤来生成详细的解释,这种详细性的解释可能会导致生成许多潜在的有效关键字,并对查询扩展有用。

总结

文章提出了一种新的查询扩展方法,该方法利用大型语言模型(LLMs)的生成能力。通过不同的提示方式(zero-shot, few-shot, Chain-of-Thought, CoT)来指导 LLM 生成与原始查询相关的新术语,并将其对 query 进行 expansion 从而提高检索的效果。文章做了较多实验,其实验结果值得我们一看,从而让我们对 LLM 生成 Query Expansion 的不同 prompt 有了一个不同表现的认识。

但是文章也指出了该工作的一些局限性,如只研究了稀疏检索系统,未考虑密集检索系统;仅使用了 Flan 系列的LLMs,未来可以扩展到其他模型;提示模板可能还有改进空间;LLMs 的计算成本可能限制了其在实际应用中的部署。

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

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

相关文章

Maven:配置与使用指南1

https://mvnrepository.com Maven 1.maven简介 不同模块的jar包以及同时设计的功能的微小变化版本; 真实的开发环境:我们将我们的源代码在服务器上重新编译重新打包,工程升级维护过程繁琐 1.Maven是一个项目管理工具,将项目开…

SpringBoot xxl-job 任务调度

首先官网下载xxl-job的源代码,然后切换到jdk8,等Maven下载依赖 执行mysql的脚本,修改连接配置,启动admin站点 默认地址 http://localhost:8080/xxl-job-admin/ 先新增一个任务执行器,指向未来任务代码的站点 然后在…

数学建模完整版

模型与适用题型 微分方程传染病预测模型 神经网络 层次分析法 粒子群算法 matlab 优劣解距离法

计算机组成原理—数据的表示和运算

二进制:2进1 八进制里的1位对应二进制里的三位 重点:转换为10进制

git常见命令(成长版)

ps:所谓成长版就是后续可能还会添加命令: 1.删除本地分支: git branch -d 分支名 2.拉取代码后默认master分支,切换到线上其他分支: (1)查看线上所有分支: git branch -a &#…

比特币之路:技术突破、创新思维与领军人物

比特币的兴起是一段充满技术突破、创新思维和领军人物的传奇之路。在这篇文章中,我们将探讨比特币发展的历程,以及那些在这一过程中发挥重要作用的关键人物。 技术突破与前奏 比特币的诞生并非凭空而来,而是建立在先前的技术储备之上。在密码…

贪心算法-活动安排问题和背包问题

实验6贪心算法-活动安排问题和背包问题 实验目的: 理解贪心算法的基本思想运用贪心算法解决实际问题 实验内容: 采用贪心方法编程实现以下问题的算法 1.如何安排下列活动使得使用的活动场所最少,并给出具体的安排方法。 活动 a b c …

全新Storm Core API管理系统源码 免授权版

全新Storm Core API管理系统源码 免授权版 本系统为API系统,实现了api集成等基础功能,以后可能会更新key调用api,或者实现付费功能,敬请期待,前端模板均无加密,用户可自行二开,具体请看图 测试环境:PHP7.2+MySQL5.6 访问:http://你的域名/install 进行安装 伪静态…

AIGC实战——基于Transformer实现音乐生成

AIGC实战——基于Transformer实现音乐生成 0. 前言1. 音乐生成的挑战2. MuseNet3. 音乐数据3.1 巴赫大提琴组曲数据集3.2 解析 MIDI 文件3.3 分词3.4 创建训练数据集 4. MuseNet 模型4.1 正弦位置编码4.2 多输入/输出 5. 音乐生成 Transformer 的分析6. 多声部音乐分词6.1 网格…

含匹配扰动的多智能体领航跟随一致性Matlab仿真

文章目录 [TOC](文章目录) 前言一、问题描述二、基于LQR的观测器和控制器设计1.观测器设计2.控制器设计 三、数值仿真四、参考文献总结 前言 ​本文探讨了带有匹配扰动的多智能体领航跟随一致性控制方法,并提供了相应的Matlab仿真代码。 具体的设计步骤如下&#…

Algorius Net Viewer 2024.2.1 (Windows) - 网络可视化、管理、监控和清点

Algorius Net Viewer 2024.2.1 (Windows) - 网络可视化、管理、监控和清点 Comprehensive software product for visualizing, administering, monitoring, and inventorying computers network of any level 请访问原文链接:Algorius Net Viewer 2024.2.1 (Windo…

【动态规划】C++ 子序列问题(递增子序列、数对链、定差子序列、斐波那契子序列...)

文章目录 1. 前言2. 例题最长递增子序列 3. 算法题3.1_摆动序列3.2_最长递增子序列的个数3.3_最长数对链[3.4_ 最长定差子序列](https://leetcode.cn/problems/longest-arithmetic-subsequence-of-given-difference/description/)3.5_最长的斐波那契子序列的长度3.6_最长等差数…

剪画APP动漫AI工具|短剧轻松变动漫,开辟出海新方向

近期,剪画全新升级“AI动漫”功能,让创作者们打开全新的视频创作方式。 这个功能把我们的短剧作品快速转化为动漫风格,非常精准和细腻 在剪画将AI动漫功能升级后,越来越多的使用者将短剧变身成动漫效果发布到平台后,…

Git 保姆级教程(一):Git 基础

一、获取 Git 仓库 通常有两种获取 Git 项目仓库的方式: 1. 将尚未进行版本控制的本地目录转换为 Git 仓库; 2. 从其它服务器克隆 一个已存在的 Git 仓库。 两种方式都会在你的本地机器上得到一个工作就绪的 Git 仓库。 1.1 git init(本地…

Fisher判别示例:鸢尾花(iris)数据(R)

先读取iris数据,再用程序包MASS(记得要在使用MASS前下载好该程序包)中的线性函数lda()作判别分析: data(iris) #读入数据 iris #展示数据 attach(iris) #用变量名绑定对应数据 library(MASS) #加载MASS程序包 ldlda(Species~…

c++的策略模式,就是多态

一、定义: 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。 策略模式让算法独立于使用它的客户而独立变化。 二,核心 抽象策略(抽象基类)(Strategy&#xff09…

Fork for Mac v2.42 激活版 Git客户端

Fork for Mac是一款运行在Mac平台上的Git客户端,Fork Mac版具备基本的取、推、提交、修改、创建和删除分支和标签、创建和删除远程备份等功能,还有实用的差异查看器,你可以通过清晰的视图快速发现源代码中的更改。 Fork for Mac v2.42 激活版…

【C++】优先队列

优先队结构的不同物理结构与常用操作算法 优先队列是一种特殊的队列,队列中的元素具有优先级,每次弹出操作会弹出优先级最高的元素。 优先队列常用的物理结构有: 1. 数组:简单但不高效,插入和删除操作需要移动大量元素,时间复杂度高。 2. 二叉堆:是一种完全二叉树,通常用数…

在Jupyter notebook中添加虚拟环境

通常我们打开Jupyter notebook,创建一个新文件,只有一个Python3,但是我们也会想使用自己创建的虚拟环境,很简单仅需几部即可将自己的conda环境添加到jupyter notebook中。 1. 创建并激活conda环境(已有可跳过&#xf…

【QT进阶】Qt http编程之实现websocket server服务器端

往期回顾 【QT进阶】Qt http编程之json解析的简单介绍-CSDN博客 【QT进阶】Qt http编程之nlohmann json库使用的简单介绍-CSDN博客 【QT进阶】Qt http编程之websocket的简单介绍-CSDN博客 【QT进阶】Qt http编程之实现websocket server服务器端 一、最终效果 通过ip地址和端口…