Study
BM25
딸기달
2021. 12. 13. 18:52
개념
주어진 검색 쿼리에 대해 문서의 관련성을 추정하는 데 사용되는 랭킹 함수
문서 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