当前位置: 首页 > news >正文

论文解读之Generative Dense Retrieval: Memory Can Be a Burden

本次论文解读,博主带来生成式稠密检索:记忆可能成为一种负担的论文分享

一、简介

生成式检索根据给定的查询,自回归地检索相关的文档标识符,在小规模的文档库中表现不错,通过使用模型参数记忆文档库,生成式检索实现了查询和文档之间的深层次交互。

但是,这种记忆机制存在一些问题:1.对文档的细粒度特征记忆准确性不足2.当文档库规模变大时,记忆混淆情况加重3.新文档加入时记忆力更新的耗费很大,因为当新的文档到来时,文档聚簇树需要被更新,模型也需要被再次训练来记住所有的文档。

本论文中,作者提出生成式稠密检索范式,从粗到细粒度的匹配路径上,利用稠密检索和生成式检索两种方式进行优劣互补。

具体来说:首先使用有限的记忆容量实现了查询到相关的文档簇的匹配,再将不用记忆力的稠密检索引入了细粒度的簇内匹配,即从簇到相关的文档。

二、相关工作

2.1 稠密检索

使用二编码器结构来提取查询和文档的稠密语义表示,使用相似度如欧氏距离来计算这些特征之间的相似度,排序后给出匹配的结果。

但是,存在一些问题。比如,大多数查询和多个文档在语义空间上很接近,但是这些文档彼此在语义空间上不一定很接近,因此,使用一个查询通过匹配机制将所有的相关的文档进行召回是很困难的。

2.2 生成式检索

使用自回归模型,结合K近邻算法来产生带有层次信息的识别符,存在简介中提出的问题,在博主的上一篇博客中详细介绍过。

三、实验方法

3.1 两种机制的应用顺序

在查询到簇的匹配中,使用NCI即记忆机制可以减少错误,但是当文档变多时,注意机制性能下降会更加明显;而使用AR2即稠密检索模型,可以在文档变多时处理细粒度的特征。

3.2 簇间匹配

先使用查询编码器将查询编码成query embedding,取cls token作为查询的表示。将这个概率作为簇间的映射得分

对于每一个查询和相关文档的训练数据对,以这种形式的损失函数优化模型:

3.3 簇内匹配

文档id使用文档编码器产生,应用稠密检索的方法,计算查询和文档间的内积作为相似度。

使用如下的负对数似然损失函数,使得模型倾向于增加正确类别的概率:

总的映射得分为:

3.4 建立内存友好的簇id

满足两种特性:(1)含有和查询相关文档的多个簇的标识符共享前缀(2)簇的数量被内存决定而不是文档的数量,以此防止内存溢出

(1)通过微调ERNIE2.0-base而不是BERT作为文档编码器,然后计算在验证集上的每个查询的相关文档的簇id的平均前缀重叠来衡量对(1)特性的实现程度。

(2)动态调整c也就是簇中的文档的数量来保持簇的数量不变。

3.5 簇适应负采样

GDR在候选簇中检索相关文档而不是整个文档库,因此需要更多簇内的辨别信号

故此,选取簇内以及批次内的样本集,调整了簇内损失函数

3.6 训练和推理

选取一些这俩阶段中比较有趣的方法

采用DocT5Query方法对文档产生假标签做数据增强。

推理阶段:

先产生k个相关的簇ids,接着在每个相关的簇中检索前m个相关的文档,然后用这个总得分计算后取top-k

局限性

1.推理速度慢,因此应用于实时检索系统困难

2.前k个准确率指标落后,猜测为部分查询编码器的能力被用来执行簇内匹配任务,影响了簇内匹配的准确率。

3.训练慢,未在大型的文档库中进行实验

相关文章:

论文解读之Generative Dense Retrieval: Memory Can Be a Burden

本次论文解读,博主带来生成式稠密检索:记忆可能成为一种负担的论文分享 一、简介 生成式检索根据给定的查询,自回归地检索相关的文档标识符,在小规模的文档库中表现不错,通过使用模型参数记忆文档库,生成…...

RTC:实时时钟

