NLP | LLM

[RAG] 3. Sparse Retrieval와 Dense Retrieval (+Ensemble, Reranker)

삐롱K 2025. 6. 24. 01:11
728x90
반응형

Sparse Retrieval

전통적인 키워드 기반 검색 방식으로 빠르고 직관적이며 적은 자원이 필요하지만, 의미 기반 검색이 어렵다는 한계가 있음.
희소 벡터 형태로 표현하여 검색 수행

 

  • 희소 벡터: 전체 어휘 사전의 크기에 해당하는 차원을 가진 벡터, 해당 문서나 쿼리에 등장하는 단어에 해당하는 위치만 1이고 나머지는 모두 0인 형태를 갖는다.
  • TF-IDF(Term Frequency-Inverse Document Frequency): 특정 단어가 문서에 나타나는 빈도와(TF) 그 단어가 전체 문서에서 얼마나 희귀하게 나타나는지(IDF)를 반영하여 단어의 중요도를 계산합니다. 여기서 자주 나타나면서도 문서 집합 전체에 드물게 나타나는 단어가 높은 가중치를 받음.
    • 단어 빈도(Term Frequency, TF): 단어 t의 문서 d 내 등장 횟수 / 문서 d의 총 단어 수
    • 역문서 빈도(Inverse Document Frequency, IDF): log(전체 문서 수 / 단어 t가 등장하는 문서 수)
    • 문서 길이 고려 부족, 단어 빈도의 선형적 증가 문제
  • BM25(Best Mactching 25): TF-IDF를 개선한 모델로, 문서의 길이와 단어의 빈도를 고려하여 검색 정확도를 향상시킵니다. 긴 문서와 짧은 문서 간의 가중치를 조정하여 단어 빈도의 영향을 상대적으로 조절합니다.
    • BM25는 정보 검색 분야에서 수십 년간 널리 사용되어 온 강력한 기준선 성능을 제공합니다 
    • 문서 길이 정규화(Document Length Normalization): 문서의 길이를 고려하여 긴 문서에서 단어 빈도를 적절히 조정. 긴 문서는 자연스럽게 더 많은 단어를 포함할 수 있으므로, 단순히 TF가 높다고 해서 높은 점수를 받지 않도록 문서의 평균 길이를 고려하여 균형을 맞춥니다.
    • 단어 빈도의 포화 처리: 단어 빈도가 증가함에 따라 점수 증가율이 감소하도록 설계되어 과도한 반복이 결과에 미치는 영향을 제한
    • 장점
      1. 정확성 및 효율성: BM25는 문서와 쿼리 간의 관련성을 정확하게 평가하며, 계산이 비교적 간단하여 대규모 데이터셋에서도 빠르게 작동합니다.
      2. 키워드 과포화 완화: 긴 문서에서 키워드 과포화 문제를 완화할 수 있어, 문서 길이가 길어질수록 점수가 낮아지도록 조정하여 긴 문서가 과다하게 평가되는 것을 방지합니다.
      3. 희귀 단어 중요도 반영: 다른 문서에 잘 등장하지 않는 단어를 포함한 문서는 해당 단어의 빈도수가 높지 않아도 높은 점수를 가집니다. 이는 IDF를 통해 희귀한 단어의 중요도를 반영하기 때문입니다.
    • 단점
      1. 단어의 국소적 특징 및 문맥 파악의 한계: BM25는 단어의 국소적인 특징 추출에 강점이 있지만, 문장의 전체적인 맥락을 파악하는 데는 한계가 있습니다. 이를 보완하기 위해 ResNet-Transformer 모델과 같은 딥러닝 모델을 결합하여 문맥 이해 능력을 향상시킬 수 있습니다. 이 모델은 BM25의 가중치로 적용되어 검색 기능을 향상시키는 데 기여합니다.
      2. 사용자 의도 파악의 어려움: BM25와 같은 어휘 기반 검색 알고리즘은 용어 빈도를 기반으로 문서를 검색하는 데는 효과적이지만, 사용자의 의도를 고려하여 검색된 텍스트의 의미를 평가하는 데는 어려움을 겪습니다. 이를 보완하기 위해 Jina Reranker와 같은 AI 기반 재순위화(Reranking) 모델을 추가하여 사용자 의도에 더 잘 부합하는 결과를 생성할 수 있습니다.
      3. 사용자 행동 데이터 미고려: BM25는 CTR(Click-through rate)과 같은 사용자의 실제 행동을 고려하지 않습니다. Learning to Rank (LTR)와 같은 기법을 사용하여 검색 엔진의 순위를 재구축하고, BM25 검색 결과의 관련성을 개선하기 위한 2단계 재순위화 모델로 활용할 수 있습니다. LTR은 XGBoost, Metarank, Ranklib 모델을 사용하여 행동 데이터를 통해 문서 점수를 재지정할 수 있는 오픈소스 플러그인입니다.


  • 역색인, 단어 매칭

 

