본문 바로가기

AI_Paper/NLP

Retrieval-Augmented Generation with Graphs(GraphRAG) 논문 리뷰

📝 Abstract

RAG(Retrieval-Augmented Generation)는 외부 지식을 검색해 모델의 답변 능력을 강화하는 대표적인 기법입니다. 하지만 기존 RAG는 임베딩 공간 기반 검색에 주로 의존하기 때문에, 관계적 지식을 포착하는 데 한계가 있었습니다.

이에 반해, GraphRAG는 노드와 엣지로 구성된 그래프 구조를 활용합니다. 그래프는 단순 문서 검색으로는 얻기 힘든 복잡한 관계 정보를 담을 수 있기 때문에, 최근 연구와 산업 현장에서 주목받고 있습니다.


🚀 Introduction

RAG가 이미 다양한 응용에서 성공을 거둔 가운데, 그래프(Graph)의 보편적 활용성을 고려한 새로운 접근이 등장했습니다. 바로 GraphRAG, 즉 RAG와 그래프 구조 데이터를 통합하는 방법론입니다.

기존 RAG가 Semantic/Embedding 기반 검색에 초점을 맞췄다면, GraphRAG는 Graph Neural Networks(GNNs)그래프 분석 기법(예: 그래프 탐색, 커뮤니티 탐지)을 결합하여 관계적 지식 포착에 강점을 발휘합니다.

결국 GraphRAG는 단순히 검색 성능을 높이는 것을 넘어, 질문과 지식 사이의 관계성을 구조적으로 이해할 수 있도록 설계된 차세대 RAG라 할 수 있습니다.


📌 GraphRAG의 전체 아키텍처

GraphRAG는 단순히 RAG에 그래프를 덧붙인 개념이 아니라, 그래프 데이터의 특성을 반영한 별도의 설계가 필요합니다.

기본 파이프라인은 다음과 같이 5개 단계로 구성됩니다:

  1. Query Processor – 사용자의 질문을 전처리
  2. Graph Data Source – 그래프 구조화된 지식 저장소
  3. Retriever – 그래프 탐색(GNN, BFS/DFS 등) 기반 검색 수행
  4. Organizer – 검색된 결과를 정제 및 재구성
  5. Generator – 최종 답변을 생성

{different example}

  • 기존 RAG: sparse/dense 인코더 기반의 텍스트 검색(index search)
  • GraphRAG: 그래프 탐색(BFS/DFS, 엔티티 링크) + GNN 기반 임베딩 활용

즉, 기존의 “단순 검색 → 답변 생성” 흐름을 넘어, 그래프 구조와 관계성을 활용할 수 있도록 Retriever/Organizer/Generator 모두 맞춤형 설계가 필요합니다.

 

1. Query Processor: (텍스트와 그래프를 연결하는 다리)

기존 RAG에서는 질문과 데이터 모두 텍스트이기 때문에, 쿼리를 그대로 임베딩해서 검색기에 넘기면 된다.

하지만 GraphRAG에서는 데이터 소스가 그래프 구조이므로, 단순 텍스트 매칭만으로는 부족하다.

예를 들어, *“저스틴 비버의 형제는 누구인가?”*라는 질문을 텍스트로만 처리한다면 답을 찾기 어렵다. GraphRAG는 이 질문을

  • 엔티티(Entity): Justin Bieber
  • 관계(Relation): brother of
  • 으로 변환해야 지식 그래프에서 올바른 결과를 찾을 수 있다.

GraphRAG의 쿼리 프로세서는 이런 변환 과정을 수행하기 위해 여러 NLP 기법을 활용한다:

  1. Entity Recognition – 쿼리 내 엔티티 식별 (예: Justin Bieber)
  2. Relational Extraction – 쿼리 내 관계 추출 (예: brother of)
  3. Query Structuration – 쿼리를 그래프 탐색 가능한 구조로 변환
  4. Query Decomposition – 복잡한 질문을 여러 하위 질의로 분해
  5. Query Expansion – 관련 용어나 동의어를 추가해 검색 성능 개선

2. Retriever: 그래프를 이해하는 검색기

GraphRAG에서 Retriever는 전처리된 쿼리를 받아 그래프 데이터에서 관련 정보를 찾는 핵심 모듈입니다. 기존 RAG도 Retriever를 쓰지만, 텍스트 중심이라 그래프 구조적 신호를 반영하기 어렵다는 한계가 있습니다.

  • 기존 RAG
    • “Text-in, Text-out”
    • NLP 토크나이저 기반
    • BM25/TF-IDF / Dense Retriever → 어휘 유사도 / 의미 유사도
  • GraphRAG
    • 다양한 입출력: Text↔Graph
    • 그래프 탐색(BFS/DFS), 엔티티 링크 활용
    • GNN 기반 임베딩
    • 노드·엣지 패턴, 구조 신호 반영

3. Organizer: LLM이 소화할 수 있는 형태로 가공하기

Retriever가 가져온 그래프 데이터는 그대로 쓰기 어렵습니다. 엔티티·관계·경로·서브그래프 형태의 데이터는 노이즈, 불완전성, 구조적 복잡성 때문에 LLM이 이해하기 힘듬. Organizer는 이 데이터를 정리·정제해 Generator가 활용 가능한 형태로 바꿔주는 역할을 합니다.


🧩 Organizer가 필요한 이유

  1. 노이즈 제거 (Graph Pruning)
    • 서브그래프에는 불필요한 노드/엣지가 많음 → 생성 품질 저하
    • → 중요한 부분만 남기는 Pruning 필요
  2. 중요도 재정렬 (Re-ranking)
    • 그래프 이웃이 늘어날수록 문맥이 길어져 LLM이 집중하지 못함
    • 중요한 노드/관계만 우선순위로 정렬
  3. 불완전 정보 보강 (Graph Augmentation)
    • 검색된 그래프가 불완전할 수 있음
    • 의미적/구조적 정보 보강으로 개선
  4. 구조적 정보 변환 (Structure-aware Verbalization)
    • 그래프 구조는 단순 텍스트로 표현하기 어려움
    • → LLM이 이해할 수 있도록 구조를 반영한 재구성 필요

 

4.  Generator: 최종 출력을 만드는 엔진

Retriever와 Organizer가 데이터를 정리해주면, Generator가 이를 받아 최종 결과물을 만들어냅니다. Generator는 단순 텍스트 답변뿐 아니라 분류, 질의응답, 새로운 그래프 생성까지 다양한 작업을 담당합니다.


🧩 Generator의 세 가지 유형

  1. 판별 기반 Generator (Discriminative-based)
    • 목적: 노드/엣지/그래프 분류
    • 활용 모델: GNNs, Graph Transformers
  2. LLM 기반 Generator
    • 목적: 텍스트 기반 응답 생성
    • 활용 모델: GPT 계열 등 대규모 언어 모델
  3. 그래프 기반 Generator
    • 목적: 새로운 그래프 생성
    • 활용 모델: Diffusion Models, Graph VAE 등
    • 예시: 신약 개발을 위한 분자 그래프 생성