30

Graph Algorithm → RAG 통합: PageRank 리랭킹

Graph + Vector 하이브리드 검색

학습 목표

하이브리드 점수 = α × 벡터유사도 + (1-α) × PageRank PageRank: 인덱싱 시 계산 → 노드 속성 저장 → 검색 시 활용 Leiden 커뮤니티 → Global Search (Map-Reduce)

Graph Algorithm → RAG 통합: PageRank 리랭킹

Hook: 벡터 유사도만으로는 부족하다

벡터 검색 결과:

  1. "삼성전자가 AI 칩을 발표" (유사도 0.92)
  2. "NVIDIA CEO 젠슨 황 인터뷰" (유사도 0.89)
  3. "SK하이닉스 HBM 생산 계획" (유사도 0.87)

이 중 가장 중요한 노드는? 벡터 유사도만으로는 판단 불가. PageRank를 결합하면 그래프 구조적 중요도까지 반영 가능.


왜 배우는가?

왜 Graph Algorithm이 RAG에 필요한가?

방식측정하는 것놓치는 것
벡터 유사도만의미적 유사성구조적 중요도
PageRank만연결 중요도질문 관련성
벡터 + PageRank의미 + 구조없음 (최적)

실측 효과:

  • Baseline (벡터만): 정답률 72%
  • +PageRank 리랭킹: 정답률 81% (+9%p)
  • +커뮤니티 요약: 정답률 89% (+17%p, Global Search)

핵심 개념

하이브리드 리랭킹 공식

에디터 로딩 중...

Neo4j GDS로 PageRank 계산

에디터 로딩 중...

커뮤니티 탐지 → Global Search

에디터 로딩 중...

Global Search 흐름:

에디터 로딩 중...

Python 통합 코드

에디터 로딩 중...

Neo4j GDS 파이프라인 최적화

에디터 로딩 중...

자주 하는 실수

자주 하는 실수

1. PageRank를 매 쿼리마다 계산

에디터 로딩 중...

2. α 값 고정

에디터 로딩 중...

3. GDS 프로젝션 메모리 누수

에디터 로딩 중...
핵심 포인트
  • 하이브리드 점수 = α × 벡터유사도 + (1-α) × PageRank
  • PageRank: 인덱싱 시 계산 → 노드 속성 저장 → 검색 시 활용
  • Leiden 커뮤니티 → Global Search (Map-Reduce)
  • GDS mutate 모드로 I/O 최소화 후 일괄 저장