GraphRAG, Knowledge Graph, Ontology의 차이점

GraphRAG, Knowledge Graph, Ontology는 뭐가 다를까?

최근 GraphRAG를 공부하면서 가장 헷갈렸던 부분이 Ontology, Knowledge Graph, GraphRAG의 차이였다.

처음에는 세 개가 거의 같은 개념인 줄 알았다. 자료를 보다 보면 "온톨로지를 설계한다", "지식 그래프를 구축한다", "GraphRAG를 적용한다"는 말이 한꺼번에 등장하는 경우가 많아서 더 헷갈렸다.

이번에 관련 자료들을 찾아보면서 나름대로 이해한 내용을 정리해 보려고 한다.

결론부터 말하면 세 개는 서로 다른 역할을 가지고 있다.

Ontology
↓
Knowledge Graph
↓
GraphRAG

생각보다 관계가 단순했다.


Ontology는 설계도에 가깝다

Ontology는 쉽게 말해서 데이터의 구조와 관계를 정의하는 설계도다.

예를 들어 호텔 고객 경험(CX) 플랫폼을 만든다고 가정해 보자.

우리 시스템에는 다음과 같은 데이터가 존재할 수 있다.

  • 고객(Customer)
  • 예약(Reservation)
  • 객실(Room)
  • 체크인(Check-In)
  • 설문(Survey)
  • VOC

이때 단순히 데이터가 존재하는 것만으로는 부족하다.

서로 어떤 관계를 가지는지도 정의해야 한다.

예를 들면

고객 → 예약한다 → 예약

고객 → 작성한다 → 설문

고객 → 등록한다 → VOC

예약 → 포함한다 → 객실

설문 → 평가한다 → 객실

같은 관계들이다.

Ontology는 이런 관계를 정의하는 단계라고 보면 된다.

중요한 점은 아직 실제 데이터는 없다는 것이다.

홍길동 고객이 예약을 했는지, 어떤 설문을 작성했는지는 중요하지 않다.

단지 "고객은 예약을 할 수 있다", "고객은 설문을 작성할 수 있다" 같은 규칙을 정의하는 것이다.


Knowledge Graph는 실제 데이터가 들어간 결과물

Ontology가 설계도라면 Knowledge Graph는 실제 데이터가 채워진 상태다.

예를 들어 Ontology에서

고객 → 설문 작성

이라는 관계를 정의했다면,

Knowledge Graph에서는

홍길동 → 설문#123 작성

김철수 → 설문#456 작성

이영희 → 설문#789 작성

처럼 실제 데이터가 연결된다.

개인적으로는 객체지향의 Class와 Instance 관계로 이해하니까 가장 쉬웠다.

Ontology = Class

Knowledge Graph = Instance

즉,

Ontology + 실제 데이터
= Knowledge Graph

라고 생각하면 이해하기 편하다.


지하철 노선도로 생각하면 이해가 쉽다

개인적으로는 지하철 노선도로 비유하니까 가장 이해가 잘 됐다.

Ontology

Ontology는 지하철 노선도를 설계하는 단계다.

강남역 ↔ 역삼역 ↔ 선릉역

어떤 역이 존재하고 어떤 역끼리 연결되는지를 정의한다.

아직 실제 열차가 운행되는 것은 아니다.

그냥 구조만 설계한 상태다.


Knowledge Graph

Knowledge Graph는 실제 운행 데이터가 들어간 상태다.

강남역
↓
2호선

역삼역
↓
2호선

선릉역
↓
2호선

여기에

현재 승객 수

혼잡도

첫차/막차 시간

환승 정보

같은 실제 데이터가 추가된다.

즉 단순 노선도가 아니라 실제 운영 정보를 담고 있는 지하철 시스템이 되는 것이다.


GraphRAG

GraphRAG는 이 노선도를 이용해서 최적 경로를 찾아주는 앱이라고 생각하면 된다.

예를 들어 사용자가

서울역에서 잠실역까지 가장 빠르게 가는 방법은?

이라고 물어보면,

앱은 노선도를 따라가면서

서울역
↓
시청역
↓
을지로입구
↓
잠실역

같은 경로를 탐색한다.

GraphRAG도 비슷하다.

질문이 들어오면 데이터 간의 관계를 따라가면서 필요한 정보를 수집하고, 그 결과를 LLM에게 전달한다.


GraphRAG는 그래프를 활용한 RAG

그럼 GraphRAG는 정확히 무엇일까?

이름 그대로 RAG(Retrieval Augmented Generation)에 그래프를 결합한 방식이다.

기존 RAG는 보통 다음과 같이 동작한다.

질문
↓
벡터 검색
↓
관련 문서 추출
↓
LLM 응답 생성

반면 GraphRAG는

질문
↓
그래프 탐색
↓
관련 데이터 수집
↓
LLM 응답 생성

방식으로 동작한다.

예를 들어 사용자가

최근 체크인 만족도가 낮은 이유는 무엇인가요?

라고 질문했다고 가정해 보자.

기존 RAG는 체크인 관련 문서 몇 개를 찾아서 답변할 가능성이 높다.

하지만 GraphRAG는 관계를 따라가면서 정보를 수집할 수 있다.

체크인 만족도
↓
체크인 대기시간
↓
프런트 직원 수
↓
주말 방문객 증가
↓
VOC 불만 내용

이런 식으로 관련 데이터를 탐색하고 연결한다.

그래서 단순히 체크인 관련 문서만 찾는 것이 아니라 체크인 만족도에 영향을 줄 수 있는 다양한 정보들을 함께 고려할 수 있다.


실제 프로젝트에서는?

요즘 설문조사 플랫폼이나 VOC 분석 플랫폼은 단순히 설문 데이터만 분석하지 않는다.

고객 정보, 예약 정보, 결제 정보, VOC, CRM 데이터까지 함께 활용한다.

예를 들어 호텔 서비스에서

고객
예약
체크인
객실
설문
VOC

를 모두 연결해 두었다고 가정해 보자.

그러면 AI는 단순히

객실 만족도가 낮습니다.

수준의 답변이 아니라

객실 만족도가 낮은 고객의 73%는 체크인 대기시간도 길었으며, VIP 고객군에서 해당 현상이 더 자주 발생했습니다.

같은 형태의 분석도 가능해진다.

이런 관점에서 보면 GraphRAG의 핵심은 LLM 자체보다 데이터 간의 관계를 얼마나 잘 설계했는지에 있는 것 같다.


마무리

처음에는 GraphRAG만 공부하면 될 줄 알았다.

그런데 공부할수록 GraphRAG보다 먼저 Ontology 설계가 중요하다는 생각이 들었다.

관계가 제대로 정의되지 않으면 아무리 좋은 LLM을 붙여도 의미 있는 결과를 얻기 어렵기 때문이다.

내가 이해한 기준으로 정리하면 다음과 같다.

  • Ontology : 개념과 관계를 정의하는 설계도
  • Knowledge Graph : 실제 데이터가 연결된 그래프
  • GraphRAG : 그래프를 활용해 정보를 탐색하고 검색하는 기술

그리고 지하철 노선도로 비유하면

Ontology = 노선도 설계

Knowledge Graph = 실제 운행 정보가 포함된 노선도

GraphRAG = 노선도를 활용해 최적 경로를 찾아주는 앱

정도로 이해할 수 있을 것 같다.

0개의 댓글