하이브리드 검색이란 무엇인가

하이브리드 검색(Hybrid Search)은 키워드 검색과 벡터 검색을 한 번의 질의로 함께 실행한 뒤 두 결과를 하나의 순위 목록으로 합치는 정보 검색 기술이다. 정확한 단어를 찾아내는 능력과 문장의 의미를 알아듣는 능력을 한 결과에 담는 것이 목적이다.

키워드 검색은 어휘 검색이나 전문 검색, 벡터 검색은 시맨틱 검색으로도 불린다. 어휘와 시맨틱 조합이 가장 흔하지만 지리공간과 시맨틱, 텍스트와 이미지처럼 다른 방법을 묶어도 하이브리드 검색이다 (Elastic, 하이브리드 검색이란 무엇인가요?).

RAG와 AI 검색이 답변 근거를 찾는 단계에서 표준처럼 쓰이는 방식이다.

왜 키워드 검색이나 벡터 검색 하나로는 부족한가?

두 방식이 무너지는 지점이 서로 다르기 때문이다. 한쪽만 쓰면 그쪽이 약한 질의에서 결과가 통째로 어긋난다.

마이크로소프트가 고객 데이터셋으로 질의 유형별 정확도를 측정한 결과가 그 격차를 보여준다. 제품 코드나 고유명사처럼 정확한 단어를 넣는 키워드 질의에서 키워드 검색은 79.2였지만 벡터 검색은 11.7로 떨어졌고, 오타가 섞인 질의에서는 반대로 키워드 검색 28.8, 벡터 검색 39.1이었다 (Microsoft, Azure AI Search: Outperforming vector search with hybrid retrieval and reranking).

질의 유형 키워드 검색 벡터 검색 하이브리드
키워드 질의 79.2 11.7 61.0
정확한 문구 찾기 51.1 41.5 51.0
짧은 질의 53.1 38.8 53.0
개념을 찾는 질의 39.0 45.8 46.3
오타가 있는 질의 28.8 39.1 40.6
질의어와 문서 용어가 거의 겹치지 않는 질의 23.0 36.1 35.9

같은 표의 NDCG@3 값이다. 숫자가 클수록 상위 3건에 정답이 잘 들어왔다는 뜻이다.

읽는 법은 세로가 아니라 가로다. 키워드 검색은 위쪽 세 줄에서 이기고 아래쪽 세 줄에서 지며, 벡터 검색은 정확히 그 반대다.

하이브리드는 어느 줄에서도 크게 무너지지 않는다. 최고점을 노리는 방식이 아니라 최저점을 없애는 방식이다.

실제 서비스에 들어오는 질의는 이 유형이 섞여 있고, 어느 유형이 들어올지 미리 고를 수 없다. 두 방식을 함께 돌리는 이유가 여기 있다.

하이브리드 검색은 어떤 순서로 작동하는가?

한 질의를 두 갈래로 나눠 병렬로 검색하고 결과를 다시 하나로 합친다. 다섯 단계로 나뉜다.

  1. 색인을 두 벌 만든다. 같은 문서를 단어 기준의 역색인과 임베딩 기준의 벡터 색인에 함께 넣는다.
  2. 질의를 두 형태로 준비한다. 키워드 검색에는 원문 그대로, 벡터 검색에는 임베딩 모델로 변환한 벡터를 넘긴다.
  3. 두 검색을 동시에 실행한다. 각각 순위가 매겨진 후보 목록이 나온다.
  4. 두 목록을 하나로 합친다. 점수 체계가 다르므로 융합 알고리즘이 필요하다.
  5. 필요하면 다시 정렬한다. 리랭커가 합쳐진 상위 결과만 골라 순위를 다시 매긴다.

Azure AI Search는 이 과정을 "searchvectors 쿼리 매개 변수를 포함하는 단일 쿼리 요청"으로 정의하고, 전체 텍스트 검색과 벡터 검색을 병렬로 실행한 뒤 결과를 병합한다고 설명한다 (Microsoft Learn, 하이브리드 검색 개요).

5번은 선택이지만 효과가 크다. 뒤의 벤치마크에서 확인할 수 있다.

두 검색 결과는 어떻게 하나의 순위로 합쳐지는가?

점수를 그대로 더할 수 없기 때문에, 순위만 쓰거나 점수를 정규화한 뒤 더한다.

두 점수는 애초에 단위가 다르다. Azure AI Search 기준으로 전체 텍스트 검색의 BM25 점수는 상한이 없고, 벡터 검색의 코사인 유사도 점수는 0.333에서 1.00 사이에 머문다 (Microsoft Learn, 하이브리드 검색 점수 매기기(RRF)). 상한 없는 값과 1을 못 넘는 값을 더하면 한쪽이 결과를 독점한다.

