Hybrid retrieval — 混合检索

From Systems analysis wiki
Jump to navigation Jump to search

Hybrid Retrieval(混合检索) — 是一类信息检索方法,它结合了词法(稀疏)和语义(密集/后期交互)信号,以提高检索结果的召回率和准确性。混合方案结合了精确术语匹配(BM25/TF-IDF)和向量相似度(双编码器、后期交互多向量模型)的优点,并采用对不同尺度得分具有鲁棒性的排序融合方法(例如,倒数排序融合 Reciprocal Rank Fusion, CombSUM/CombMNZ)以及交叉编码器重排。[1][2][3]

定义与动机

混合检索是一种通过两个(或更多)独立信号通道进行并行或级联搜索,然后进行结果融合和/或重排的方法。典型动机包括:(i) 克服“术语鸿沟”(如同义词、改写);(ii) 应对拼写错误/形态变化;(iii) 提取特定代码/标识符(稀疏模型的强项);(iv) 迁移到新领域/语言(密集模型提供语义泛化能力)。[4][5][6]

混合检索的组成部分

词法(稀疏)检索

  • 经典模型。 TF-IDF 和 BM25/BM25F 是基于倒排索引的标准基线方法;BM25 在概率相关性框架(PRF)中得到理论支持,并广泛用于第一阶段排序。[7]
  • 可学习的稀疏模型。
    • SPLADE / SPLADE++/v3。 一种神经稀疏模型,通过带有稀疏性正则化的 MLM 头来学习词项的扩展和加权;在多个基准(如 BEIR)上表现出强大的性能和良好的泛化能力。[8][9][10]
    • uniCOIL/COIL。 上下文感知的倒排列表及其简化版本 uniCOIL;与传统倒排索引兼容。[11]

语义(密集/后期交互)检索

  • 双编码器(Bi-encoder / single-vector)。 查询和文档被编码为向量,相似度通过点积(dot-product)或最大内积搜索(MIPS)计算。例如:DPR,[12] ANCE,[13] Contriever,[14] GTR,[15] E5。[16]
  • 后期交互(Late-interaction / multi-vector)。 在“后期”交互阶段对词元级别的匹配进行建模,如 ColBERT/ColBERTv2;其权衡在于以更大的索引和延迟换取更高的准确性,可通过 PLAID、WARP 等工程驱动优化。[17][18][19]

混合与排序融合方案

  • 并行搜索与候选集合并。 独立地从稀疏和密集通道获取候选列表及其内部得分,然后进行排序融合。[20]
  • RRF (Reciprocal Rank Fusion)。 一种对不可比较的排序分数具有鲁棒性的技术,通过对排名的倒数求和进行融合:

RRF(d)=i=1m1k+ranki(d),其中 `k` 通常取 60 左右。[21] 该方法作为内置检索器/处理器在 Elasticsearch/OpenSearch 等工业级搜索引擎中得到支持。[22][23]

  • CombSUM/CombMNZ 等。 经典的“分数求和”函数(必要时进行归一化)。[24][25][26]
  • 加权线性组合。

S(d)=αSsparse(d)+(1α)Sdense(d), α[0,1]。`α` 的选择可以是固定的,也可以是可学习的(基于数据集/查询)。[27]

  • 分数归一化。 对于 CombSUM/CombMNZ,通常采用 min-max、z-score 等方法来统一尺度;[28] 而 RRF 则仅依赖于排名。
  • 动态/自适应加权。 查询路由(query routing)、查询特征以及 LTR 模型可用于选择或加权不同通道;最新研究表明,一个简单的经过学习的线性组合通常优于 RRF,并且对分数归一化不敏感。[29]

重排与多阶段流水线

混合系统通常构建为 retrieval → fusion → rerank(检索 → 融合 → 重排)的流水线。重排阶段采用:

  • 交叉编码器(Cross-encoders,如 BERT/T5)。 准确性最高,但计算成本高:MonoBERT/MonoT5 用于对前 N 个候选结果进行重排序。[30][31]
  • 后期交互模型作为重排器。 ColBERT 系列模型也可以用作重排器;现代加速器(如 PLAID、WARP)能在不损失质量的情况下降低延迟。[32][33]

在 RAG 和严格的服务等级协议(SLA)场景下,质量 ↔ 延迟/成本的权衡尤为重要(参见 p95/p99 尾部延迟)。[34]

