Hypothetical Document Embeddings (HyDE) (PT)
Hypothetical Document Expansion (HyDE) — é um método para aprimorar a recuperação vetorial (vector retrieval) e a geração aumentada por recuperação (retrieval-augmented generation, RAG), no qual um modelo de linguagem grande (LLM) gera um "documento hipotético" a partir de uma consulta original. Em seguida, esse texto é vetorizado por um codificador (encoder), e a busca é realizada entre documentos reais com base na proximidade com o vetor resultante. A abordagem permite utilizar "padrões de relevância" codificados pelo LLM e "ancorá-los" (grounding) a um corpus por meio de embeddings densos[1].
Definição e Intuição
O HyDE decompõe a tarefa de busca em duas etapas:
(1) O LLM cria um "exemplo de resposta relevante" (hypothetical document) para a consulta, modelando assim as características de relevância;
(2) Um codificador contrastivo (por exemplo, Contriever) converte esse texto em um vetor, com base no qual documentos reais são recuperados do índice. O texto gerado pode conter erros factuais, mas o que importa são os padrões temáticos e terminológicos capturados pelo codificador[2].
História e Fontes
A ideia de expandir a busca com textos sintéticos remonta a trabalhos sobre expansão de consulta (query expansion) e feedback de pseudo-relevância (pseudo-relevance feedback, PRF): o algoritmo de Rocchio e os modelos de linguagem de relevância[3][4]. Para a recuperação densa (dense retrieval), foram utilizados codificadores treinados de forma contrastiva (Contriever)[5] e o Dense Passage Retrieval (DPR)[6]. O benchmark BEIR padronizou a avaliação zero-shot[7]. Nesse contexto, o HyDE foi proposto como uma forma de "injetar" conhecimento de relevância no modo zero-shot por meio de um LLM, sem a necessidade de treinar novamente o codificador[8].
Método e Formalização
Seja um corpus de documentos e um codificador de texto que define as representações vetoriais dos documentos . Para medir a proximidade, utiliza-se a similaridade de cosseno ou o produto escalar. Uma observação importante: **o produto escalar coincide com a similaridade de cosseno apenas quando a norma L2 de ambos os vetores é unitária** ()[9].
O HyDE redefine a representação da consulta por meio de um "documento hipotético" gerado pelo LLM. Formalmente:
onde é o LLM com a instrução (por exemplo: "Escreva um parágrafo que responda à pergunta..."), é a medida de similaridade (cosseno ou produto escalar com normalização), e é o conjunto dos documentos com a maior similaridade[10][11].
Na prática de engenharia, é comum gerar **vários** textos hipotéticos e agregar suas representações, o que aumenta a robustez:
onde são parâmetros estocásticos de decodificação (ex: temperature/top-p). Essa abordagem de ensemble melhora o Recall com um aumento moderado na latência[12].
Pipeline Básico do 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) (para RAG) stuff / map-reduce / refine nos topN
Relação com outros métodos (QE, doc2query, PRF)
- QE (expansão de consulta) adiciona termos à consulta; o HyDE, em vez disso, gera um "quase-documento" inteiro, o que se alinha melhor com codificadores densos[13].
- doc2query / docTTTTTquery expandem os documentos com consultas sintéticas antes da indexação[14][15]; o HyDE expande a consulta em tempo de execução, sem exigir reindexação.
- PRF (Rocchio, Relevance LM) atualiza o vetor da consulta com base nos principais resultados; o HyDE extrai o "padrão de relevância" diretamente do LLM e depois o "ancora" (grounds) através da recuperação no corpus[16].
Integração em RAG e Reclassificação (Reranking)
Em sistemas RAG, o HyDE é aplicado como a primeira etapa de recuperação: documento hipotético → embedding → k candidatos. Em seguida, utiliza-se a reclassificação (reranking): cross-encoders da classe BERT[17] ou interação tardia (late interaction) do ColBERT[18]. Para fundir listas (por exemplo, um híbrido de BM25 e vetores), tipicamente se aplica o RRF (reciprocal rank fusion): O método RRF aumenta consistentemente a qualidade agregada das classificações combinadas[19].
Avaliação em Benchmarks (BEIR e outros)
O trabalho original avalia o HyDE no modo zero-shot nos benchmarks TREC DL'19/20 (busca na web) e em um subconjunto de coleções do BEIR (Scifact, ArguAna, TREC-COVID, FiQA, DBPedia, TREC-NEWS, Climate-FEVER). Um trecho dos resultados — atualizado até 07/2023:
| Método | DL19 | DL20 | Fonte |
|---|---|---|---|
| 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étodo | Scifact | ArguAna | TREC‑COVID | FiQA | DBPedia | TREC‑NEWS | Climate‑FEVER | Fonte |
|---|---|---|---|---|---|---|---|---|
| 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] |
O HyDE também melhora o MRR@100 em datasets multilíngues do Mr.TyDi (sw/ko/ja/bn) em comparação com o mContriever[28].
Recomendações Práticas
- Quando aplicar o HyDE
- Modos zero-shot ou de transferência (sem rótulos de relevância; "incompatibilidade" de domínio com os corpora de treinamento)[29].
- Necessidade de aumentar o Recall@k com precisão aceitável — o HyDE frequentemente "descobre" regiões relevantes do espaço vetorial[30].
- Configurações Típicas
- LLM e prompt: instrução "Escreva um parágrafo que responda à pergunta..."; estocasticidade moderada (ex: temperature≈0.7)[31].
- Número de textos hipotéticos: 1–5; a média dos embeddings aumenta a robustez[32].
- Embedder: (m)Contriever sem treinamento adicional; é possível usar codificadores treinados (o efeito do HyDE é preservado)[33].
- Normalização de embeddings: norma L2; o produto interno é equivalente ao cosseno[34].
- Recuperação híbrida: BM25 + vetores, seguido de reclassificação[35].
- Reclassificador (Reranker): Cross-Encoder (BERT re-ranker)[36] ou ColBERT[37].
- Fusão de resultados de diferentes estratégias: RRF (k≈60)[38].
- Monitoramento de Qualidade/Custo
- Recuperação: nDCG@k, Recall@k, MRR; RAG de ponta a ponta: EM/F1 ou métricas de groundedness (RAGAS/TruLens)[39][40].
- Custo/Latência: dominado pela geração do LLM e (se houver) pela reclassificação; otimizado pelo número de textos "hipotéticos" e pelo comprimento da resposta[41].
Limitações e Questões Abertas
- Alucinações no texto hipotético: o LLM pode introduzir erros factuais; a "ancoragem" (grounding) através do codificador e do corpus reduz o risco, mas não o elimina completamente[42].
- Limitações de domínio/idioma: o ganho do HyDE diminui em domínios altamente especializados e em idiomas com poucos recursos[43].
- Latência e Custo: a geração do LLM adiciona atraso e custo de tokens; crítico para cenários online e textos "hipotéticos" longos[44].
- Ética e Vieses: é preferível usar LLMs seguros e aplicar filtragem[45].
Tabela Comparativa de Métodos
| Método | Classe | Onde o texto é gerado | Codificador/Índice | Reclassificador (2ª etapa) | Métricas típicas (exemplo) | Custo/Latência | Fontes |
|---|---|---|---|---|---|---|---|
| HyDE | Query→hypo‑doc | No lado da consulta (LLM → parágrafo) | (m)Contriever; ANN | BERT re‑rank / ColBERT / RRF | DL19 nDCG@10≈61.3; DL20≈57.9; ArguAna nDCG@10≈46.6 | + geração do LLM; + reclassificação (opc.) | [46] |
| BM25 | Lexical | — | Índice invertido | Opcional | ver tabelas (acima) | Baixo (lexical) | [47] |
| DPR / ANCE | Denso (ft) | — | Bi‑encoder; ANN | Opcional | DL19 nDCG@10≈62–65 | Médio (sem LLM) | [48][49] |
| doc2query / docTTTTTquery | Expansão de doc. | No lado da coleção (antes da indexação) | BM25/sparse+expanded | Opcional | Melhorias no BM25 em MS MARCO | Geração offline alta; online rápido | [50][51] |
| PRF (Rocchio, RLM) | QE por feedback | Consulta (com base nos melhores res.) | Qualquer | Opcional | Aumento do Recall/riscos de desvio | + passagem adicional de recuperação | [52] |
Ver também
- BM25
- Busca por representações vetoriais
- RAG
- Feedback de pseudo-relevância
- BEIR
Leitura Adicional
- 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.
Links
- Repositório do HyDE: github.com/texttron/hyde.
- Documentação: Haystack — HyDE: docs.haystack.deepset.ai.
- Documentação: LangChain — HyDE Retriever: docs.langchain.com.
Notas
- ↑ 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.