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로 그 이름을 지정하면 돼요.