BM25와 하이브리드 검색·리랭킹 파이프라인 통합 전략
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
검색 알고리즘, 정보 검색
대상자
- 정보 검색 시스템 개발자, 검색 엔진 아키텍처 설계자
- 자연어 처리(NLP) 및 머신러닝 모델과의 통합이 필요한 개발자
- 고성능 검색 시스템 설계에 관심 있는 데이터 엔지니어
핵심 요약
- BM25는 하이브리드 검색 시스템에서 키워드 정확도를 보장하고, 리랭킹 파이프라인에서 뉴럴 모델과의 협업을 강화하는 핵심 알고리즘
- RRF(Reciprocal Rank Fusion)와 가중치 조합을 통해 BM25와 벡터 검색 결과를 통합
RRF_score = sum(1 / (k + rank_position))
Final_score = α⋅BM25_score + (1−α)⋅Vector_score
- BM25F는 필드 가중치를 적용해 제목, 본문 등 구조화된 데이터에 최적화
BM25F_score = Σ(wf ⋅ TFf / (k1 ⋅ (1−b + b ⋅ DLf/avgDLf) + TFf) ⋅ IDF)
섹션별 세부 요약
1. 하이브리드 검색 시스템의 BM25 역할
- 키워드 기반 검색(BM25)과 의미적 벡터 검색을 결합해 정확도와 회수율 균형 유지
- BM25는 키워드 정확도, 희귀 용어 우선순위 보장
- 벡터 검색은 문맥적 관계 추출
2. Elasticsearch/Weaviate에서의 BM25-벡터 검색 통합
- RRF 알고리즘
- 두 검색 방법의 순위를
1/(k + rank_position)
공식으로 합성 - 가중치 조합
- α(0~1)로 BM25와 벡터 유사도 점수 조합 (예:
Final_score = 0.8⋅BM25 + 0.2⋅Vector
)
3. 지연 감수형 애플리케이션에서의 BM25 활용
- 키워드 기반 필터링 후 벡터 검색 실행
SELECT * FROM documents WHERE bm25_match(query) ORDER BY vector_similarity DESC LIMIT 100
4. BM25F: 필드 가중치 기반 확장
- 제목, 본문 등 필드별 가중치(wf)를 적용한 BM25 확장
- Weaviate에서 구조화된 데이터에 활용 (예:
BM25F_score = wf1⋅TF1/(k1(1−b + b⋅DL1/avgDL1) + TF1) ⋅ IDF1 + wf2⋅TF2/...
)
5. 리랭킹 파이프라인에서의 BM25 통합
- BM25 점수를 리랭킹 모델의 입력 특성으로 주입
- 예:
{"document":"text", "bm25_score":0.85, "vector_score":0.92}
- TREC Deep Learning Track 실험 결과
- BM25 점수를 텍스트 토큰으로 추가 시 BERT 기반 리랭커의 MRR@10 성능 7.3% 향상
- 네이버 리랭커 점수 동일 시 BM25로 순위 결정
```python
sorted_results = sorted(tied_results, key=lambda x: (x['rerank_score'], x['bm25_score']))
```
6. BM25의 한계와 해결 방안
- 한계
- 의미적 관계(예: "car" vs. "automobile") 미비
- 저자원 언어의 장단말 쿼리 처리 불량
- 인덱스 간 점수 비교 불가 (연합 검색 복잡성)
- 해결 방안
- BM25-기반 예선 필터링: BM25 < 1.5
이하 문서 제외
- 다국어 지원: Cohere Rerank, Vectara Multilingual 모델 활용
- 스플레이드(SPLADE) 하이브리드 모델: BM25 유사도와 BERT 성능 결합 (94% 속도, 98% 정확도)
7. 파라미터 튜닝 및 동적 가중치 설정
- k1, b 조정:
- 기술 문서: k1=1.2, b=0.75
- 쿼리 분류 기반 α 조정:
- 네비게이션 쿼리("Facebook 로그인"): α=0.8
- 탐색 쿼리("AI 윤리"): α=0.3
결론
- BM25는 하이브리드 검색의 예선 필터링 및 리랭킹 모델의 특성 주입에 필수적
- 최적화 전략:
BM25 → 벡터 검색 → 리랭킹
3단계 파이프라인 구축BM25 점수를 텍스트 토큰으로 추가
또는SPLADE 모델 활용
- 고자원, 복잡한 의미적 쿼리엔 순수 뉴럴 리랭킹 적용