RTC:实时时钟 1、实时时钟2、闹钟中断3、秒中断4、输出功能5、BKP的读写6、BKP的侵入事件 1、实时时钟 ①RTC.c #include "RTC.h"/*** brief:RTC初始化函数*/ RCC_PeriphCLKInitTypeDef RTCPeriphClkInit; //RTC时钟配置结构体 RTC_HandleT…...

mqtt python rtsp拉流图传测试

GitHub - robmarkcole/mqtt-camera-streamer: Stream images from a connected camera over MQTT, view using Streamlit, record to file and sqlite 用这个项目,按照readme配置,把config里面的ip配置成接收端的ip地址。 该装的包装完之后&#xff0c…...

win32汇编环境,对话框程序中通过资源显示bmp图像

;运行效果 ;win32汇编环境,对话框程序中通过资源显示bmp图像 ;通过资源的方式,会把图像固定在exe文件里,会变大。通过读取文件的方式,没有固定在exe文件里,也可以随时换图像文件,所以exe文件较小 ;直接抄进RadAsm可编译…...

《探索人工智能的多元学派:符号主义、连接主义与行为主义》

在人工智能发展的进程中,不同学派从各自的角度诠释着智能的本质。其中符号主义、连接主义和行为主义学派占据着重要地位,它们以独特的方式推动着人工智能的发展。 符号主义学派:逻辑推理的核心 符号主义学派认为人工智能源于对逻辑符号的处…...

2024年终总结及计划

24年收获不少,早就想总结下,但是有的问题不想去思考,也不想去面对,就晚了几天,趁着加班总结反思下。 一、计划完成情况 1、生活 ①运动:继续坚持每周慢跑15公里,这是必须要做的。另外&#x…...

数据挖掘——关联规则挖掘

数据挖掘——关联数据挖掘 关联数据挖掘关联规则关联规则挖掘问题:具体挖掘过程Apriori 产生关联规则 关联数据挖掘 关联分析用于发现隐藏在大型数据集中的令人感兴趣的联系,所发现的模式通常用关联规则或频繁项集的形式表示。 关联规则反映一个事物与…...

JVM实战—9.线上FGC的几种案例

