하이브리드 검색(Hybrid Search)이란?

문정현·5일 전
0

챗봇 개발기

목록 보기
7/7

현재 LLM을 활용하는 대부분의 챗봇이 환각 현상을 줄이기 위해 RAG를 사용하고 있다.

하지만 이러한 유사도 기반 검색조차 단어 임베딩 품질에 따라 답변의 정확도가 떨어져 다소 부족함이 있었다. 이를 해결하기 위해 유사도에 더해 키워드 기반 검색을 함께 활용하는 Hybrid Search라는 기술이 생겨나게 되었다.

Hybrid Search란

키워드 기반 검색인 Lexical Search와 유사도 기반 검색인 Semantic Search는 각각 장단점이 있고 사용이 유리한 상황이 서로 다르다.

  • Lexical Search : OpenSearch와 같은 전통적인 검색 엔진에서 주로 사용되는 방법으로, BM25와 같은 희소 벡터 알고리즘을 통해 키워드 기반 매칭을 진행한다. 특정 도메인 용어를 검색하기에 용이하지만 오타 및 동의어에 취약하다.
  • Semantic Search : 키워드가 일치하지 않더라도 의미론적으로 유사한 검색 결과를 반환한다. 검색 결과는 임베딩 품질에 의존도가 높다.


마스터카드 아님

Hybrid Search는 각 검색 방법의 장점만을 추려 사용된다. 특정 도메인 용어나 제품 용어가 포함된 쿼리로 검색했을 때도 Lexical Search의 검색 결과를 통해 보조한다. 의미론적으로 유사한 동의어 검색의 경우 및 오타가 일부 포함되더라도 Semantic Search가 벡터 기반으로 가장 가까운 내용을 반환하기 때문에 보다 정확도를 높일 수 있다.

Lexical Search와 Semantic Search의 결과를 결합하는 방법은 크게 총 2가지가 존재한다. CC(Convex Combination), RRF(Reciprocal Rank Fusion)의 2가지 방법으로, 아래와 같은 수시으로 요약이 되지만 참고만 하도록 한다..

  • CC : Lexical Search와 Semantic Search 각각 문서의 모음에 아래와 같이 가중치(α, β)를 부여하여 취합한다.

  • RRF : 쿼리를 실행할 때 순위가 매겨진 문서를 반환하며, 취합 시에 상단이 위치한(순위가 높은) 문서에 점수를 부여한다. 이때, k 값은 순위가 낮은 문서의 조정을 위한 상수이다.

쉽게 말하자면 전통적인 Lexical Search과 Semantic Search의 가중치를 달리 하여 검색결과를 도출하여 정확성과 맥락 이해 능력 모두가져갈 수 있다.

Reference

하이브리드 검색 구현하기 (feat. EnsembleRetriever, Knowledge Bases for Amazon Bedrock)

Skelter Labs Blog - 키워드 검색, 시맨틱 검색 그리고 하이브리드 검색

profile
주니어 개발자를 꿈꾸며

0개의 댓글