1. BM25: 전통적인 검색 기법의 대표 주자
BM25(Best Matching 25)는 TF-IDF의 발전형 알고리즘으로, 문서의 길이를 고려한 가중치를 적용하여 검색 성능을 향상시킵니다.
📌 BM25의 핵심 특징
✅ 문서 길이 정규화
- 문서가 길면 특정 단어가 더 자주 등장할 가능성이 크므로, 이를 보정하여 보다 공정한 검색이 가능하도록 함
✅ 단어 빈도를 반영하여 검색 성능 향상
- 특정 키워드가 문서에서 자주 하면 검색 순위를 높임
✅ 여전히 널리 사용되는 검색 알고리즘
- 딥러닝 이전의 검색 시스템에서 강력한 성능을 보였으며, 현재도 많은 기업에서 활용 중
2. 토큰화(Tokenization)와 텍스트 전처리
검색 시스템에서 입력된 쿼리(query)를 효율적으로 처리하려면, 토큰화(Tokenization) 과정이 필요합니다.
📌 토큰화의 주요 과정
1️⃣ 쿼리를 단어 단위로 분리
- 예: "hot dog" → "hot", "dog"
- 이렇게 하면 "hot dog"과 "dog"을 같은 의미로 취급하는 오류 발생 가능
- 해결책: N-그램(N-gram)을 활용하여 "hot dog"을 하나의 단위로 인식
2️⃣ 불필요한 단어(Stop Words) 제거
- "the", "a", "is" 같은 불필요한 단어 제거하여 검색 정확도 향상
3️⃣ 소문자 변환 및 문장 부호 제거
- "Transformers." → "transformers"
✅ NLP 라이브러리 활용
- NLTK (Natural Language Toolkit): https://www.nltk.org
- spaCy: https://github.com/explosion/spaCy
- Stanford CoreNLP: https://github.com/stanfordnlp/CoreNLP
📌 예제: 텍스트 전처리 전후 비교
입력: "The Transformers movie was amazing!"
전처리 후: ["transformers", "movie", "amazing"]
3. 임베딩 기반 검색(Embedding-Based Retrieval)
📌 기존 검색 vs. 임베딩 검색
비교 항목 전통적 검색 (BM25, TF-IDF) 임베딩 검색 (Embedding-Based Retrieval)
검색 방식 | 키워드 기반 검색 | 의미 기반 검색 (Semantic Search) |
키워드 필요성 | 정확한 키워드가 필요 | 키워드 없이도 의미적 유사성을 기반으로 검색 가능 |
유연성 | 단어 변형에 취약 (예: "AI" ≠ "인공지능") | 의미적으로 유사한 단어도 검색 가능 (예: "AI" ≈ "인공지능") |
계산 비용 | 상대적으로 낮음 | 벡터 연산 필요 (계산량 증가) |
검색 정확도 | 단어 일치에 의존 | 문맥과 의미를 고려하여 더 정교한 검색 가능 |
✅ 임베딩 기반 검색은 의미(Semantic) 기반 검색을 가능하게 하며, 자연어 이해(NLU)가 중요한 작업에서 매우 효과적!
4. 임베딩 기반 검색의 원리
임베딩 검색은 텍스트를 벡터(Vector)로 변환하여 의미적으로 유사한 문서를 검색하는 방식입니다.
📌 임베딩 기반 검색의 주요 과정
1️⃣ 임베딩 모델을 사용하여 쿼리를 벡터로 변환
- "What is deep learning?" → [0.32, 0.74, 0.11, …]2️⃣ 벡터 데이터베이스(Vector DB)에 저장된 문서 벡터들과 비교하여 유사도 측정
- 코사인 유사도(Cosine Similarity) 또는 유클리디언 거리(Euclidean Distance)를 활용3️⃣ 유사도가 높은 문서를 검색하여 응답 생성
📌 임베딩 검색 구조 (Figure 6-3 참고)
- 데이터 전처리
- 문서를 쪼개서(Indexing & Splitting) 저장
- 문서를 임베딩(Embedding Model)하여 벡터 데이터베이스(VectorDB)에 저장
- 검색(Query Processing)
- 사용자의 쿼리를 임베딩하여 벡터로 변환
- 벡터 데이터베이스에서 가장 유사한 문서 검색
- 결과 생성
- 검색된 문서를 기반으로 생성 모델(Generative Model)이 응답 생성
✅ 임베딩 검색은 RAG(Retrieval-Augmented Generation)에서 핵심적인 역할을 함!
5. RAG 시스템에서의 임베딩 검색 활용
임베딩 기반 검색은 RAG(Retrieval-Augmented Generation) 시스템에서 필수적인 기술입니다.
- RAG 시스템에서는 외부 데이터를 검색하여 AI 모델의 답변을 보강
- 기존의 BM25 방식보다는 임베딩 검색이 의미적으로 유사한 정보를 더 잘 찾아냄
📌 실제 사용 사례
✅ 챗봇(Chatbot): 고객의 질문을 의미적으로 이해하고 가장 관련성이 높은 문서를 검색하여 응답
✅ 검색 엔진(Search Engine): 키워드 일치뿐만 아니라 의미적으로 유사한 문서를 검색
✅ 추천 시스템(Recommendation Systems): 사용자의 선호도를 벡터화하여 유사한 콘텐츠 추천
6. 결론: 전통적인 검색 vs. 임베딩 검색, 어떤 방식이 더 좋을까?
📌 BM25 (전통적인 검색)
✅ 키워드 기반 검색이 필요할 때 유용
✅ 빠르고 계산 비용이 낮음
✅ 문서 길이를 고려하여 검색 정확도를 높일 수 있음
🚨 하지만 의미적으로 유사한 문서를 검색하는 데 한계가 있음
📌 임베딩 기반 검색
✅ 의미적으로 유사한 문서를 찾을 수 있음
✅ 자연어 이해(NLU)가 필요한 작업에서 뛰어난 성능 발휘
✅ 챗봇, AI 검색 엔진, RAG 시스템에서 필수적
🚨 하지만 벡터 연산이 필요하므로 계산 비용이 높고, 데이터베이스가 커질수록 검색 속도가 느려질 수 있음
📌 최신 트렌드: 하이브리드 검색(Hybrid Search)
- BM25 + 임베딩 검색을 결합하여 최적의 성능 제공
- 빠른 검색 속도(BM25) + 의미적 검색(임베딩)을 동시에 활용
미래의 검색 시스템은 "하이브리드 검색(Hybrid Search)"을 통해 최상의 검색 경험을 제공할 것이다!
'머신러닝 & 딥러닝 > LLM' 카테고리의 다른 글
[LLM] 검색 알고리즘 비교: 용어 기반 검색 vs. 임베딩 기반 검색 (0) | 2025.03.05 |
---|---|
[LLM] 임베딩 기반 검색과 벡터 데이터베이스(Vector Database) (0) | 2025.03.05 |
[LLM] RAG 시스템의 아키텍처와 검색 알고리즘 (0) | 2025.03.05 |
[LLM] RAG (Retrieval-Augmented Generation)와 컨텍스트 활용 (0) | 2025.03.04 |
[LLM] RAG(Retrieval-Augmented Generation)와 에이전트의 활용 분야 (0) | 2025.03.04 |