-
검색모델, TF-IDF를 대신할 Okapi BM25검색 2023. 1. 27. 15:27728x90반응형
이 포스팅은 Kaggle의 한 notebooks를 보고 추천시스템 공부를 하는 와중에 bm25가 나와서 정리해보고자 작성하게 되었다.
먼저 BM25의 정의를 보자.
en.wikipedia.org/wiki/Okapi_BM25
정보 검색 에서 Okapi BM25 ( BM 은 Best Matching 의 약어임 )는 검색 엔진 이 주어진 검색 쿼리에 대한 문서 의 관련성 을 추정하는 데 사용 하는 순위 함수 입니다. 1970년대와 1980년대에 Stephen E. Robertson , Karen Spärck Jones 등이 개발한 확률적 검색 프레임워크 를 기반으로 합니다 .
실제 순위 함수의 이름은 BM25 입니다. 풀러 이름인 Okapi BM25 에는 이를 사용한 최초의 시스템 이름이 포함되어 있는데, 1980년대와 1990년대 에 런던 의 시립 대학 에서 구현된 Okapi 정보 검색 시스템이었습니다. BM25 및 최신 변형, 예를 들어 BM25F(문서 구조 및 앵커 텍스트를 고려할 수 있는 BM25 버전) 는 문서 검색에 사용되는 TF-IDF 와 같은 검색 기능을 나타냅니다
출처: <https://en.wikipedia.org/wiki/Okapi_BM25>
BM25는 ranking function 종류 중 하나로 주어진 search쿼리에 대한 문서들의 연관성을 측정하는 함수이다.
먼저 TF-IDF 함수를 살펴보면,
TF-IDF 는 IDF와 TF를 곱한 값인데 TF는 다음과 같다.
IDF는 BM25에서도 쓰이니 TF만 살펴보자.
여러 종류의 TF가 있다. 간단하게 특정 단어가 문서내에 있다면 1, 없다면 0을 주는 방법이나, 등장 횟수를 사용하는 방법등이 있다.
이렇게 TF는 단어 등장 횟수인 ft,d을 이용하는 대신 BM25에는 문서 전체 길이 또한 반영한다.
BM25식을 살펴보면,
사실 이름만 다르지 식으로서는 TF-IDF와 크게 다르지 않다.
f(qi, D)는 문서 D에 있는 qi의 빈도이고 |D|는 문서 D의 길이를 뜻한다. 또한 avgdl는 문서들의 평균 길이이다.
k1, b는 free parameters를 뜻한다. 주로 k1는 [1.2, 2.0]에 있고 b는 0.75로 선택된다.
IDF(qi)는 qi term에 대한 IDF(inverse document frequency) weight이다.
여기서 N는 전체 문서의 수를 뜻하고 n(qi)는 qi를 포함하는 문서들의 수를 뜻한다.
정리해보자면,
1. BM25는 문서 A와 B의 검색어 빈도수가 같을 때 문서의 길이가 길수록 낮은 score를 가진다.( |D|가 식의 분모에 있으므로...)
2. 다른 문서에 잘 등장하지 않는 단어 a를 포함한 문서는 a의 빈도수가 높지 않아도 높은 score를 가진다.
출처: <https://simonezz.tistory.com/41>
https://github.com/hyowong/snlp-information-retrieval
GitHub - hyowong/snlp-information-retrieval: A two-stage information retrieval model using baseline TF-IDF model and refined BM2
A two-stage information retrieval model using baseline TF-IDF model and refined BM25. - GitHub - hyowong/snlp-information-retrieval: A two-stage information retrieval model using baseline TF-IDF mo...
github.com
파이썬으로 되어 있다.
728x90반응형'검색' 카테고리의 다른 글
엘라스틱서치 고급 검색 기능 (0) 2022.10.26 검색엔진의 역색인(Inverted Index)의 원리 (0) 2022.05.14 검색엔진(Search Engine)의 현황 및 구동원리 (0) 2022.05.14 정보검색 - 회고 (0) 2022.05.14 정보검색 - 검색모델 성능향상, 적합성 피드백 (Relevance Feedback) (0) 2022.05.14