Recherche Hybride
Recherche Hybride (Hybrid Retrieval) — une classe de méthodes de recherche d'information qui combine des signaux lexicaux (sparse) et sémantiques (dense/late-interaction) pour améliorer le rappel et la précision des résultats. Les schémas hybrides associent les avantages de la correspondance exacte de termes (BM25/TF-IDF) et de la similarité vectorielle (bi-encodeurs, modèles multi-vecteurs à interaction tardive), et emploient des méthodes de fusion de classements robustes aux scores d'échelles différentes (par exemple, Reciprocal Rank Fusion, CombSUM/CombMNZ) ainsi que le reclassement par des cross-encodeurs.[1][2][3]
Définition et motivation
La recherche hybride est une recherche parallèle ou en cascade via deux (ou plusieurs) canaux de signaux indépendants, suivie d'une fusion et/ou d'un reclassement. Les motivations typiques incluent : (i) surmonter le « fossé lexical » (synonymes, reformulations), (ii) la robustesse aux fautes de frappe et à la morphologie, (iii) l'extraction de codes ou d'identifiants spécifiques (où les modèles sparse sont performants), et (iv) la transférabilité à de nouveaux domaines ou langues (où les modèles dense offrent une généralisation sémantique).[4][5][6]
Composants de la recherche hybride
Lexical (sparse)
- Modèles classiques. TF-IDF et BM25/BM25F sont des méthodes de base standards reposant sur des index inversés ; BM25 est justifié dans le cadre probabiliste PRF et est largement utilisé comme première étape de classement.[7]
- Modèles sparse entraînables.
- SPLADE / SPLADE++/v3. Un modèle neuro-sparse qui apprend l'expansion et la pondération des termes via une tête MLM avec une régularisation de la sparsité ; il démontre de solides résultats et une bonne transférabilité (BEIR).[8][9][10]
- uniCOIL/COIL. Listes inversées contextualisées et leur version simplifiée uniCOIL ; compatibles avec les index inversés classiques.[11]
Sémantique (dense/late-interaction)
- Bi-encodeur (vecteur unique). La requête et le document sont encodés par des modèles vectoriels, la similarité est calculée par produit scalaire (dot-product) / MIPS. Exemples : DPR,[12] ANCE,[13] Contriever,[14] GTR,[15] E5.[16]
- Interaction tardive (multi-vecteur). Modélisent les correspondances au niveau des tokens lors d'une interaction « tardive » : ColBERT/ColBERTv2 ; le compromis est une meilleure précision pour un index/une latence plus élevés, ce qui est atténué par des solutions d'ingénierie (PLAID, WARP).[17][18][19]
Schémas d'hybridation et fusion de classements
- Recherche parallèle et fusion des candidats. Des listes de candidats (sparse et dense) avec leurs scores internes sont obtenues indépendamment, suivies d'une fusion de classements.[20]
- RRF (Reciprocal Rank Fusion). Une technique robuste aux scores de classements non comparables, qui somme les rangs réciproques :
, où est une valeur typique.[21] Cette méthode est supportée dans les moteurs de production (Elasticsearch/OpenSearch) comme retriever/processeur intégré.[22][23]
- CombSUM/CombMNZ et autres. Fonctions classiques de « somme des scores » (avec normalisation si nécessaire).[24][25][26]
- Combinaison linéaire pondérée.
, . Le choix de peut être fixe ou appris (par collection/par requête).[27]
- Normalisation des scores. Pour CombSUM/CombMNZ, des techniques comme min-max, z-score, etc., sont souvent appliquées pour harmoniser les échelles ;[28] alternativement, RRF ne s'appuie que sur les rangs.
- Pondération dynamique/adaptative. Routage de requêtes (query routing), caractéristiques de la requête et modèles LTR pour la sélection/pondération des canaux ; des travaux récents montrent qu'un simple mélange appris surpasse souvent RRF et est peu sensible à la normalisation.[29]
Reclassement et pipelines multi-étapes
Les systèmes hybrides sont généralement construits comme retrieval → fusion → rerank. Pour le reclassement, on utilise :
- Cross-encodeurs (BERT/T5). Les plus précis, mais coûteux : MonoBERT/MonoT5 pour réordonner les N meilleurs candidats.[30][31]
- L'interaction tardive comme reclasseur. La famille ColBERT peut également servir de reclasseur ; les accélérateurs modernes (PLAID, WARP) réduisent la latence sans perte de qualité.[32][33]
Le compromis qualité ↔ latence/coût est particulièrement important pour le RAG et les SLA stricts (voir les latences de queue p95/p99).[34]
Évaluation sur les benchmarks
- BEIR. Un ensemble unifié de collections/tâches hétérogènes pour l'évaluation zero-shot/out-of-domain des retrievers (par ex., TREC‑COVID, NFCorpus, NQ, HotpotQA, FiQA‑2018, DBPedia‑entity, ArguAna, Webis‑Touché‑2020, FEVER/Climate‑FEVER, Scidocs, SciFact, CQADupStack, etc.).[35]
- TREC Deep Learning / MS MARCO. Des ressources classiques pour l'entraînement/l'évaluation des retrievers et des reclasseurs en mode big data.[36][37][38]
- Métriques de qualité. nDCG@k, Recall@k, MRR ; pour la performance — latence p50/p95/p99, QPS ; pour l'exploitation — mémoire/coût (CPU/GPU, index).[39][40]
- Études d'ablation. Il est recommandé d'évaluer la contribution de chaque canal/poids et la sensibilité aux paramètres dans RRF et dans la combinaison ; d'évaluer la robustesse aux reformulations et aux décalages OOD (out-of-domain).[41][42]
Aspects d'ingénierie et pratiques de production
- Index et ANN. FAISS (Flat/HNSW/IVF‑PQ), HNSW, ScaNN pour la similarité MIPS/cosinus.[43][44][45]
- Stack RI. Lucene/Anserini/Pyserini pour les pipelines sparse/dense et hybrides ; reproductibilité « en deux clics » sur BEIR.[46][47]
- Bases de données vectorielles et moteurs de recherche. Qdrant, Weaviate, pgvector/PostgreSQL, Vespa, Elasticsearch/OpenSearch disposent de modes natifs de recherche hybride (BM25F+vecteur) et/ou de fusion RRF/combinaison linéaire.[48][49][50][51][52]
- Pattern RAG. Architecture : retrieval → fusion → rerank → contexte LLM avec limitation des tokens et traçabilité des sources.[53]
- Mise à jour des index, déduplication, tokenisation. Il est important de synchroniser la tokenisation entre BM25 et le vectoriseur ; calibrage des scores (normalisation/mise à l'échelle) avant la combinaison.[54]
Limitations et questions ouvertes
- Transférabilité et multilinguisme. Les modèles dense (GTR/E5) améliorent la transférabilité, mais sont sensibles au domaine/langue ; les modèles sparse (SPLADE) sont souvent plus robustes en OOD.[55][56]
- Intégration avec les LLM et hallucinations. La recherche hybride réduit les omissions et le bruit dans les contextes RAG, mais n'élimine pas complètement les hallucinations ; des reclasseurs stricts et un filtrage des sources sont nécessaires.[57]
- Coût et confidentialité. Stockage des index multi-vecteurs, compression, chiffrement et stack on-premise ; évaluation du TCO.
- Tendances. HyDE/doc2query/PRF comme expansion de documents/requêtes ;[58][59] apprentissage de la pondération ( par requête), modèles à interaction tardive plus efficaces (PLAID/WARP), documents longs et index multi-vectoriels.[60][61]
Tableau comparatif des méthodes
État au 2025‑09‑10 (exemple sur la collection BEIR trec‑covid ; nDCG@10 / Recall@100) :[62]
| Méthode | Type (sparse/dense/hybrid) | Idée/modèle | Schéma de fusion | Reclasseur | nDCG@10 / R@100 | Latence (rel.) | Sources |
|---|---|---|---|---|---|---|---|
| BM25 | sparse | Correspondance exacte de termes (PRF/BM25) | — | — | 0.595 / 0.109 | très faible | [63][64] |
| SPLADE++ (ED) | sparse (learned) | Expansion/pondération de termes sparse | — | — | 0.727 / 0.128 | faible à moyenne | [65][66] |
| Contriever (MS MARCO FT) | dense | Bi-encodeur par apprentissage contrastif | — | — | 0.596 / 0.091 | moyenne | [67][68] |
| BGE‑base‑en‑v1.5 | dense | Embedder universel puissant | — | — | 0.781 / 0.141 | moyenne | [69] |
| Cohere embed‑english‑v3.0 | dense | Modèle d'embedding de texte de niveau production | — | — | 0.818 / 0.159 | moyenne | [70] |
| BM25 + dense (ex: BM25+BGE) | hybrid | Recherche parallèle + fusion de listes | RRF (k≈60) ou combinaison pondérée | opt. : MonoT5/ColBERT | (varie selon l'implémentation ; généralement supérieur au meilleur canal unique) | moyenne | [71][72][73] |
Note : la dernière ligne illustre un schéma ; les chiffres exacts dépendent du choix de l'embedder, de la normalisation et des paramètres de fusion (voir les sources et les scripts reproductibles de Pyserini).
Liens externes
- 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
Bibliographie
- 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.
Références
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ Manning, C.D., Raghavan, P., Schütze, H. (2008). Introduction to Information Retrieval. Cambridge University Press. ISBN 978‑0521865715 (voir les chapitres sur TF-IDF, l'évaluation et le problème du vocabulary mismatch).
- ↑ Izacard, G. et al. (2022). Unsupervised Dense Information Retrieval with Contrastive Learning (Contriever). TACL 10:1089–1108. arXiv:2112.09118.
- ↑ Wang, L. et al. (2022/2024). Text Embeddings by Weakly‑Supervised Contrastive Pre‑training (E5). arXiv:2212.03533.
- ↑ Robertson, S., Zaragoza, H. (2009). The Probabilistic Relevance Framework: BM25 and Beyond. DOI:10.1561/1500000019.
- ↑ Formal, T., Piwowarski, B., Clinchant, S. (2021). SPLADE: Sparse Lexical and Expansion Model for First Stage Ranking. arXiv:2107.05720.
- ↑ Formal, T. et al. (2022). Making Sparse Neural IR Models More Effective. Findings of EMNLP. arXiv:2205.04733.
- ↑ Formal, T. et al. (2024). SPLADE‑v3: New baselines for SPLADE. arXiv:2403.06789.
- ↑ Lin, J., Ma, X. (2021). A Few Brief Notes on DeepImpact, COIL, and uniCOIL. arXiv:2106.14807.
- ↑ Karpukhin, V. et al. (2020). Dense Passage Retrieval for Open‑Domain QA. EMNLP. arXiv:2004.04906.
- ↑ Xiong, L. et al. (2021). Approximate Nearest Neighbor Negative Contrastive Learning for Dense Text Retrieval (ANCE). ICLR. arXiv:2007.00808.
- ↑ Izacard, G. et al. (2022). TACL. arXiv:2112.09118.
- ↑ Ni, J. et al. (2021/2022). Large Dual Encoders Are Generalizable Retrievers (GTR). EMNLP. arXiv:2112.07899.
- ↑ Wang, L. et al. (2022/2024). arXiv:2212.03533.
- ↑ Khattab, O., Zaharia, M. (2020). ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT. SIGIR. arXiv:2004.12832.
- ↑ Santhanam, K. et al. (2022). ColBERTv2 & PLAID. NAACL/ArXiv. arXiv:2112.01488; arXiv:2205.09707.
- ↑ Scheerer, J.L. et al. (2025). WARP: An Efficient Engine for Multi‑Vector Retrieval. arXiv:2501.17788.
- ↑ Lin, J. et al. (2021). Pyserini: A Python Toolkit for Reproducible IR with Sparse and Dense Representations. SIGIR. PDF.
- ↑ Cormack, G.V., Clarke, C.L.A., Büttcher, S. (2009). SIGIR. PDF.
- ↑ Elastic Docs. Reciprocal Rank Fusion. (consulté le 2025‑09‑10). elastic.co/docs/.../reciprocal-rank-fusion.
- ↑ OpenSearch Docs. Score ranker processor (RRF). (consulté le 2025‑09‑10). docs.opensearch.org/.../score-ranker-processor/.
- ↑ Fox, E.A., Shaw, J.A. (1994). Combination of Multiple Searches. TREC‑2, NIST SP 500‑215, 243–252. PDF.
- ↑ Lee, J.H. (1997). Analyses of Multiple Evidence Combination. SIGIR, 267–276. DOI:10.1145/258525.258587.
- ↑ Hsu, D.F., Taksa, I. (2005). Comparing Rank and Score Combination Methods for Data Fusion in IR. (Tech. report). PDF.
- ↑ Bruch, S., Gai, S., Ingber, A. (2023). TOIS. DOI:10.1145/3596512.
- ↑ Hsu, D.F., Taksa, I. (2005). voir ci-dessus.
- ↑ Bruch, S., Gai, S., Ingber, A. (2023). TOIS. DOI:10.1145/3596512.
- ↑ Nogueira, R., Cho, K. (2019). Passage Re‑ranking with BERT. arXiv:1901.04085.
- ↑ Nogueira, R., Jiang, Z., Lin, J. (2020). Document Ranking with a Pretrained Sequence‑to‑Sequence Model (MonoT5). Findings of EMNLP. arXiv:2003.06713.
- ↑ Santhanam, K. et al. (2022). arXiv:2205.09707.
- ↑ Scheerer, J.L. et al. (2025). arXiv:2501.17788.
- ↑ Dean, J., Barroso, L.A. (2013). The Tail at Scale. CACM 56(2):74–80. DOI:10.1145/2408776.2408794.
- ↑ Thakur, N. et al. (2021). BEIR: A Heterogeneous Benchmark for Zero‑shot Evaluation of IR Models. NeurIPS Datasets & Benchmarks. arXiv:2104.08663.
- ↑ Craswell, N. et al. (2020). Overview of the TREC 2019 Deep Learning Track. arXiv:2003.07820.
- ↑ Craswell, N. et al. (2021). Overview of the TREC 2020 Deep Learning Track. arXiv:2102.07662.
- ↑ Bajaj, P. et al. (2016). MS MARCO: A Human Generated MAchine Reading COmprehension Dataset. arXiv:1611.09268.
- ↑ 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). CACM. DOI:10.1145/2408776.2408794.
- ↑ Bruch, S. et al. (2023). DOI:10.1145/3596512.
- ↑ Ni, J. et al. (2021/2022). arXiv:2112.07899.
- ↑ Johnson, J., Douze, M., Jégou, H. (2017). Billion‑scale Similarity Search with GPUs (FAISS). arXiv:1702.08734.
- ↑ Malkov, Y., Yashunin, D. (2020). HNSW. IEEE TPAMI 42(4):824–836. DOI:10.1109/TPAMI.2018.2889473.
- ↑ Guo, R. et al. (2020). ScaNN: Efficient Vector Similarity Search at Scale. arXiv:1908.10396.
- ↑ Yang, P., Fang, H., Lin, J. (2018). Anserini: Reproducible IR Research with Lucene. JDIQ 10(4):1–20. DOI:10.1145/3239571.
- ↑ Lin, J. et al. (2021). SIGIR. PDF.
- ↑ Qdrant Docs. Hybrid queries (RRF, DBSF). (consulté le 2025‑09‑10). qdrant.tech/.../hybrid-queries/.
- ↑ Weaviate Docs. Hybrid search. (consulté le 2025‑09‑10). docs.weaviate.io/weaviate/search/hybrid.
- ↑ pgvector GitHub. (consulté le 2025‑09‑10). github.com/pgvector/pgvector.
- ↑ Vespa Docs. Hybrid Text Search Tutorial. (consulté le 2025‑09‑10). docs.vespa.ai/.../hybrid-search.html.
- ↑ Elastic Docs. Reciprocal Rank Fusion. (consulté le 2025‑09‑10). elastic.co/docs/.../rrf.
- ↑ Lewis, P. et al. (2020). Retrieval‑Augmented Generation for Knowledge‑Intensive NLP Tasks. NeurIPS. arXiv:2005.11401.
- ↑ Hsu, D.F., Taksa, I. (2005). voir ci-dessus.
- ↑ Ni, J. et al. (2021/2022). arXiv:2112.07899.
- ↑ Formal, T. et al. (2021, 2022, 2024). arXiv:2107.05720; 2205.04733; 2403.06789.
- ↑ Lewis, P. et al. (2020). arXiv:2005.11401.
- ↑ Gao, L. et al. (2023). Precise Zero‑Shot Dense Retrieval without Relevance Labels (HyDE). ACL. arXiv:2212.10496.
- ↑ Nogueira, R. et al. (2019). Document Expansion by Query Prediction. arXiv:1904.08375; docTTTTTquery. PDF.
- ↑ Santhanam, K. et al. (2022). arXiv:2205.09707.
- ↑ Scheerer, J.L. et al. (2025). arXiv:2501.17788.
- ↑ Pyserini BEIR Regressions (consulté le 2025‑09‑10) : résultats sur trec-covid pour BM25/SPLADE/Contriever/BGE/Cohere. castorini.github.io/pyserini/2cr/beir.html.
- ↑ Robertson, S., Zaragoza, H. (2009). DOI:10.1561/1500000019.
- ↑ Pyserini BEIR. Voir le lien ci-dessus.
- ↑ Formal, T. et al. (2021, 2022). arXiv:2107.05720; 2205.04733.
- ↑ Pyserini BEIR.
- ↑ Izacard, G. et al. (2022). arXiv:2112.09118.
- ↑ Pyserini BEIR.
- ↑ Pyserini BEIR.
- ↑ Pyserini BEIR.
- ↑ Cormack et al. (2009). SIGIR. RRF.
- ↑ Bruch et al. (2023). TOIS.
- ↑ Elastic/OpenSearch RRF Docs.