https://youtu.be/rKJUjdGa2mY?si=FQgTlojeQSka0rj_
아래 글은 위 영상을 참조하여 현대의 정보 검색(Retrieval) 시스템이 어떻게 작동하며, 스파스(Sparse) 리트리벌과 덴스(Dense) 리트리벌이 어떤 차이를 보이는지에 대해 깊이 있게 다루고 있습니다.
또한 BM25 알고리즘을 비롯한 고전 검색 기법부터 최근 이슈가 되고 있는 BERT 기반 쿼리 확장, ColBERT(토큰 단위 유사도 계산)까지 폭넓게 살펴봅니다. 검색 알고리즘과 모델 아키텍처에 대한 이론적 배경과 실무 적용 시 고려사항을 친절하게 설명했으니, 끝까지 읽으시면 현대 검색 기술의 ‘핵심 개념’과 ‘최신 트렌드’를 모두 파악하실 수 있을 것입니다.
1. 검색 시스템의 기본 구조: 인덱싱과 재순위화
현대 검색 시스템(Information Retrieval)은 크게 두 단계로 나눌 수 있습니다.
- 인덱싱(Indexing)
- 방대한 문서를 빠르게 찾기 위해 문서(또는 문서의 청크 단위)에 대한 색인을 생성합니다.
- 고전적인 스파스(Sparse) 접근 방식(예: BM25, TF-IDF)은 보통 역색인(Inverted Index) 기법을 사용해, 특정 단어가 등장하는 문서 ID를 빠르게 찾도록 합니다.
- 덴스(Dense) 리트리버는 문서 전체를 벡터로 변환해(임베딩) 저장하고, 추후에 유사도(코사인 유사도 등)를 계산해 가까운 벡터를 찾는 식으로 검색합니다.
- 검색 및 재순위화(Reranking)
- 사용자가 쿼리를 입력하면, 인덱싱된 문서들을 빠르게 검색(Retrieve)하여 상위권 문서(또는 청크)들을 추려냅니다.
- 이어지는 재순위화(Reranking) 단계에서는 더 정교한 모델(예: 크로스 인코더, ColBERT)을 사용해, 실제로 가장 관련성이 높은 문서를 상위에 올리는 과정을 수행합니다.
- 최근에는 Hybrid Retriever(스파스와 덴스 병행) 방식을 많이 쓰는데, 키워드 기반과 의미 기반을 모두 고려해 결과를 합치는 기법입니다.
이러한 파이프라인을 거친 후, 최종적으로 QA(Question Answering)나 요약(Abstractive Summarization) 등의 모델에 해당 문서(문맥)를 제공해 답변을 생성하는 흐름이 가장 전형적인 현대 검색-생성(Generation) 시스템 구조라 할 수 있죠.
2. 스파스 vs. 덴스 리트리벌: 어떤 차이가 있을까?
검색 분야에서 많이 언급되는 스파스(Sparse) 벡터와 덴스(Dense) 벡터의 개념은 다음과 같이 요약됩니다.
2.1 스파스 리트리벌
- 벡터 특징: 차원 수가 매우 높고, 대부분 값이 0이며, 일부만 비제로(Non-zero) 값.
- 대표 기법: TF-IDF, BM25 등.
- 장점
- 0이 많은 덕분에 계산이 빠르고, 인덱스 구조(역색인)로 인해 검색 속도가 우수함.
- 튜닝이 최소화되어도 어느 정도 성능이 나오며, 결과 해석(왜 이 문서가 매칭됐는지)도 쉬움.
- 키워드를 기반으로 동작하므로, “고유 단어”에 대해서는 강력한 검색 정확도를 보임.
- 단점
- 의미적 동의어를 다루기 어려움(예: 레스토랑 vs. 식당).
- 여러 단어의 맥락적 관계를 반영하기가 제한적.
2.2 덴스 리트리벌
- 벡터 특징: 상대적으로 저차원(수백~수천 차원)에 밀집된 실수로 이루어진 벡터.
- 대표 기법: BERT 기반 바이인코더(Bi-Encoder), DPR(Dense Passage Retrieval) 등.
- 장점
- 의미적 관계(Synonym, Paraphrase 등)나 맥락을 반영 가능.
- 유사어, 문맥적 연관성을 추론해 적절한 문서를 찾는 데 유리.
- 단점
- 학습(파인튜닝)이 꼭 필요하고, 대량의 쿼리-문서 쌍 데이터가 있어야 함.
- 검색 시 임베딩 유사도를 빠르게 찾으려면 추가적인 벡터 데이터베이스(Pinecone 등)가 필요.
- 왜 이 문서가 관련성 높은지 직관적으로 해석하기 어려울 수 있음.
실무에서는 특정 도메인(특화 데이터)에서는 스파스 리트리벌이 더 낫고, 일반 도메인에서는 덴스가 우세한 경우도 있습니다. 최근엔 두 방식을 하이브리드로 결합하여, 상호 보완적 성능을 얻는 추세입니다.
3. BM25 알고리즘: 스파스 리트리벌의 대표주자
3.1 TF-IDF의 간략 복습
- TF(Term Frequency): 해당 문서 내에서 특정 단어가 얼마나 자주 등장했는지.
- IDF(Inverse Document Frequency): 코퍼스 전체에서 이 단어가 얼마나 희귀한지.
- 일반적으로 TF × IDF로 스코어를 계산해, “문서 내에서 많이 등장하면서, 전체적으로 희귀한 단어”를 높은 가중치로 둡니다.
3.2 BM25 알고리즘
BM25는 TF-IDF를 보완한 알고리즘으로, 문서 길이에 대한 페널티와 TF 포화(빈도 무한 증가 방지)를 적용합니다.
- 핵심 아이디어
- 단어가 반복된다고 해서 점수가 무한정 올라가는 문제를 해결(포화)
- 문서가 너무 길면 길이만큼 TF가 자연스레 커지므로, 이를 보정(길이에 따른 페널티)
- 자주 등장하지 않는(희귀) 단어에 높은 가중치를 부여(IDF 강화)
예시)
1. “아파트”라는 단어가 문서에 매우 많이 반복되더라도, BM25는 점수를 어느 정도 상한선으로 조절.
2. 문서 길이가 길수록 TF가 많이 잡히지만, BM25는 길이에 따른 스코어 감소분을 적용해 공정성을 유지.
이 BM25가 스파스 리트리벌 분야에서 오랫동안 표준으로 자리 잡고 있으며, 여전히 강력한 성능을 보여줍니다.
4. 최신 트렌드: 쿼리 확장(Query Expansion)과 BERT 활용
스파스 리트리벌이 동의어나 유사 개념을 파악하기 어려운 단점을 극복하기 위해, 쿼리 확장이라는 개념이 등장했습니다.
- 예: “레스토랑”이라는 키워드가 들어오면, “식당” 등을 추가로 고려해 검색 범위를 넓히는 기법.
4.1 간단한 쿼리 확장: “Doc2query” (일명 ‘덕투 리’)
- 문서에서 역으로 가능한 쿼리들(10개 정도)을 생성해, 그 쿼리를 문서에 붙이는 매우 직관적 방식.
- 예: 문서에 “워싱턴 D.C.” 관련 내용이 있으면, 해당 문서를 기반으로 “워싱턴 미래” 등의 쿼리를 생성.
- 이렇게 붙여놓으면, BM25 측면에서 문서 내 특정 단어의 등장 빈도가 “의미적으로” 늘어나, 검색 시 더 잘 매칭됨.
- 단순하지만, BM25 대비 성능이 크게 개선된 연구 결과가 다수 보고됨(2019년).
4.2 BERT를 이용한 쿼리 확장
- BERT 모델의 마스킹(Masked LM) 기능을 활용해, 문서 또는 쿼리에 “마스킹”을 걸고, 빈칸에 들어갈 확률이 높은 단어를 확장.
- 예: “come from” → BERT가 관련 연어(collocation)나 확장 단어(오랑우탄, 레인포레스트, 인도네시아 등)를 추가로 제안.
- 이를 문서 또는 쿼리에 반영함으로써, 스파스 리트리버(예: BM25)가 “단어 표현의 다양성”을 반영할 수 있게 만듦.
- 최근에는 모든 토큰에 대한 로짓(logits)을 합산해, 가중치가 높은 단어만 추가하는 등의 최적화 기법도 연구되고 있습니다.
이처럼 쿼리 확장(또는 문서 확장)은 스파스 리트리벌의 단점을 보완하는 대표적인 방법론으로, 검색 정확도 향상에 기여합니다.
5. 덴스 리트리벌: BERT 임베딩으로 의미 기반 검색
5.1 임베딩(Embedding) 모델 개념
- 텍스트를 수백~수천 차원의 벡터로 변환해, 머신이 이해할 수 있는 형태로 표현.
- 쿼리와 문서를 각각 벡터로 만들고, 벡터 공간에서 가까운(유사도 높은) 문서를 찾습니다.
- BERT, RoBERTa 등으로 파인튜닝하며, 쿼리-문서 쌍의 관계를 학습.
5.2 바이인코더(Bi-Encoder)와 크로스 인코더(Cross-Encoder)
- 바이인코더
- 쿼리 인코더와 문서 인코더(또는 같은 인코더)를 통해 각각 벡터를 구하고, 코사인 유사도를 계산.
- 대규모 문서 풀에서 빠른 검색이 가능.
- 대표 예: DPR(Dense Passage Retrieval), Sentence-BERT 등.
- 크로스 인코더
- 쿼리와 문서를 하나의 문장으로 넣어 BERT가 최종적으로 관련도 스코어를 직접 산출.
- 더 정확하지만, 매 문서마다 BERT를 돌려야 하므로 대규모 검색에 비효율적.
- 보통 재순위화(후단 Reranker) 단계에서만 사용.
5.3 학습: 인-배치 네거티브 샘플링
- 많은 연구가 “인-배치 네거티브(In-Batch Negative)” 로스 함수를 사용.
- 한 배치에 (쿼리, 양의 문서 D+, 배치 내 다른 문서 D-)를 넣어, 쿼리와 관련 문서는 가깝게, 나머지 문서는 멀어지도록 최적화.
- 배치 사이즈와 하드 네거티브(관련성은 약간 있지만 정답이 아닌 문서)를 어떻게 골라내는가가 성능을 크게 좌우함.
5.4 디코더 기반 임베딩 모델
- 기존 BERT(인코더)와 달리, GPT류(디코더) 모델이 임베딩을 생성하기도 함.
- 인스트럭션을 삽입해 “검색할 의도”를 모델에 주입함으로써, 검색을 위한 임베딩으로 변환.
- 예: “이 쿼리에 답할 수 있는 문서 표현을 찾아라”라는 문구를 넣고 학습하면, 임베딩이 검색 태스크에 맞도록 튜닝됨.
6. ColBERT: 토큰 단위 유사도 계산
덴스 리트리벌과 크로스 인코더 사이의 절충을 시도한 것이 ColBERT입니다.
- 아이디어: 쿼리와 문서 각각의 토큰 임베딩을 구해, 모든 쿼리 토큰 vs. 모든 문서 토큰의 유사도를 계산.
- 그중 가장 유사도가 높은 토큰 매칭을 토대로 스코어를 합산해 최종 점수를 산출.
- 맥락 정보는 반영하면서도, 크로스 인코더만큼 느리지 않도록 부분적으로 병렬화가 가능.
- 단점: 문서가 너무 길면 쿼리 토큰 × 문서 토큰 수에 따른 계산이 많아, 여전히 속도가 부담될 수 있음.
ColBERT는 초기 리트리벌용(수십~수백 개 문서를 빠르게 스코어링)보다는, 리랭킹(Re-rank) 작업에서 다소 제한적으로 쓰이는 추세입니다. 하지만 토큰 단위 의미 매칭이라는 관점에서 새로운 가능성을 보여 준 모델이라 인상적입니다.
7. 검색 평가 지표: MRR, Precision
검색 성능을 정량적으로 평가하기 위한 대표 지표들이 있습니다.
- MRR(Mean Reciprocal Rank)
- 정답 문서가 검색 결과 리스트에서 몇 번째에 위치했는지의 역수로 측정.
- 예) 정답이 1등이면 1.0, 2등이면 0.5, 3등이면 0.33, …
- MRR@10은 “상위 10개 결과 안에 정답이 존재할 때, 그 정답이 몇 번째인지”의 평균.
- Precision@k
- 상위 k개 검색 결과 중 관련 문서가 몇 개나 되는지의 비율.
- 예) 첫 3개 결과 중 실제 관련 문서가 2개면 precision = 2/3.
- 검색 시스템의 정확도와 직결되는 중요한 지표.
실무 연구에서, 작은 수치 향상(0.01~0.02 상승)도 대단히 큰 가치가 있습니다. 특히 거대 검색 엔진에선 이 작은 차이로도 엄청난 사용자 만족도 차이가 발생하죠.
8. 마무리: 어떤 리트리벌을 선택해야 할까?
- 스파스 리트리벌(BM25 등)은
- 강력한 검색 속도와 해석 가능성을 가짐.
- 특정 도메인(법률, 금융 등)에서 매우 우수한 결과를 내는 경우가 종종 있음.
- 쿼리 확장 같은 기법으로 동의어나 유사 개념 커버리지를 높일 수 있음.
- 덴스 리트리벌은
- 의미 기반 검색 능력이 뛰어나고, 동의어·유사 표현에 강점.
- 파인튜닝을 위해 “쿼리-문서” 매핑 데이터가 필요(인프라, 벡터 검색 시스템 등 추가 비용).
- BERT 계열, GPT 계열 등 다양한 모델로 확장 가능.
- 하이브리드(Sparse + Dense)
- BM25와 덴스 리트리버의 상위 결과를 결합하면, 서로 다른 강점을 합칠 수 있음.
- 많은 대규모 QA 시스템(예: 오픈소스 Haystack, Elastic + FAISS 등)에서 하이브리드를 채택 중.
정답은 “데이터 도메인, 검색 속도 요구사항, 구축 예산 및 ML 리소스”에 따라 달라집니다. 다만, 현재 추세로는 스파스와 덴스 모두의 장점을 취하는 복합 전략이 가장 실무 친화적인 해답이 될 가능성이 높습니다.
끝까지 읽어주셔서 감사합니다!
이 포스트가 스파스와 덴스 리트리벌의 기본 개념과 최신 동향을 이해하는 데 도움이 되었길 바랍니다.
앞으로도 AI와 관련된 다양한 주제, 특히 자연어처리와 정보 검색 분야의 심층적인 내용을 친절하게 전해드리겠습니다.
궁금한 점이나 추가 의견은 댓글로 남겨주세요.
행복한 AI 리서치 & 개발 되시길 바랍니다!
'인공지능' 카테고리의 다른 글
AI와 온톨로지: 인간 인지의 한계를 넘어 비즈니스 혁신을 이끄는 비밀 (3) | 2025.04.21 |
---|---|
온톨로지: 우리가 보는 세상은 진짜일까? 인식, 관계, 그리고 AI의 놀라운 연결고리 (0) | 2025.04.21 |
“Pre-Training GPT-4.5: 차세대 거대 언어 모델의 비밀과 AI 혁신의 미래” (0) | 2025.04.12 |
“Amazon Bedrock과 Contextual Retrieval로 검색 성능 극대화! 실무 엔지니어를 위한 완벽 가이드” (0) | 2025.04.12 |
Graph-based의 추천시스템의 성능 평가에 있어서, Recall, NDCG가 주요한 이유 (0) | 2023.08.07 |