Lecture 1

Introduction - Machine Learning for Graphs
LEC01
Author

Eunsung Shin

Published

July 6, 2022

1.1 - Why Graphs

그래프란?

⇒ a general language for describing and analyzing entities with relations/interactions

⇒ 서로 관계/상호작용하는 entity들을 설명하고 분석하기 위한 언어라고 할 수 있음 (여기서 entity란 정보의 세계에서 의미있는 하나의 정보 단위)

  • 그래프 예시
    • event graphs
    • computer networks
    • disease pathways
    • food webs
    • particle networks
    • underground networks
    • social networks
    • economic networks
    • communication networks
    • citation networks
    • internet
    • networks of neurons
    • knowledge graphs
    • regulatory networks
    • scene graphs
    • code graphs
    • molecules
    • 3D shapes

⇒ 그래프로 세상에 일어나는 모든 현상과 구조들을 설명할 수 있다(broadly applicable).

(관심있는 분야의 현상을 그래프로 표현하여 딥러닝 모델 구조로 변환할 수 있는 능력이 있다면…)

e.g) 분자 구조, 3D 이미지 모형(voxel), 먹이사슬, 소셜 네트워크 등

(graph와 network의 차이?)

그래프에서 얻을 수 있는 정보 유형

  • 데이터 포인트 간의 구성(organization)과 연결
  • 유사한 데이터 포인트 간의 밀접성(similarity)
  • 데이터 포인트 간의 연결들이 이루는 그래프 구조

그래프가 갖는 구조를 어떻게 활용해 나은 예측을 할 수 있을까?

⇒ 현상을 명시적(explicitly)으로 잘 반영한 그래프 모델링이 중요하다!

그래프 ML이 더 어려운 이유?

⇒ arbitrary size and complex topology

⇒ spatial locality(공간 지역성)가 없다

⇒ 이미지나 텍스트 인풋의 경우 어느 한 데이터포인트로부터 다른 데이터 포인트 간 상대적 위치가 정해져있다(e.g 상하좌우). 하지만, 그래프의 경우 축이 되는 데이터 포인트가 존재하지 않는다.

그래프를 사용한 딥러닝

⇒ 인풋으로는 그래프를 받고, 아웃풋으로는 아래와 같은 형식(ground truth도 동일한 형식)이 가능하다. >

  • node-level
  • edge-level
  • graph/subgraph generation
  • graph/subgraph classification

그래프 딥러닝 모델에서 우리가 바라는 플로우


위 플로우를 거친 좋은 성능의 모델을 만들기 위해서는, 인풋이 현상을 잘 반영한 embedding vector로 변환될 수 있도록 학습하는 것이 중요하다.(Representation Learning)

  • 코스 과정동안 배울 그래프 방법들
    • traditional methods : graphlets, graph kernels
    • node embeddings : DeepWalk, Node2Vec
    • Graph Neural Networks : GCN, GraphSAGE, GAT, Theory of GNNs
    • Knowledge graphs and reasoning : TransE, BetaE
    • Deep Generative Models for graphs
    • Applications

1.2 - Applications of Graph ML

그래프 ML은 다양한 태스크 커버가 가능하다

  1. Node Level(node classification)

example1) protein folding (구글의 알파폴드)

  • 배경 : 단백질은 아미노산으로 이루어져있는데, 복잡한 3D 입체 구조의 아미노산 연결 때문에 단백질 구조를 파악하는 태스크는 많게는 1-2년까지 걸린다고 함.
  • key idea : spatial graph
    • graph : 단백질
    • nodes : 아미노산
    • edges : 사슬구조
  1. Edge Level

example1) Recommender system (PinSage)

  • nodes : users and items

  • edges : user-item interactions

example2) drugs and side effects

  • nodes : drugs & proteins
  • edges : interaction

using 2 heterogeneous graphs(drugs & proteins)

스크린샷 2022-07-05 오후 11.15.49.png

⇒ drug A와 B를 함께 썼을 때, 생길 수 있는 interaction(edge)는 무엇인가?

  1. Community(subgraph) level

example1) Traffic Prediction

  • nodes : Road Segments(도로 구간)
  • edges : 도로 구간 교차점

⇒ 아웃풋 : 도착 예정 시간

  1. Graph-level prediction

4-1) graph classification

example1) drug discovery

  • nodes : atoms
  • edges : chemical bonds
  • graph : molecules

⇒ 노드와 에지 정보를 통해 그래프(분자) 예측

4-2) Graph-level generation

example1) drug generation

  • nodes : atoms
  • edges : chemical bonds
  • graph : moelcules

⇒ 새로운 그래프(분자) 생성