基准评测

  • BEIR。 一个统一的数据集集合,包含来自不同领域和任务的数据,用于对检索器进行零样本/域外(zero-/out-of-domain)评估(例如,TREC-COVID, NFCorpus, NQ, HotpotQA, FiQA-2018, DBPedia-entity, ArguAna, Webis-Touché-2020, FEVER/Climate-FEVER, Scidocs, SciFact, CQADupStack 等)。[35]
  • TREC Deep Learning / MS MARCO。 用于在大数据模式下训练和评估检索器与重排器的经典资源。[36][37][38]
  • 质量指标。 nDCG@k, Recall@k, MRR;性能指标——延迟 p50/p95/p99, QPS;运营指标——内存/成本(CPU/GPU,索引)。[39][40]
  • 消融研究。 建议明确每个通道/权重的贡献,以及对 RRF 中的 `k` 和混合权重 `α` 的敏感性;评估模型对查询改写和 OOD(域外)数据偏移的鲁棒性。[41][42]

工程实现与生产实践

  • 索引与 ANN。 FAISS (Flat/HNSW/IVF-PQ), HNSW, ScaNN 用于 MIPS/余弦相似度搜索。[43][44][45]
  • IR 技术栈。 Lucene/Anserini/Pyserini 用于稀疏/密集和混合检索流水线;在 BEIR 上具有“一键式”可复现性。[46][47]
  • 向量数据库与搜索引擎。 Qdrant, Weaviate, pgvector/PostgreSQL, Vespa, Elasticsearch/OpenSearch 均提供原生混合搜索模式(BM25F+向量)和/或 RRF/线性组合功能。[48][49][50][51][52]
  • RAG 模式。 架构:检索 → 融合 → 重排 → LLM 上下文,并需考虑词元限制和来源追溯。[53]
  • 索引更新、去重、分词。 协调 BM25 和向量化模型的分词器至关重要;在混合前对得分进行校准(归一化/缩放)。[54]

局限性与开放问题

  • 可移植性与多语言支持。 密集模型(如 GTR/E5)提升了迁移能力,但对领域/语言敏感;稀疏模型(如 SPLADE)在 OOD 场景下通常更鲁棒。[55][56]
  • 与 LLM 的集成及幻觉问题。 混合检索减少了 RAG 上下文中的信息遗漏和噪声,但不能完全消除幻觉;需要严格的重排器和来源过滤。[57]
  • 成本与隐私。 多向量索引的存储、压缩、加密和本地化(on-prem)部署;总拥有成本(TCO)评估。
  • 发展趋势。 HyDE/doc2query/PRF 作为文档/查询扩展技术;[58][59] 混合权重学习(per-query `α`)、更高效的后期交互模型(PLAID/WARP)、长文档处理和多向量索引。[60][61]

方法对比表

截至 2025-09-10(基于 BEIR trec-covid 数据集的示例;nDCG@10 / Recall@100):[62]

`trec-covid` 数据集上的方法比较
方法 类型 (稀疏/密集/混合) 思路/模型 融合方案 重排器 nDCG@10 / R@100 延迟 (相对) 来源
BM25 稀疏 精确词项匹配 (PRF/BM25) 0.595 / 0.109 非常低 [63][64]
SPLADE++ (ED) 稀疏 (可学习) 稀疏词项扩展/加权 0.727 / 0.128 低–中 [65][66]
Contriever (MS MARCO FT) 密集 对比学习双编码器 0.596 / 0.091 中等 [67][68]
BGE-base-en-v1.5 密集 强大的通用嵌入器 0.781 / 0.141 中等 [69]
Cohere embed-english-v3.0 密集 工业级文本嵌入模型 0.818 / 0.159 中等 [70]
BM25 + 密集 (示例: BM25+BGE) 混合 并行检索 + 列表融合 RRF (k≈60) 或加权组合 可选: MonoT5/ColBERT (因实现而异;通常优于单一最佳通道) 中等 [71][72][73]

注:最后一行仅为方案示意;具体数值取决于嵌入模型的选择、归一化方法和融合参数(详见参考文献及 Pyserini 的可复现脚本)。

参考文献

  • Manning, C.D., Raghavan, P., Schütze, H. (2008). Introduction to Information Retrieval. Cambridge University Press. ISBN 978‑0521865715.
  • Robertson, S., Zaragoza, H. (2009). The Probabilistic Relevance Framework: BM25 and Beyond. Foundations and Trends in Information Retrieval 3(4):333–389. DOI:10.1561/1500000019.
  • Lin, J. et al. (2021). Pyserini: A Python Toolkit for Reproducible IR. SIGIR.
  • Järvelin, K., Kekäläinen, J. (2002). Cumulated Gain‑Based Evaluation of IR Techniques. Information Retrieval 6:241–256. DOI:10.1023/A:1016043826386.
  • Dean, J., Barroso, L.A. (2013). The Tail at Scale. CACM 56(2):74–80. DOI:10.1145/2408776.2408794.

外部链接

