GNN

그래프 구조 데이터에서 노드, 엣지, 전체 그래프의 표현을 학습하는 신경망 모델.

— 그래프 머신러닝과 딥러닝 연구 분야의 핵심 개념

테이블로 펴면 정보가 사라지고, 그래프로 두면 학습이 어려워지는 데이터를 붙잡고 연구자와 엔지니어가 같이 머리를 싸매는 기술. 노드가 서로 이야기하게 만들었더니 GPU가 먼저 말을 잃었다

1. 개요

GNN(Graph Neural Network, 그래프 신경망)은 그래프 형태의 데이터를 처리하기 위한 딥러닝 모델이다. 일반적인 신경망이 표, 이미지, 문장처럼 비교적 정돈된 구조를 다루는 데 강하다면, GNN은 노드와 엣지로 이루어진 관계형 데이터를 다룬다. 소셜 네트워크의 사용자 관계, 쇼핑몰의 사용자-상품 상호작용, 분자의 원자 결합, 지식 그래프의 개체 관계처럼 “연결 자체”가 의미를 갖는 데이터에서 특히 중요하다. 핵심 아이디어는 각 노드가 이웃 노드의 정보를 받아 자신의 표현을 업데이트하는 메시지 패싱이다.

2. 메시지 패싱

GNN의 대표적인 작동 방식은 메시지 패싱(Message Passing)이다. 각 노드는 자기 주변 이웃 노드들의 정보를 모으고, 이를 기존 자기 정보와 합쳐 새로운 표현을 만든다. 이 과정을 여러 번 반복하면 가까운 이웃뿐 아니라 몇 단계 떨어진 노드의 정보까지 반영할 수 있다. 예를 들어 추천 시스템에서는 어떤 사용자가 본 상품, 그 상품을 본 다른 사용자, 그 사용자가 산 다른 상품까지 관계를 따라가며 취향을 추정할 수 있다. 이 방식은 직관적이지만, 반복 횟수가 너무 많아지면 모든 노드 표현이 비슷해지는 오버스무딩 문제가 생긴다.

3. 어디에 쓰이나

GNN은 관계가 핵심인 문제에서 강하다. 추천 시스템에서는 사용자와 상품의 상호작용 그래프를 학습하고, 보안 분야에서는 계정과 거래의 연결 패턴으로 이상 행위를 찾는다. 생명과학에서는 분자를 원자와 결합의 그래프로 보고 성질을 예측한다. Graph RAG지식 그래프 검색과 직접 같은 개념은 아니지만, 그래프 데이터를 벡터 표현으로 바꾸는 데 GNN을 활용할 수 있다. 즉 GNN은 그래프를 “읽는” 모델이고, Graph RAG는 그래프를 “검색 컨텍스트로 쓰는” 아키텍처에 가깝다.

4. 관련 밈 및 드립

4.1. 일단 그래프면 GNN을 붙여보자

데이터에 관계가 조금이라도 보이면 일단 GNN을 제안하는 연구실식 본능을 놀리는 말. 실제로는 간단한 피처 엔지니어링이나 전통 모델이 더 잘 먹힐 때도 많다.

4.2. 노드가 너무 많습니다

논문 예제에서는 예쁜 작은 그래프가 나오지만, 실무 데이터는 노드와 엣지가 수억 개씩 튀어나온다. 전체 그래프를 한 번에 학습하려는 순간 메모리가 사라지고, 샘플링 전략을 고민하는 시간이 시작된다.

5. 여담

  • GCN, GAT, GraphSAGE: GNN에는 여러 대표 변형이 있다. GCN은 그래프 합성곱, GAT는 어텐션 기반 이웃 가중치, GraphSAGE는 대규모 그래프 샘플링에 초점을 둔다.
  • PyTorch Geometric: PyTorch 생태계에서는 PyTorch Geometric이 GNN 구현에 자주 쓰인다. 그래프 데이터 로딩과 미니배치 처리를 대신해주는 고마운 도구다.
  • LLM과는 역할이 다르다: LLM이 자연어 생성에 특화되어 있다면, GNN은 그래프 구조의 표현 학습에 특화되어 있다. 둘을 결합하는 연구도 있지만 같은 도구로 보면 곤란하다.

6. 관련 문서