본문 바로가기
인공지능/랭체인

(궁금) BM25 (Best Matching 25) 이란 무엇일까?

by 으노으뇨 2025. 4. 1.
728x90
반응형
SMALL

1. BM25 개요

BM25(Best Matching 25)는 정보 검색(Information Retrieval, IR) 및 자연어 처리(NLP, Natural Language Processing) 분야에서 문서와 쿼리(Query) 간의 관련성을 평가하는 대표적인 랭킹 함수입니다.

📌 핵심 개념
  • BM25는 TF-IDF의 개선된 형태로, 문서 길이 보정(Length Normalization)과 비선형적인 빈도 반영을 수행
  • 검색 엔진, 챗봇, QA 시스템 등에서 문서의 랭킹을 결정하는 핵심 알고리즘

2. BM25 공식 및 수학적 해석

BM25는 쿼리 q와 문서 d가 주어졌을 때, 해당 문서가 쿼리에 얼마나 관련이 있는지를 측정하는 점수를 반환합니다.

2.1. 수식 요소 설명

  • q: 사용자 입력 쿼리 (Query)
  • d: 검색 대상 문서 (Document)
  • qi : 쿼리 내 특정 단어 ii (Term in Query)
  • TF(qi,d) : 문서 d내에서 단어 qi가 등장하는 빈도 (Term Frequency)
  • IDF(qi) : 단어 qi의 역문서 빈도 (Inverse Document Frequency)
  • ∣d∣ : 문서 d 의 총 단어 수
  • avglen : 전체 문서의 평균 길이
  • k1 : TF 스무딩(Smoothing)을 위한 가중치 (보통 1.2~2.0 사이의 값)
  • b: 문서 길이 보정을 위한 파라미터 (보통 0.75)

3. BM25의 유도 과정과 가설 증명

BM25는 TF-IDF의 단점을 보완하고, 현실적인 검색 시스템에서 더 효과적인 점수 계산이 가능하도록 설계된 모델입니다.
이를 증명하는 주요 가설을 분석하면 다음과 같습니다.


3.1. 주요 가설 ①: 문서 내 단어 빈도(TF)가 높을수록 관련성이 높다

TF 반영 방식

  • 기본적인 TF는 단어가 많이 등장할수록 중요도가 증가하지만, 과도하게 높은 TF가 있는 경우 과도한 가중치를 방지하기 위해 비선형적인 변환을 수행함.
  • TF를 직접 사용하면 특정 단어가 문서에서 매우 많이 등장할 경우 랭킹이 왜곡될 수 있기 때문.
  • 이를 해결하기 위해 BM25는 TF를 비선형 함수로 변환하여 문서 내 특정 단어가 과도하게 많은 경우 중요도를 조정함.

  • k1이 클수록 TF의 증가에 따른 가중치 변화가 완만해짐.
  • k1이 작으면 TF의 변화가 민감해져 적은 빈도의 단어에도 영향을 크게 줌.

📌 가설 증명:

TF가 증가할수록 중요도는 증가하지만, 그 증가 속도를 제한해야 과도한 편향을 막을 수 있다.


3.2. 주요 가설 ②: 문서가 너무 길면 검색 정확도가 낮아질 수 있다

문서의 길이가 길면 단어 등장 횟수(TF)가 자연스럽게 커지는데, 이렇게 되면 긴 문서일수록 높은 점수를 받는 문제가 발생할 수 있음.
이를 보정하기 위해 문서 길이 보정 (Length Normalization) 기법을 적용.

  • 문서가 평균보다 길면 보정값이 커져 TF의 영향을 감소시키고,
  • 문서가 평균보다 짧으면 보정값이 작아져 TF의 영향을 증가시킴.

📌 핵심: 길이가 긴 문서라고 해서 무조건 중요한 문서는 아니다.

📌 가설 증명:

문서의 길이가 길수록 TF도 증가하므로, 이를 보정하지 않으면 검색 결과가 왜곡될 수 있다.


3.3. 주요 가설 ③: 특정 단어가 희귀할수록 검색 결과에서 더 중요한 역할을 한다

IDF 반영 방식

  • 특정 단어가 전체 문서에서 많이 등장하면 중요도가 낮아지고, 희귀한 단어일수록 중요도가 높아짐.
  • IDF는 이를 반영하여 전체 문서에서 특정 단어의 희귀도를 측정하는 지표로 사용됨.

  • DF(qi) : 특정 단어 qi 가 등장한 문서의 개수 (Document Frequency)
  • N: 전체 문서 수
  • 상수 0.5를 추가하여 IDF가 극단적으로 커지는 것을 방지하고, 문서가 적을 때도 안정적인 값을 유지하도록 함.

📌 가설 증명:

드문 단어일수록 의미 있는 검색어일 가능성이 높으므로, IDF를 적용해 가중치를 높인다.


4. BM25의 현실적 적용 및 기대값

4.1. BM25가 활용되는 분야

  1. 검색 엔진 (Search Engine)
    • Google, Bing 등에서 문서와 쿼리의 유사도를 계산하는 핵심 알고리즘 중 하나.
    • TF-IDF보다 더 정밀한 검색 결과 제공.
  2. 자연어 처리 (NLP, Natural Language Processing)
    • 챗봇, 질의응답 시스템(QA, Question Answering)에서 적절한 문서를 찾는 데 활용.
    • Wikipedia, Stack Overflow 같은 데이터베이스에서 답변을 찾을 때 사용.
  3. 추천 시스템 (Recommendation System)
    • 사용자 리뷰 데이터에서 키워드를 추출하고, 문서 간의 유사도를 계산하는 데 활용.
  4. 법률 및 의료 문서 검색 (Legal & Medical Document Retrieval)
    • 판례 검색, 의학 논문 검색 등에서 가장 관련성이 높은 문서를 찾는 데 사용됨.

4.2. BM25의 발전 가능성

  • 기존 BM25의 한계를 개선한 BM25+, BM25F 등의 변형 모델이 등장하여 더 정교한 검색을 가능하게 함.
  • 딥러닝 기반 검색 모델과 결합하여 하이브리드 검색 시스템을 구축하는 방향으로 발전 중.

5. 결론: BM25의 의의 및 정리

  1. BM25는 TF-IDF를 개선한 검색 랭킹 알고리즘으로, 검색 엔진 및 NLP에서 중요한 역할을 함.
  2. 단순한 TF-IDF보다 더 정밀한 검색 결과를 제공할 수 있도록 설계됨.
  3. 문서 길이 보정 및 단어 빈도 보정을 통해 현실적인 검색 시스템에서 효과적으로 활용됨.
  4. 검색 엔진, 챗봇, QA 시스템, 추천 시스템 등 다양한 응용 분야에서 사용됨.
  5. 딥러닝 모델과 결합하여 더 발전할 가능성이 크며, 앞으로도 검색 기술의 핵심 알고리즘 중 하나로 남을 것.

BM25는 단순한 TF-IDF보다 더 정확하고 현실적인 검색 결과를 제공하며, 향후 NLP 및 검색 엔진 분야에서 계속해서 핵심적인 역할을 할 것이다.

728x90
반응형
LIST

댓글