Hybrid retrieval (FA)

From Systems analysis Wiki
Jump to navigation Jump to search

Hybrid Retrieval (بازیابی ترکیبی) — دسته‌ای از روش‌های بازیابی اطلاعات است که در آن‌ها سیگنال‌های واژگانی (sparse) و معنایی (dense/late‑interaction) برای افزایش فراخوانی و دقت نتایج با یکدیگر ترکیب می‌شوند. طرح‌های ترکیبی مزایای تطابق دقیق اصطلاح (BM25/TF-IDF) و شباهت برداری (bi-encoder، مدل‌های چندگانه با تعامل دیرهنگام) را با هم دارند و همچنین از روش‌های ادغام رتبه‌بندی مقاوم در برابر مقیاس‌های متفاوت امتیازدهی (مانند Reciprocal Rank Fusion، CombSUM/CombMNZ) و بازرتبه‌بندی با cross-encoder بهره می‌برند.[1][2][3]

تعریف و انگیزه

بازیابی ترکیبی عبارت است از جستجوی موازی یا آبشاری در دو (یا بیشتر) کانال سیگنال مستقل با ادغام و/یا بازرتبه‌بندی متعاقب. انگیزه‌های معمول عبارتند از: (i) غلبه بر «شکاف اصطلاحی» (مترادف‌ها، بازصورت‌بندی‌ها)، (ii) مقاومت در برابر غلط‌های تایپی/ریخت‌شناسی، (iii) بازیابی کدها/شناسه‌های خاص (که در آن‌ها مدل sparse قوی است)، (iv) انتقال به حوزه‌ها/زبان‌های جدید (که در آن‌ها مدل‌های dense تعمیم معنایی ارائه می‌دهند).[4][5][6]

اجزای جستجوی ترکیبی

واژگانی (sparse)

  • مدل‌های کلاسیک. TF-IDF و BM25/BM25F — روش‌های پایه استاندارد بر اساس شاخص‌های معکوس؛ BM25 در چارچوب احتمالاتی PRF توجیه شده و به‌طور گسترده در مرحله اول رتبه‌بندی استفاده می‌شود.[7]
  • sparse قابل یادگیری.
    • SPLADE / SPLADE++/v3. مدل neural sparse که گسترش و وزن‌دهی اصطلاحات را از طریق سر MLM با منظم‌سازی پراکندگی یاد می‌گیرد؛ نتایج قوی و قابلیت انتقال خوب (BEIR) نشان می‌دهد.[8][9][10]
    • uniCOIL/COIL. فهرست‌های معکوس متنی‌سازی‌شده و نسخه ساده‌شده آن‌ها uniCOIL؛ با شاخص‌های معکوس کلاسیک سازگار هستند.[11]

معنایی (dense/late‑interaction)

  • Bi‑encoder (تک‌بردار). پرسش و سند توسط مدل‌های برداری کدگذاری می‌شوند و شباهت بر اساس dot‑product/MIPS محاسبه می‌شود. نمونه‌ها: DPR،[12] ANCE،[13] Contriever،[14] GTR،[15] E5.[16]
  • Late‑interaction (چندبردار). تطابق‌های سطح token را در «تعامل دیرهنگام» مدل‌سازی می‌کنند: ColBERT/ColBERTv2؛ مصالحه — دقت بهتر با شاخص/تأخیر بیشتر که توسط بهینه‌سازهای مهندسی (PLAID، WARP) کاهش می‌یابد.[17][18][19]

طرح‌های ترکیب‌سازی و ادغام رتبه‌بندی

  • جستجوی موازی و ترکیب نامزدها. فهرست‌های نامزد را (sparse و dense) با امتیازات داخلی‌شان به‌طور مستقل دریافت می‌کنیم؛ سپس ادغام رتبه‌بندی انجام می‌شود.[20]
  • RRF (Reciprocal Rank Fusion). تکنیکی مقاوم در برابر امتیازات رتبه‌بندی ناسازگار که رتبه‌های معکوس را جمع می‌کند:

RRF(d)=i=1m1k+ranki(d)، که معمولاً k60.[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]

بازرتبه‌بندی و پایپ‌لاین‌های چندمرحله‌ای

سیستم‌های ترکیبی معمولاً به‌صورت بازیابی → ادغام → بازرتبه‌بندی ساخته می‌شوند. برای بازرتبه‌بندی از موارد زیر استفاده می‌شود:

  • Cross‑encoder (BERT/T5). دقیق‌ترین اما پرهزینه‌ترین: MonoBERT/MonoT5 برای مرتب‌سازی مجدد top‑N نامزدها.[30][31]
  • Late‑interaction به‌عنوان بازرتبه‌بند. خانواده ColBERT می‌تواند به‌عنوان بازرتبه‌بند نیز عمل کند؛ شتاب‌دهنده‌های مدرن (PLAID، WARP) تأخیر را بدون کاهش کیفیت کاهش می‌دهند.[32][33]

مصالحه کیفیت ↔ تأخیر/هزینه به‌ویژه در RAG و SLA های سخت اهمیت دارد (به تأخیرهای دنباله‌دار p95/p99 توجه شود).[34]

