G·Graph Daily Lab
DAY 78 / 100
내 학습 기록
DAY 78개념·실험그래프 표현 학습

이웃에게 메시지를 받는 GNN

랜덤 워크 임베딩은 노드마다 벡터를 따로 외웁니다. 노드의 특징을 이웃과 섞어 표현을 만드는 그래프 신경망(GNN)의 한 층이 무엇을 하는지 직접 평균을 내며 따라가 봅니다.

약 20분조작형 실험 확인 퀴즈
A SMALL DETOUR

이번 회차, 내 속도로.

기초를 더 짚거나 궁금한 주제로 잠깐 넓혀 보세요. 최대 3단계를 거쳐 DAY 78로 돌아옵니다.

난이도·관심 주제 고르기
이번 회차는 어느 속도로 볼까요?
더 살펴볼 주제 1~2개 선택

1/2개 선택 · 새 보충·심화 수업과 본과정 다시 읽기를 선택할 수 있어요.

이렇게 다녀와요 1단계 · 약 12분

  1. 출발 · DAY 78메시지 전달·층 수
  2. 1. 관심 주제원-핫·밀집 벡터·코사인 유사도추가 31 · 새 추가 수업
  3. 복귀 · DAY 78원래 회차 이어가기
  • 원-핫·밀집 벡터·코사인 유사도 · DAY 76에서 노드 임베딩이 가까운 노드를 가까운 벡터로 만든다고 했는데, 출발점인 원-핫 표현과 비교하면 임베딩이 왜 필요한지 분명해집니다.

선택과 경로 기록은 이 브라우저에 저장됩니다. 본과정의 회차 완료와는 별도입니다.

복귀: DAY 78 → 본과정 다음 회차: DAY 79

핵심 개념

그래프 신경망(graph neural network, GNN)은 노드마다 특징 벡터(예: 텍스트 임베딩, 숫자 속성)에서 출발해, 층을 지날 때마다 이웃의 정보를 섞어 표현을 갱신합니다. Gilmer et al.(2017)은 여러 모델을 메시지 전달 신경망(MPNN) 틀로 정리했습니다. 단계마다 이웃 w에서 메시지 함수 M(h_v, h_w, e_vw)로 메시지를 만들어 더하고, 갱신 함수 U(h_v, m_v)로 자기 상태를 새로 씁니다. 그래프 전체를 예측해야 하면 마지막에 읽기(readout) 함수로 모든 노드를 요약합니다.

GCN(Kipf & Welling 2017)의 층은 H' = σ(D̃^−1/2 Ã D̃^−1/2 H W)입니다. Ã = A + I는 인접 행렬에 자기 연결을 더한 것이고, D̃는 그 차수 행렬입니다. 풀어 말하면 ‘자기와 이웃의 특징을 차수로 정규화해 섞은 뒤 학습 가중치 W를 곱하고 활성화 함수 σ를 통과시킨다’입니다. 층 하나가 1홉 이웃의 정보를 가져오므로 k층을 쌓으면 k홉 안의 노드가 출력에 영향을 줍니다.

층을 많이 쌓으면 더 멀리 보지만 늘 좋아지지는 않습니다. GCN 논문의 실험에서는 2~3층이 가장 좋았고, 7층보다 깊으면 잔차 연결 없이는 학습이 어려워졌다고 보고합니다. Li et al.(2018)은 그래프 합성곱이 라플라스 평활화(Laplacian smoothing)의 한 형태이며, 층을 많이 쌓으면 노드 표현이 서로 구별되지 않는 과평활화(over-smoothing) 우려가 있다고 분석했습니다. 평균을 반복하면 값이 한곳으로 모이는 것과 같은 현상입니다.

GNN은 연결 구조를 그대로 믿고 정보를 퍼뜨린다는 점도 기억해 둡니다. LLM이 추출한 그래프(DAY 83)에 잘못된 엣지가 있으면 그 오류도 이웃을 따라 퍼집니다. 이 파트 뒤쪽의 G-Retriever(DAY 93)는 검색한 부분 그래프를 GNN으로 인코딩해 LLM에 넣는데, 그때도 부분 그래프의 품질이 결과를 좌우합니다.

