검색할 때 보통은 질문을 그대로 넣어서 찾습니다. 하지만 이 방식은 발상을 뒤집어요. "만약 정답이 있다면 이런 내용일 것이다"라고 가상의 답변을 먼저 만들고, 그 가상 답변과 비슷한 실제 문서를 찾아오는 겁니다.
잃어버린 강아지를 찾을 때, "갈색 강아지"라고만 말하는 것보다 "갈색 푸들, 3살, 빨간 목줄"처럼 구체적으로 설명하면 더 잘 찾을 수 있잖아요. 그 구체적인 설명을 AI가 자동으로 만들어주는 거예요.
학술 검색 서비스에서 특히 효과적이에요. 연구자가 전문 용어를 모를 때도 원하는 논문을 잘 찾아줍니다. 구글 스칼라(Google Scholar)나 학술 데이터베이스 검색을 개선하는 데 이 아이디어가 활용되고 있어요. 질문이 짧거나 모호할 때 검색 품질을 확 끌어올리는 것이 이 기술의 핵심 가치입니다.
📚 선수학습: 이 내용을 이해하려면 RAG (Retrieval-Augmented Generation)를 먼저 읽으면 좋습니다.
**HyDE(Hypothetical Document Embeddings)**는 Gao et al. (2022)이 제안한 "먼저 일반화하고, 그 다음 근거를 찾는(generalize-then-ground)" 검색 전략이다. 핵심 아이디어는 단순하지만 강력하다: 사용자 질의로 직접 검색하는 대신, LLM에게 **가상의 답변 문서(hypothetical document)**를 먼저 생성시키고, 이 가상 문서의 임베딩으로 실제 문서를 검색한다.
[기존 RAG]
질의 q ──▶ embed(q) ──▶ 벡터 검색 ──▶ 관련 문서
[HyDE]
질의 q ──▶ LLM 생성 ──▶ 가상 문서 d̂
│
▼
embed(d̂) ──▶ 벡터 검색 ──▶ 관련 문서
수학적으로 HyDE의 검색 과정은 다음과 같다:
여기서 는 임베딩 함수, 는 문서 컬렉션이다.
HyDE가 동작하는 이유는 비대칭 검색(asymmetric retrieval)1의 문제를 해결하기 때문이다. 질의는 보통 짧고 불완전한 반면, 문서는 길고 상세하다. 이 구조적 차이가 임베딩 공간에서 벡터 불일치를 야기한다. HyDE는 가상 문서를 생성함으로써 질의를 문서와 같은 형태로 변환하여 문서-문서 유사도 공간에서 검색하게 된다.
여러 가상 문서를 생성하여 임베딩을 평균내는 앙상블 변형도 효과적이다:
HyDE는 특히 제로샷(zero-shot) 검색에서 강력한 성능을 보인다:
| 벤치마크 | BM25 | Contriever | HyDE (Contriever) | 향상 |
|---|---|---|---|---|
| TREC DL19 | 50.6 | 44.6 | 65.3 | +46.4% |
| TREC DL20 | 48.0 | 45.0 | 62.0 | +37.8% |
| NQ | 32.9 | 25.4 | 42.0 | +65.4% |
| MS-MARCO | 22.8 | 20.3 | 25.3 | +24.6% |
가상 문서에 사실 오류가 있어도 검색 성능에 큰 영향을 주지 않는다는 점이 흥미롭다. 임베딩이 개별 사실보다 **문서의 전반적 주제(topic)**를 포착하기 때문이다.
장점:
한계:
비대칭 검색(asymmetric retrieval)이란 질의와 문서의 길이/형태가 근본적으로 다른 검색 상황을 말한다. 반대로 대칭 검색(symmetric retrieval)은 유사한 길이의 문장 간 검색이다. ↩
Corrective RAG (CRAG)