tech · 2026-03-22

BM25

#elasticsearch#bm25
  1. 개요

BM25(Best Matching 25)는 정보 검색에서 널리 사용되는 빈도 기반 랭킹 함수임. 문서와 질의(query) 간의 유사도를 계산하는 방식으로 작동하며, 문서가 주어진 질의와 얼마나 관련이 있는지를 정량화하여 검색된 문서를 관련성에 따라 순위별로 정렬하는 데 사용됨. BM25는 특히 전통적인 TF-IDF(단어 빈도-역문서 빈도) 모델을 개선하여 다양한 길이의 문서에 대해 균형 잡힌 검색 결과를 제공하는 데 유리함.

  1. 작동 방식

BM25는 문서와 질의 간의 어휘적 유사성을 계산하는 알고리즘임. 주요 요소는 다음과 같음:

•	TF (Term Frequency): 문서에서 특정 단어가 등장하는 횟수를 나타냄.
•	IDF (Inverse Document Frequency): 해당 단어가 다른 문서에서 얼마나 자주 등장하는지를 반영하는 값으로, 흔히 등장하는 단어보다 드물게 등장하는 단어에 더 높은 가중치를 부여함.
•	문서 길이 보정: 문서의 길이에 따라 검색 결과에 영향을 미치지 않도록 조정하는 기능이 있으며, 이를 통해 긴 문서가 과도하게 높은 점수를 받는 것을 방지함.
  1. 장점

    • 효율성: BM25는 대규모 데이터셋에서도 효율적이며, 계산이 상대적으로 빠름.
    • 문서 길이 보정: 긴 문서가 너무 높은 점수를 받는 문제를 해결하기 위해 문서 길이를 보정함.
    • 명확한 성능: 질의가 명확하고 구체적일 때, BM25는 뛰어난 성능을 발휘함. 주로 키워드 검색에서 효율적임.

  2. 단점

    • 의미적 유사성 한계: BM25는 단어의 빈도와 어휘적 유사성에 의존하기 때문에, 문맥이나 의미적 유사성을 잘 반영하지 못함. 예를 들어, "자동차"와 "차"처럼 의미적으로 비슷한 단어를 동일하게 취급하지 않음.
    • 파라미터 튜닝 필요: 성능 최적화를 위해 k_1 와 b 파라미터를 적절히 설정해야 하며, 도메인에 따라 다르게 튜닝해야 할 수 있음.

  3. 다른 검색 알고리즘과의 비교

BM25는 전통적인 Sparse Retrieval(희소 검색) 방식 중 하나로, Dense Retrieval(밀집 검색) 알고리즘과 성능 면에서 자주 비교됨. BM25는 학습된 모델이 아닌 반면, Dense Retriever는 학습된 임베딩을 사용해 의미적 유사성을 기반으로 문서를 검색함. 파인튜닝되지 않은 Dense Retriever는 새로운 도메인에서 BM25보다 성능이 떨어지는 경우가 많음.

  1. 실제 사용 예시

BM25는 주로 검색 엔진이나 데이터베이스 검색 시스템에서 사용됨. 전통적인 텍스트 기반 검색 시스템의 핵심적인 알고리즘으로 자리 잡고 있으며, 대표적으로 Elasticsearch나 Lucene 같은 검색 엔진이 BM25를 기본 랭킹 함수로 채택하고 있음.

  1. 결론

BM25는 다양한 정보 검색 시스템에서 사용되는 강력한 알고리즘임. 특히, 단순하고 명확한 쿼리 기반의 검색에 적합함. 파인튜닝이 필요 없는 점과 효율적인 계산 성능 덕분에 대규모 데이터셋에서도 안정적인 결과를 제공함. 그러나 의미적 유사성을 다룰 수 있는 Dense Retrieval 모델과 비교할 때, 의미적인 연결성을 찾는 작업에서는 상대적으로 한계를 가짐.

BM25 변형 모델들

BM25 알고리즘은 기본적인 형태 외에도 다양한 변형 모델들이 개발. 이 변형 모델들은 문서 길이, 필드 가중치 등과 같은 특성을 더욱 세밀하게 조정하여 특정 정보 검색 문제에 맞게 성능을 최적화하려는 목적을 가짐.

  1. BM25+

BM25+는 전통적인 BM25 알고리즘의 변형 중 하나로, 문서 길이 보정을 더욱 강화한 모델임. BM25의 경우, 문서가 길어질수록 단어 빈도가 높아지는 경향이 있어, 긴 문서에 대한 불균형적인 점수 부여가 발생할 수 있음. BM25+는 이러한 현상을 완화하기 위해, 짧은 문서에 불리하게 작용하는 길이 보정 효과를 줄이기 위한 추가 항을 도입함.

작동 방식 :

BM25+는 기존 BM25 수식에서 문서 길이에 의해 점수가 과도하게 낮아지는 현상을 보완하기 위한 항을 추가함. 이를 통해 짧은 문서가 상대적으로 과소평가되는 문제를 해결하고자 함. 특히, 문서의 길이와 무관하게 최소한의 점수를 부여하는 방식으로 동작함.

장점:

  • 긴 문서의 불이익 완화: 긴 문서에서 점수가 과도하게 높아지지 않도록 하고, 짧은 문서에 대해서는 과도한 페널티를 부여하지 않음.
  • 보다 균형 잡힌 검색 성능: 다양한 길이의 문서에 대해 고른 성능을 제공함.

단점:

  • 추가적인 파라미터 튜닝이 필요함. 정확한 성능을 위해서는 데이터셋에 맞게 세부 조정이 요구됨.

  1. BM25F (BM25 with Multiple Fields)

