Deep Learning/NLP
🔥 BM25란 무엇인가? (TF-IDF와의 비교 및 이후 발전)
jinmc
2025. 4. 28. 16:14
반응형
1. 왜 TF-IDF만으로는 부족할까?
검색 시스템이나 정보 검색(IR) 분야에서는 문서 내 특정 단어가 얼마나 중요한지를 판단해야 합니다.
가장 널리 알려진 기법이 바로 TF-IDF입니다.
하지만 TF-IDF만으로는 한계가 있습니다:
- 단어가 너무 자주 등장하면 점수가 비정상적으로 커지는 문제
- 문서 길이를 고려하지 않아서, 긴 문서가 무조건 유리해지는 문제
이러한 문제를 해결하기 위해 등장한 것이 바로 BM25입니다.
2. TF-IDF란? (개념과 수식)
✅ Term Frequency (TF)
한 문서에서 특정 단어가 얼마나 자주 등장하는지를 나타냅니다.
TF(t, d) = (문서 d에서 단어 t가 등장한 횟수) ÷ (문서 d의 전체 단어 수)
✅ Inverse Document Frequency (IDF)
전체 문서 중 해당 단어를 포함하는 문서 수에 따라 단어의 희귀성을 반영합니다.
IDF(t) = log( (전체 문서 수) ÷ (1 + 단어 t가 등장한 문서 수) )
※ 여기서 1을 더하는 이유는 0으로 나누는 것을 방지하기 위함입니다.
✅ TF-IDF
최종적으로 TF와 IDF를 곱해, 문서 내 중요 단어를 추출합니다.
TF-IDF(t, d) = TF(t, d) × IDF(t)
요약:
- 문서 내에서 많이 등장하는 단어이면서,
- 전체 문서에서는 드물게 등장하는 단어에 높은 점수를 부여합니다.
❗ TF-IDF의 한계
- 단어가 많이 등장할수록 점수가 무한히 커질 수 있음
- 문서 길이에 따른 불공평한 점수 부여 가능
3. BM25란? (개념과 수식)
BM25는 "Best Matching 25"의 약자입니다.
(25는 여러 버전을 거쳐 가장 성능이 좋았던 버전 번호라고 알려져 있습니다.)
BM25는 TF-IDF의 문제를 보완해서:
- 단어 빈도가 일정 이상 많아져도 점수가 포화되도록 조정하고
- 문서 길이에 따라 점수를 조정합니다.
✅ BM25 점수 공식
Score(q, d) = Σ (각 단어 t에 대해)
IDF(t) × [ f(t, d) × (k1 + 1) ] ÷ [ f(t, d) + k1 × (1 - b + b × (문서 길이 ÷ 평균 문서 길이)) ]
여기서,
- f(t, d) = 문서 d에서 단어 t가 등장한 횟수
- 문서 길이 = 문서 d의 단어 수
- 평균 문서 길이 = 전체 문서들의 평균 길이
- k1 = 단어 빈도에 대한 민감도를 조절하는 파라미터 (보통 1.2 ~ 2.0 사용)
- b = 문서 길이에 대한 보정 정도를 조절하는 파라미터 (보통 0.75 사용)
4. TF-IDF와 BM25 비교
구분TF-IDFBM25
단어 빈도 처리 | 등장할수록 선형 증가 | 등장할수록 점진적 증가 (포화) |
문서 길이 고려 | 고려하지 않음 | 문서 길이에 따라 점수 보정 |
의미적 흐름 반영 | 약함 | 다소 개선됨 |
계산 복잡성 | 간단 | 약간 복잡함 (파라미터 조정 필요) |
5. 간단한 예시
문서내용
문서 A | "고양이 고양이 고양이 귀엽다" |
문서 B | "고양이 사랑스럽다" |
TF-IDF 기준:
- 문서 A가 "고양이"를 더 많이 포함하므로 점수가 높게 나옴.
BM25 기준:
- "고양이"가 일정 횟수 이상 등장하면 점수 증가가 둔화되기 때문에,
- 문서 A와 문서 B가 비슷한 수준으로 평가될 수 있음.
6. BM25의 한계
아무리 좋은 알고리즘이라 해도 한계는 존재합니다. BM25도 예외는 아닙니다.
BM25의 주요 한계점:
- 단어의 의미적 유사성을 고려하지 못합니다.
예를 들어, "자동차"와 "차량"은 다른 단어로 인식됩니다. - 질의어의 순서나 구조적 관계를 반영하지 못합니다.
- 자연어 질의에서 복잡한 의도나 뉘앙스를 완전히 파악하기 어렵습니다.
즉, BM25는 여전히 "단어 매칭" 중심의 방식입니다.
7. BM25 이후의 발전
최근 정보 검색 시스템은 BM25를 넘어서기 위해 다양한 방향으로 발전하고 있습니다.
BM25 이후 발전 방향:
- 신경망 기반 랭킹 모델:
BERT, T5 같은 대형 언어모델을 이용해 문장 간 의미를 더 깊게 파악합니다. - 하이브리드 검색 시스템:
BM25 기반 키워드 검색과 임베딩 기반 의미 검색을 결합하여 서로의 단점을 보완합니다. - 의미론적 검색(semantic search):
자연어 질의에 대해 문맥적 의미를 고려해 검색하는 방식이 주류로 떠오르고 있습니다.
8. 실무 적용 팁
- Elasticsearch, Vespa 같은 검색엔진에서는 기본 검색 알고리즘으로 BM25를 사용합니다.
- 파라미터 튜닝:
- k1 값을 높이면 단어 빈도 영향이 커집니다.
- b 값을 높이면 문서 길이 보정이 강해집니다.
- 작은 데이터셋에서는 기본값 (k1 = 1.5, b = 0.75)으로 시작해도 무방합니다.
9. 참고 자료
✅ 요약 한 줄
TF-IDF는 기본, BM25는 실전형 기준선, 그리고 미래는 신경망 기반 의미 검색이다!
반응형