왜 Sigmoid인가? Bayesian BM25 뒤에 숨겨진 수학적 필연성

왜 Sigmoid인가? Bayesian BM25 뒤에 숨겨진 수학적 필연성
1. 아무도 하지 않은 질문
Bayesian BM25를 공개했을 때, 커뮤니티의 반응은 즉각적이고 실용적이었습니다: "nDCG@10이 얼마나 올랐나요?" MTEB에 베이스라인 검색 모델로 채택되고, txtai에 하이브리드 검색 정규화 방식으로 통합된 후, 결과는 명확했습니다 — 모든 데이터셋에서 설정 변경 없이 nDCG@10이 +0.8~3.0 포인트 일관되게 상승했습니다.
하지만 거의 아무도 하지 않은 질문이 있습니다:
왜 sigmoid인가?
대부분은 우리의 작업을 이렇게 읽습니다: "BM25 점수를 [0, 1]로 눌러넣기 위해 sigmoid를 선택했구나." 설계 결정. 모델링 선택. 여러 선택지 중 하나 — tanh일 수도 있고, min-max 정규화일 수도 있고, Platt scaling일 수도 있다고 말입니다.
이 독해는 틀렸습니다. Sigmoid는 선택이 아닙니다. 유일하게 유효한 수학적 답입니다. 그리고 그 이유를 이해하면, 점수 변환 기법을 훨씬 넘어서는 깊은 무언가가 드러납니다.
2. 50년의 공백
1977년, Stephen Robertson은 확률적 순위 원리(Probability Ranking Principle, PRP)를 제시했습니다:
"검색 시스템이 각 요청에 대해 관련성 확률의 내림차순으로 문서를 정렬하여 응답한다면, 해당 시스템의 전체적인 효과는 얻을 수 있는 최선이 될 것이다."
이후 만들어진 프레임워크의 이름은 의도적인 것이었습니다: 확률적 관련성 프레임워크(Probabilistic Relevance Framework). 그리고 이 프레임워크가 산출한 점수 함수 — BM25 — 는 정보검색 역사상 가장 성공적인 순위 함수가 되었습니다.
그런데 BM25는 확률을 출력하지 않습니다.
출력은 상한이 없는 양의 실수입니다: . 12.34라는 점수는 해당 문서가 관련될 가능성이 얼마나 되는지에 대해 아무것도 알려주지 않습니다. 90%일까요? 50%일까요? 이 숫자에는 절대적인 의미가 없습니다 — 질의 길이, 코퍼스 통계, 문서 길이에 따라 달라지기 때문입니다.
50년 동안 모든 교과서가 이 공백을 인정했습니다. Manning et al. (2008)은 이렇게 적었습니다: "BM25는 확률적 모델에서 유도되었지만, 점수 자체는 확률이 아니다." 그리고 50년 동안 아무도 이 공백을 메우지 않았습니다.
확률적 순위 원리는 확률을 약속했습니다. 하지만 한 번도 이행되지 않았습니다.
3. 아무 함수나 쓰면 안 되는 이유
자연스러운 반응은 이렇습니다: 를 로 매핑하는 함수를 아무거나 쓰면 안 되나요? 그런 함수는 무한히 많습니다 — , min-max 정규화, , Platt scaling 등등. 왜 하나가 특별해야 할까요?
아무 매핑을 찾는 것이 아니기 때문입니다. 우리가 찾는 것은 — 관측된 점수가 주어졌을 때 관련성의 사후 확률입니다. 이것은 특정한 의미를 가진 특정한 양이며, 베이즈 정리가 그 계산 방법을 정확히 지시합니다:
따라서 질문은 이것이 됩니다: 우도(likelihood) 는 무엇인가?
여기서 대부분의 접근법이 잘못됩니다. 예를 들어 Platt scaling은 레이블된 데이터에서 교차 엔트로피를 최소화하여 를 적합시키지만, 와 를 구조적 의미 없는 자유 파라미터로 취급합니다. 우리의 벤치마크에서 Platt scaling은 NFCorpus에서 nDCG@10 = 0.0229, SciFact에서 0.0000을 기록했습니다 — 완전한 붕괴입니다. 두 개의 파라미터와 사전 지식의 부재로 인해, 점수 분포가 극도로 치우쳐 있을 때(IR에서는 항상 그렇습니다) 결정 경계가 엉뚱한 위치에 놓이게 됩니다.
원리에 기반한 답이 필요합니다. 그 답은 관련성이 어떤 종류의 확률 변수인지를 묻는 데서 나옵니다.
4. 필연성 논증
관련성은 이진(binary)입니다. 문서는 관련이 있거나(), 없거나()입니다. 이것은 베르누이 확률 변수입니다. 그리고 베르누이 분포는 지수족(exponential family)에 속합니다:
여기서 는 자연(정준) 모수 — 로그 오즈(log-odds)입니다.
통계학 이론의 핵심 사실이 여기에 있습니다: 모든 지수족 분포에는 자연 모수를 평균으로 매핑하는 정준 연결 함수(canonical link function)가 있습니다. 베르누이 분포에서 평균은 이고, 정준 연결 함수는 로짓 함수 입니다. 그 역함수 — 자연 모수를 다시 확률로 매핑하는 함수 — 는 다음과 같습니다:
Sigmoid입니다. 우리가 선택했기 때문이 아니라, 베르누이 분포가 요구하기 때문입니다.
더 정확히 말하면, sigmoid는 다음 다섯 가지 조건을 동시에 만족하는 유일한 함수입니다:
- 치역(Range): — 어떤 실수 값 점수든 유효한 확률이 됩니다
- 정준 형식(Canonical form): 베르누이 정준 연결 함수의 역 — 지수족 이론과 일관됩니다
- 자기 참조 도함수(Self-referential derivative): — 기울기가 출력 자체에 의해 결정됩니다
- 증거 대칭성(Evidence symmetry): — 관련성에 대한 증거와 비관련성에 대한 증거가 대칭적으로 처리됩니다
- 최대 엔트로피(Maximum entropy): 평균 제약 조건을 만족하는 모든 분포 중에서, 베르누이 분포(따라서 sigmoid 연결)가 최대 엔트로피를 갖습니다 — 증거가 말해주는 것 이상의 어떤 것도 가정하지 않습니다
이 조건 중 하나라도 제거하면 다른 함수가 가능해집니다. 다섯 개를 모두 유지하면, sigmoid가 유일한 해입니다.
이것이 Bayesian BM25가 를 사용하는 이유입니다. 파라미터 는 기울기를(점수 변화에 대한 확률의 민감도), 는 중심점을(어떤 점수가 50% 관련성에 해당하는지) 제어합니다. 하지만 함수의 형태 — sigmoid 자체 — 는 파라미터가 아닙니다. 정리(theorem)입니다.
5. 필연성이 설명하는 것
이것은 단순한 이론적 우아함이 아닙니다. 그렇지 않았다면 신비로웠을 경험적 사실을 설명해줍니다.
Bayesian BM25는 BM25 점수를 위해 설계되었습니다. 그런데 txtai에 통합했을 때, 세 가지 완전히 다른 점수 체계에서 코드 한 줄 변경 없이 테스트했습니다:
| 점수 방식 | 기원 | 점수 특성 |
|---|---|---|
| BM25 | 포화 함수와 길이 정규화를 적용한 단어 빈도 (1994) | IDF로 상한이 있음, 중간 길이 꼬리 |
| TF-IDF | 단어 빈도 × 역문서 빈도 (1972) | 상한 없음, 포화 없음, 긴 꼬리 |
| SPLADE | BERT로 학습된 희소 단어 중요도 가중치 (2021) | 학습된 분포, 모델 의존적 |
이 세 가지 방법은 서로 다른 스케일, 서로 다른 분포, 서로 다른 꼬리 행태를 가진 점수를 생성합니다. 점수 생성 메커니즘이 근본적으로 다릅니다 — 단어 주머니(bag-of-words) 곱셈, 포화된 빈도 비율, 신경망 순전파입니다.
그런데 동일한 sigmoid 보정이 세 가지 모두에서 작동합니다. 파라미터 조정 없이. 재학습 없이. 기본 파라미터의 동일한 로.
왜일까요? Sigmoid는 점수가 어떻게 생성되었는지 신경 쓰지 않기 때문입니다. 점수가 관련성과 단조(monotonic) 관계를 가지기만 하면 됩니다 — 높은 점수가 더 높은 관련성 가능성을 의미하기만 하면. 필연성 논증이 이것이 반드시 작동해야 함을 알려줍니다: 관련성이 이진(관련 또는 비관련)인 한, 올바른 사후 확률 매핑은 점수 체계에 관계없이 sigmoid입니다.
이것은 우연의 일치가 아닙니다. 수학의 귀결입니다.
6. 원의 완성
Sigmoid 변환으로, 확률적 순위 원리는 마침내 Robertson이 원래 의도한 대로 이행됩니다:
이 화살표는 세 가지 핵심 성질을 가집니다:
- 단조성 보존: 이면 입니다. 순위가 변하지 않습니다 — Bayesian BM25는 문서 순서에 대해 BM25와 절대 불일치하지 않습니다.
- 보정(Calibration): 출력이 실제 관련성 확률에 근사합니다. 벤치마크에서 기저율 사전 확률만으로(비지도 학습, 레이블 불필요) 기대 보정 오차(ECE)가 68–77% 감소했습니다.
- WAND/BMW 호환성: Sigmoid는 단조이고 유계이므로, 기존의 top-k 가지치기 알고리즘(WAND, Block-Max WAND)이 Bayesian 확률 상한과 함께 유효하게 유지됩니다.
성질 1은 위험이 없다는 뜻입니다 — BM25에서 Bayesian BM25로 전환해도 잃는 것이 없습니다. 성질 2는 확률이 의미 있다는 뜻입니다 — 단순히 유계인 점수가 아닙니다. 성질 3은 프로덕션 검색 시스템이 쿼리 성능을 희생하지 않고 도입할 수 있다는 뜻입니다.
7. 확률이 모든 것을 바꾸는 이유
PRP의 공백을 메운 것은 역사적으로 의미가 있지만, 더 깊은 기여는 그것이 여는 것에 있습니다. 점수가 확률이 되면, 확률론의 전체 도구가 사용 가능해집니다:
원리에 기반한 융합(fusion). 점수 공간에서 BM25와 벡터 유사도를 결합하려면 자의적인 선택이 필요합니다 — 가중합, 역순위 융합(RRF), 학습된 결합 가중치. 확률 공간에서는 결합이 확률론에 의해 정의됩니다:
자의적인 가중치가 없습니다. 순위 기반 휴리스틱이 없습니다. 수학이 결합 방법을 알려줍니다.
자연스러운 결정 경계. 점수 공간에서 "어떤 BM25 임계값이 관련을 의미하는가?"에는 원리적인 답이 없습니다. 확률 공간에서 는 자연스러운 결정 경계입니다 — 관련성이 비관련성보다 가능성이 높은 지점입니다. 벤치마크에서 임계값 전이(한 쿼리 집합에서 학습하고 다른 집합에 적용)가 Bayesian 확률로는 안정적으로 작동하지만, Platt scaling은 붕괴합니다(SciFact에서 F1이 거의 0).
정보 이론적 분석. 보정된 확률이 있으면 교차 엔트로피, KL 발산, 상호 정보량이 모두 정의됩니다. 검색 품질을 정보 이론의 전체 도구로 분석할 수 있게 됩니다.
베이즈 갱신. 확률은 베이즈 정리를 통해 합성됩니다. 사전 지식(코퍼스 통계, 사용자 이력, 문서 메타데이터)을 사전 확률을 통해 반영할 수 있고, 새로운 증거가 도착하면 사후 확률이 갱신됩니다.
이것이 우리가 이 기여를 좌표 변환이라고 설명하는 이유입니다 — 점수 공간에서 확률 공간으로의 변환. 기저의 실체(문서 관련성)는 바뀌지 않지만, 그것을 다루는 데 사용할 수 있는 수학적 도구가 완전히 달라집니다.
8. 기저율 사전 확률: 무료로 얻는 68–77% 보정 개선
실용적 결과 하나가 특별히 주목할 가치가 있습니다. 기저율 사전 확률은 Bayesian 사후 확률을 로그 오즈 공간에서 세 개의 가산 항으로 분해합니다:
기저율 — 코퍼스에서 관련 문서의 비율 — 은 점수 분포에서 자동으로 추정됩니다. 레이블이 필요 없습니다.
| 방법 | NFCorpus ECE | SciFact ECE |
|---|---|---|
| Bayesian (기저율 없음) | 0.6519 | 0.7989 |
| Bayesian (base_rate=auto) | 0.1461 (−77.6%) | 0.2577 (−67.7%) |
| Bayesian (base_rate=0.001) | 0.0081 (−98.8%) | 0.0354 (−95.6%) |
| Platt scaling (지도 학습) | 0.0186 | 0.0188 |
비지도 기저율 사전 확률(auto)은 지도 학습 기반의 Platt scaling과 대등한 보정 품질을 달성합니다 — 그리고 알려진 기저율(0.001)을 사용하면 Platt scaling을 초과하는 보정 품질을 보입니다. 이것이 가능한 이유는 기저율이 IR의 구조적 사실을 포착하기 때문입니다: 어떤 주어진 쿼리에 대해서든 문서의 대다수는 관련이 없습니다. 이 사실을 사전 확률에 반영하면, 그것 없이 발생하는 체계적 과대 추정이 교정됩니다.
이것은 단조 변환입니다 — 문서 순위를 변경하지 않습니다. 같은 문서가 같은 순서로, 하지만 극적으로 더 잘 보정된 확률과 함께 제공됩니다.
9. 사용해 보세요
레퍼런스 구현은 Python 패키지로 제공됩니다:
pip install bayesian-bm25
세 줄로 BM25 점수를 확률로 변환할 수 있습니다:
from bayesian_bm25 import BayesianProbabilityTransform transform = BayesianProbabilityTransform(alpha=1.5, beta=1.0, base_rate=0.01) probabilities = transform.score_to_probability(scores, tfs, doc_len_ratios)
하이브리드 검색 통합에 대해서는 확률적 검색 엔진 구축에 관한 블로그 글을 참조해 주세요.
10. 결론
Bayesian BM25의 sigmoid 함수는 공학적 결정이 아닙니다. 세 가지 사실의 유일한 수학적 귀결입니다:
- 관련성은 이진입니다 (베르누이)
- 베르누이 분포는 지수족에 속합니다
- 지수족의 정준 연결 함수의 역은 sigmoid입니다
이것이 동일한 변환이 BM25, TF-IDF, SPLADE에서 수정 없이 작동하는 이유입니다. 이것이 50년 만에 Robertson의 확률적 순위 원리를 완성하는 이유입니다. 그리고 이것이 원리에 기반한 다중 신호 융합, 베이즈 갱신, 검색 품질의 정보 이론적 분석으로 가는 문을 여는 이유입니다.
어떤 함수를 사용할 것인가는 처음부터 질문이 아니었습니다. 수학이 이미 결정해 놓았습니다.
참고 문헌
- Robertson, S. E. (1977). The Probability Ranking Principle in IR. Journal of Documentation, 33(4), 294–304.
- Robertson, S. E., & Zaragoza, H. (2009). The Probabilistic Relevance Framework: BM25 and Beyond. Foundations and Trends in Information Retrieval, 3(4), 333–389.
- Jeong, J. (2026). Bayesian BM25: A Probabilistic Framework for Hybrid Text and Vector Search. Zenodo. doi:10.5281/zenodo.18414940
- Jeong, J. (2026). From Bayesian Inference to Neural Computation. Zenodo. doi:10.5281/zenodo.18512411
- Cox, R. T. (1946). Probability, Frequency and Reasonable Expectation. American Journal of Physics, 14(1), 1–13.
- Manning, C. D., Raghavan, P., & Schütze, H. (2008). Introduction to Information Retrieval. Cambridge University Press.