当前位置: 首页 > 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.训练慢,未在大型的文档库中进行实验

http://www.lryc.cn/news/514984.html

相关文章:

  • RTC:实时时钟
  • mqtt python rtsp拉流图传测试
  • win32汇编环境,对话框程序中通过资源显示bmp图像
  • 《探索人工智能的多元学派:符号主义、连接主义与行为主义》
  • 2024年终总结及计划
  • 数据挖掘——关联规则挖掘
  • JVM实战—9.线上FGC的几种案例
  • STM32-BKP备份寄存器RTC实时时钟
  • HTML-文本标签
  • 香橙派5plus单独编译并安装linux内核无法启动的原因分析与解决记录
  • 嵌入式应用软件开发中C语言方向面试题
  • linux 系统配置ip
  • 低代码开发:开启企业数智化转型“快捷键”
  • Tailwind CSS 实战:性能优化最佳实践
  • [redux] useDispatch的两种用法
  • Postgresql 命令还原数据库
  • 电脑找不到mfc110.dll文件要如何解决?Windows缺失mfc110.dll文件快速解决方法
  • Elasticsearch与数据库数据一致性:最佳实践与解决方案
  • vue导入导出excel、设置单元格文字颜色、背景色、合并单元格(使用xlsx-js-style库)
  • 电子电气架构 --- 中央处理器HPC及软件架构
  • 代码实战:基于InvSR对视频进行超分辨率重建
  • 一文读懂主成分分析法(PCA)
  • Redis(基础篇 + 实践篇 )
  • 高质量C++小白教程:2.10-预处理器简介
  • 一、二极管(模电理论篇)
  • JAVA学习笔记_JVM
  • SQL 中复杂 CASE WHEN 嵌套逻辑优化
  • STM32-笔记34-4G遥控灯
  • 被催更了,2025元旦源码继续免费送
  • Java(day1)