Logo wiki

키워드/의미 기반 검색 방식

April 28, 2025
4 min read
Table of Contents
index

개요

이 문서는 정보 검색(Retrieval) 단계에서 주로 사용되는 키워드 기반, 의미 기반, 그리고 하이브리드 검색 방식의 기본 원리와 차이점을 설명합니다.

키워드 기반 검색 방식

  • 정보 검색 분야에서 널리 사용되는 가중치 모델로, 주로 문서와 쿼리 간의 관련성을 평가하기 위해 사용됩니다.
  • 주요 특징
    • 문서 길이 정규화 (문서의 길이가 길수록, 더 많은 단어가 포함될 수 있으므로 문서의 길이를 정규화하여 문서 간 공정한 비교를 가능하게 함)
    • 쿼리 독립성 (각 쿼리의 단어가 독립적으로 가중치를 받으므로, 각 단어에 대한 계산된 점수를 합산하여 전체 문서의 점수를 계산)
      • 즉 쿼리 내의 각 단어가 서로의 영향을 받지 않고 독립된 상태로 관련성을 평가 받는다는 것을 뜻하는 용어

의미 기반 검색 방식 vs 키워드 기반 검색 방식

  • 의미 기반 검색은 입력 키워드의 의미와 문맥을 해석하여 관련성을 판단합니다.
  • 키워드 기반 검색은 사용자가 입력한 단어와 문서 내 단어가 정확히 일치하는지에 집중합니다.
구분키워드 기반 검색의미 기반 검색
핵심 원리키워드 일치의미/문맥 해석
대표 알고리즘BM25, TF-IDF임베딩, 벡터 유사도
장점빠르고 직관적, 구현 쉬움의미상 연관 결과도 찾음
단점동의어, 문맥 차이 약함연산량 높고, 튜닝 필요

하이브리드 검색

  • 키워드 기반과 의미 기반의 장점을 결합하여, 더 정확도 높은 검색 결과를 도출합니다.
  • 임베딩 유사도 기반 검색과 BM25 등 키워드 검색 결과를 병렬로 구한 뒤, 재랭킹 모델 등으로 상위 결과를 선정합니다.

요약

  • 정보 검색 성능을 높이기 위해서는 각 검색 방식의 특성을 이해하고, 시스템의 목적에 따라 적절히 조합하는 것이 중요합니다.

  • TODO

    • rag 이야기 넣기
    • 벡터 db랑 graph db 이야기 넣기
    • code review agent가 코드를 rag로 해서 하는 이야기
  • 참고용

  • (궁금했던 거)

    • 재랭킹을 왜 다시해야 하는가
  • (멘토님이 궁금해했던 거)

    • 정말 벡터 DB를 사용해야 하는가
    • RAG에서 가장 중요한 건 무엇인가

RAG

  • 문서를 다 넣는지
  • 벡터db가 아니라 graphdb를 사용하면 성능이 더 좋음
    • 벡터 db는 짤라서 넣기 때문에 필요한 지식이 없을 수도 있음 Graph db가 그래서 좋음
  • 내가 참고한 문서가 엄청 커서 순서
  • 품질에 가장 영향을 많이 미쳤던 게 검색
    • rarank로 사용자의 질문에 가장 의도에 맞는 걸 최상위로 올리면 나았음
    • 코드와 자연어의 유사도가 다름
    • 코드, 한국어 다 잘하는 임베딩 모델은 거의 없음

MCP

  • RAG랑 뭐가 다른지
    • JIRA같이 최신성이 중요한 데이터는 VectorDB로 구축하기 보다는 MCP로 실시간 데이터로 조회해서 바로 하는 용도
    • 데이터의 조회뿐만 아니라 액팅으로 확장