Hypothetical Document Embeddings (HyDE) (PT)

From Systems analysis wiki
Jump to navigation Jump to search

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 𝒟={d1,,dN} e um codificador de texto E:textn que define as representações vetoriais dos documentos 𝐯d=E(d). 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** (𝐮=𝐯=1)[9].

O HyDE redefine a representação da consulta por meio de um "documento hipotético" gerado pelo LLM. Formalmente:

(1) Geração do texto hipotético:d~=G(q;inst),(2) Embedding do texto hipotético:𝐯h=E(d~),(3) Busca dos vizinhos mais próximos:k(q)=TopKd𝒟S(𝐯h,𝐯d),

onde G é o LLM com a instrução inst (por exemplo: "Escreva um parágrafo que responda à pergunta..."), S é a medida de similaridade (cosseno ou produto escalar com normalização), e k(q) é o conjunto dos k 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:

d~(j)=G(q;inst,ξj),𝐯h=1mj=1mE(d~(j)),

onde ξj 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): RRF(d)=r1k+rankr(d),k60. 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:

TREC DL19/20 (busca na web) — mAP / nDCG@10 / Recall@1k
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]
BEIR (seleção de datasets) — nDCG@10 / Recall@100
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

Comparação entre HyDE e abordagens relacionadas
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.

Notas

  1. 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
  2. Gao, L. et al. (2023). ACL 2023, §3.2. DOI:10.18653/v1/2023.acl-long.99.
  3. Rocchio, J. (1971). ‘‘Relevance Feedback in Information Retrieval’’. In: Salton, G. (ed.) The SMART Retrieval System. Prentice‑Hall, pp. 313–323. ISBN 978‑0138145255.
  4. Lavrenko, V.; Croft, W. B. (2001). ‘‘Relevance‑Based Language Models’’. SIGIR. DOI:10.1145/383952.383972.
  5. Izacard, G. et al. (2021/2022). ‘‘Unsupervised Dense Information Retrieval with Contrastive Learning’’. arXiv:2112.09118.
  6. Karpukhin, V. et al. (2020). ‘‘Dense Passage Retrieval for Open‑Domain QA’’. EMNLP. DOI:10.18653/v1/2020.emnlp-main.550.
  7. Thakur, N. et al. (2021). ‘‘BEIR: A Heterogeneous Benchmark for Zero‑shot Evaluation of Information Retrieval Models’’. NeurIPS Datasets Track. arXiv:2104.08663.
  8. Gao, L. et al. (2023). DOI:10.18653/v1/2023.acl-long.99.
  9. Milvus Docs. ‘‘Similarity Metrics’’ — при L2‑нормализации векторов внутр. произведение эквивалентно косинусу. URL: https://milvus.io/docs/v2.2.x/metric.md
  10. 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.
  11. Izacard, G. et al. (2021/2022). ‘‘Unsupervised Dense Information Retrieval with Contrastive Learning (Contriever)’’. arXiv:2112.09118.
  12. Gao, L. et al. (2023). Прил. (ablation): влияние числа гипотетических текстов и параметров генерации. arXiv:2212.10496.
  13. Gao, L. et al. (2023). DOI:10.18653/v1/2023.acl-long.99.
  14. Nogueira, R. et al. (2019). ‘‘Document Expansion by Query Prediction’’ (doc2query). arXiv:1904.08375.
  15. Nogueira, R.; Lin, J. (2019). ‘‘From doc2query to docTTTTTquery’’ (tech report). PDF
  16. Rocchio, J. (1971); Lavrenko & Croft (2001), см. выше.
  17. Nogueira, R.; Cho, K. (2019). ‘‘Passage Re‑ranking with BERT’’. arXiv:1901.04085.
  18. 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.
  19. 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.
  20. Gao, L. et al. (2023). Табл. 1. DOI:10.18653/v1/2023.acl-long.99.
  21. Izacard, G. et al. (2022); сводные метрики — в Gao et al., 2023, табл. 1. arXiv:2112.09118.
  22. Gao, L. et al. (2023). Табл. 1.
  23. Karpukhin, V. et al. (2020); сводные — в Gao et al., 2023.
  24. Xiong, L. et al. (2021). ICLR. arXiv:2007.00808.
  25. Thakur, N. et al. (2021); сводные — в Gao et al., 2023, табл. 2. arXiv:2104.08663.
  26. Izacard, G. et al. (2022); сводные — в Gao et al., 2023, табл. 2.
  27. Gao, L. et al. (2023). Табл. 2.
  28. Gao, L. et al. (2023). Табл. 3. DOI:10.18653/v1/2023.acl-long.99.
  29. Gao, L. et al. (2023). §4–5.
  30. Gao, L. et al. (2023). §4.2–4.3.
  31. Gao, L. et al. (2023). §4.1.
  32. Haystack Docs. ‘‘Hypothetical Document Embeddings (HyDE)’’ (инженерная справка). docs.haystack.deepset.ai
  33. Gao, L. et al. (2023). Табл. 6.
  34. Milvus Docs. ‘‘Similarity Metrics’’.
  35. Haystack × Milvus Integration (официальная док.). haystack.deepset.ai
  36. Nogueira, R.; Cho, K. (2019). arXiv:1901.04085.
  37. Khattab, O.; Zaharia, M. (2020). DOI:10.1145/3397271.3401075.
  38. Cormack, G. V. et al. (2009). DOI:10.1145/1571941.1572114.
  39. Manning, C. D.; Raghavan, P.; Schütze, H. (2008). Introduction to Information Retrieval. Cambridge Univ. Press. ISBN 978‑0521865715.
  40. Es, S. et al. (2023). ‘‘RAGAS: Automated Evaluation of Retrieval‑Augmented Generation’’. arXiv:2309.15217.
  41. Gao, L. et al. (2023). §5.
  42. Gao, L. et al. (2023). §3.2; §4.1. DOI:10.18653/v1/2023.acl-long.99.
  43. Gao, L. et al. (2023). Табл. 3; §4.4.
  44. Gao, L. et al. (2023). §4–5.
  45. Ouyang, L. et al. (2022). ‘‘Training language models to follow instructions with human feedback (InstructGPT)’’. NeurIPS. arXiv:2203.02155.
  46. Gao, L. et al. (2023). Табл. 1–2.
  47. Robertson, S.; Zaragoza, H. (2009). ‘‘The Probabilistic Relevance Framework: BM25 and Beyond’’. Found. Trends IR. DOI:10.1561/1500000019.
  48. Karpukhin, V. et al. (2020). DOI:10.18653/v1/2020.emnlp-main.550.
  49. Xiong, L. et al. (2021). arXiv:2007.00808.
  50. Nogueira, R. et al. (2019). arXiv:1904.08375.
  51. Nogueira, R.; Lin, J. (2019). tech report.
  52. Rocchio, J. (1971). SMART; Lavrenko & Croft (2001) SIGIR.