지금까지 metadata 필터링, 키워드 검색(TF-IDF·BM25), 시맨틱 검색을 각각 봤다. 이번 편은 이 셋을 하나로 묶어 각자의 강점을 살리는 하이브리드 검색(hybrid search)과, 두 순위 목록을 합치는 핵심 알고리즘 RRF(Reciprocal Rank Fusion)를 다룬다.

 

 

1. 세 기법의 강점 복습

  • metadata 필터링 — 빠르고 구현·해석이 쉽다. 단독으론 약하지만, 다른 방식이 줄 수 없는 엄격한 예/아니오 필터를 제공한다.
  • 키워드 검색 — 빠르고 구현이 쉬우며, 특히 전문 용어·제품명처럼 정확한 단어가 중요할 때 잘 맞는다. 다만 정확한 일치에 의존해 의미는 비슷하나 단어가 다른 문서는 못 찾는다.
  • 시맨틱 검색 — 키워드 검색보다 느리고 계산이 무겁지만, 의미 기반의 유연한 매칭이라는 다른 방식이 못 주는 강점을 준다.

그림 1. 세 기법은 서로 다른 강점을 가진다 — 엄격한 필터(metadata), 정확한 매칭(키워드), 유연한 의미 매칭(시맨틱).

 

 

2. 하이브리드 파이프라인

세 기법을 전형적으로 이렇게 결합한다.

  1. retriever가 프롬프트를 받는다.
  2. 그 프롬프트로 키워드 검색과 시맨틱 검색을 모두 수행 → 서로 다른 두 순위 목록이 나온다(각각 예: 50개). 두 목록에 겹치는 문서가 많지만 순서는 다를 수 있다.
  3. 각 목록을 metadata 필터로 걸러 무관한 문서를 제거한다(예: 키워드 목록 35개, 시맨틱 목록 30개로 축소).
  4. 이제 두 순위 목록을 하나로 결합해 최종 순위를 만든다.

그림 2. 프롬프트 → 키워드·시맨틱 검색(각각 순위 목록) → metadata 필터 → 두 목록 결합.

 

 

3. 두 순위 결합 — Reciprocal Rank Fusion

두 순위 목록을 합치는 데 흔히 쓰는 알고리즘이 RRF다. RRF는 어느 목록에서든 높은 순위에 오른 문서에 보상하며, 키워드와 시맨틱 순위 중 어느 쪽에 더 무게를 줄지도 조절할 수 있다.

 

각 문서는 각 목록에서의 순위의 역수만큼 점수를 얻는다. k는 하이퍼파라미터인데, 일단 k = 0이라 하면 1등은 1점, 2등은 1/2점, 3등은 1/3점… 이런 식이다. 모든 목록에서 얻은 점수를 합산해 최종 순위를 만든다.

그림 3. RRF — 각 목록에서 순위가 높을수록 큰 점수(순위의 역수)를 주고, 모든 목록의 점수를 합산해 최종 순위를 만든다.

 

계산 예시와 k 파라미터

어떤 문서가 한 목록에서 2등, 다른 목록에서 10등이라면 점수는 1/2 + 1/10 = 0.5 + 0.1 = 0.6이다.

k는 최상위 문서의 영향력을 조절한다. k = 0이면 어느 목록에서든 1등한 문서가 곧바로 전체 1등으로 치솟는다 — 1등(1점)과 10등(0.1점)의 차이가 10배다. k = 50으로 키우면 1등은 1/50, 10등은 1/60로, 차이가 훨씬 완만해진다. 여전히 1등이 유리하지만, 한 목록의 1등이 전체를 지배하지는 않는다.

그림 4. 2등·10등 → 0.6점. k=0이면 최상위가 10배 차이로 지배, k=50이면 완만해진다.  RRF는 순위만 볼 뿐, 그 순위를 만든 점수는 무시 한다.

 

 

 

4. beta — 시맨틱 vs 키워드 가중치

하이브리드 검색에는 보통 beta라는 두 번째 하이퍼파라미터가 있어, 시맨틱 순위와 키워드 순위 중 어디에 더 무게를 줄지 정한다. 예를 들어 beta = 0.8이면 시맨틱 80% · 키워드 20%다. 보통 70:30(시맨틱 70, 키워드 30)이 좋은 출발점이고, 시스템에 맞게 튜닝하면 된다.

  • 정확한 단어 일치가 중요하지만 약간의 의미 유사성도 원한다면 → 키워드 쪽 가중치를 높인다.
  • 의미 유사성이 더 중요하고 정확한 단어는 덜 중요하다면 → 시맨틱(벡터) 쪽 가중치를 높인다.

그림 5. beta로 두 검색의 가중치를 조절한다(β=0.8 → 80:20, β=0.7 → 70:30). 정확한 매칭이 중요하면 beta를 낮춘다.

 

 

 

5. 최종 반환과 튜닝 여지

이제 retriever는 결과를 반환할 준비가 됐다. 처음 요청된 문서 개수(top-K)에 따라, 최종 하이브리드 순위에서 가장 유사한 K개를 반환한다. 하이브리드 검색은 이렇게 세 기법의 서로 다른 이점을 모두 취한다 — 정확한 단어 일치(키워드), 의미 기반의 느슨한 매칭(시맨틱), 엄격한 기준의 제외(metadata).

또한 조정할 여지가 많다 — BM25의 파라미터(k₁·b), 어떤 metadata로 필터링할지, RRF 단계에서 키워드 대 시맨틱의 가중치(beta) 등. 이렇게 각 기법의 강점을 살리고, knowledge base의 데이터나 프로젝트 요구에 맞게 성능을 튜닝할 수 있다.

그림 6. 전체 흐름 — 키워드·시맨틱 검색 → metadata 필터 → RRF로 결합 → top-K 문서 반환.

 

그런데 이 모든 파라미터(BM25의 k₁·b, metadata, beta, k)를 어떻게 튜닝할까? 그러려면 먼저 retriever가 얼마나 잘하는지 측정할 수 있어야 한다. 다음 글에서는 검색 성능을 평가하는 방법(Precision·Recall 등)을 다룬다.

'AI > RAG' 카테고리의 다른 글

근사 최근접 이웃 (ANN)  (0) 2026.07.02
검색(Retriver) 성능 평가  (0) 2026.07.02
How to train Embedding Model  (0) 2026.07.02
Semantic Search & Embedding  (0) 2026.07.02
BM25 (키워드 검색)  (0) 2026.07.02

+ Recent posts