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

ops/2024/10/19 5:25:47/

论文: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.ppmy.cn/ops/20861.html

相关文章

调用示例、python语言调用翔云发票查验接口、发票OCR接口

python语言调用翔云发票查验接口、发票OCR接口其实方法很简单,只需要能看懂开发代码,然后在翔云开发者中,下载所需要的语言开发示例,更换产品参数即可。 发票管理是企业日常工作中不可或缺的一环,但传统的发票查验和识…

pyqt 动态更换表头和数据

目录 pyqt 动态更换表头和数据代码 效果图: pyqt 动态更换表头和数据代码 from PyQt5.QtGui import QColor, QBrush from PyQt5.QtWidgets import QApplication, QTableWidget, QVBoxLayout, QWidget, QPushButton, QTableWidgetItemclass Example(QWidget):def _…

加密安全-openssh服务

openssh服务 1、ssh配置 ssh第一次远程链接需要客户端输入yes,如下: # 109节点第一次通过ssh链接106,需要手动输入yes root109:~$ ssh 192.168.31.106 The authenticity of host 192.168.31.106 (192.168.31.106) cant be established. ED…

RFC 6071: IP Security (IPsec) and Internet Key Exchange (IKE) Document Roadmap

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/96882d1fb67b4383bc77c4dd421f7b

解决eureka服务注册名报错

解决eureka服务注册名报错 解决eureka服务注册名报错简介正文使用RestTemplate.getForObject( url,Class)方法中,url直接使用服务注册名进行拼接后无法正常远程调用。如下 报错404,说明没访问到我的解决方法:换依赖版本原来的版本…

ddos云服务器有哪些防御方法和优势

本文将介绍云服务器遇到DDoS攻击的应对方法,包括流量清洗、负载均衡、防火墙设置和CDN加速等。同时,文章还介绍了ddos云服务器的防御优势,包括高防护能力、自动化防御、实时监控和报警以及弹性扩展等。通过这些防御方法和ddos云服务器的应用&…

记录浏览器打开网站拦截提示不安全解决方法

浏览器可能会因为多种原因显示“不安全”的警告,这通常是由于安全设置不当或配置错误造成的。以下是一些常见的原因和解决方法: 1. HTTPS未启用 原因:如果网站使用HTTP而不是HTTPS,浏览器可能会显示不安全的警告。 解决方法:配置SSL/TLS证书并使用HTTPS来加密数据传输…

mysql binlog 中的位点生成逻辑是什么?

在 MySQL 中,二进制日志(binary log 或 binlog) 是用于记录所有修改了数据库状态的语句的文件。这包括表结构变更和数据变更(如 INSERT、UPDATE 和 DELETE 操作)。二进制日志是 MySQL 数据复制的基础,并且对…