하이브리드 검색
하이브리드 검색 (Hybrid search)
벡터 검색이 의미를 잘 잡는데 정확한 키워드 매칭은 놓칠 수 있고, 키워드 검색은 정확하지만 의미를 모를 때가 있죠. 하이브리드 검색은 벡터 검색과 키워드 검색(BM25)을 결합해 두 접근의 장점을 모두 살립니다. 의미적 유사성(벡터 검색)과 정확한 키워드 관련성(BM25)을 모두 고려해 더 포괄적인 검색 결과를 제공해요.
출처: 공식문서
하이브리드 검색은 어떻게 동작하나요?
Weaviate에서 하이브리드 검색은 다음 단계를 수행해요.
- 두 검색을 병렬로 실행
- 의미적으로 유사한 콘텐츠를 찾는 벡터 검색
- 키워드 매칭을 찾는 BM25 검색
- 정규화된 스코어를 퓨전(fusion) 방법으로 결합
- 결합 스코어로 순위가 매겨진 결과 반환
퓨전 전략 (Fusion strategies)
Weaviate는 벡터와 키워드 검색 스코어를 결합하는 두 가지 전략(relativeScoreFusion과 rankedFusion)을 지원해요.
Alpha 파라미터
하이브리드 검색에는 벡터 검색과 키워드 검색의 비중을 조절하는 alpha 파라미터가 있어요. alpha는 0과 1 사이의 값으로, alpha=1이면 벡터 검색만, alpha=0이면 키워드(BM25) 검색만 사용하는 셈이에요.
검색 임계값 (Search thresholds)
예를 들어 최대 벡터 거리가 0.3이라고 해 봅시다. 이는 벡터 거리가 0.3보다 높은 객체는 키워드 검색 스코어가 높더라도 하이브리드 검색 결과에서 제외된다는 뜻이에요.
키워드(BM25) 검색 파라미터
Weaviate의 하이브리드 검색은 키워드(BM25) 검색에서 사용할 수 있는 모든 파라미터를 지원해요. 여기에는 토큰화 방식 설정, 정지어(stopword), BM25 파라미터(k1, b), 검색 연산자(and, or, and_cross), 검색할 특정 속성 및 특정 속성 부스트 등이 포함돼요. 자세한 내용은 키워드 검색 페이지를 참고하세요.
더 알아보기 (Learn more)
- Weaviate 하이브리드 검색 원문: Hybrid search
- 키워드 검색: Keyword search
- 검색 개요: Search