论文解读之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…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...

C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...

MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...