Dense Retrieval

질문과 문서를 연속적인 고차원 벡터로 인코딩하여 의미적으로 관련성 높은 문서를 매칭합니다.
Sparse Retreival과 달리 단어의 존재 여부나 빈도만이 아닌 단어의 의미와 문맥을 고려하여 검색을 ㅎ수행
의미 기반 검색이 가능하지만 사전 학습과 인프라 자원이 더 필요합니다.
  • Embedding Model, ANN
  • Faiss: 대규모 데이터셋에서 고차원 벡터의 유사도 검색을 빠르게 수행할 수 있도록 설계된 라이브러리. 인덱싱 방법 활용
  • Vector DB

 

Ensemble Retrieval

Sparse + Dense Retrieval 을 결합하여 각 방식의 단저믕ㄹ 보완하고 더 균형 잡힌 검색
  • Sparse: 키워드 기반의 빠르고 직관적인 검색 가능/ 문맥과 의미를 온전히 파악하기 어려움
  • Dense: 텍스트의 의미를 깊이 있게 이해하고 관련성을 판단할 수 있음/ 계산 비용이 높고 새로운 키워드나 특정 표현을 정확히 포착하는데 어려움

 

Reranking

초기 검색으로 대상을 빠르게 좁히고, 이 문서들을 정밀하게 평가하는 방식
  • LLM기반: 프롬프트 설계 → LLM 호출 → 순위 재조정
  • 크로스 인코더 기반: 주로 BERT와 같은 인코더 기반 언어 모델을 이용
    • Bi-Encoder: Dense Retrieval에 사용되는 인코딩 방식으로, 질문 A와 문서 B가 있을 때 이들 각각을 임베딩으로 동일한 크기의 벡터로 만든 뒤, 코사인 유사도와 같은 유사도 분석을 통해 벡터 간의 거리를 수치화하는 방식
    • Cross-Encoder: 질문 A와 문서 B가 있을 때, 이들을 트랜스포머 기반의 인코더 모델에 함께 투입하여, 둘 사이의 관련성을 나타내는 분류 점수를 직접 얻습니다.

 

실무에서는 두 방식을 혼합하거나 reranker와 함께 사용하는 경우가 많습니다.

 


Last Updated. 2025.06.24

🔖 참고 자료

📘 RAG 마스터: 랭체인으로 완성하는 LLM 서비스

 

인프런 추천 강의

 

생성형 AI 기초와 동작 원리 이해 강의 | YoungJea Oh - 인프런

YoungJea Oh | 딥러닝을 활용한 생성모델 AI 모델의 작동 원리를 이해하고 실습을 통해 활용 방법을 습득합니다., [사진]혹시 이런 궁금증이 있으신가요?🤔머신러닝/딥러닝 기초 지식은 있는데, 생

www.inflearn.com

 

 

모두의 한국어 텍스트 분석과 자연어처리 with 파이썬 강의 | 박조은 - 인프런

박조은 | 파이썬 한국어 텍스트 분석과 자연어처리 워드클라우드 시각화, 형태소 분석, 토픽모델링, 군집화, 유사도 분석, 텍스트데이터 벡터화를 위한 단어 가방과 TF-IDF, 머신러닝과 딥러닝을

www.inflearn.com

 

728x90
반응형