결합 방식 무엇을 쓰는가 성질
순위 기반 (RRF) 각 목록에서의 등수 점수 단위를 아예 무시해 안정적이다
점수 기반 (정규화 후 결합) 정규화한 점수 값 1등과 2등의 실제 격차가 반영된다

가장 널리 쓰이는 것은 순위 기반의 RRF(Reciprocal Rank Fusion)다. 문서가 각 목록에서 차지한 등수를 1/(k + rank)로 바꿔 더하고, 그 합으로 최종 순위를 정한다.

여기서 k는 상수이고 실무 기본값은 60이다. RRF를 제안한 2009년 SIGIR 논문은 k = 60을 파일럿 실험에서 정한 뒤 이후 검증에서 바꾸지 않았다고 밝히고 있으며, 같은 실험에서 RRF는 Condorcet Fuse와 CombMNZ, 그리고 결합에 쓰인 최고 성능의 단일 시스템을 평균 4%에서 5% 앞섰다 (Cormack, Clarke, Büttcher, Reciprocal Rank Fusion outperforms Condorcet and individual Rank Learning Methods, SIGIR 2009).

k가 하는 일은 등수 사이의 점수 격차를 완만하게 만드는 것이다. 논문은 이 상수가 "이상치 시스템의 높은 순위가 미치는 영향을 완화한다"고 설명한다.

점수 기반을 기본값으로 쓰는 엔진도 있다. Weaviate는 v1.24부터 상대 점수 융합을 기본 방식으로 두고, alpha 값이 1이면 순수 벡터 검색, 0이면 순수 키워드 검색이 되도록 가중치를 조절한다 (Weaviate Docs, Hybrid search).

하이브리드 검색은 정확도를 얼마나 올리는가?

마이크로소프트가 고객 데이터셋과 학술 벤치마크 세 종류로 측정한 결과, 하이브리드 검색은 키워드 검색과 벡터 검색 어느 쪽보다도 높았고 여기에 시맨틱 랭커를 붙였을 때 가장 높았다 (Microsoft, Azure AI Search: Outperforming vector search with hybrid retrieval and reranking).

검색 구성 고객 데이터셋 (NDCG@3) BEIR (NDCG@10) 다국어 MIRACL (NDCG@10)
키워드 40.6 40.6 49.6
벡터 (Ada-002) 43.8 45.0 58.3
하이브리드 48.4 48.4 58.8
하이브리드 + 시맨틱 랭커 60.1 50.0 72.0

고객 데이터셋에서 벡터 단독 43.8이 하이브리드에서 48.4가 되고, 리랭킹까지 붙이면 60.1이 된다. 검색 방식 하나 바꾸는 것보다 리랭킹을 얹는 쪽이 폭이 컸다.

측정 조건은 512토큰 청크에 25% 겹침, Ada-002 임베딩으로 통일됐다. 검색기 성능만 다르게 한 비교라는 뜻이다.

주의할 점은 리랭커가 만능이 아니라는 것이다. 마이크로소프트는 "L2는 L1이 이미 찾아낸 것만 재정렬할 수 있으며, L1이 좋은 문서를 놓쳤다면 L2가 그것을 고칠 수 없다"고 못 박는다.

후보를 넓게 건지는 일이 먼저다. 하이브리드 검색이 담당하는 것이 그 단계다.

한국어 검색에서 하이브리드가 특히 중요한 이유는 무엇인가?

한국어는 조사와 어미가 붙으면서 같은 단어의 표면형이 계속 달라져 키워드 검색이 놓치기 쉽다.

"데이터베이스를", "데이터베이스에서", "데이터베이스의"가 모두 다른 문자열이다. AWS 기술 블로그는 이 문제를 다루면서, 일상 한국어 단어 100개로 테스트한 결과 2-gram 방식의 pg_bigm이 PostgreSQL 기본 전문 검색인 tsvector보다 평균 304% 더 많은 문서를 찾아냈다고 밝혔다 (AWS, Aurora PostgreSQL에서 한국어 하이브리드 검색 구현하기).

키워드 쪽을 한국어에 맞게 고쳐도 남는 문제가 있다. 같은 글에서 지적하듯 "데이터베이스 성능을 높이려면?" 같은 자연어 질문에는 키워드 검색이 대응하지 못한다.

반대로 벡터 검색만 쓰면 pgvector나 HNSW 같은 기술 용어를 정확히 포함한 문서를 놓칠 수 있다. 한국어에서 두 방식을 함께 써야 하는 이유가 여기 있다.

다국어 벤치마크 수치도 같은 방향이다. 한국어를 포함한 MIRACL에서 키워드 단독 49.6이 하이브리드에서 58.8, 시맨틱 랭커까지 붙이면 72.0으로 올라간다.

