Hybrid retrieval (TH)

From Systems analysis Wiki
Jump to navigation Jump to search

Hybrid Retrieval (การค้นคืนแบบไฮบริด) — กลุ่มวิธีการค้นคืนสารสนเทศที่รวมสัญญาณเชิงคำศัพท์ (sparse) และเชิงความหมาย (dense/late‑interaction) เข้าด้วยกัน เพื่อเพิ่มความครบถ้วนและความแม่นยำของผลลัพธ์ โครงสร้างแบบไฮบริดผสานข้อดีของการจับคู่คำศัพท์ที่แม่นยำ (BM25/TF-IDF) และความใกล้เคียงเชิงเวกเตอร์ (bi-encoder, มัลติโมเดลแบบ late‑interaction) รวมทั้งใช้วิธีการรวมการจัดอันดับที่ทนทานต่อความต่างของมาตราส่วนคะแนน เช่น Reciprocal Rank Fusion, CombSUM/CombMNZ และการจัดอันดับใหม่ด้วย cross‑encoder[1][2][3]

คำนิยามและแรงจูงใจ

Hybrid Retrieval คือการค้นหาแบบขนานหรือแบบต่อเนื่องผ่านช่องสัญญาณอิสระตั้งแต่สองช่องขึ้นไป ตามด้วยการรวมผลและ/หรือการจัดอันดับใหม่ แรงจูงใจทั่วไป ได้แก่ (i) การเอาชนะ «ช่องว่างทางคำศัพท์» (คำพ้องความหมาย การกล่าวซ้ำด้วยถ้อยคำอื่น) (ii) ความทนทานต่อการสะกดผิด/รูปแบบทางสัณฐานวิทยา (iii) การดึงรหัส/ตัวระบุเฉพาะทาง (ซึ่ง sparse‑model มีความสามารถสูง) (iv) การถ่ายโอนไปยังโดเมน/ภาษาใหม่ (ซึ่ง dense‑model ให้การสรุปความทางความหมาย)[4][5][6]

องค์ประกอบของการค้นหาแบบไฮบริด

เชิงคำศัพท์ (sparse)

  • โมเดลคลาสสิก TF-IDF และ BM25/BM25F — วิธีพื้นฐานมาตรฐานบน inverted index; BM25 มีพื้นฐานทางทฤษฎีในกรอบ PRF แบบความน่าจะเป็น และใช้กันอย่างแพร่หลายในขั้นตอนการจัดอันดับแรก[7]
  • Sparse แบบเรียนรู้
    • SPLADE / SPLADE++/v3 โมเดล neural sparse ที่ฝึกการขยายและถ่วงน้ำหนักคำผ่าน MLM head พร้อมการทำให้เบาบาง; แสดงผลลัพธ์ที่แข็งแกร่งและถ่ายโอนได้ดี (BEIR)[8][9][10]
    • uniCOIL/COIL รายการกลับแบบมีบริบทและรูปแบบที่เรียบง่ายกว่าคือ uniCOIL; เข้ากันได้กับ inverted index แบบคลาสสิก[11]

เชิงความหมาย (dense/late‑interaction)

  • Bi‑encoder (เวกเตอร์เดี่ยว) คำถามและเอกสารถูกเข้ารหัสด้วยโมเดลเวกเตอร์ ความคล้ายคลึงวัดด้วย dot‑product/MIPS ตัวอย่าง: DPR,[12] ANCE,[13] Contriever,[14] GTR,[15] E5[16]
  • Late‑interaction (หลายเวกเตอร์) จำลองการจับคู่ระดับ token ในการ «ปฏิสัมพันธ์ช้า»: ColBERT/ColBERTv2; การแลกเปลี่ยน — ความแม่นยำที่ดีขึ้นแลกกับ index/latency ที่ใหญ่กว่า ซึ่งบรรเทาได้ด้วยตัวขับเคลื่อนทางวิศวกรรม (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]

การจัดอันดับใหม่และ pipeline หลายขั้นตอน

ระบบแบบไฮบริดมักสร้างในรูปแบบ retrieval → fusion → rerank สำหรับการจัดอันดับใหม่จะใช้:

  • Cross‑encoder (BERT/T5) แม่นยำที่สุดแต่มีต้นทุนสูง: MonoBERT/MonoT5 สำหรับการเรียงลำดับตัวเลือก top‑N ใหม่[30][31]
  • Late‑interaction เป็น reranker ตระกูล ColBERT สามารถทำหน้าที่เป็น reranker ได้ด้วย; ตัวเร่งความเร็วรุ่นใหม่ (PLAID, WARP) ลด latency โดยไม่สูญเสียคุณภาพ[32][33]

