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

걸으며 배우는 노드 벡터

그래프 × LLM 파트의 첫 회차입니다. 노드를 숫자 벡터로 바꾸는 가장 직관적인 방법, 그래프 위를 무작위로 걸으며 ‘함께 나타난 노드’를 세는 방법을 살펴봅니다.

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

이번 회차, 내 속도로.

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

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

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

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

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

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

복귀: DAY 76 → 본과정 다음 회차: DAY 77

핵심 개념

기계 학습 모델과 벡터 검색은 숫자 벡터를 입력으로 받습니다. 노드 임베딩(node embedding)은 각 노드를 d차원 실수 벡터로 바꾸되, 그래프에서 가깝거나 비슷한 노드가 벡터 공간에서도 가깝게 놓이도록 학습하는 방법입니다. DAY 6의 인접 행렬 한 행도 벡터이지만 길이가 노드 수 N과 같고 대부분 0이어서, 두 노드가 얼마나 비슷한지 직접 말해 주지 못합니다.

DeepWalk(Perozzi, Al-Rfou & Skiena 2014)는 짧게 자른 랜덤 워크를 ‘문장’, 노드를 ‘단어’로 봅니다. 워크를 많이 만든 뒤 word2vec의 스킵그램(skip-gram)으로, 한 워크 안에서 창(window) 거리 이내에 함께 나타난 노드를 서로의 문맥으로 예측하도록 학습합니다. ‘비슷한 문맥에 나오는 단어는 뜻이 비슷하다’는 언어 모델의 가정을 그래프로 옮긴 것이어서, 워크에서 자주 함께 나타나는 노드의 벡터가 가까워집니다.

node2vec(Grover & Leskovec 2016)은 걸음에 성향을 줍니다. 직전 노드 t에서 v로 왔을 때, 다음 후보 x의 가중치를 t와 x 사이의 거리로 정합니다. 거리 0(t로 되돌아감)이면 1/p, 거리 1이면 1, 거리 2(t에서 멀어짐)면 1/q입니다. p는 귀환(return) 매개변수, q는 안팎(in-out) 매개변수입니다. q>1이면 t 근처에 머무는 BFS 같은 걸음, q<1이면 바깥으로 나가는 DFS 같은 걸음이 되며, DeepWalk는 p=q=1인 특수한 경우입니다. 논문은 BFS 성향이 비슷한 구조적 역할(예: 각 무리의 허브)을, DFS 성향이 같은 커뮤니티를 더 잘 드러낸다고 설명합니다.

한계도 분명합니다. 이렇게 얻은 벡터는 학습에 쓴 그래프의 노드에만 있어서 새 노드가 생기면 다시 학습해야 하고, 무작위성 때문에 실행마다 좌표 자체는 달라집니다. 무엇보다 두 벡터가 가깝다는 것은 ‘워크에서 자주 함께 나왔다’는 뜻일 뿐, 둘 사이에 어떤 종류의 관계가 있는지는 말해 주지 않습니다. 관계의 종류까지 담으려면 다음 회차의 TransE 같은 방법이 필요합니다.

랜덤 워크에서 함께 나타난 노드는 가까운 벡터가 되고, node2vec의 p·q는 그 걸음이 무리 안에 머물지 바깥으로 나갈지를 조절합니다.

작은 예제로 따라가기

01

워크 민수→지아→하린→도윤→유나에서 창 크기 1이면 이웃한 4쌍, 창 크기 2면 (민수,하린)·(지아,도윤)·(하린,유나)가 더해져 7쌍이 ‘함께 나온 쌍’이 됩니다.

02

node2vec 워크가 지아에서 하린으로 막 왔다면, 하린의 이웃 지아(거리 0)·서준(거리 1)·도윤(거리 2)의 가중치는 차례로 1/p, 1, 1/q입니다.

03

p=1, q=0.5면 가중치 1:1:2라 확률은 0.25·0.25·0.5로 다른 무리의 도윤 쪽으로 나갈 확률이 가장 큽니다. q=2면 1:1:0.5라 0.4·0.4·0.2로 지아가 속한 무리에 머물 확률이 커집니다.

직접 실험해 보기

p·q를 ‘BFS 성향’과 ‘DFS 성향’으로 바꿔 가며 워크를 생성하고, 공출현 표에서 하린–도윤처럼 두 무리를 잇는 쌍과 같은 무리 안의 쌍이 각각 몇 번 나오는지 비교하세요.

LIVE EXPERIMENT · NODE2VEC WALK

p·q로 랜덤 워크의 성향 바꾸기

민수1회지아3회서준3회하린1회도윤유나태오보라
워크 1의 두 번째 걸음: 이전 t=민수, 현재 v=지아 → 실제로 서준 선택
후보 xd(t,x)가중치확률
민수01/p = 144%
서준1144%
하린21/q = 0.2511%
창 2 안에서 함께 나온 횟수 (워크 3개 · 상위 6쌍 + 다리 쌍 하린–도윤 고정)
쌍공출현관계
서준–지아8같은 무리
보라–유나5같은 무리
서준–하린5같은 무리
유나–태오4같은 무리
지아–하린4같은 무리
민수–지아3같은 무리
하린–도윤0다리(무리 넘음)
다른 무리에 들어간 워크 20%같은 p·q·길이로 400개 워크(노드당 50개, 고정 시드)를 돌린 통계 · 워크당 고유 노드 3.69개. 공출현이 많은 쌍일수록 word2vec(skip-gram) 학습 후 벡터가 가까워진다.

이번에는 직접 풀어 보세요

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

문제 1
힌트 보기

하린은 직전 노드라 거리 0(가중치 1/p)이고, 유나와 태오는 하린과 직접 연결되지 않아 거리 2(가중치 1/q)입니다.

풀이와 비교하기

가중치는 하린 1/0.5=2, 유나 1/2=0.5, 태오 0.5로 합이 3입니다. 확률은 하린 2/3≈0.67, 유나와 태오 각각 1/6≈0.17입니다. p가 작아 되돌아가기 쉽고 q가 커서 멀리 나가기 어려우므로, 출발점 근처에 머무는 국소적(BFS 성향) 걸음입니다.

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

YOUR NOTES

오늘 이해한 것과 다시 볼 것

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

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

오늘의 이해 확인

DeepWalk가 랜덤 워크를 ‘문장’처럼 다루는 이유로 가장 알맞은 것은?

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

FURTHER READING

더 깊이 읽기

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

DeepWalk: Online Learning of Social RepresentationsPerozzi, Al-Rfou & Skiena (2014)node2vec: Scalable Feature Learning for NetworksGrover & Leskovec (2016)

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