论文解读之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地址。 该装的包装完之后,…...
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-文本标签
历史上,网页的主要功能是文本展示。所以,HTML 提供了大量的文本处理标签。 1.<div> <div>是一个通用标签,表示一个区块(division)。它没有语义,如果网页需要一个块级元素容器,又没…...
香橙派5plus单独编译并安装linux内核无法启动的原因分析与解决记录
1 说明 我依照官方手册编译单独编译linux内核,安装后重启出现内核启动失败的问题,编译和安装步骤如下:# 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 地址,或者手动配置一个静态 IP 地址。下面我将详细说明这两种常见的配置方法。 通过 DHCP 自动获取 IP 地址 如果你的开发板连接到网络(比如通过网线或者 Wi-Fi),并且网络环境支持 DHCP…...
低代码开发:开启企业数智化转型“快捷键”
一、低代码开发浪潮来袭,企业转型正当时 在当今数字化飞速发展的时代,低代码开发已如汹涌浪潮,席卷全球。从国际市场来看,诸多企业巨头纷纷布局低代码领域,像微软的 PowerApps、OutSystems 等平台,凭借强大…...
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打不开,但是数据库已经安装成功了,这里借助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,全称Microsoft Foundation Class Library 110,是Microsoft Visual C Redistributable for Visual Studio 2012的一部分。这个动态链接库(DLL)文件对于支持基于MFC(Microsoft F…...
Elasticsearch与数据库数据一致性:最佳实践与解决方案
在现代应用程序中,Elasticsearch(ES)作为一个高效的分布式搜索引擎,常常与数据库一同使用,以提供强大的搜索、分析和数据可视化功能。然而,数据库和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…...
车企携手Tech Soft 3D:基于 HOOPS 工具集打造Web端一体化工程可视化解决方案
随着汽车行业向智能化、电动化转型,整车研发体系正在发生深刻变化。围绕多平台架构、跨区域协同以及供应链一体化,企业对于工程数据的使用方式提出了更高要求——不仅要“能管理”,更要“能流动、能协同”。 为推动核心工程系统向浏览器化、…...
March7thAssistant:崩坏:星穹铁道企业级自动化解决方案
March7thAssistant:崩坏:星穹铁道企业级自动化解决方案 【免费下载链接】March7thAssistant 崩坏:星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 【核心价值定位】游戏工作室效率倍增引…...
NVIDIA Profile Inspector 终极指南:免费解锁显卡隐藏性能的完整教程
NVIDIA Profile Inspector 终极指南:免费解锁显卡隐藏性能的完整教程 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 想要让游戏画面更流畅、画质更清晰吗?NVIDIA Profile Inspe…...
别再用asyncio硬扛高并发了!无GIL环境下Python原生多线程性能翻倍的6个核心调优参数
第一章:Python无锁GIL环境下的并发模型演进全景Python长期以来受全局解释器锁(GIL)制约,导致多线程无法真正并行执行CPU密集型任务。近年来,随着CPython 3.12正式引入实验性“无GIL构建选项”(--without-py…...
SiameseUIE中文-base效果对比:在CLUE-NER和COTE-ABSA双基准测试
SiameseUIE中文-base效果对比:在CLUE-NER和COTE-ABSA双基准测试 想找一个开箱即用、效果又好的中文信息抽取工具?今天我们来聊聊阿里巴巴达摩院出品的SiameseUIE中文-base模型。这可不是一个普通的模型,它是一个“通用信息抽取”模型&#x…...
GAN训练过程可视化神器对比:GAN Lab和TensorFlow Playground到底怎么选?
GAN训练可视化工具深度评测:从交互设计到教学效果的全面对比 当开发者第一次接触生成对抗网络(GAN)时,往往会被其复杂的对抗训练机制所困扰。传统的静态图表和数学公式很难直观展示生成器与判别器之间微妙的博弈过程。这正是可视化…...
Android Studio中文界面汉化终极指南:5分钟打造舒适开发环境
Android Studio中文界面汉化终极指南:5分钟打造舒适开发环境 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 还在为An…...
Rust Web开发:ActixWeb实战指南
1. 为什么选择ActixWeb进行Rust Web开发 我第一次接触ActixWeb是在三年前的一个电商项目里,当时团队需要处理每秒上万次的库存查询请求。测试了多个Rust框架后,ActixWeb凭借其卓越的性能表现脱颖而出——在同等硬件条件下,它的QPS(…...
Deepin系统远程桌面实战:从零配置xrdp服务到Windows无缝连接
Deepin系统远程桌面实战:从零配置xrdp服务到Windows无缝连接 在跨平台协作成为常态的今天,远程桌面技术让不同操作系统间的无缝协作成为可能。对于使用Deepin系统的用户而言,如何高效地通过Windows设备远程访问和控制Deepin桌面,是…...
SEO 页面优化平台如何分析竞争对手的优化情况
SEO 页面优化平台如何分析竞争对手的优化情况 在当前竞争激烈的互联网环境中,SEO(搜索引擎优化)已经成为每个网站的生存和发展的关键。而在这其中,SEO 页面优化平台的角色尤为重要。通过对竞争对手的优化情况进行深入分析&#x…...
