Graph는 node(vertex)와 edge로 관계를 표현하는 자료구조이자 수학적 모델이다. 사용자-아이템 상호작용, 웹 링크, 지식 그래프, social network처럼 “대상이 있고 대상 사이의 연결이 중요한” 문제를 다룰 때 기본 언어가 된다.

구성

기본적으로 graph는 로 쓴다. 는 node 집합이고, 는 node 사이의 edge 집합이다.

구분의미
Undirected graphedge에 방향이 없는 graph
Directed graphedge에 방향이 있는 graph
Weighted graphedge에 가중치가 있는 graph
Bipartite graphnode 집합을 둘로 나누고 서로 다른 집합 사이에만 edge가 있는 graph

ML에서 왜 중요한가

추천에서는 user-item bipartite graph가 기본 구조가 되고, GNN은 graph 위에서 neighborhood 정보를 모아 node representation을 만든다. Temporal interaction을 다룰 때는 Temporal Graph Network처럼 시간 축까지 함께 모델링한다.