# [[TF-IDF / BM25]] ## πŸ“Œ Brief Summary TF-IDF(Term Frequency-Inverse Document Frequency)와 BM25λŠ” 전톡적인 ν‚€μ›Œλ“œ 기반 검색(μ–΄νœ˜ 검색)μ—μ„œ ν…μŠ€νŠΈμ˜ μœ μ‚¬λ„λ₯Ό μΈ‘μ •ν•˜κ³  검색 결과의 μˆœμœ„λ₯Ό λ§€κΈ°λŠ” 데 μ‚¬μš©λ˜λŠ” λŒ€ν‘œμ μΈ 정보 검색 μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€ [1-3]. 이듀은 단어가 λ¬Έμ„œ λ‚΄μ—μ„œ λ“±μž₯ν•˜λŠ” λΉˆλ„(term frequency)와 전체 λ¬Έμ„œ μ§‘ν•©μ—μ„œ ν•΄λ‹Ή 단어가 μ–Όλ§ˆλ‚˜ ν¬κ·€ν•œμ§€λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ—­λ¬Έμ„œ λΉˆλ„(inverse document frequency)λ₯Ό 기반으둜 λ‹¨μ–΄μ˜ μ€‘μš”λ„λ₯Ό ν‰κ°€ν•œλ‹€ [4-6]. BM25λŠ” TF-IDF의 κ°œλ…μ„ λ°”νƒ•μœΌλ‘œ λ°œμ „λœ κ°€μž₯ λŒ€μ€‘μ μΈ 검색 λͺ¨λΈ 쀑 ν•˜λ‚˜λ‘œ 널리 ν™œμš©λ˜κ³  μžˆλ‹€ [5]. ## πŸ“– Core Content * **μž‘λ™ 원리 및 μ€‘μš”λ„ μΈ‘μ •:** TF-IDF μ•Œκ³ λ¦¬μ¦˜μ€ λ‹¨μˆœνžˆ 단어가 λ‚˜νƒ€λ‚˜λŠ” 횟수λ₯Ό μ„ΈλŠ” '단어 μ£Όλ¨Έλ‹ˆ(bag of words)' 방식을 κ°œμ„ ν•œ μ•Œκ³ λ¦¬μ¦˜μœΌλ‘œ, λ¬Έμ„œ 전체에 λŒ€ν•œ νŠΉμ • λ‹¨μ–΄μ˜ μ€‘μš”λ„λ₯Ό μΈ‘μ •ν•œλ‹€ [6]. λ‹¨μ–΄μ˜ λΉˆλ„μ™€ λ¬Έμ„œ ꡬ쑰λ₯Ό 기반으둜 검색 κ²°κ³Όλ₯Ό ν‰κ°€ν•˜λ©°, BM25λŠ” 이 TF-IDF κ°œλ…μ„ ν™œμš©ν•œ κ°€μž₯ 인기 μžˆλŠ” λͺ¨λΈμ΄λ‹€ [4, 5]. * **정보 검색 μ•„ν‚€ν…μ²˜μ—μ„œμ˜ ν™œμš©:** λŒ€κ·œλͺ¨ 정보 검색 μ‹œμŠ€ν…œμ—μ„œλŠ” λΉ λ₯Έ 쿼리 평가λ₯Ό ν—ˆμš©ν•˜λŠ” BM25와 같은 λ‹¨μˆœν•œ 검색 λͺ¨λΈμ„ μ‚¬μš©ν•˜μ—¬ 첫 번째 단계인 μƒμœ„ K개(top-k) λ¬Έμ„œ 검색을 μˆ˜ν–‰ν•΄ 잠재적으둜 관련성이 높은 μ†Œμˆ˜μ˜ λ¬Έμ„œλ₯Ό λΉ λ₯΄κ²Œ μ‹λ³„ν•œλ‹€ [7]. 이후 계산 λΉ„μš©μ΄ 높은 λ¨Έμ‹ λŸ¬λ‹ λͺ¨λΈμ„ ν™œμš©ν•΄ μ‹λ³„λœ λ¬Έμ„œλ“€μ˜ μˆœμœ„λ₯Ό λ‹€μ‹œ λ§€κΈ°λŠ”(Re-rank) λ°©μ‹μœΌλ‘œ ν™œμš©λœλ‹€ [7]. * **ν•™μŠ΅ 기반 λž­ν‚Ή(LTR)의 μ£Όμš” 자질(Feature):** 기계 ν•™μŠ΅μ„ 톡해 검색 μˆœμœ„λ₯Ό λ§€κΈ°λŠ” LTR μ•Œκ³ λ¦¬μ¦˜ ν™˜κ²½μ—μ„œ TF-IDF와 BM25 μ μˆ˜λŠ” '질의 쒅속적(Query-dependent) νŠΉμ„±' ν˜Ήμ€ '질의-λ¬Έμ„œ(Query-document) νŠΉμ„±'으둜 맀우 μ€‘μš”ν•˜κ²Œ μ‚¬μš©λœλ‹€ [8, 9]. λ¬Έμ„œμ˜ 제λͺ©, λ³Έλ¬Έ, URL λ“± μ—¬λŸ¬ μ˜μ—­μ—μ„œ κ³„μ‚°λœ TF-IDF 및 BM25 점수λ₯Ό νŠΉμ„± 벑터(Feature Vectors)둜 μΆ”μΆœν•˜μ—¬, λž­ν‚Ή λͺ¨λΈμ΄ λ¬Έμ„œμ˜ 관련성을 νŒλ‹¨ν•˜λ„λ‘ 정보λ₯Ό μ œκ³΅ν•œλ‹€ [8, 10]. * **ν•˜μ΄λΈŒλ¦¬λ“œ 검색(Hybrid Search)과의 κ²°ν•©:** μ΅œμ‹  검색 증강 생성(RAG) νŒŒμ΄ν”„λΌμΈμ΄λ‚˜ κΈ°μ—…μš© 정보 κ²€μƒ‰μ—μ„œλŠ” λ°€μ§‘ 벑터(Dense vector) 기반의 의미둠적 검색과 κ²°ν•©ν•œ ν•˜μ΄λΈŒλ¦¬λ“œ κ²€μƒ‰μœΌλ‘œ 자주 ν™œμš©λœλ‹€ [11, 12]. BM25λŠ” μ •ν™•ν•œ ν‚€μ›Œλ“œ λ§€μΉ­(exact-match)κ³Ό μ „λ¬Έ μš©μ–΄ 검색에 μœ λ¦¬ν•˜λ―€λ‘œ, 벑터 검색이 κ°€μ§€λŠ” ν•œκ³„λ₯Ό μƒν˜Έ λ³΄μ™„ν•˜μ—¬ κ²€μƒ‰μ˜ 신뒰성을 크게 ν–₯μƒμ‹œν‚¨λ‹€ [11, 12]. ## βš–οΈ Trade-offs & Caveats * **λ¬Έλ§₯κ³Ό 의미 μ΄ν•΄μ˜ λΆ€μž¬:** TF-IDF 및 BM25λŠ” 검색어와 λ¬Έμ„œμ— ν¬ν•¨λœ λ‹¨μ–΄μ˜ μ •ν™•ν•œ μ–΄νœ˜μ (물리적) μΌμΉ˜μ—λ§Œ μ˜μ‘΄ν•˜κΈ° λ•Œλ¬Έμ— ν…μŠ€νŠΈμ˜ λ¬Έλ§₯μ΄λ‚˜ μ‚¬μš©μžμ˜ μ˜λ„λ₯Ό 깊이 있게 μ΄ν•΄ν•˜μ§€ λͺ»ν•œλ‹€ [3, 4]. * **λ™μ˜μ–΄ 및 λͺ¨ν˜Έμ„± 처리의 ν•œκ³„:** 이듀 μ•Œκ³ λ¦¬μ¦˜μ€ 의미둠적 νŒŒμ•…μ΄ λΆˆκ°€λŠ₯ν•˜λ―€λ‘œ, μ˜λ―ΈλŠ” κ°™μ§€λ§Œ μ² μžκ°€ λ‹€λ₯Έ λ™μ˜μ–΄λ‚˜ μ€‘μ˜μ μΈ μ–Έμ–΄λ₯Ό μ œλŒ€λ‘œ μ²˜λ¦¬ν•˜λŠ” 데 어렀움을 κ²ͺλŠ”λ‹€ [4]. 예λ₯Ό λ“€μ–΄, "Java"κ°€ ν”„λ‘œκ·Έλž˜λ° 언어인지 컀피인지λ₯Ό κ΅¬λΆ„ν•˜κ±°λ‚˜ "개"와 "κ°•μ•„μ§€"의 의미적 μœ μ‚¬μ„±μ„ μ—°κ²°ν•˜λŠ” 데 ν•œκ³„κ°€ μžˆλ‹€ [3, 4]. * **μ˜€νƒ€ 및 κΈΈκ³  λ³΅μž‘ν•œ μ§ˆμ˜μ— λŒ€ν•œ μ·¨μ•½μ„±:** μ§§κ³  λͺ…ν™•ν•œ ν‚€μ›Œλ“œ κ²€μƒ‰μ—λŠ” 속도가 λΉ λ₯΄κ³  νš¨μœ¨μ μ΄μ§€λ§Œ, μžμ—°μ–΄ ν˜•νƒœμ˜ λŒ€ν™”ν˜• μ§ˆλ¬Έμ΄λ‚˜ 철자 였λ₯˜(μ˜€νƒ€)κ°€ μžˆλŠ” 쿼리λ₯Ό μ²˜λ¦¬ν•  경우 관련성이 μ—†κ±°λ‚˜ 일관성 μ—†λŠ” 검색 κ²°κ³Όλ₯Ό λ„μΆœν•  μœ„ν—˜μ΄ μžˆλ‹€ [13]. --- *Last updated: 2026-05-04*