ارزیابی روی benchmark ها

  • 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]
  • آبلیشن‌ها. توصیه می‌شود سهم هر کانال/وزن و حساسیت به پارامترهای k در RRF و α در ترکیب ثبت شود؛ مقاومت در برابر بازصورت‌بندی‌ها و انحرافات OOD ارزیابی شود.[41][42]

جنبه‌های مهندسی و رویه‌های عملی

  • شاخص‌ها و ANN. FAISS (Flat/HNSW/IVF‑PQ)، HNSW، ScaNN برای MIPS/شباهت کسینوسی.[43][44][45]
  • پشته IR. Lucene/Anserini/Pyserini برای پایپ‌لاین‌های sparse/dense و ترکیبی؛ بازتولیدپذیری «دو دکمه‌ای» روی BEIR.[46][47]
  • پایگاه‌داده‌های برداری و موتورهای جستجو. Qdrant، Weaviate، pgvector/PostgreSQL، Vespa، Elasticsearch/OpenSearch دارای حالت‌های جستجوی ترکیبی بومی (BM25F+vector) و/یا RRF/ترکیب خطی هستند.[48][49][50][51][52]
  • الگوی RAG. معماری: بازیابی → ادغام → بازرتبه‌بندی → زمینه LLM با محدودیت token و ردیابی منابع.[53]
  • به‌روزرسانی شاخص‌ها، حذف تکراری، tokenization. هماهنگ‌سازی tokenization بین BM25 و بردارساز مهم است؛ کالیبراسیون امتیازات (نرمال‌سازی/مقیاس‌بندی) پیش از ترکیب.[54]

محدودیت‌ها و پرسش‌های باز

  • قابلیت انتقال و چندزبانگی. مدل‌های dense (GTR/E5) انتقال را بهبود می‌بخشند اما نسبت به حوزه/زبان حساس هستند؛ مدل‌های sparse (SPLADE) اغلب روی OOD مقاوم‌ترند.[55][56]
  • ادغام با LLM و توهم‌زایی. بازیابی ترکیبی افت‌ها و نویز در زمینه‌های RAG را کاهش می‌دهد اما توهم‌زایی را به‌طور کامل حذف نمی‌کند؛ به بازرتبه‌بندهای دقیق و فیلترسازی منابع نیاز است.[57]
  • هزینه و حریم خصوصی. ذخیره‌سازی شاخص‌های multi-vector، فشرده‌سازی، رمزگذاری و پشته on-prem؛ ارزیابی TCO.
  • روندها. HyDE/doc2query/PRF به‌عنوان گسترش سند/پرسش؛[58][59] یادگیری ترکیب (per-query α)، late-interaction کارآمدتر (PLAID/WARP)، اسناد طولانی و شاخص‌های چندبرداری.[60][61]

جدول مقایسه‌ای روش‌ها

تا تاریخ ۲۰۲۵‑۰۹‑۱۰ (نمونه روی مجموعه BEIR trec‑covid؛ nDCG@10 / Recall@100):[62]

مقایسه روش‌ها روی trec‑covid
روش نوع (sparse/dense/hybrid) ایده/مدل طرح ادغام بازرتبه‌بند nDCG@10 / R@100 تأخیر (نسبی) منابع
BM25 sparse تطابق دقیق اصطلاح (PRF/BM25) 0.595 / 0.109 بسیار پایین [63][64]
SPLADE++ (ED) sparse (learned) گسترش/وزن‌دهی پراکنده اصطلاحات 0.727 / 0.128 پایین–متوسط [65][66]
Contriever (MS MARCO FT) dense bi-encoder یادگیری تقابلی 0.596 / 0.091 متوسط [67][68]
BGE‑base‑en‑v1.5 dense embedding قوی و عمومی 0.781 / 0.141 متوسط [69]
Cohere embed‑english‑v3.0 dense مدل embedding متنی صنعتی 0.818 / 0.159 متوسط [70]
BM25 + dense (نمونه: BM25+BGE) hybrid بازیابی موازی + ادغام فهرست‌ها RRF (k≈60) یا ترکیب وزن‌دار اختیاری: MonoT5/ColBERT (بسته به پیاده‌سازی متغیر است؛ معمولاً > بهترین کانال منفرد) متوسط [71][72][73]

توجه: ردیف آخر طرح را نشان می‌دهد؛ اعداد دقیق به انتخاب embedding، نرمال‌سازی و پارامترهای ادغام بستگی دارند (به منابع و اسکریپت‌های قابل بازتولید Pyserini مراجعه شود).

پیوندها

  • Pyserini / Anserini: github.com/castorini/pyserini • github.com/castorini/anserini
  • FAISS: arXiv:1702.08734
  • Weaviate (Hybrid search): docs.weaviate.io/weaviate/search/hybrid
  • pgvector: github.com/pgvector/pgvector
  • Vespa (Hybrid search tutorial): docs.vespa.ai/en/tutorials/hybrid-search.html

منابع

  • 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ärvelин, 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.