본문 바로가기

Study

BM25

개념

주어진 검색 쿼리에 대해 문서의 관련성을 추정하는 데 사용되는 랭킹 함수
문서 A, B의 검색어 빈도수가 같을 때 문서의 길이가 길수록 낮은 점수를 갖음
다른 문서에 잘 등장하지 않은 단어를 포함한 문서는 해당 단어의 빈도수가 높지 않아도 높은 점수를 갖음

수식

$$
score(D, Q) = \sum_{i=1}^{n} IDF(q_i) \cdot \frac{f(q_i, D) \cdot (k_1 + 1)}{f(q_i, D) + k_1 \cdot (1 - b + b \cdot \frac {|D|}{avgdl})}
$$

  • $Q$ : 키워드 $q_1, \dots, q_n$을 포함하는 쿼리
  • $D$ : 문서
  • $IDF(q_{i})$ : TF-IDF(Term Frequency - Inverse Document Frequency) 참고
  • $f(q_i, D)$ : 문서 $D$에서 q_i$의 용어 빈도수
  • $|D|$ : 문서 $D$의 길이
  • $avgdl$ : 데이터 집합의 평균 문서 길이
  • $k_1, b$ : 자유 매개변수로 최적화가 없는 경우 $k_1 \in [1.2, 2.0]$, $b = 0.75$

$$
IDF(q_i) = ln(\frac {N - n(q_i) + 0.5} {n(q_i) + 0.5} + 1)
$$

  • $N$ : 데이터 집합의 전체 문서 수
  • $n(q_i)$ : $q_i$ 를 포함하는 문서 수

Reference