이번에 더 배울 것
GraphSAGE(Hamilton, Ying & Leskovec 2017)는 노드마다 벡터를 따로 학습하는 대신, 이웃의 특징을 샘플링하고 집계해 벡터를 만드는 ‘함수’를 학습합니다. 그래서 학습 때 없던 노드나 새 그래프에도 특징만 있으면 벡터를 계산할 수 있습니다(귀납적, inductive). 이웃은 고정 크기로 균일하게 샘플링하며, 논문은 깊이 K=2에 1홉 25개·2홉 10개를 기본 설정으로 썼습니다. 집계 함수로는 평균(mean), LSTM, 풀링(pooling)을 비교했고, 자기 표현과 집계한 이웃 표현을 이어 붙인(concatenate) 뒤 변환합니다.
GAT(Veličković et al. 2018)는 이웃마다 다른 가중치를 학습합니다. 노드 i와 이웃 j의 변환된 특징을 이어 붙여 점수 e_ij를 만들고(LeakyReLU 적용), 이웃들 사이에서 softmax로 정규화해 어텐션 계수 α_ij를 얻은 뒤 가중합을 냅니다. 그래프에 실제로 있는 이웃에 대해서만 계산하는 마스크드 어텐션(masked attention)이며, 여러 개의 어텐션 헤드를 두어 학습을 안정시킵니다.
두 방법은 다른 문제를 겨냥합니다. GraphSAGE의 샘플링은 허브 노드의 계산량을 고정하지만, 뽑히지 않은 이웃의 정보는 그 계산에서 빠집니다. GAT의 가중치는 중요한 이웃을 강조하지만 모든 이웃의 점수를 계산해야 하고, 학습된 가중치를 곧바로 ‘이유’로 해석하기는 어렵습니다. 어느 쪽이든 층 수와 과평활화 문제는 그대로 남습니다.
작은 예제로 따라가기
이웃이 10,000명인 허브: 전체 집계는 1홉에서만 10,000개를 읽지만, GraphSAGE(1홉 25개, 2홉 10개)는 많아야 25 + 25×10 = 275개 노드만 읽습니다.
GAT: 이웃 세 명의 점수 e = (2, 1, 0)이면 exp 값 7.39, 2.72, 1.00, 합 11.11이라 α ≈ (0.67, 0.24, 0.09)입니다.
이웃 특징이 (10, 4, 1)이면 평균은 5지만 GAT 가중합은 약 0.67×10 + 0.24×4 + 0.09×1 ≈ 7.7로 첫 이웃 쪽으로 치우칩니다.
세 가지 상황에서 집계 방식 고르기
각 상황에서 전체 평균(GCN식), 샘플링(GraphSAGE), 어텐션(GAT) 가운데 무엇이 문제를 가장 줄일지 먼저 골라 보세요.
고정 크기 샘플링이 계산량을 묶어 둡니다. 대신 뽑히지 않은 이웃의 정보는 빠집니다.
학습을 시작하면 새 문제를 직접 풀고 확인 퀴즈를 마친 뒤 선택한 본과정 회차로 돌아갑니다.