그래프 데이터를 다룰 때, 적절한 그래프 표현 방식을 선택하는 것은 문제를 성공적으로 해결할 수 있는 능력을 결정하는 중요한 요소이다. 그래프는 다양한 방식으로 표현될 수 있으며, 각 도메인에 맞는 표현을 선택하는 것이 매우 중요하다. 이 장에서는 일반적인 그래프의 형태에서부터 이종 그래프, 방향 및 무방향 그래프, 이분 그래프까지 다양한 그래프 표현 방식에 대해 알아보겠다.
동종 그래프는 가장 일반적인 그래프 유형으로, 노드와 엣지가 동일한 유형의 특징을 가지고 있다. 이러한 그래프는 다음과 같은 방식으로 표현된다:
노드를 배우로, 엣지를 영화 출연 관계로 정의할 수 있다. 이 경우 배우 A와 배우 B가 같은 영화에 출연했다면, 두 배우를 연결하는 엣지가 존재하게 된다.
이종 그래프는 동종 그래프와는 달리, 여러 종류의 노드와 엣지를 포함할 수 있다. 이러한 그래프는 현실 세계에서 자주 나타나는 복잡한 관계를 잘 표현할 수 있다.
이종 그래프에서는 노드를 배우와 영화로 나누고, 엣지는 배우와 영화 간의 출연 관계를 나타낼 수 있다. 예를 들어, 배우 A와 영화 B가 엣지로 연결되어 있다면, 이는 배우 A가 영화 B에 출연했다는 의미이다.
그래프를 어떻게 표현하는지에 따라, 그래프에서 도출할 수 있는 통찰력과 모델링 능력이 달라진다. 적절한 네트워크 표현은 문제 해결의 성공 여부를 좌우할 수 있으며, 특히 그래프 신경망(GNN)과 같은 복잡한 모델링 기법을 사용할 때 중요한 고려 사항이다.
그래프를 표현할 때, 방향성에 따라 그래프를 방향 그래프와 무방향 그래프로 구분할 수 있다. 이 장에서는 두 그래프 유형의 차이점과 그 활용에 대해 설명하겠다.
방향 그래프는 엣지에 방향이 부여된 그래프로, 연결된 두 노드 간의 관계가 단방향으로 설정되어 있다. 이는 노드 간의 관계가 단순히 연결 여부뿐만 아니라 어느 방향으로 연결되었는지가 중요한 경우에 사용된다.
트위터의 팔로우 관계를 생각해보자. 사용자 A가 사용자 B를 팔로우할 때, 이는 A에서 B로의 단방향 연결을 의미한다. 반대로, B가 A를 팔로우하지 않으면 B에서 A로의 연결은 없다.
무방향 그래프는 엣지에 방향이 없는 그래프이다. 노드 간의 연결 여부만 중요할 때 사용되며, 방향 정보는 고려되지 않는다.
페이스북의 친구 관계는 무방향 그래프의 대표적인 예이다. 두 사용자가 친구라면, 이는 양방향으로 서로 연결되어 있음을 의미하며, 어느 한쪽에서만 관계가 성립하는 것이 아니다.
이분 그래프는 노드를 두 개의 분리된 집합으로 나눌 수 있는 특수한 유형의 그래프이다. 이분 그래프의 노드들은 두 집합 사이에서만 연결될 수 있으며, 같은 집합 내의 노드끼리는 연결되지 않는다.
이분 그래프는 U와 V 두 개의 분리된 노드 집합으로 구성되어 있으며, 모든 엣지는 U와 V 사이에서만 연결된다. 즉, U에 속하는 노드들은 V에 속하는 노드들과만 연결되며, U와 V 각각의 내부에서는 노드끼리 연결되지 않는다.
저자-논문 관계를 나타내는 이분 그래프가 있다.
또 다른 예로, 배우-영화 관계를 들 수 있다.
그래프를 수학적으로 표현하기 위한 대표적인 방법 중 하나는 인접 행렬(adjacency matrix)을 사용하는 것이다. 인접 행렬은 그래프의 노드 간의 연결 여부를 행렬로 나타낸다.
향 그래프의 인접 행렬
무방향 그래프에서, 인접 행렬의 각 원소는 해당 노드 간에 연결이 있는지를 나타낸다.
행렬 구성:
무방향 그래프에서는 ( A{ij} = A{ji} )이므로 행렬이 대칭이다. 노드 ( i )와 노드 ( j )가 연결되어 있다면 ( A{ij} = 1 ), 연결되어 있지 않다면 ( A{ij} = 0 )으로 표시된다. 자기 자신과의 연결은 없기 때문에 ( A_{ii} = 0 )이다.
노드의 차수:
노드 ( i )의 차수(degree)는 해당 노드에 연결된 엣지의 수를 나타내며, 이는 인접 행렬에서 해당 행 또는 열의 값들의 합으로 구할 수 있다. 예를 들어, 노드 1의 차수는 행렬의 1행에서 1이 표시된 항목들의 합으로 계산된다.
1번 노드와 2번 노드가 연결되어 있다면, ( A{12} = 1 )이고, 그 외의 연결이 없는 노드들은 0으로 표시된다. 이때, 1번 노드의 차수는 ( A{11} + A{12} + A{13} = 2 )로 계산된다.
방향 그래프에서는 각 엣지에 방향이 존재하기 때문에, 인접 행렬이 대칭이 아닐 수 있다.
행렬 구성:
노드 ( i )에서 노드 ( j )로 연결되는 엣지가 존재하면 ( A{ij} = 1 )로 표시된다. 반대로, 노드 ( j )에서 노드 ( i )로 연결된 엣지가 없으면 ( A{ji} = 0 )이다. 마찬가지로, 자기 자신과의 연결은 ( A_{ii} = 0 )으로 표현된다.
방향성 고려:
방향 그래프에서는 각 엣지의 방향을 고려해야 하기 때문에, 인접 행렬이 대칭이 아닐 수 있다. 이 경우 ( A{ij} \neq A{ji} )일 수 있으며, 이는 노드 간의 연결 방향을 명확하게 나타낸다.
우리는 그래프 표현의 다양한 방법과 종류에 대해 살펴보았다. 동종 그래프와 이종 그래프로 시작하여, 방향 그래프, 무방향 그래프, 그리고 이분 그래프의 구조적 차이를 설명하였다. 마지막으로, 인접 행렬을 통해 그래프를 수학적으로 표현하는 방법을 배웠다. 올바른 그래프 표현을 선택하는 것은 그래프 신경망(GNN)과 같은 고급 모델링 기법을 성공적으로 적용할 수 있는 중요한 고려 사항이다.