[Elasticsearch] BM25

yoonene·2023년 2월 7일
0

Elasticsearch

목록 보기
1/14

엘라스틱서치는 score 알고리즘으로 okapi BM25 를 사용한다.

BM25는 TF-IDF의 변형으로, TF-IDF에 비해 다음과 같은 특징을 가진다.

  • 문서 길이가 짧을수록
  • 다른 문서에는 검색어가 등장하지 않을수록
  • 문서에 검색어 빈도수가 클수록

높은 점수가 매겨진다.

score(D,Q)=i=1nIDF(qi)f(qi,D)(k1+1)f(qi,D)+k1(1b+bDavgdl){\displaystyle {\text{score}}(D,Q)=\sum _{i=1}^{n}{\text{IDF}}(q_{i})\cdot {\frac {f(q_{i},D)\cdot (k_{1}+1)}{f(q_{i},D)+k_{1}\cdot \left(1-b+b\cdot {\frac {|D|}{\text{avgdl}}}\right)}}}

  • f(qi,D)f(q_{i},D) : DD 문서에 qiq_{i}가 등장하는 빈도수
  • D|D| : DD 문서의 길이
  • avgdl\text{avgdl} : 모든 문서 길이의 평균
  • kik_i : TF의 영향에 대한 가중치
    kk보다 TF가 작으면 score를 높이고 크면 낮춘다.
    보통 1.2 ~ 2.0, elasticsearch는 1.2 사용
  • bb : 전체 문서 길이 평균 대비 DD 문서의 길이에 대한 가중치.
    클수록 문서의 길이이 점수에 미치는 영향이 커짐. (b=0 이면 문서의 길이 고려 X)
    보통 0.75

IDF(qi)=ln(Nn(qi)+0.5n(qi)+0.5+1){\displaystyle {\text{IDF}}(q_{i})=\ln \left({\frac {N-n(q_{i})+0.5}{n(q_{i})+0.5}}+1\right)}

  • n(qi)n(q_i) : qiq_i가 포함된 문서 개수
profile
NLP Researcher / Information Retrieval / Search

0개의 댓글