BM25
2026년 8월 28일
BM25
BM25는 키워드 검색에서 문서와 질의의 관련도를 계산하는 전통적인 랭킹 알고리즘이다.
임베딩(Embedding) 기반 검색이 의미 유사도를 잡는다면, BM25는 사용자가 정확히 말한 단어가 문서에 얼마나 잘 등장하는지 본다.
언제 강한가
- 도구 ID나 문서 ID 같은 정확한 문자열:
BLOCK_042,TOOL_SEARCH - 옵션명:
xVar,depVar,maxdepth - 도메인 키워드:
산점도,결측치,랜덤포레스트 - 짧고 명확한 질의
벡터 검색과 차이
| 방식 | 잘하는 것 | 약한 것 |
|---|---|---|
| BM25 | 정확 키워드 매칭 | 동의어, 의미 추론 |
| Vector Search | 의미 유사도 | 정확한 코드/옵션명 |
그래서 실무 RAG에서는 둘을 섞는 Hybrid RAG Search가 자주 쓰인다.
구현 관점
실무에서는 검색 대상의 ID, 이름, 설명, 카테고리, 옵션 키 같은 짧은 텍스트 신호를 하나의 문서 문자열로 합쳐 BM25 색인을 만드는 경우가 많다.
Python
한 줄 정리
BM25는 정확히 등장한 단어를 기반으로 문서를 랭킹하는 키워드 검색 알고리즘이다.
더 깊이
- 점수가 어떻게 만들어지나 → TF-IDF
- 한국어 조사·어미 문제 → 한국어 토크나이징과 BM25