BM25란 무엇인가?
BM25란 무엇인가?
BM25는 정보 검색(IR, Information Retrieval) 분야에서 널리 사용되는 가중치 기반 검색 알고리즘입니다. 검색 쿼리와 문서 간의 유사도를 계산하여 관련도가 높은 문서를 반환하는 데 사용됩니다. BM25는 TF-IDF를 기반으로 확장된 모델로, 특히 텍스트 검색 시스템에서 효율성과 정확도를 높이는 데 매우 효과적입니다.
BM25의 핵심 개념
BM25는 TF-IDF의 한계를 보완하며, 문서 길이 정규화와 단어 빈도의 포화 현상을 고려하여 설계되었습니다. 이를 통해 텍스트 데이터의 가변성과 현실적인 단어 분포를 더 잘 반영합니다.
BM25의 주요 구성 요소
BM25의 점수 계산 공식은 다음과 같습니다:
- IDF (Inverse Document Frequency)
- 단어가 전체 문서 집합에서 얼마나 드문지를 나타냅니다.
- 자주 등장하는 단어는 낮은 가중치를, 드문 단어는 높은 가중치를 갖습니다.
- f(t, D)
- 단어가 문서에서 등장한 빈도(TF, Tem Frequency)를 나타앱니다.
- BM25는 단어 빈도의 포화 효과를 적용하여, 단어가 빈도가 증가해서 가중치가 무한히 증가하지 않도록 설계되었습니다.
- 문서 길이 정규화
- 문서의 길이(단어 수)
- 전체 문서 집합에서 평균 문서 길이
- 문서 길이 정규화를 제어하는 하이퍼파라미터
- 문서 길이를 무시합니다.
- 문서 길이에 완전한 정규화를 적용합니다.
- (조정 파라미터)
- 단어 빈도의 포화 정도를 제어하는 파라미터입니다.
- 일반적으로 값은 1.2에서 2.0 사로 설정됩니다.
BM25의 특징
- 단어 빈도의 포화 효과
- 단어가 여러번 등장한다고 해서 무조건적으로 가중치가 증가하지 않으므로, 더 현실적인 단어 중요도를 반영합니다.
- 문서 길이 정규화
- 긴 문서와 짧은 문서 간의 불균형을 줄이고, 공정한 관련도 계산을 가능하게 합니다.
- 확장 가능성
- 검색 엔진, 추천 시스템, 질문-응답 시스템 등 다양한 분야에서 사용됩니다.
BM25의 활용 사례
- 검색 엔진
- BM25는 사용자가 입력한 검색 쿼리에 가장 관련성이 높은 문서를 반환하는 데 사용됩니다. 검색 엔진은 BM25를 통해 사용자 경험을 향상시킬 수 있습니다.
- 질문-응답 시스템
- BM25는 질문에 대해 가장 적절한 답을 포함하는 문서를 데이터베이스에서 찾아내는 데 활용됩니다.
- 추천 시스템
- 문서와 사용자 프로필 간의 매칭을 통해 개인화된 추천을 생성하는 데 사용됩니다.
BM25와 TF-IDF의 차이점
특징 | TF-IDF | BM25 |
---|---|---|
문서 길이 고려 | 문서 길이를 고려하지 않음 | 문서 길이를 정규화하여 관련도를 계산 |
단어 빈도 효과 | 단어 빈도가 높을수록 선형적으로 가중치 증가 | 단어 빈도 증가가 제한적으로 반영됨 |
파라미터 유연성 | 추가 조정 파라미터 없음 | 하이퍼파라미터로 유연하게 설정 가능 |
간단한 예시
- 쿼리 “고양이와 강아지”
- 문서 1: “고양이는 귀엽다.”
- 문서 2: “강아지는 사랑스럽다.”
- 문서 3: “고양이와 강아지는 친구다.”
BM25는 각 문서에 대해 다음을 계산합니다.
- IDF : “고양이”와 “강아지”의 희귀도를 계산합니다.
- TF : 각 문서에서 “고양이”와 “강아지”가 등장하는 빈도를 고려합니다.
- 문서 길이 : 각 문서의 길이를 고려하여 점수를 정규화합니다.
결과적으로, BM25는 쿼리와 가장 관련성 높은 문서를 반환합니다.
결론
BM25는 TF-IDF를 개선한 모델로, 문서 길이와 단어 빈도를 더 현실적으로 반영하여 검색 정확도를 높입니다. 검색 엔진, 추천 시스템 등 다양한 응용 분야에서 그 효과를 입증하고 있으며, 하이퍼파라미터를 조장하여 다양한 데이터셋에 최적화할 수 있습니다. 텍스트 검색이 필요한 프로젝트에서 BM25를 고려해볼 수 있습니다.