大纲 1.如何优化每秒十万QPS的社交APP的JVM性能(增加S区大小 优化内存碎片) 2.如何对垂直电商APP后台系统的FGC进行深度优化(定制JVM参数模版) 3.不合理设置JVM参数可能导致频繁FGC(优化反射的软引用被每次YGC回收) 4.线上系统每天数十次FGC导致频繁卡顿的优化(大对象问题…...

STM32-BKP备份寄存器RTC实时时钟

一、原理 Unix: 一些系统是使用32bit有符号数存储,实际范围为-2,147,483,648到2,147,483,647‌即~ 经过计算int32数据会在2038年1月19日溢出,可以看到转换的为北京时间。 STM32的时间戳为无符号时间戳。 我们需要把秒计数器的时间通过计算…...

HTML-文本标签

历史上&#xff0c;网页的主要功能是文本展示。所以&#xff0c;HTML 提供了大量的文本处理标签。 1.<div> <div>是一个通用标签&#xff0c;表示一个区块&#xff08;division&#xff09;。它没有语义&#xff0c;如果网页需要一个块级元素容器&#xff0c;又没…...

香橙派5plus单独编译并安装linux内核无法启动的原因分析与解决记录

1 说明 我依照官方手册编译单独编译linux内核&#xff0c;安装后重启出现内核启动失败的问题,编译和安装步骤如下&#xff1a;# 1. 克隆源码 git clone --depth1 -b orange-pi-6.1-rk35xx https://github.com/orangepi-xunlong/linux-orangepi# 2 配置源码 make rockchip_linu…...

嵌入式应用软件开发中C语言方向面试题

嵌入式应用软件开发中C语言方向面试题随笔 前言一、C语言基础二、嵌入式开发相关三、硬件相关知识五、实际编程问题前言 做嵌入式开发这么多年了,简单记录下C语言方向常见面试题,这里是应用软件方向的。 一、C语言基础 C语言的指针与数组的区别是什么?指针:指针是一个变量…...

linux 系统配置ip

最常见的配置方法是通过 DHCP 获取动态 IP 地址&#xff0c;或者手动配置一个静态 IP 地址。下面我将详细说明这两种常见的配置方法。 通过 DHCP 自动获取 IP 地址 如果你的开发板连接到网络&#xff08;比如通过网线或者 Wi-Fi&#xff09;&#xff0c;并且网络环境支持 DHCP…...

低代码开发:开启企业数智化转型“快捷键”

一、低代码开发浪潮来袭&#xff0c;企业转型正当时 在当今数字化飞速发展的时代&#xff0c;低代码开发已如汹涌浪潮&#xff0c;席卷全球。从国际市场来看&#xff0c;诸多企业巨头纷纷布局低代码领域&#xff0c;像微软的 PowerApps、OutSystems 等平台&#xff0c;凭借强大…...

Tailwind CSS 实战:性能优化最佳实践

在现代网页开发中,性能优化就像是一场精心策划的马拉松。记得在一个电商项目中,我们通过一系列的性能优化措施,让页面加载时间减少了 60%,转化率提升了 25%。今天,我想和大家分享如何使用 Tailwind CSS 进行性能优化。 优化理念 性能优化就像是在打磨一块璞玉。我们需要通过各…...

[redux] useDispatch的两种用法

先重写2个方法先, 方便ts类型推导,如果你看不懂为什么这么写, 先看我这篇 [redux] ts声明useSelector和useDispatch-CSDN博客 export type RootState ReturnType<typeof store.getState>; export type AppDispatch typeof store.dispatch; export const useAppDispat…...

Postgresql 命令还原数据库

因为PgAdmin打不开&#xff0c;但是数据库已经安装成功了&#xff0c;这里借助Pg命令来还原数据库 C:\Program Files\PostgreSQL\15\bin\psql.exe #链接数据库 psql -U postgres -p 5432#创建数据库 CREATE DATABASE "数据库名称"WITHOWNER postgresENCODING UTF8…...

电脑找不到mfc110.dll文件要如何解决?Windows缺失mfc110.dll文件快速解决方法

一、mfc110.dll文件的重要性 mfc110.dll&#xff0c;全称Microsoft Foundation Class Library 110&#xff0c;是Microsoft Visual C Redistributable for Visual Studio 2012的一部分。这个动态链接库&#xff08;DLL&#xff09;文件对于支持基于MFC&#xff08;Microsoft F…...

Elasticsearch与数据库数据一致性:最佳实践与解决方案

在现代应用程序中&#xff0c;Elasticsearch&#xff08;ES&#xff09;作为一个高效的分布式搜索引擎&#xff0c;常常与数据库一同使用&#xff0c;以提供强大的搜索、分析和数据可视化功能。然而&#xff0c;数据库和Elasticsearch之间的同步与一致性常常成为一个挑战。如何…...

vue导入导出excel、设置单元格文字颜色、背景色、合并单元格(使用xlsx-js-style库)

npm i xlsx-js-style <template><button click"download">下载 Excel 表格</button><el-table :data"tableData" style"width: 100%"><el-table-column prop"date" label"日期" width"180…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

GitHub 趋势日报 (2025年06月06日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...

day36-多路IO复用

一、基本概念 &#xff08;服务器多客户端模型&#xff09; 定义&#xff1a;单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用&#xff1a;应用程序通常需要处理来自多条事件流中的事件&#xff0c;比如我现在用的电脑&#xff0c;需要同时处理键盘鼠标…...

tauri项目,如何在rust端读取电脑环境变量

如果想在前端通过调用来获取环境变量的值&#xff0c;可以通过标准的依赖&#xff1a; std::env::var(name).ok() 想在前端通过调用来获取&#xff0c;可以写一个command函数&#xff1a; #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...

Unity中的transform.up

2025年6月8日&#xff0c;周日下午 在Unity中&#xff0c;transform.up是Transform组件的一个属性&#xff0c;表示游戏对象在世界空间中的“上”方向&#xff08;Y轴正方向&#xff09;&#xff0c;且会随对象旋转动态变化。以下是关键点解析&#xff1a; 基本定义 transfor…...

算法打卡第18天

从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7…...