example2) physics simulation (graph evolution)

  • nodes : particles
  • edges : interaction between particles

⇒ t시점 전의 정보로 t시점 이후의 그래프 생성

1.3 - Choice of Graph

그래프 구성요소

objects : nodes, vertices

Interactions : links, edges

system : network, graph

**object와 interactions로 이루어진 데이터 구조 ⇒ graph

그래프로 세상에 일어나는 모든 현상과 구조들을 설명할 수 있다(broadly applicable).

  • 표현법에 따라 그래프의 활용방법은 무궁무진하다. 중요한 것은 적절한 표현을 선택하는 것.
  • 설명하고자하는 현상을 그래프로 정의하고 싶다면, 먼저 아래 두가지 질문을 하자.
    1. what are nodes?
    2. what are edges?

Directed vs Undirected Graphs

’페이스북의 친구와 인스타그램의 팔로우’는 directed와 undirected graph를 이해하기에 좋은 예이다.

Node Degrees (차수)

  • undirected graph
    • undirected graph의 경우, node degree는 해당 노드에 연결된 에지의 총 갯수
    • average degree는 연결된 에지의 총 갯수 곱하기 2(쌍방향 연결이기 때문)를 그래프를 이루는 전체 노드 수로 나눈 값
  • directed graph
    • directed graph의 경우, 해당 노드로 향하는 in-degree와 해당 노드로부터 뻗어나가는 out-degree로 나눌 수 있다. node degree는 이 in-degree와 out-degree의 합.

Bipartite Graph

  • 자주 등장하는 또다른 그래프의 종류는 bipartite graph(이분 그래프)이다.
  • 이분 그래프는 2개의 집합 U와 V의 interaction을 나타낸 그래프이다. U와 V는 서로 독립적인 집합이며, 같은 집합의 원소끼리는 연관되지 않는다. e.g) A와 B 간 연결X
  • 이분 그래프의 예로는 구매자-구매 아이템 관계 등이 있다.

Folded/Projected Bipartite Graph

  • Bipartite 그래프에서 집합 간의 요소들 간의 상관관계가 명시되어있다면 Folded 또는 Projected Bipartite Graph라고 부른다.

(정보에 depth가 생긴다는 의미에서 folded라고 붙인듯하다.)

Adjacency Matrix

  • 그래프의 노드 간 연결관계(edge)를 나타낸 매트릭스이다.
  • 각 행과 열은 노드의 번수를 의미하고, 0은 연결되지 않음, 1은 연결됨을 의미한다. 만약 3번째 행에 4번째 열이 1이라면, 3번 노드와 4번 노드는 연결되어있음을 의미한다.
  • undirect graph라면, 주대각선을 기준으로 adj matrix는 대칭이고, directed graph라면, 대칭이 아닐 수도 있다.
  • adjacency matrix는 컴퓨터가 그래프를 이해할 수 있는 형태이지만, 문제는 노드의 수가 수백개에서 수십만개로 늘어나고, 많은 노드들의 연결이 몇 개 없을 때, 메모리 사이즈에 비해 0인 값이 너무 많게되는 문제(sparse)가 발생한다.

Edge List

  • Edge List는 그래프를 엣지들의 리스트로 나타낸 값이다.
  • 서로 연결된 노드를 짝지어 리스트에 배열한다.
  • 그래프가 크고 sparse할 때 유용하다.

Node and Edge Attributes

⇒ 노드와 엣지로 나타낼 수 있는 값들은 어떤 것들이 있을까?

⇒ 그래프에서 어떤 정보들을 얻을 수 있을까?

  • weight (e.g., frequency of communication)

    • 엣지가 0과 1 이외의 값을 갖는다면?

  • ranking (best friend, second best friend, …)

  • type (friend, relative, co-worker)

  • sign (+ / - )

  • properties depending on the structure of the rest of the graph : Number of common friends

More Types of Graphs

  • Connected(undirected) graph

**연결이 부분적으로만 되어 있어도, 그래프는 adjacency matrix에 표현 가능하다.

Connectivity of Driected Graphs

  • Strongly connected directed graph

    • 모든 노드들이 다른 모든 노드들로 방향 상관없이 다다르는 path가 항상 있다면, strongly connected directed graph이다.
  • Weakly connected directed graph

    • 에지 방향을 무시했을 때, 노드 간 전부 연결되어있다면, weakly connected directed graph이다.
  • Strongly connected components(SCC)

    • 그래프에 속한 다른 노드들 전부는 아니지만, 해당 그룹 간의 연결이 한 노드에서 다른 노드로 항상 도달할 수 있다면(strong connection)한다면, 그 그룹을 strongly connected components라고 지칭한다.