BM25F는 다중 필드를 가진 문서를 처리할 수 있도록 BM25를 확장한 모델임. 예를 들어, 웹 페이지의 경우 본문, 제목, 메타 데이터, 링크 앵커 텍스트 등 다양한 필드를 가질 수 있으며, 이러한 필드마다 다른 가중치를 적용할 필요가 있음. BM25F는 이러한 필드별 가중치를 고려하여 검색 성능을 개선함.

작동 방식:

BM25F는 문서의 각 필드에 대해 별도의 BM25 점수를 계산하고, 각 필드에 부여된 가중치에 따라 최종 점수를 종합함. 예를 들어, 제목이 더 중요할 경우 해당 필드에 더 높은 가중치를 부여하여, 검색 시 제목에 포함된 질의어가 더 중요한 요소로 평가되게 함.

장점:

  • 필드별 중요도 조정: 각 필드에 대해 별도의 가중치를 부여하여, 특정 필드가 더 중요한 문서 검색 작업에 유리함.
  • 웹 페이지와 같은 다중 필드 문서 처리: 제목, 본문, 메타데이터 등의 여러 필드를 다루는 검색 작업에 적합함.

단점:

  • 복잡성 증가: 여러 필드에 대한 별도의 가중치를 설정해야 하기 때문에, 모델 설계 및 파라미터 튜닝 과정이 복잡해질 수 있음.

  1. BM25L (BM25 with Length Regularization)

BM25L은 문서 길이 보정을 더욱 강화하여 긴 문서에 대한 보정을 개선한 변형 모델임. BM25의 기본적인 길이 보정 방식은 어느 정도 효과적이지만, BM25L은 긴 문서에서의 성능을 더욱 정교하게 조정함으로써 긴 문서가 과도하게 점수가 낮아지는 문제를 해결하고자 함.

작동 방식:

BM25L은 문서 길이의 영향력을 줄이는 방식으로 설계됨. 긴 문서일수록 길이 보정이 약하게 적용되며, 이를 통해 문서 길이에 따른 점수 편차를 줄임. 특히, 긴 문서에서 TF의 기여도를 줄이고, 길이에 의한 과도한 페널티를 방지함.

장점:

  • 긴 문서에 대한 과도한 패널티 방지: 긴 문서에서 TF가 지나치게 높아지거나, 길이 자체로 인해 점수가 불리하게 책정되는 문제를 해결함.
  • 균형 잡힌 점수 부여: 문서 길이에 따른 편차를 줄이고, 모든 문서 길이에 대해 일관된 검색 성능을 제공함.

단점:

  • 파라미터 조정의 필요성: 길이 보정 효과를 극대화하기 위해서 추가적인 파라미터 조정이 필요함.

  1. BM25TF

BM25TF는 TF(Term Frequency)의 비율적 증가를 제어하는 방식으로 BM25를 확장한 모델임. 기본 BM25는 질의어의 출현 빈도에 비례하여 문서의 관련성을 계산하지만, 특정 질의어가 과도하게 출현할 경우 점수가 비정상적으로 높아질 수 있음. BM25TF는 이러한 문제를 완화하기 위해 TF의 증가 속도를 제한함.

작동 방식:

BM25TF는 문서 내에서 특정 질의어가 지나치게 많이 등장하는 경우, 그 빈도에 대한 영향을 감소시키도록 설계됨. 이를 통해 하나의 질의어가 지나치게 중요한 역할을 하지 않도록 하고, 검색 결과의 다양성을 유지함.

장점:

  • TF의 과도한 영향 완화: 특정 단어의 빈도에 의해 점수가 지나치게 높아지는 문제를 해결함.
  • 검색 결과의 다양성 증가: 질의어의 중요도를 적절하게 제한하여, 다양한 문서가 검색될 수 있도록 보장함.

단점:

  • 적용 복잡성: 단순한 BM25보다 구현이 복잡하며, 특정 질의에 대해 최적의 성능을 내기 위해 파라미터 조정이 필요함.

  1. Dense Retriever와의 성능 비교

BM25와 Dense Retriever 간의 성능 비교는 BEIR 벤치마크에서 자주 수행되며, NDCG@10 점수를 기준으로 평가함. 파인튜닝되지 않은 Dense Retriever는 BM25보다 대부분의 도메인에서 성능이 낮으며, 특히 다양한 도메인에 걸쳐 안정적인 성능을 발휘하는 BM25가 우세함.

BM25는 대부분의 데이터셋에서 Dense Retriever보다 성능이 우수하며, 특히 Trec-Covid와 같은 특정 도메인에서는 큰 차이를 보임. 반면, FiQA-2018과 같은 경우 Dense Retriever가 약간 더 나은 성능을 보여줌. Dense Retriever는 파인튜닝을 통해 성능이 크게 향상될 수 있으나, 파인튜닝이 없는 상태에서는 BM25에 비해 성능이 떨어지는 경향이 있음 .

결론

BM25는 다양한 도메인에서 균형 잡힌 성능을 제공하는 전통적인 정보 검색 알고리즘임. 여러 변형 모델들이 BM25의 단점을 보완하기 위해 개발되었으며, 특히 문서 길이나 필드 가중치와 같은 특성에 대해 보다 정밀한 조정이 가능함. Dense Retriever는 의미적 유사성을 고려하는 장점을 가지지만, 파인튜닝되지 않은 상태에서는 BM25만큼의 성능을 내지 못하는 경우가 많음.

ElasticSearch의 BM25는 Vanilla BM25로 보임 (ref: https://github.com/apache/lucene/blob/main/lucene/core/src/java/org/apache/lucene/search/similarities/BM25Similarity.java )