영어 중심의 BEIR에서 같은 구간이 40.6에서 48.4, 50.0으로 움직인 것과 비교하면 개선 폭이 크다.

시맨틱 검색, 벡터 검색, RAG와는 무엇이 다른가?

혼동되는 이유는 네 용어가 같은 파이프라인의 다른 층을 가리키기 때문이다.

용어 무엇인가 하이브리드 검색과의 관계
벡터 검색 임베딩 사이의 거리로 후보를 찾는 검색 하이브리드의 한쪽 축
시맨틱 검색 의미 기준으로 찾는다는 목표 전체 벡터 검색이 그 대표적 구현
리랭킹 이미 찾은 후보를 다시 정렬하는 단계 하이브리드 다음에 오는 별개 단계
RAG 검색 결과를 근거로 LLM이 답을 생성하는 구조 하이브리드는 그 안의 검색 방식

특히 리랭킹은 하이브리드와 자주 묶이지만 하는 일이 다르다. 하이브리드는 후보를 건지는 단계이고, 리랭킹은 건져 온 것 중에서 순서를 다시 정하는 단계다.

RAG는 그라운딩 문서에서 다루는 구조와 이어진다. 근거 문서를 찾는 부분이 하이브리드 검색이고, 그 근거로 답을 만드는 부분이 생성이다.

어떤 검색 엔진이 하이브리드 검색을 지원하는가?

주요 검색 엔진과 벡터 데이터베이스 대부분이 기능으로 제공한다.

고르는 기준은 이미 쓰는 데이터 저장소다. 검색 엔진을 새로 도입하는 비용보다 기존 데이터베이스에 확장을 얹는 편이 싼 경우가 많다.

AI 검색에 인용되려면 콘텐츠를 어떻게 써야 하는가?

검색되는 단위가 문서가 아니라 조각이므로, 조각 하나에 정확한 표기와 의미 맥락이 함께 들어 있어야 한다.

하이브리드 검색은 콘텐츠 제작자에게 두 가지를 동시에 요구한다. 키워드 축은 독자가 실제로 입력하는 표기를 그대로 요구하고, 벡터 축은 그 표기가 놓인 문맥을 요구한다.

  • 정식 명칭과 약어, 한글 표기와 영문 표기를 본문에 함께 쓴다. 키워드 축은 표기가 어긋나면 못 찾는다.
  • 용어를 나열만 하지 말고 문장으로 설명한다. 벡터 축은 단어 목록보다 의미가 담긴 문장을 잘 잡는다.
  • 하나의 답을 한 조각 안에서 끝낸다. 근거가 다른 문단에 있으면 검색된 조각만으로는 답이 되지 않는다.

조각의 크기도 결과를 바꾼다. 앞의 마이크로소프트 실험에서 벡터 하나에 512토큰을 넣었을 때 Recall@50이 42.4였던 반면, 8,191토큰을 통째로 넣으면 34.9로 떨어졌다.

자르는 기준은 청킹 문서에 정리했다. 문서 전체를 AI 인용에 맞게 설계하는 작업은 GEO이고, 그렇게 얻은 인용을 세는 지표는 LLM 인용AI 가시성에 있다.

하나의 질문이 여러 하위 질의로 갈라져 각각 검색되는 구조는 쿼리 팬아웃에서 다룬다. 갈라진 질의 하나하나가 하이브리드 검색을 거친다.

자주 묻는 질문

하이브리드 검색과 RAG는 어떤 관계인가?

RAG의 검색 단계에서 쓰는 방식 중 하나가 하이브리드 검색이다. RAG는 검색과 생성을 묶은 구조이고, 하이브리드 검색은 그 앞쪽 검색만 담당한다.

RAG의 답변 품질은 검색이 근거를 제대로 건졌는지에 달려 있다. 마이크로소프트가 생성형 AI용 근거 검색에 하이브리드와 시맨틱 랭커 조합을 권하는 이유다 (Microsoft, Azure AI Search: Outperforming vector search with hybrid retrieval and reranking).

키워드와 벡터 중 한쪽에 가중치를 더 줄 수 있는가?

줄 수 있다. Weaviate는 alpha 값으로 조절하고, Azure AI Search는 벡터 쿼리에 가중치 승수를 곱해 RRF 점수 계산에 반영한다 (Microsoft Learn, 하이브리드 검색 점수 매기기(RRF)).

기본값은 가중치를 주지 않는 1.0이다. 제품 코드나 사내 용어 검색이 많으면 키워드 쪽을, 자연어 질문이 많으면 벡터 쪽을 올리는 식으로 서비스의 질의 분포에 맞춰 조정한다.

참고 자료

우리 브랜드는 AI 답변에 나오고 있을까?

서치폴라리스가 AI 검색 가시성을 진단하고 GEO 실행까지 대행합니다.

GEO 최적화 서비스 보기