35

벡터 검색 vs 그래프 검색: 언제 무엇을?

GraphRAG 개론

학습 목표

벡터 검색: 의미적 유사성에 강하나 관계 구분 불가 그래프 검색: 명시적 관계 + 멀티홉 추론 가능 Neo4j 5.x의 Vector Index로 단일 DB에서 하이브리드 검색 가능

벡터 검색 vs 그래프 검색

같은 질문도 검색 방식에 따라 답변 품질이 달라집니다. 언제 어떤 방식을 사용해야 할까요?

동일 질문, 다른 결과 예시

에디터 로딩 중...

왜 배우는가?

비유: 도서관에서 책 찾기

벡터 검색 = 키워드 검색 시스템

  • "반도체 관련 책" -> 제목/내용에 "반도체"가 있는 모든 책
  • 의미적으로 유사한 것도 찾아줌 ("칩", "웨이퍼" 등)
  • 하지만 "삼성전자가 만든 반도체를 사용하는 회사"는 못 찾음

그래프 검색 = 사서에게 물어보기

  • "삼성전자와 경쟁하는 회사 책" -> 사서가 회사 관계를 알고 정확히 안내
  • 관계를 따라가며 연결된 정보를 찾아줌
  • 하지만 "반도체란 무엇인가"같은 설명형 질문에는 비효율적

두 방식은 상호 보완적입니다.

검색 방식별 강약점 매트릭스

능력벡터 검색그래프 검색하이브리드
의미적 유사성★★★★★★★★★★★★
관계 탐색★★★★★★★★★★
멀티홉 추론★★★★★★★★★
비정형 텍스트★★★★★★★★★★★
설명 가능성★★★★★★★★★★★
구축 용이성★★★★★★★★★★

핵심 개념

벡터 검색의 특징

장점:

  • 의미적 유사성 포착 ("AI" = "인공지능" = "머신러닝")
  • 비정형 텍스트에 강함 (문서, 이메일, 채팅)
  • 확장성 좋음 (ANN - Approximate Nearest Neighbor)
  • 구축이 간단 (문서 -> 임베딩 -> 벡터 DB)

단점:

  • 구조적 관계 무시 (공급/경쟁/협력 구분 불가)
  • 정확한 키워드 매칭 약함 ("삼성전자" vs "삼성")
  • 설명 가능성 부족 (왜 이 문서가 검색되었는지 설명 어려움)
  • 멀티홉 추론 불가
에디터 로딩 중...

그래프 검색의 특징

장점:

  • 명시적 관계 탐색 (SUPPLIES_TO, COMPETES_WITH 등)
  • 멀티홉 추론 가능 (A->B->C->D)
  • 경로 추적 가능 (설명 가능성)
  • 정확한 엔티티 매칭

단점:

  • 스키마 설계 필요 (노드/관계 타입 정의)
  • 자연어 쿼리 -> Cypher 변환 필요 (LLM 의존)
  • 비정형 텍스트 처리 어려움
  • KG 구축/유지보수 비용
에디터 로딩 중...

질문 유형별 추천 검색 방식

질문 유형예시추천 방식이유
관계 질문"X와 Y의 관계는?"그래프 우선관계가 명시적으로 저장됨
설명 질문"X에 대해 설명해줘"벡터 우선비정형 텍스트에서 상세 정보
복합 질문"X의 경쟁사들의 최근 동향?"하이브리드관계 + 텍스트 모두 필요
요약 질문"전체 시장 트렌드는?"MS GraphRAG글로벌 컨텍스트 필요
경로 질문"X에서 Y까지 어떻게 연결?"그래프 전용경로 탐색 전용
비교 질문"X vs Y 장단점?"하이브리드속성 비교 + 텍스트

Vector Index + Graph Traversal 하이브리드 전략

Neo4j 5.x부터 Vector Index를 그래프 DB 내에 통합할 수 있습니다. 이를 활용하면 단일 DB에서 벡터 검색과 그래프 탐색을 동시에 수행합니다.

에디터 로딩 중...
에디터 로딩 중...

핵심 이점:

  • 별도 벡터 DB 불필요 (Neo4j 하나로 통합)
  • 벡터 검색 -> 그래프 탐색을 단일 Cypher 쿼리로 처리
  • 트랜잭션 일관성 보장 (ACID)

하이브리드 검색 전체 코드 예시

에디터 로딩 중...
핵심 포인트
  • 벡터 검색: 의미적 유사성에 강하나 관계 구분 불가
  • 그래프 검색: 명시적 관계 + 멀티홉 추론 가능
  • Neo4j 5.x의 Vector Index로 단일 DB에서 하이브리드 검색 가능
  • 관계 질문 -> 그래프, 설명 질문 -> 벡터, 복합 -> 하이브리드
  • Vector Index + Graph Traversal = 단일 Cypher 쿼리로 통합 검색