การแลกเปลี่ยน คุณภาพ ↔ latency/ต้นทุน มีความสำคัญเป็นพิเศษใน RAG และ SLA ที่เข้มงวด (ดู tail latency 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 ทรัพยากรคลาสสิกสำหรับการฝึก/ประเมินระบบค้นคืนและ reranker ในโหมดข้อมูลขนาดใหญ่[36][37][38]
  • เมตริกคุณภาพ nDCG@k, Recall@k, MRR; สำหรับประสิทธิภาพ — latency p50/p95/p99, QPS; สำหรับการดำเนินงาน — หน่วยความจำ/ต้นทุน (CPU/GPU, index)[39][40]
  • การทดสอบแบบ ablation แนะนำให้บันทึกการมีส่วนร่วมของแต่ละช่อง/น้ำหนัก และความไวต่อพารามิเตอร์ k ใน RRF และ α ในการผสม; ประเมินความทนทานต่อการกล่าวซ้ำด้วยถ้อยคำอื่นและการเปลี่ยนแปลง OOD[41][42]

แง่มุมทางวิศวกรรมและแนวปฏิบัติระดับ production

  • Index และ ANN FAISS (Flat/HNSW/IVF‑PQ), HNSW, ScaNN สำหรับ MIPS/ความคล้ายคลึงแบบโคไซน์[43][44][45]
  • สแตก IR Lucene/Anserini/Pyserini สำหรับ pipeline แบบ sparse/dense และไฮบริด; ความสามารถในการทำซ้ำได้บน BEIR อย่างง่ายดาย[46][47]
  • ฐานข้อมูลเวกเตอร์และเครื่องมือค้นหา Qdrant, Weaviate, pgvector/PostgreSQL, Vespa, Elasticsearch/OpenSearch มีโหมดการค้นหาแบบไฮบริดในตัว (BM25F+vector) และ/หรือ RRF/การผสมเชิงเส้น[48][49][50][51][52]
  • RAG pattern สถาปัตยกรรม: retrieval → fusion → rerank → บริบทของ LLM พร้อมการจำกัด token และการติดตามแหล่งที่มา[53]
  • การอัปเดต index การลบข้อมูลซ้ำซ้อน และ tokenization สำคัญที่ต้องปรับการแบ่ง token ระหว่าง BM25 และตัวสร้างเวกเตอร์ให้สอดคล้องกัน; การปรับเทียบคะแนน (การปรับมาตรฐาน/การปรับขนาด) ก่อนการผสม[54]

ข้อจำกัดและคำถามที่ยังเปิดอยู่

  • ความสามารถในการถ่ายโอนและความหลายภาษา Dense‑model (GTR/E5) ปรับปรุงการถ่ายโอน แต่ไวต่อโดเมน/ภาษา; sparse‑model (SPLADE) มักทนทานกว่าใน OOD[55][56]
  • การผสานกับ LLM และภาพลวงตา Hybrid Retrieval ลดการขาดหายและสัญญาณรบกวนในบริบท RAG แต่ไม่ขจัดภาพลวงตาได้อย่างสมบูรณ์ จำเป็นต้องใช้ reranker ที่เข้มงวดและการกรองแหล่งที่มา[57]
  • ต้นทุนและความเป็นส่วนตัว การจัดเก็บ multi‑vector index การบีบอัด การเข้ารหัส และสแตก on‑prem; การประเมิน TCO
  • แนวโน้ม HyDE/doc2query/PRF เป็นการขยายเอกสาร/คำถาม[58][59]; การฝึกการผสม (per‑query α) late‑interaction ที่มีประสิทธิภาพมากขึ้น (PLAID/WARP) เอกสารยาวและ multi-vector index[60][61]

ตารางเปรียบเทียบวิธีการ

ข้อมูล ณ วันที่ 2025‑09‑10 (ตัวอย่างบนชุดข้อมูล BEIR trec‑covid; nDCG@10 / Recall@100):[62]

การเปรียบเทียบวิธีการบน trec‑covid
วิธีการ ประเภท (sparse/dense/hybrid) แนวคิด/โมเดล โครงสร้างการรวม Reranker nDCG@10 / R@100 Latency (สัมพัทธ์) แหล่งอ้างอิง
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 แบบ contrastive learning 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)

เอกสารอ้างอิง

  • 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.

ลิงก์ภายนอก

  • 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

หมายเหตุ

  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.