: Graphs are a general language for describing and analyzing entities with relations/interactions.
Types of Networks and Graphs
Networks ( = Natural Graphs, 자연적으로 그래프 구조로 생긴 것)
Social networks
Communications and transactions
Biomedicine (genes/proteins)
Brain connections
Graphs (as a representation of relational structure, 관계를 표현하기 위해 그래프로 모델링 한 것)
Information/knowledge
Software
Similarity networks: Connect similar data points
Relational structures: Molecules, Scene graphs, 3D shapes, Particle-based physics simulations
💡 Main question : How do we take advantage of relational structure for better prediction?
복잡한 + 많은 관계를 relational graph로 모델링함으로써 더 좋은 성능을 기대할 수 있음!
⇒ But, 현대의 딥러닝 기법은 단순한 sequences & grid 구조의 데이터 타입을 위해 디자인 됨.
대표적으로 sequence & grid한 데이터 구조인 Images / Texts 에 비해 네트워크는 더 복잡한 구조를 가지고 있음
크기가 다양하고, 복잡한 모양을 가짐
위, 아래, 왼쪽, 오른쪽과 같은 공간상의 위치(spartial locality)가 없음
정해진 순서나 (출발점 같은) 기준점이 없음
dynamic하며 multimodal features를 동시에 포함하기도 함
This Course ...
💡 question : 어떻게 하면 Graph와 같은 complex한 data에 딥러닝을 적용할 수 있을까?
input : Network
output : Predictions
위 과정을 End-to-End로 할 수 있는 neural network architecture를 디자인
엔지니어가 적절한 feature를 디자인 하는데 많은 노력이 필요했던 전통적인 Feature Engineering(사용 X) → 그래프를 통해 downstream prediction task에 필요한 피처를 자동으로 학습하는 Representation Learing(O)
Representation Learning이란?
그래프의 node를 d-demensional vector로 임베딩
유사한 노드가 Embedding Space에 가까이 위치하도록 매핑
1.2 - Applications of Graph ML
Classic Graph ML Tasks
Node-level ML Tasks (Node classification): Predict a property of a node
Example:
Categorize online users / items
Protein Folding (e.g. AlphaFold) : 공간 상에서 노드의 위치를 예측
Edge-level ML Tasks (Link prediction): Predict whether there are missing links between two nodes
Example:
Knowledge graph completion
Recommender systems (e.g. PinSage): user-item interaction 예측
Given a pair of drugs → predict adverse side effects
Subgraph-level ML Tasks:
Traffic Prediction
Clustering: Detect if nodes form a community
Example: Social circle detection
Graph-level ML Tasks:
Graph generation: Drug discovery
Example:
Antibiotic Discovery
Molecule Generation / Optimization
Graph evolution: Physical simulation
Graph classification: Categorize different graphs
Example: Molecule property prediction
: 데이터 및 가능한 경우의 수가 많을 때 verify할 가치가 있는 Testset을 빠르게 찾는 Simulator의 역할
1.3 - Choice of Graph Representation
Components of a Network
Objects: nodes, vertices : denoted as N
Interactions: links, edges : denoted as E
System: network, graph : denoted as G(N,E)
How to build a graph:
What are nodes?
What are edges?
⇒ Choice of the proper network representation of a given domain/problem determines our ability to use networks successfully: The way you assign links will determine the nature of the question you can study
Directed vs. Undirected Graphs
1) Directed
Node degree, ki : node i 와 인접한(연결된) 엣지의 개수
Avg. degree : kˉ=⟨k⟩=N1∑i=1Nki=N2E
2) Undirected
source → destination 이 존재
in-degree, kcin
out-degree, kcout
total degree, kc = kcin+kcout
Avg. degree = NE
kcinˉ=kcoutˉ
Source: Node with kin = 0
Sink: Node with kout = 0
Bipartite Graph (이분 그래프)
: 두가지 diffirent types의 노드 종류를 가지며, 오직 다른 종류의 노드와 상호작용(같은 종류의 노드끼리는 연결되지 않음)하는 그래프를 말함.
→ 이를 Folded Network 개념으로 나타낼 수 도 있음.
Folded(=Projected) Bipartite Graphs
U-V 의 노드를 가지는 이분 그래프가 있다고 했을 때, 이를 Projection할 수 있음.
Projection U : U노드가 1개 이상의 공통된 V와 연결되어 있으면 Projection graph U의 노드를 연결
Ex) 이분 그래프의 1번, 2번 노드가 노드 A와 공통적으로 연결되어 있으므로 Projection U graph의 1번-2번 노드를 연결
U가 저자, V가 논문이라면 Projection U graph는 한번이라도 같이 논문을 쓴 적 있는 사람들을 연결한 그래프가 된다.
Projection V : V노드가 1개 이상의 공통된 U와 연결되어 있다면 Projection graph V의 노드를 연결
Ex) 이분 그래프의 A, B 노드가 노드 2와 공통적으로 연결되어 있으므로 Projection V graph의 A-B 노드를 연결
U가 저자, V가 논문이라면 Projection V graph는 같은 저자를 공유하는 논문을 연결한 그래프가 된다.