GNN의 한 층은 이웃의 메시지를 모아 자기 표현을 갱신하는 일이고, k층은 k홉을 보지만 너무 깊으면 표현이 비슷해지는 과평활화가 생깁니다.

작은 예제로 따라가기

01

경로 A–B–C의 초기 특징이 A=6, B=0, C=3입니다. 학습 가중치와 활성화는 생략하고 ‘새 값 = 자기와 이웃 값의 평균’ 규칙만 씁니다.

02

1층: A=(6+0)/2=3, B=(0+6+3)/3=3, C=(3+0)/2=1.5입니다. B는 이제 양쪽 이웃의 정보를 담습니다.

03

2층: A=(3+3)/2=3, B=(3+3+1.5)/3=2.5, C=(1.5+3)/2=2.25입니다. A에 C의 정보가 처음 들어오고(2홉), 최댓값−최솟값이 6→1.5→0.75로 줄어 노드 값이 서로 비슷해집니다.

직접 실험해 보기

층 수를 0에서 4까지 한 칸씩 올리며 노드 값 badge와 footer의 분산을 기록하고, 분산이 가장 크게 줄어드는 층과 값이 거의 같아지는 층을 찾으세요.

LIVE EXPERIMENT · MESSAGE PASSING

층을 쌓으며 이웃의 평균을 받아 보기

노드를 눌러 그 노드의 계산을 보세요. 갱신 규칙: 다음 층 값 = (자기 값 + 이웃 값들)의 평균
A9B7C4D1E0F3
0층의 C = 4 (초기 특징)층을 하나 올리면 자기 값과 이웃 값의 평균으로 바뀐다
층별 노드 값 분산(모집단 분산)과 감소폭. 층이 깊어질수록 값이 비슷해지는 과평활화
층분산감소폭최댓값−최솟값
0층10.00—9.00
1층1.96−8.043.75
2층0.46−1.501.56
3층0.11−0.340.73
4층0.03−0.080.35

이번에는 직접 풀어 보세요

정답을 보기 전에 계산과 이유를 적어 보세요. 해설과 비교하고 확인 표시를 남기면 완료할 수 있습니다.

문제 1
힌트 보기

A와 D의 거리는 3홉입니다. 층마다 C, B, A 순으로 정보가 한 칸씩 이동합니다.

풀이와 비교하기

1층: C=(0+0+12)/3=4, D=(12+0)/2=6이고 A·B는 0입니다. 2층: B=(0+0+4)/3≈1.33이고 A는 여전히 0입니다. 3층: A=(0+1.33)/2≈0.67로 처음 0이 아닙니다. 정보가 층마다 한 홉씩 전달되므로 거리 3인 D의 영향은 3층에서야 A에 닿습니다.

풀이와 확인 표시는 이 브라우저에 저장됩니다.

YOUR NOTES

오늘 이해한 것과 다시 볼 것

계산이 달라진 이유, 헷갈린 개념, 다음에 확인할 질문을 남겨 보세요.

메모는 이 브라우저에 저장됩니다. 홈에서 전체 기록을 내려받을 수 있습니다.

오늘의 이해 확인

평균으로 이웃을 집계하는 GNN에서 층 수를 계속 늘릴 때 나타나기 쉬운 현상은?

완료 조건: 확인 퀴즈 정답 · / 직접 풀기 0/1

FURTHER READING

더 깊이 읽기

예제와 실험 데이터는 이 과정을 위해 만든 것입니다. 원문은 선택 자료이며, 강의와 직접 풀기만으로도 다음 회차를 이어갈 수 있습니다.

Neural Message Passing for Quantum ChemistryGilmer et al. (2017)Semi-Supervised Classification with Graph Convolutional NetworksKipf & Welling (2017)Deeper Insights into Graph Convolutional Networks for Semi-Supervised LearningLi, Han & Wu (2018)

이 자료는 개념 학습용입니다. 실제 데이터베이스·라이브러리·플랫폼의 동작과 설정은 제품과 버전마다 다를 수 있습니다.