원문 캡처 · xapian.org
원문 캡처 · xapian.org

Xapian의 BM25 기본값은 k1=1, k2=0, k3=1, b=0.5다. 검색어와 문서의 길이에 따라 점수를 조정하는 방식이다.

Xapian은 BM25 가중치 계산식을 설명하며, 검색 시스템에서 이 값을 조정하면 검색 효과를 높일 수 있다고 안내한다. 문서와 질의의 종류에 따라 최적의 값이 달라지므로, 검색 시스템을 튜닝하는 사람이라면 기본값을 출발점으로 삼을 수 있다.

BM25는 검색어가 문서에 얼마나 자주 나타나는지와 문서 길이 등을 계산해 검색 결과의 점수를 매기는 방식이다. 여러 점수 조정 손잡이를 둔 검색 설정에 빗대면 이해하기 쉽다. 아래 식에서 b는 0에서 1 사이를 움직이며 BM15를 BM11로 바꾸는 비율이고, K는 문서 길이와 관련된 값이다.

text
((k3 + 1)q)/((k3 + q)) * ((k1 + 1)f)/((K + f)) * log((r + 0.5)(N − n − R + r + 0.5))/((n − r + 0.5)(R − r + 0.5))...(3)

K = k1(bL + (1 − b))

BM25에는 원래 f와 K에 거듭제곱을 적용하는 상수도 포함됐다. 그러나 스티븐(Stephen)은 지수가 1이 아닌 경우 도움이 되지 않았다고 했고, 다른 시험에서도 같은 결과가 확인돼 Xapian 구현은 이 상수를 사용하지 않는다.

설명에 따르면 식 (2)와 식 (3)이 BM25를 구성한다. 식에 미지의 상수가 많아 임의적으로 보일 수 있지만, k2=0이고 b=1이면 전통적인 공식이 나온다. Xapian은 작은 문서의 점수가 지나치게 커지는 것을 막기 위해 L에 기본값 0.5의 하한도 적용한다. 또 점수 합산식의 추가 항이 양수가 되도록 식 (2)에 질의마다 일정한 k2nq를 더해 다음 항을 만든다.

text
(2k2nq)/((1 + L))...(4)

Xapian이 제시한 기본값은 합리적인 출발점이지만, 최적값은 검색 대상 문서와 질의 유형에 따라 달라진다. 원문은 매개변수별 최적값이나 튜닝 절차, 성능 개선 폭은 밝히지 않는다.