Hypothetical Document Embeddings (HyDE) (HE)
Hypothetical Document Expansion (HyDE) — שיטה לשיפור vector retrieval ו־retrieval‑augmented generation (RAG), שבה מודל שפה גדול (LLM) מייצר על פי שאילתה מקורית "מסמך היפותטי"; לאחר מכן טקסט זה עובר וקטוריזציה על ידי encoder, והחיפוש מתבצע בין מסמכים אמיתיים לפי קרבה לוקטור שהתקבל. הגישה מאפשרת להשתמש ב"דפוסי רלוונטיות" המקודדים על ידי LLM ו"לעגן" אותם על גבי קורפוס בעזרת embeddings צפופים[1].
הגדרה ואינטואיציה
HyDE מפרק את משימת החיפוש לשני שלבים:
(1) ה־LLM יוצר "דוגמה לתשובה רלוונטית" (hypothetical document) לשאילתה, ובכך מדמה את מאפייני הרלוונטיות;
(2) encoder קונטרסטיבי (למשל, Contriever) ממיר את הטקסט לוקטור, לפיו מוחזרים מסמכים אמיתיים מתוך האינדקס. הטקסט שנוצר עשוי להכיל שגיאות עובדתיות, אך החשיבות היא בתבניות הנושאיות והטרמינולוגיות שה־encoder קולט[2].
היסטוריה ומקורות
הרעיון של הרחבת חיפוש בטקסטים סינתטיים מתחקה אחר עבודות בתחום הרחבת שאילתות ומשוב מדומה-רלוונטי (PRF): אלגוריתם Rocchio ומודלי שפה של רלוונטיות[3][4]. עבור dense retrieval נעשה שימוש ב־encoders מאומנים קונטרסטיבית (Contriever)[5] וב־Dense Passage Retrieval (DPR)[6]. ה־benchmark BEIR סטנדרטיזה את הערכת zero‑shot[7]. על רקע זה הוצע HyDE כדרך "להכניס" לתוך המצב האפסי את הידע של LLM על רלוונטיות ללא כוונון עדין של ה־encoder[8].
שיטה ופורמליזציה
יהי קורפוס המסמכים , וה־encoder של טקסטים מגדיר ייצוגים וקטוריים של מסמכים . למדידת הקרבה משתמשים בדמיון קוסינוס או במכפלה סקלרית; הערה חשובה: **המכפלה הסקלרית שווה לדמיון קוסינוס רק כאשר שני הוקטורים הם בעלי נורמת L2 יחידית** ()[9].
HyDE מגדיר מחדש את ייצוג השאילתה דרך "מסמך היפותטי" שנוצר על ידי LLM. באופן פורמלי:
כאשר — LLM עם הוראה (לדוגמה: "כתוב פסקה שעונה על השאלה ..."), — מדד דמיון (קוסינוס או IP עם נרמול), ו־ — קבוצה של המסמכים בעלי הדמיון המקסימלי[10][11].
בפרקטיקה הנדסית לעיתים קרובות מייצרים **מספר** טקסטים היפותטיים ומאגדים את ייצוגיהם, מה שמגביר את היציבות:
כאשר — פרמטרים סטוכסטיים של פענוח (למשל, temperature/top‑p). אנסמבל זה משפר את ה־Recall עם עלייה מתונה בזמן התגובה[12].
Pipeline בסיסי של HyDE
# 1) prompt(query) -> hypothetical_doc # 2) embed(hypothetical_doc) -> v_h # 3) retrieve(index, v_h, k) -> candidates # 4) (optional) rerank(query, candidates) -> topN # 5) (для RAG) stuff / map-reduce / refine на topN
קשר לשיטות אחרות (QE, doc2query, PRF)
- QE (הרחבת שאילתה) מוסיף מונחים לשאילתה; HyDE במקום זאת מייצר "מעין-מסמך" שלם, מה שמתאים טוב יותר ל־encoders צפופים[13].
- doc2query / docTTTTTquery מרחיבים מסמכים עם שאילתות סינתטיות לפני האינדוקסציה[14][15]; HyDE מרחיב את השאילתה תוך כדי עבודה, ללא צורך באינדוקסציה מחדש.
- PRF (Rocchio, Relevance LM) מעדכן את וקטור השאילתה לפי תוצאות ה־top; HyDE שואב את "דפוס הרלוונטיות" ישירות מה־LLM ולאחר מכן "מעגן" אותו על ידי retrieval מהקורפוס[16].
אינטגרציה ב־RAG וסידור מחדש
ב־RAG, HyDE משמש כשלב ה־retrieval הראשון: מסמך היפותטי → embedding → k מועמדים. לאחר מכן מתבצע סידור מחדש: cross-encoders מסוג BERT[17] או ColBERT עם אינטראקציה מאוחרת[18]. למיזוג רשימות (למשל, שילוב BM25+vector) נעשה בדרך כלל שימוש ב־RRF (reciprocal rank fusion): שיטת ה־RRF משפרת בעקביות את האיכות הכוללת של דירוגים משולבים[19].
הערכה על benchmarks (BEIR ואחרים)
העבודה המקורית מעריכה את HyDE במצב אפסי על TREC DL'19/20 (חיפוש אינטרנט) ועל תת-קבוצה של אוספי BEIR (Scifact, ArguAna, TREC‑COVID, FiQA, DBPedia, TREC‑NEWS, Climate‑FEVER). קטע מהתוצאות — נכון ל־2023‑07:
| שיטה | DL19 | DL20 | מקור |
|---|---|---|---|
| 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] |
| שיטה | Scifact | ArguAna | TREC‑COVID | FiQA | DBPedia | TREC‑NEWS | Climate‑FEVER | מקור |
|---|---|---|---|---|---|---|---|---|
| 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 משפר גם את MRR@100 על אוספים רב-לשוניים Mr.TyDi (sw/ko/ja/bn) ביחס ל־mContriever[28].
המלצות מעשיות
- מתי ליישם HyDE
- מצבי zero-shot/העברה (אין תוויות רלוונטיות; "שונות" תחומית מקורפוסי האימון)[29].
- כאשר נדרש שיפור Recall@k עם דיוק סביר — HyDE לעיתים קרובות "פותח" אזורים רלוונטיים במרחב הוקטורי[30].
- הגדרות טיפוסיות
- LLM ו־prompt: הוראה "כתוב פסקה שעונה על השאלה ..."; סטוכסטיות מתונה (למשל, temperature≈0.7)[31].
- מספר טקסטים היפותטיים: 1–5; ממוצע embeddings משפר יציבות[32].
- Embedder: (m)Contriever ללא כוונון עדין; אפשרי שימוש ב־encoders מכוונים (אפקט HyDE נשמר)[33].
- נרמול embeddings: נורמת L2; המכפלה הפנימית שקולה לקוסינוס[34].
- Hybrid retrieval: BM25+vector עם סידור מחדש לאחר מכן[35].
- Reranker: Cross-Encoder (BERT re‑ranker)[36] או ColBERT[37].
- מיזוג תוצאות מאסטרטגיות שונות: RRF (k≈60)[38].
- מעקב אחר איכות/עלות
- Retrieval: nDCG@k, Recall@k, MRR; RAG מקצה לקצה: EM/F1 או מדדי groundedness (RAGAS/TruLens)[39][40].
- עלות/זמן תגובה: הדומיננטיות היא של יצירת LLM ו(אם קיים) סידור מחדש; מותאמת על ידי מספר "ההיפותטיים" ואורך התשובה[41].
מגבלות ושאלות פתוחות
- הזיות של הטקסט ההיפותטי: ה־LLM עשוי להכניס שגיאות עובדתיות; "העיגון" דרך ה־encoder והקורפוס מפחית את הסיכון אך אינו מבטל אותו לחלוטין[42].
- מגבלות תחומיות/לשוניות: יתרון HyDE פוחת בתחומים מתמחים מאוד ובשפות בעלות משאבים מועטים[43].
- זמן תגובה ועלות: יצירת LLM מוסיפה עיכוב ועלות token; קריטי לתרחישי online ול"היפותטיים" ארוכים[44].
- אתיקה והטיות: מומלץ להשתמש ב־LLM בטוחים ובסינון[45].
טבלת השוואה בין שיטות
| שיטה | מחלקה | היכן נוצר הטקסט | Encoder/אינדקס | Reranker (שלב 2) | מדדים טיפוסיים (דוגמה) | עלות/זמן תגובה | מקורות |
|---|---|---|---|---|---|---|---|
| HyDE | Query→hypo‑doc | בצד השאילתה (LLM → פסקה) | (m)Contriever; ANN | BERT re‑rank / ColBERT / RRF | DL19 nDCG@10≈61.3; DL20≈57.9; ArguAna nDCG@10≈46.6 | + יצירת LLM; + סידור מחדש (אופציונלי) | [46] |
| BM25 | לקסיקלי | — | אינדקס הפוך | אופציונלי | ראה טבלה (לעיל) | נמוכה (lexical) | [47] |
| DPR / ANCE | צפוף (ft) | — | Bi‑encoder; ANN | אופציונלי | DL19 nDCG@10≈62–65 | בינונית (ללא LLM) | [48][49] |
| doc2query / docTTTTTquery | הרחבת מסמך | בצד האוסף (לפני אינדוקסציה) | BM25/sparse+expanded | אופציונלי | שיפורי BM25 על MS MARCO | יצירה offline גבוהה; online מהיר | [50][51] |
| PRF (Rocchio, RLM) | QE לפי משוב | שאילתה (לפי תוצאות top) | כלשהו | אופציונלי | עלייה ב־Recall/סיכוני סחף | + מעבר retrieval נוסף | [52] |
ראו גם
- BM25
- חיפוש לפי ייצוגים וקטוריים
- RAG
- משוב מדומה-רלוונטי
- BEIR
ספרות
- 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.
קישורים
- מאגר HyDE: github.com/texttron/hyde.
- תיעוד: Haystack — HyDE: docs.haystack.deepset.ai.
- תיעוד: LangChain — HyDE Retriever: docs.langchain.com.
הערות
- ↑ 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’’ — при L2‑нормализации векторов внутр. произведение эквивалентно косинусу. 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). Прил. (ablation): влияние числа гипотетических текстов и параметров генерации. 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), см. выше.
- ↑ 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). Табл. 1. DOI:10.18653/v1/2023.acl-long.99.
- ↑ Izacard, G. et al. (2022); сводные метрики — в Gao et al., 2023, табл. 1. arXiv:2112.09118.
- ↑ Gao, L. et al. (2023). Табл. 1.
- ↑ Karpukhin, V. et al. (2020); сводные — в Gao et al., 2023.
- ↑ Xiong, L. et al. (2021). ICLR. arXiv:2007.00808.
- ↑ Thakur, N. et al. (2021); сводные — в Gao et al., 2023, табл. 2. arXiv:2104.08663.
- ↑ Izacard, G. et al. (2022); сводные — в Gao et al., 2023, табл. 2.
- ↑ Gao, L. et al. (2023). Табл. 2.
- ↑ Gao, L. et al. (2023). Табл. 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)’’ (инженерная справка). docs.haystack.deepset.ai
- ↑ Gao, L. et al. (2023). Табл. 6.
- ↑ Milvus Docs. ‘‘Similarity Metrics’’.
- ↑ Haystack × Milvus Integration (официальная док.). 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). Табл. 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). Табл. 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.