Expansion de document hypothétique
L'Expansion de document hypothétique (Hypothetical Document Expansion, HyDE) est une méthode visant à améliorer la recherche vectorielle (vector retrieval) et la génération augmentée par la recherche (RAG). Elle consiste à utiliser un grand modèle de langage (LLM) pour générer un « document hypothétique » à partir d'une requête initiale. Ce texte est ensuite vectorisé par un encodeur, et la recherche s'effectue parmi les documents réels en fonction de la proximité avec le vecteur obtenu. Cette approche permet d'exploiter les « motifs de pertinence » encodés par le LLM et de les « ancrer » dans un corpus à l'aide d'embeddings denses[1].
Définition et intuition
HyDE décompose la tâche de recherche en deux étapes :
(1) Le LLM crée un « exemple de réponse pertinente » (hypothetical document) pour la requête, modélisant ainsi les caractéristiques de la pertinence ;
(2) Un encodeur contrastif (par ex., Contriever) transforme ce texte en un vecteur, qui est ensuite utilisé pour extraire des documents réels de l'index. Le texte généré peut contenir des erreurs factuelles, mais ce qui importe, ce sont les motifs thématiques et terminologiques capturés par l'encodeur[2].
Historique et sources
L'idée d'améliorer la recherche avec des textes synthétiques trouve son origine dans les travaux sur l'expansion de requête et le pseudo-retour de pertinence (PRF) : l'algorithme de Rocchio et les modèles de langage de pertinence[3][4]. Pour la recherche dense, des encodeurs entraînés de manière contrastive (Contriever)[5] et le Dense Passage Retrieval (DPR)[6] ont été utilisés. Le benchmark BEIR a standardisé l'évaluation en mode zero-shot[7]. C'est dans ce contexte que HyDE a été proposé comme un moyen d'« injecter » des connaissances sur la pertinence dans le mode zero-shot via un LLM, sans nécessiter de ré-entraînement de l'encodeur[8].
Méthode et formalisation
Soit un corpus de documents , et un encodeur de texte qui génère les représentations vectorielles des documents . Pour mesurer la proximité, on utilise soit la similarité cosinus, soit le produit scalaire. Une remarque importante : **le produit scalaire coïncide avec la similarité cosinus uniquement si les deux vecteurs ont une norme L2 unitaire** ()[9].
HyDE redéfinit la représentation de la requête à travers un « document hypothétique » généré par un LLM. Formellement :
où est un LLM avec une instruction (par exemple : « Écris un paragraphe répondant à la question... »), est une mesure de similarité (cosinus ou produit scalaire avec normalisation), et est l'ensemble des documents ayant la plus grande similarité[10][11].
En pratique, il est courant de générer **plusieurs** textes hypothétiques et d'agréger leurs représentations pour améliorer la robustesse :
où représente les paramètres de décodage stochastiques (par ex., temperature/top‑p). Cette méthode ensembliste améliore le rappel (Recall) avec une augmentation modérée de la latence[12].
Pipeline de base de HyDE
# 1) prompt(requête) -> document_hypothétique # 2) embed(document_hypothétique) -> v_h # 3) retrieve(index, v_h, k) -> candidats # 4) (optionnel) rerank(requête, candidats) -> topN # 5) (pour RAG) stuff / map-reduce / refine sur les topN
Liens avec d'autres méthodes (QE, doc2query, PRF)
- QE (expansion de requête) ajoute des termes à la requête ; HyDE, en revanche, génère un « quasi-document » complet, ce qui est plus compatible avec les encodeurs denses[13].
- doc2query / docTTTTTquery enrichissent les documents avec des requêtes synthétiques avant l'indexation[14][15] ; HyDE enrichit la requête à la volée, sans nécessiter de réindexation.
- PRF (Rocchio, Relevance LM) met à jour le vecteur de la requête en se basant sur les premiers résultats ; HyDE extrait un « motif de pertinence » directement du LLM, puis l'« ancre » par une recherche dans le corpus[16].
Intégration dans RAG et reclassement
Dans une architecture RAG, HyDE est appliqué comme première étape de recherche : document hypothétique → embedding → k candidats. Ensuite, on utilise une étape de reclassement (reranking) : des cross-encodeurs de type BERT[17] ou une interaction tardive comme ColBERT[18]. Pour fusionner les listes de résultats (par ex., une approche hybride BM25 + recherche vectorielle), on utilise généralement la fusion par rang réciproque (Reciprocal Rank Fusion, RRF) : La méthode RRF améliore de manière stable la qualité globale des classements combinés[19].
Évaluation sur des benchmarks (BEIR et autres)
L'article original évalue HyDE en mode zero-shot sur TREC DL’19/20 (recherche web) et sur un sous-ensemble des collections BEIR (Scifact, ArguAna, TREC‑COVID, FiQA, DBPedia, TREC‑NEWS, Climate‑FEVER). Voici un extrait des résultats — en date de juillet 2023 :
| Méthode | DL19 | DL20 | Source |
|---|---|---|---|
| BM25 | 30.1 / 50.6 / 75.0 | 28.6 / 48.0 / 78.6 | [20] |
| Contriever (unsup.) | 24.0 / 44.5 / 74.6 | 24.0 / 42.1 / 75.4 | [21] |
| HyDE (Contriever+LLM) | 41.8 / 61.3 / 88.0 | 38.2 / 57.9 / 84.4 | [22] |
| DPR (ft) | 36.5 / 62.2 / 76.9 | 41.8 / 65.3 / 81.4 | [23] |
| ANCE (ft) | 37.1 / 64.5 / 75.5 | 40.8 / 64.6 / 77.6 | [24] |
| Méthode | Scifact | ArguAna | TREC‑COVID | FiQA | DBPedia | TREC‑NEWS | Climate‑FEVER | Source |
|---|---|---|---|---|---|---|---|---|
| BM25 | 67.9 / 92.5 | 39.7 / 93.2 | 59.5 / 49.8 | 23.6 / 54.0 | 31.8 / 46.8 | 39.5 / 44.7 | 16.5 / 42.5 | [25] |
| Contriever | 64.9 / 92.6 | 37.9 / 90.1 | 27.3 / 17.2 | 24.5 / 56.2 | 29.2 / 45.3 | 34.8 / 42.3 | 15.5 / 44.1 | [26] |
| HyDE | 69.1 / 96.4 | 46.6 / 97.9 | 59.3 / 41.4 | 27.3 / 62.1 | 36.8 / 47.2 | 44.0 / 50.9 | 22.3 / 53.0 | [27] |
HyDE améliore également le MRR@100 sur les jeux de données multilingues Mr.TyDi (sw/ko/ja/bn) par rapport à mContriever[28].
Recommandations pratiques
- Quand utiliser HyDE
- Scénarios zero-shot ou de transfert (absence d'étiquettes de pertinence ; domaine cible « différent » des corpus d'entraînement)[29].
- Nécessité d'augmenter le Recall@k tout en maintenant une précision acceptable — HyDE permet souvent de « découvrir » des régions pertinentes de l'espace vectoriel[30].
- Paramètres typiques
- LLM et prompt : une instruction comme « Écris un paragraphe répondant à la question... » ; une stochasticité modérée (par ex., temperature≈0.7)[31].
- Nombre de textes hypothétiques : 1 à 5 ; le calcul de la moyenne des embeddings améliore la robustesse[32].
- Encodeur (Embedder) : (m)Contriever sans ré-entraînement ; il est possible d'utiliser des encodeurs pré-entraînés (l'effet de HyDE est préservé)[33].
- Normalisation des embeddings : norme L2 ; le produit interne devient équivalent à la similarité cosinus[34].
- Recherche hybride : BM25 + recherche vectorielle, suivi d'un reclassement[35].
- Reclassement (Reranker) : Cross-Encoder (BERT re-ranker)[36] ou ColBERT[37].
- Fusion des résultats de différentes stratégies : RRF (k≈60)[38].
- Suivi de la qualité et des coûts
- Recherche : nDCG@k, Recall@k, MRR ; RAG de bout en bout : EM/F1 ou métriques de groundedness (RAGAS/TruLens)[39][40].
- Coût/latence : dominés par la génération du LLM et (le cas échéant) le reclassement ; optimisés par le nombre de documents hypothétiques et la longueur de la réponse[41].
Limites et questions ouvertes
- Hallucinations dans le texte hypothétique : le LLM peut introduire des erreurs factuelles ; l'« ancrage » via l'encodeur et le corpus réduit ce risque mais ne l'élimine pas complètement[42].
- Limites liées au domaine ou à la langue : le gain apporté par HyDE diminue dans les domaines très spécialisés et pour les langues à faibles ressources[43].
- Latence et coût : la génération par le LLM ajoute un délai et un coût en tokens, ce qui est critique pour les scénarios en ligne et les textes hypothétiques longs[44].
- Éthique et biais : il est préférable d'utiliser des LLM sécurisés et des mécanismes de filtrage[45].
Tableau comparatif des méthodes
| Méthode | Classe | Où le texte est-il généré ? | Encodeur/index | Reclassement (2e étape) | Métriques typiques (exemple) | Coût/latence | Sources |
|---|---|---|---|---|---|---|---|
| HyDE | Requête→doc-hypo | Côté requête (LLM → paragraphe) | (m)Contriever; ANN | BERT re‑rank / ColBERT / RRF | DL19 nDCG@10≈61.3; DL20≈57.9; ArguAna nDCG@10≈46.6 | + génération par le LLM ; + reclassement (optionnel) | [46] |
| BM25 | Lexicale | — | Index inversé | Optionnel | voir tableaux (ci-dessus) | Faible (lexicale) | [47] |
| DPR / ANCE | Dense (ft) | — | Bi‑encoder; ANN | Optionnel | DL19 nDCG@10≈62–65 | Moyenne (sans LLM) | [48][49] |
| doc2query / docTTTTTquery | Expansion de doc. | Côté collection (avant indexation) | BM25/sparse+expanded | Optionnel | Améliorations de BM25 sur MS MARCO | Génération hors ligne coûteuse ; rapide en ligne | [50][51] |
| PRF (Rocchio, RLM) | QE par feedback | Requête (d'après les 1ers rés.) | Tout type | Optionnel | Augmentation du Recall / risques de dérive | + passe de recherche supplémentaire | [52] |
Voir aussi
- BM25
- Recherche par représentations vectorielles
- RAG
- Pseudo-retour de pertinence
- BEIR
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 IR, 3(4), 333–389. DOI:10.1561/1500000019.
Liens
- Dépôt de HyDE : github.com/texttron/hyde.
- Documentation : Haystack — HyDE : docs.haystack.deepset.ai.
- Documentation : LangChain — HyDE Retriever : docs.langchain.com.
Notes
- ↑ Gao, L.; Ma, X.; Lin, J.; Callan, J. (2023). ‘‘Precise Zero‑Shot Dense Retrieval without Relevance Labels (HyDE)’’. ACL 2023. pp. 1762–1777. DOI:10.18653/v1/2023.acl-long.99. arXiv:2212.10496
- ↑ Gao, L. et al. (2023). ACL 2023, §3.2. DOI:10.18653/v1/2023.acl-long.99.
- ↑ Rocchio, J. (1971). ‘‘Relevance Feedback in Information Retrieval’’. In: Salton, G. (ed.) The SMART Retrieval System. Prentice‑Hall, pp. 313–323. ISBN 978‑0138145255.
- ↑ Lavrenko, V.; Croft, W. B. (2001). ‘‘Relevance‑Based Language Models’’. SIGIR. DOI:10.1145/383952.383972.
- ↑ Izacard, G. et al. (2021/2022). ‘‘Unsupervised Dense Information Retrieval with Contrastive Learning’’. arXiv:2112.09118.
- ↑ Karpukhin, V. et al. (2020). ‘‘Dense Passage Retrieval for Open‑Domain QA’’. EMNLP. DOI:10.18653/v1/2020.emnlp-main.550.
- ↑ Thakur, N. et al. (2021). ‘‘BEIR: A Heterogeneous Benchmark for Zero‑shot Evaluation of Information Retrieval Models’’. NeurIPS Datasets Track. arXiv:2104.08663.
- ↑ Gao, L. et al. (2023). DOI:10.18653/v1/2023.acl-long.99.
- ↑ Milvus Docs. ‘‘Similarity Metrics’’ — avec la normalisation L2 des vecteurs, le produit interne est équivalent au cosinus. URL: https://milvus.io/docs/v2.2.x/metric.md
- ↑ Gao, L.; Ma, X.; Lin, J.; Callan, J. (2023). ‘‘Precise Zero‑Shot Dense Retrieval without Relevance Labels (HyDE)’’. ACL 2023, §3–4. arXiv:2212.10496. DOI:10.18653/v1/2023.acl-long.99.
- ↑ Izacard, G. et al. (2021/2022). ‘‘Unsupervised Dense Information Retrieval with Contrastive Learning (Contriever)’’. arXiv:2112.09118.
- ↑ Gao, L. et al. (2023). Annexe (ablation) : influence du nombre de textes hypothétiques et des paramètres de génération. arXiv:2212.10496.
- ↑ Gao, L. et al. (2023). DOI:10.18653/v1/2023.acl-long.99.
- ↑ Nogueira, R. et al. (2019). ‘‘Document Expansion by Query Prediction’’ (doc2query). arXiv:1904.08375.
- ↑ Nogueira, R.; Lin, J. (2019). ‘‘From doc2query to docTTTTTquery’’ (tech report). PDF
- ↑ Rocchio, J. (1971); Lavrenko & Croft (2001), voir ci-dessus.
- ↑ Nogueira, R.; Cho, K. (2019). ‘‘Passage Re‑ranking with BERT’’. arXiv:1901.04085.
- ↑ Khattab, O.; Zaharia, M. (2020). ‘‘ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT’’. SIGIR. DOI:10.1145/3397271.3401075; arXiv:2004.12832.
- ↑ Cormack, G. V.; Clarke, C. L. A.; Büttcher, S. (2009). ‘‘Reciprocal Rank Fusion Outperforms Condorcet and Nearly Optimally Combines Rankings’’. SIGIR. DOI:10.1145/1571941.1572114.
- ↑ Gao, L. et al. (2023). Tab. 1. DOI:10.18653/v1/2023.acl-long.99.
- ↑ Izacard, G. et al. (2022); métriques de synthèse dans Gao et al., 2023, tab. 1. arXiv:2112.09118.
- ↑ Gao, L. et al. (2023). Tab. 1.
- ↑ Karpukhin, V. et al. (2020); métriques de synthèse dans Gao et al., 2023.
- ↑ Xiong, L. et al. (2021). ICLR. arXiv:2007.00808.
- ↑ Thakur, N. et al. (2021); métriques de synthèse dans Gao et al., 2023, tab. 2. arXiv:2104.08663.
- ↑ Izacard, G. et al. (2022); métriques de synthèse dans Gao et al., 2023, tab. 2.
- ↑ Gao, L. et al. (2023). Tab. 2.
- ↑ Gao, L. et al. (2023). Tab. 3. DOI:10.18653/v1/2023.acl-long.99.
- ↑ Gao, L. et al. (2023). §4–5.
- ↑ Gao, L. et al. (2023). §4.2–4.3.
- ↑ Gao, L. et al. (2023). §4.1.
- ↑ Haystack Docs. ‘‘Hypothetical Document Embeddings (HyDE)’’ (référence technique). docs.haystack.deepset.ai
- ↑ Gao, L. et al. (2023). Tab. 6.
- ↑ Milvus Docs. ‘‘Similarity Metrics’’.
- ↑ Haystack × Milvus Integration (doc. officielle). haystack.deepset.ai
- ↑ Nogueira, R.; Cho, K. (2019). arXiv:1901.04085.
- ↑ Khattab, O.; Zaharia, M. (2020). DOI:10.1145/3397271.3401075.
- ↑ Cormack, G. V. et al. (2009). DOI:10.1145/1571941.1572114.
- ↑ Manning, C. D.; Raghavan, P.; Schütze, H. (2008). Introduction to Information Retrieval. Cambridge Univ. Press. ISBN 978‑0521865715.
- ↑ Es, S. et al. (2023). ‘‘RAGAS: Automated Evaluation of Retrieval‑Augmented Generation’’. arXiv:2309.15217.
- ↑ Gao, L. et al. (2023). §5.
- ↑ Gao, L. et al. (2023). §3.2; §4.1. DOI:10.18653/v1/2023.acl-long.99.
- ↑ Gao, L. et al. (2023). Tab. 3; §4.4.
- ↑ Gao, L. et al. (2023). §4–5.
- ↑ Ouyang, L. et al. (2022). ‘‘Training language models to follow instructions with human feedback (InstructGPT)’’. NeurIPS. arXiv:2203.02155.
- ↑ Gao, L. et al. (2023). Tab. 1–2.
- ↑ Robertson, S.; Zaragoza, H. (2009). ‘‘The Probabilistic Relevance Framework: BM25 and Beyond’’. Found. Trends IR. DOI:10.1561/1500000019.
- ↑ Karpukhin, V. et al. (2020). DOI:10.18653/v1/2020.emnlp-main.550.
- ↑ Xiong, L. et al. (2021). arXiv:2007.00808.
- ↑ Nogueira, R. et al. (2019). arXiv:1904.08375.
- ↑ Nogueira, R.; Lin, J. (2019). tech report.
- ↑ Rocchio, J. (1971). SMART; Lavrenko & Croft (2001) SIGIR.