理性地倾听与表达:检索算法的语言学改进

论文标题

Rational Retrieval Acts: Leveraging Pragmatic Reasoning to Improve Sparse Retrieval

论文地址

https://arxiv.org/pdf/2505.03676

代码地址

https://github.com/arthur-75/Rational-Retrieval-Acts

作者背景

巴黎萨克雷大学,索邦大学,法国国家科学研究中心

动机

文档检索算法对用户query和候选Document进行匹配打分,从而挑选出能够回答用户问题的信息。但当前的q-D匹配算法一般只考虑词语浅层语义,缺乏对用户意图的深层理解,于是在实践中我们往往发现:再面对用户的模糊、复杂或措辞多变的问题时,难以精准找到合理的文档

对此,作者利用语言学中“理性言语行为”的思想,提出了一种迭代算法,能够模拟说话人与倾听者互相揣摩对方意图的行为,从而提高检索算法的准确性

理性言语行为

理性言语行为(Rational Speech Act model, RSA)的核心思想是:

说话者和听话者都是理性的个体,他们在交流中会基于对彼此知识、目标和意图的推测,做出最合适的语言选择和解释

RSA 是一种概率模型,它将言语交流建模为一种贝叶斯推理过程,包括以下三类参与者:

  1. 字面听者 L0​:根据语言的语义直接解释话语
  2. 语用说话者 S1:根据听者可能的理解方式,选择最符合自己意图的表达
  3. 语用听者 L1:观察S1​的话语,推断其背后可能的意图

从L0到S1再到L1,这个过程可以不断递归地迭代。但一般情况下只迭代一轮

本文方法

本文提出理性检索(Rational Retrieval Acts,RRA),将语言学中的理性言语行为模型引入稀疏检索,具体过程如下:

  1. 初始词典表示:首先从一个基础的稀疏检索模型出发,获取每个词和文档的基础相关性权重w(t,d),并对其做简单的平滑转换得到L(t,d),确保L>0

  2. 字面听者L0建模:根据单个词来判断相关文档分布,基于初始词典值的归一化分数构建,公式如下,其中P(d)是文档先验概率
    在这里插入图片描述

  3. 语用说话人S1建模:假设理性说话人想要的信息在文档d中,那么它需要使用让文档d被选中概率最大的表达,即:

在这里插入图片描述

其中α是调节语用程度的超参数,α > 1时会使说话人更加偏好概率大的词, α → 0时则趋向于均匀分布(完全不讲究用词,随便表达),此公式精准刻画了理性说话人:用户具备不同词语和不同文档匹配效果的全局认知,然后从整个文档集合中挑选更能选中目标文档d的词汇

  1. 语用听者L1建模:与L0类似,只不过初始字典分数被替换成了理性说话人视角的词语-文档匹配分数

在这里插入图片描述

  1. 文档表示与检索打分:经过上述推理,我们获得了用户query中每个词汇t,相对于所有候选文档的相关性打分L1,并且这个分数是经过语用校正的。由于L1矩阵的规模很大,作者还对所有“词t未出现于文档d中”的情况进行了特殊处理:使用词t与文档d各自的全局因子相乘作为近似表示
    最后,将L1与用户query中的词汇分数分布相乘,便可得到最终的检索得得分。整个流程如下图所示:

在这里插入图片描述

实验结果

一、引入RSA前后效果对比

将RSA融合到不同稀疏检索模型中的效果,包括SPLADEv3(训练于MS MARCO的神经稀疏模型)、SPARTA(BERT派生的稀疏模型)、DeepImpact、UniCOIL等(都没有拿测试数据微调),以及传统的BM25,采用nDCG@10指标进行评价,结果如下:

在这里插入图片描述

实验结果表明,引入RSA后,这些稀疏模型在所有数据集上的排序质量都有所提高。不过其中BM25上的提高较小,只有0.9,作者认为这是由于其本身已经通过IDF考虑了部分全局信息

二、与SOTA模型对比

选择上面实验中效果最好的Splade+RRA方案作为实验组,在BEIR基准上与其他增强基线策略进行对比,结果如下:

在这里插入图片描述

可见实验组的平均得分最高,RRA的引入使Splade方案提升了1个点

三、语用强度α影响分析

作者在不同数据集上,测试了不同α参数下Splade+RRA策略的最终效果:

在这里插入图片描述

实验表明,当α太高或太低时性能都会下降(过高会使说话人过于偏执只选极少数词,过低则近似随机选词),不同数据集的最佳值略有不同,实践中可以先采样一些样本或生成伪数据来对α进行调试

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

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

相关文章

MySQL及线程关于锁的面试题

目录 1.了解过 MySQL 死锁问题吗? 2.什么是线程死锁?死锁相关面试题 2.1 什么是死锁: 2.2 形成死锁的四个必要条件是什么? 2.3 如何避免线程死锁? 3. MySQL 怎么排查死锁问题? 4.Java线上死锁问题如…

【Reality Capture 】Reality Capture1.5中文版安装教程(附安装包下载)

文章目录 一、Reality Capture1.5中文版安装教程二、拷贝中文补丁三、Reality Capture1.5中文版下载地址一、Reality Capture1.5中文版安装教程 1. Reality Capture v1.4.0汉化版安装包下载并解压 2. 运行EpicInstaller-15.17.1-4a91a118786f4c2aa3c0093b23f83863.msi 3. 更改…

SVG数据可视化设计(AI)完全工作流解读|计育韬

AI 的 SVG 创作极限在哪里?绝不是那些初级的流程图生成和粗糙的商业模型设计。以下是由我们 JZ Creative Studio 通过 Claude 和 Deepseek 开展的专业级 SVG Data Visualization 创作,应广大读者强烈要求,专程直播讲授了一期 AI 工作流分享。…

