정의
밀집 검색(Dense Retrieval)은 기존의 키워드 일치 방식(희소 검색, sparse retrieval)을 넘어선 고급 정보 검색 방법입니다. 정확한 단어 중첩에 의존하는 대신, 쿼리와 문서를 모두 밀집된 연속 벡터 표현(임베딩)으로 인코딩합니다.
이러한 벡터들은 쿼리와 콘텐츠 간의 의미론적 의미와 맥락적 관계를 포착하여, 비록 정확히 동일한 어휘를 공유하지 않더라도 개념적으로 유사한 문서를 찾을 수 있게 해줍니다.
중요성
현대 애플리케이션에서 사용자의 의도는 완벽한 키워드를 사용하여 표현되는 경우가 거의 없습니다. 사용자는 질문을 하거나, 복잡한 프롬프트를 제공하거나, 간접적으로 개념을 언급합니다. 밀집 검색은 구형 검색 알고리즘에 내재된 '어휘 불일치' 문제를 해결합니다.
이러한 의미론적 이해로의 전환은 사용자의 근본적인 요구를 진정으로 이해하는 정교한 AI 비서, 고급 지식 기반, 그리고 고도로 관련성 높은 검색 경험을 구축하는 데 매우 중요합니다.
작동 방식
이 과정은 몇 가지 핵심 단계를 포함합니다.
- 임베딩 생성: 사전 훈련된 언어 모델(BERT 또는 특수 트랜스포머 모델 등)이 입력 텍스트(쿼리 또는 문서 청크)를 고차원 벡터로 변환합니다. 이 벡터가 '밀집된' 표현입니다.
- 색인화(Indexing): 이 문서 벡터들은 빠른 최근접 이웃 검색에 최적화된 특수 벡터 데이터베이스에 저장됩니다.
- 유사도 검색: 쿼리가 들어오면, 이 역시 벡터로 변환됩니다. 그런 다음 시스템은 쿼리 벡터와 색인된 모든 문서 벡터 간의 거리(예: 코사인 유사도)를 계산합니다.
- 검색(Retrieval): 쿼리 벡터와 의미 공간상에서 가장 가까운(가장 유사한) 벡터를 가진 문서들이 가장 관련성 높은 결과로 반환됩니다.
일반적인 사용 사례
밀집 검색은 여러 고부가가치 엔터프라이즈 애플리케이션을 구동합니다.
- 질의응답 시스템(RAG): 검색 증강 생성(RAG)의 근간이 되어 LLM에 정확하고 맥락적으로 관련성 높은 출처 자료를 제공하여 정확한 답변을 생성하도록 돕습니다.
- 시맨틱 검색 엔진: 키워드가 아닌 의미를 기반으로 문서를 찾도록 내부 기업 검색을 개선합니다.
- 추천 시스템: 사용자가 이전에 상호작용한 항목이나 콘텐츠와 개념적으로 유사한 항목을 식별합니다.
- 문서 클러스터링: 공유된 주제와 의미를 기반으로 대량의 비정형 데이터를 그룹화합니다.
주요 이점
- 높은 관련성: 어휘 기반 방식에 비해 사용자 의도 일치 정확도가 현저히 높습니다.
- 맥락적 이해: 뉘앙스, 동의어, 암시된 의미를 포착합니다.
- 확장성: 최신 벡터 데이터베이스는 방대한 데이터셋을 효율적으로 처리하도록 설계되었습니다.
과제
- 모델 의존성: 성능은 사용된 임베딩 모델의 품질과 훈련에 크게 의존합니다.
- 계산 비용: 고차원 벡터를 생성하고 색인화하는 데 상당한 컴퓨팅 리소스가 필요합니다.
- 하이퍼파라미터 튜닝: 최적의 임베딩 모델과 유사도 측정 기준을 선택하려면 세심한 실험이 필요합니다.
관련 개념
희소 검색(Sparse Retrieval) (예: TF-IDF, BM25), 벡터 데이터베이스, 트랜스포머 모델, 검색 증강 생성(RAG)