BM25 핵심 기능 — k1과 b 파라미터

BM25 핵심 기능

BM25는 TF/IDF 기반이면서 TF 정규화가 내장된 유사도예요. 짧은 필드(이름 같은)에서 잘 동작하도록 설계됐고, Elasticsearch에서는 기본 유사도로 자리 잡았어요.

사용 가능한 유사도

  • BM25: TF/IDF 기반 기본 유사도
  • boolean: 단순 참/거짓 매칭 기반
  • 그 외 특수 목적 유사도들

BM25 파라미터

BM25 유사도에는 다음 옵션이 있어요.

  • k1: 비선형 TF 정규화(포화) 강도를 조절해요. 기본값은 1.2예요. 값이 클수록 빈도가 높아져도 점수가 천천히 포화돼요.
  • b: 문서 길이 정규화를 얼마나 적용할지를 정해요. 기본값은 0.75 근처예요. 0이면 문서 길이를 무시하고, 1이면 길이에 따라 완전히 정규화돼요.

커스텀 유사도 정의와 적용

PUT /index
{
  "settings": {
    "index": {
      "similarity": {
        "my_similarity": {
          "type": "BM25",
          "k1": 1.2,
          "b": 0.75
        }
      }
    }
  }
}
PUT /index/_mapping
{
  "properties": {
    "title": {
      "type": "text",
      "similarity": "my_similarity"
    }
  }
}

settings에서 커스텀 유사도를 정의하고, 매핑의 필드에서 similarity로 그 이름을 지정하면 돼요.

더 알아보기