CS224W - ML with Graphs 요약(1)
01 Aug 2021 | GNN1. 왜 그래프인가?
- 그래프는 관계와 상호작용이 있는 엔티티를 묘사하고 분석하기 위한 일반적인 언어이다.
- 예시
- 이벤트 그래프
- 컴퓨터 네트워크
- 질병 확산 경로
- 지식 그래프
- 소셜 네트워크
- 다양한 도메인에서 많은 관계적 구조를 그래프로 표현 할 수 있고, 이를 통해 더 좋은 성능을 낼 수 있다.
2. 그래프란 무엇인가?
- 그래프 \(G\) 는 노드들의 집합 \(V\) 와 노드 사이의 엣지들의 집합인 \(E\) 로 정의된다.
- 그래프의 종류
- undirected/directed graph
- weighted graph
- heterogeneous graph
- multiplex graph
- bipartite graph
- etc
- 그래프를 행렬로 표현하는 가장 간단한 방법 중 하나는 adjacency matrix로 표현하는 것이다.
- 그래프(또는 노드)를 표현하는 다양한 방법이 있고, 이를 앞으로 살펴볼 예정이다.
- 노드간의 관계 구조를 활용 할 수 있다.
- 노드의 특성을 표현할 수 있는 다양한 정보도 활용 할 수 있다.
3. 그래프에서 머신러닝
- 그래프에서의 머신러닝은 지도/비지도와 같이 전통적인 머신러닝의 분류로 구분하기 어렵다.
- 노드 분류(node classification) : 노드 특성 분류하기
- 예시 - SNS에서 봇 계정 분류하기
- 그래프에서 노드들은 i.i.d(independent and identically distrubuted)를 만족하지 않는다.
- 그래프에서는 노드를 독립적인 데이터 포인트로 다루지 않고, 노드 간의 관계를 이용해 모델링 할 수 있다.
- 관계 예측(relation prediction) : 두 노드 간의 잃어버린 관계 예측
- link prediction, graph completion, relational inference 등으로도 불림
- 그래프에서 일부 엣지를 제외하고 학습한 다음 제외한 엣지를 예측하도록 학습한다.
- 이 과정은 그래프 데이터 종류의 매우 의존적이다.
- 군집화와 커뮤니티 감지
- 그래프 분류, 회귀, 군집화
참고 자료
강의 - Leature 1
책 - Chapter 1