注释

  1. Robertson, S., Zaragoza, H. (2009). The Probabilistic Relevance Framework: BM25 and Beyond. Foundations and Trends in Information Retrieval, 3(4), 333–389. DOI:10.1561/1500000019.
  2. Cormack, G.V., Clarke, C.L.A., Büttcher, S. (2009). Reciprocal Rank Fusion Outperforms Condorcet and Individual Rank Learning Methods. SIGIR 2009, 758–759. PDF.
  3. Bruch, S., Gai, S., Ingber, A. (2023). An Analysis of Fusion Functions for Hybrid Retrieval. ACM TOIS 42(1):1–35. DOI:10.1145/3596512 • arXiv:2210.11934.
  4. Manning, C.D., Raghavan, P., Schütze, H. (2008). Introduction to Information Retrieval. Cambridge University Press. ISBN 978‑0521865715 (см. главы о TF‑IDF, оценке и проблеме vocabulary mismatch).
  5. Izacard, G. et al. (2022). Unsupervised Dense Information Retrieval with Contrastive Learning (Contriever). TACL 10:1089–1108. arXiv:2112.09118.
  6. Wang, L. et al. (2022/2024). Text Embeddings by Weakly‑Supervised Contrastive Pre‑training (E5). arXiv:2212.03533.
  7. Robertson, S., Zaragoza, H. (2009). The Probabilistic Relevance Framework: BM25 and Beyond. DOI:10.1561/1500000019.
  8. Formal, T., Piwowarski, B., Clinchant, S. (2021). SPLADE: Sparse Lexical and Expansion Model for First Stage Ranking. arXiv:2107.05720.
  9. Formal, T. et al. (2022). Making Sparse Neural IR Models More Effective. Findings of EMNLP. arXiv:2205.04733.
  10. Formal, T. et al. (2024). SPLADE‑v3: New baselines for SPLADE. arXiv:2403.06789.
  11. Lin, J., Ma, X. (2021). A Few Brief Notes on DeepImpact, COIL, and uniCOIL. arXiv:2106.14807.
  12. Karpukhin, V. et al. (2020). Dense Passage Retrieval for Open‑Domain QA. EMNLP. arXiv:2004.04906.
  13. Xiong, L. et al. (2021). Approximate Nearest Neighbor Negative Contrastive Learning for Dense Text Retrieval (ANCE). ICLR. arXiv:2007.00808.
  14. Izacard, G. et al. (2022). TACL. arXiv:2112.09118.
  15. Ni, J. et al. (2021/2022). Large Dual Encoders Are Generalizable Retrievers (GTR). EMNLP. arXiv:2112.07899.
  16. Wang, L. et al. (2022/2024). arXiv:2212.03533.
  17. Khattab, O., Zaharia, M. (2020). ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT. SIGIR. arXiv:2004.12832.
  18. Santhanam, K. et al. (2022). ColBERTv2 & PLAID. NAACL/ArXiv. arXiv:2112.01488; arXiv:2205.09707.
  19. Scheerer, J.L. et al. (2025). WARP: An Efficient Engine for Multi‑Vector Retrieval. arXiv:2501.17788.
  20. Lin, J. et al. (2021). Pyserini: A Python Toolkit for Reproducible IR with Sparse and Dense Representations. SIGIR. PDF.
  21. Cormack, G.V., Clarke, C.L.A., Büttcher, S. (2009). SIGIR. PDF.
  22. Elastic Docs. Reciprocal Rank Fusion. (доступ 2025‑09‑10). elastic.co/docs/.../reciprocal-rank-fusion.
  23. OpenSearch Docs. Score ranker processor (RRF). (доступ 2025‑09‑10). docs.opensearch.org/.../score-ranker-processor/.
  24. Fox, E.A., Shaw, J.A. (1994). Combination of Multiple Searches. TREC‑2, NIST SP 500‑215, 243–252. PDF.
  25. Lee, J.H. (1997). Analyses of Multiple Evidence Combination. SIGIR, 267–276. DOI:10.1145/258525.258587.
  26. Hsu, D.F., Taksa, I. (2005). Comparing Rank and Score Combination Methods for Data Fusion in IR. (Tech. report). PDF.
  27. Bruch, S., Gai, S., Ingber, A. (2023). TOIS. DOI:10.1145/3596512.
  28. Hsu, D.F., Taksa, I. (2005). см. выше.
  29. Bruch, S., Gai, S., Ingber, A. (2023). TOIS. DOI:10.1145/3596512.
  30. Nogueira, R., Cho, K. (2019). Passage Re‑ranking with BERT. arXiv:1901.04085.
  31. Nogueira, R., Jiang, Z., Lin, J. (2020). Document Ranking with a Pretrained Sequence‑to‑Sequence Model (MonoT5). Findings of EMNLP. arXiv:2003.06713.
  32. Santhanam, K. et al. (2022). arXiv:2205.09707.
  33. Scheerer, J.L. et al. (2025). arXiv:2501.17788.
  34. Dean, J., Barroso, L.A. (2013). The Tail at Scale. CACM 56(2):74–80. DOI:10.1145/2408776.2408794.
  35. Thakur, N. et al. (2021). BEIR: A Heterogeneous Benchmark for Zero‑shot Evaluation of IR Models. NeurIPS Datasets & Benchmarks. arXiv:2104.08663.
  36. Craswell, N. et al. (2020). Overview of the TREC 2019 Deep Learning Track. arXiv:2003.07820.
  37. Craswell, N. et al. (2021). Overview of the TREC 2020 Deep Learning Track. arXiv:2102.07662.
  38. Bajaj, P. et al. (2016). MS MARCO: A Human Generated MAchine Reading COmprehension Dataset. arXiv:1611.09268.
  39. Järvelin, K., Kekäläinen, J. (2002). Cumulated Gain‑Based Evaluation of IR Techniques. Information Retrieval 6:241–256. DOI:10.1023/A:1016043826386.
  40. Dean, J., Barroso, L.A. (2013). CACM. DOI:10.1145/2408776.2408794.
  41. Bruch, S. et al. (2023). DOI:10.1145/3596512.
  42. Ni, J. et al. (2021/2022). arXiv:2112.07899.
  43. Johnson, J., Douze, M., Jégou, H. (2017). Billion‑scale Similarity Search with GPUs (FAISS). arXiv:1702.08734.
  44. Malkov, Y., Yashunin, D. (2020). HNSW. IEEE TPAMI 42(4):824–836. DOI:10.1109/TPAMI.2018.2889473.
  45. Guo, R. et al. (2020). ScaNN: Efficient Vector Similarity Search at Scale. arXiv:1908.10396.
  46. Yang, P., Fang, H., Lin, J. (2018). Anserini: Reproducible IR Research with Lucene. JDIQ 10(4):1–20. DOI:10.1145/3239571.
  47. Lin, J. et al. (2021). SIGIR. PDF.
  48. Qdrant Docs. Hybrid queries (RRF, DBSF). (доступ 2025‑09‑10). qdrant.tech/.../hybrid-queries/.
  49. Weaviate Docs. Hybrid search. (доступ 2025‑09‑10). docs.weaviate.io/weaviate/search/hybrid.
  50. pgvector GitHub. (доступ 2025‑09‑10). github.com/pgvector/pgvector.
  51. Vespa Docs. Hybrid Text Search Tutorial. (доступ 2025‑09‑10). docs.vespa.ai/.../hybrid-search.html.
  52. Elastic Docs. Reciprocal Rank Fusion. (доступ 2025‑09‑10). elastic.co/docs/.../rrf.
  53. Lewis, P. et al. (2020). Retrieval‑Augmented Generation for Knowledge‑Intensive NLP Tasks. NeurIPS. arXiv:2005.11401.
  54. Hsu, D.F., Taksa, I. (2005). см. выше.
  55. Ni, J. et al. (2021/2022). arXiv:2112.07899.
  56. Formal, T. et al. (2021, 2022, 2024). arXiv:2107.05720; 2205.04733; 2403.06789.
  57. Lewis, P. et al. (2020). arXiv:2005.11401.
  58. Gao, L. et al. (2023). Precise Zero‑Shot Dense Retrieval without Relevance Labels (HyDE). ACL. arXiv:2212.10496.
  59. Nogueira, R. et al. (2019). Document Expansion by Query Prediction. arXiv:1904.08375; docTTTTTquery. PDF.
  60. Santhanam, K. et al. (2022). arXiv:2205.09707.
  61. Scheerer, J.L. et al. (2025). arXiv:2501.17788.
  62. Pyserini BEIR Regressions (доступ 2025‑09‑10): результаты по trec‑covid для BM25/SPLADE/Contriever/BGE/Cohere. castorini.github.io/pyserini/2cr/beir.html.
  63. Robertson, S., Zaragoza, H. (2009). DOI:10.1561/1500000019.
  64. Pyserini BEIR. См. ссылку выше.
  65. Formal, T. et al. (2021, 2022). arXiv:2107.05720; 2205.04733.
  66. Pyserini BEIR.
  67. Izacard, G. et al. (2022). arXiv:2112.09118.
  68. Pyserini BEIR.
  69. Pyserini BEIR.
  70. Pyserini BEIR.
  71. Cormack et al. (2009). SIGIR. RRF.
  72. Bruch et al. (2023). TOIS.
  73. Elastic/OpenSearch RRF Docs.