not a genuine st device abort connection的问题

1.魔法棒里面电机Settings 2.然后在Other里面把Enabled的钩子去掉

uv简单使用

通过uv创建项目和虚拟环境 初始化项目 uv init --package my-project 初始化一个名为 my-project 的新项目,并生成必要的文件结构。 创建虚拟环境 uv venv .venv 激活虚拟环境 # For Windows .venv\Scripts\activate# For macOS/Linux source .venv/bin/acti…

测试左移系列-产品经理实战-实战认知1

课程:B站大学 记录产品经理实战项目系统性学习,从产品思维,用户画像,用户体验,增长数据驱动等不同方向理解产品,从0到1去理解产品从需求到落地的全过程,测试左移方向(靠近需求、设计…

从需求到用例的AI路径:准确率与挑战

用工作流生成测试用例和自动化测试脚本! 引言:用例的黄金起点 在软件工程中,“测试用例”是连接需求理解与质量保障之间的关键桥梁。一份高质量的测试用例,不仅是验证功能实现是否符合需求的工具,更是产品风险感知、用…

大语言模型中的“温度”参数到底是什么?如何正确设置?

近年来,市面上涌现了大量调用大模型的工具,如 Dify、Cherry Studio 等开源或自研平台,几乎都提供了 “温度”(Temperature) 选项。然而,很多人在使用时并不清楚该如何选择合适的温度值。 今天,…

如何删除网上下载的资源后面的文字

这是我在爱给网上下载的音效资源,但是发现资源后面跟了一大段无关紧要的文本,但是修改资源名称后还是有。解决办法是打开属性然后删掉资源的标签即可。

hot100-子串-JS

一、560.和为k的子串 560. 和为 K 的子数组 提示 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,1,1], k 2 输出:2示例 2…

01背包类问题

文章目录 [模版]01背包1. 第一问: 背包不一定能装满(1) 状态表示(2) 状态转移方程(3) 初始化(4) 填表顺序(5) 返回值 2. 第二问: 背包恰好装满3. 空间优化 416.分割等和子集1. 状态表示2. 状态转移方程3. 初始化4. 填表顺序5. 返回值 [494. 目标和](https://leetcode.cn/proble…

解锁 DevOps 新境界 :使用 Flux 进行 GitOps 现场演示 – 自动化您的 Kubernetes 部署

前言 GitOps 是实现持续部署的云原生方式。它的名字来源于标准且占主导地位的版本控制系统 Git。GitOps 的 Git 在某种程度上类似于 Kubernetes 的 etcd,但更进一步,因为 etcd 本身不保存版本历史记录。毋庸置疑,任何源代码管理服务&#xf…

将Docker镜像变为可执行文件?体验docker2exe带来的便捷!

在现代软件开发中,容器化技术极大地改变了应用程序部署和管理的方式。Docker,作为领先的容器化平台,已经成为开发者不可或缺的工具。然而,对于不熟悉Docker的用户来说,接触和运行Docker镜像可能会是一个复杂的过程。为了解决这一问题,docker2exe项目应运而生。它提供了一…

IBM BAW(原BPM升级版)使用教程第八讲

续前篇! 一、流程开发功能模块使用逻辑和顺序 前面我们已经对 流程、用户界面、公开的自动化服务、服务、事件、团队、数据、性能、文件各个模块进行了详细讲解,现在统一进行全面统一讲解。 在 IBM Business Automation Workflow (BAW) 中,…

针对共享内存和上述windows消息机制 在C++ 和qt之间的案例 进行详细举例说明

针对共享内存和上述windows消息机制 在C++ 和qt之间的案例 进行详细举例说明 以下是关于在 C++ 和 Qt 中使用共享内存(QSharedMemory)和 Windows 消息机制(SendMessage / PostMessage)进行跨线程或跨进程通信的详细示例。 🧩 使用 QSharedMemory 进行进程间通信(Qt 示例…

jetson orin nano super AI模型部署之路(十)使用frp配置内网穿透,随时随地ssh到机器

为什么要内网穿透? 我们使用jetson设备时,一般都是在局域网内的电脑去ssh局域网内的jetson设备,但是这种ssh或者VNC仅限于局域网之间的设备。 如果你出差了,或者不在jetson设备的局域网内,想再去ssh或者VNC我们的jet…

VScode密钥(公钥,私钥)实现免密登录【很细,很全,附带一些没免密登录成功的一些解决方法】

一、 生成SSH密钥对 ssh-keygen 或者 ssh-keygen -t rsa -b 4096区别:-t rsa可以明确表示生成的是 RSA 类型的密钥-b参数将密钥长度设置为 4096 位默认:2048 位密钥不指定-t参数,ssh -keygen默认也可能生成 RSA 密钥【确保本机安装ssh&#…

解释器和基于规则的系统比较

解释器(Interpreter)和基于规则的系统(Rule-Based System)是两种不同的软件架构风格,分别适用于不同的应用场景。它们在设计理念、执行机制和适用领域上有显著差异。以下是它们的核心对比: 1. 解释器&#…

DB4S:一个开源跨平台的SQLite数据库管理工具

DB Browser for SQLite(DB4S)是一款开源、跨平台的 SQLite 数据库管理工具,用于创建、浏览和编辑 SQLite 以及 SQLCipher 数据库文件。 功能特性 DB4S 提供了一个电子表格风格的数据库管理界面,以及一个 SQL 查询工具。DB4S 支持…

printf调试时候正常,运行时打印不出来

问题是在添加了 printf 功能后,程序独立运行时无法正常打印输出,而调试模式下正常。这表明问题可能与 printf 的重定向实现、标准库配置、或编译器相关设置有关。 解决: 原来是使用 Keil/IAR,printf可能需要启用 MicroLIB 或正确…