稠密检索

Parent: ai_keywords

核心定义

稠密检索(Dense Retrieval) 是一种基于深度学习的现代信息检索范式。与依赖词频统计(如BM25)的稀疏检索不同,稠密检索通过神经网络(如BERT、双编码器)将查询和文档同时映射为低维、连续的稠密向量(通常128~768维),并在向量空间中利用余弦相似度或点积计算语义相似性,从而突破词汇鸿沟,实现语义级别的匹配。其核心思想是:“将语言理解转化为向量表征的几何距离”


关键技术点

  1. 双编码器(Dual-Encoder)架构
    查询和文档分别由两个参数共享或不共享的Transformer编码器处理,生成固定长度的向量。推理时独立编码,支持离线预计算文档向量,在线低延迟检索。

  2. 对比学习(Contrastive Learning)
    训练目标通常采用InfoNCE损失:正样本对(查询-相关文档)的相似度应远大于负样本对。需要精心构建批内负样本或硬负样本(如BM25检索的高分但不相关文档)来提升判别力。

  3. 近似最近邻搜索(ANN)
    面对海量文档向量,稠密检索依赖近似最近邻算法(如FAISS、HNSW)将检索复杂度从线性降至对数或亚线性,牺牲微小精度换取毫秒级响应。

  4. 预训练-微调范式
    从通用语料(如Wikipedia)预训练的BERT/Sentence-BERT作为初始化,再针对特定领域(如医学文献)做领域自适应微调,显著提升跨主题迁移能力。

  5. 跨模态/多模态扩展
    稠密检索可自然延伸至文本-图像、文本-时序信号(如脑电图EEG)等非结构化数据,统一编码为共享向量空间,实现交叉模态检索。


医学/神经科学应用场景

场景:基于脑电信号的癫痫发作间期尖波自动检索(首都医科大学神经病学重点实验室)

  • 痛点:神经科医生需手动浏览数小时的EEG记录以筛查与患者发作模式相似的“尖波”事件,精确但耗时。传统规则匹配(如阈值检测)对波形变异鲁棒性差。
  • 方案:采用稠密检索实现“以波形找波形”。
    1. 以正常/异常EEG片段(2秒窗口)作为文档,利用预训练的时序Transformer(如Time Series BERT)将其编码为稠密向量(128维)。
    2. 将当前患者的一段典型发作期EEG(查询片段)在线编码为查询向量。
    3. 通过FAISS在百万级EEG片段向量库中执行ANN检索,返回与查询波形语义最相似的top-K片段(包括不同导联、不同睡眠阶段的罕见尖波)。
  • 价值:将人工筛查时间从数小时压缩至分钟级;对形态变异(如多灶性棘波)的召回率较传统模板匹配提升30%以上;并可跨患者、跨医院进行案例相似度检索,辅助癫痫灶定位与术式规划。