κ·Έλž˜ν”„ λ°μ΄ν„°λ‘œ ν’€ 수 μžˆλŠ” 문제

[λ²ˆμ—­] A Gentle Introduction to Graph Neural Networks β‘‘
GNN
GRAPH
TRANSLATION
Author

chichead

Published

March 17, 2023

What types of problems have graph structured data?

μ•žμ—μ„œ Part 1μ—μ„œλŠ” κ·Έλž˜ν”„μ˜ λͺ‡λͺ‡ 사둀λ₯Ό μ„€λͺ…ν–ˆμŠ΅λ‹ˆλ‹€. 이런 데이터λ₯Ό ν™œμš©ν•΄μ„œ μ–΄λ–€ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμ„κΉŒμš”? κ·Έλž˜ν”„μ— λŒ€ν•œ 예츑 μž‘μ—…μ„ 크게 3가지 레벨둜 λ‚˜λˆŒ 수 μžˆμŠ΅λ‹ˆλ‹€. κ·Έλž˜ν”„ μˆ˜μ€€, Node μˆ˜μ€€, Edge μˆ˜μ€€ μ΄λ ‡κ²Œ 말이죠.

κ·Έλž˜ν”„ μˆ˜μ€€μ—μ„œλŠ” 전체 κ·Έλž˜ν”„μ— λŒ€ν•΄μ„œ 단일 속성을 μ˜ˆμΈ‘ν•©λ‹ˆλ‹€. Node μˆ˜μ€€μ—μ„œλŠ” 각 Nodeκ°€ 가지고 μžˆλŠ” 일뢀 속성을 μ˜ˆμΈ‘ν•©λ‹ˆλ‹€. Edge μˆ˜μ€€μ—μ„œλŠ” κ·Έλž˜ν”„μ—μ„œ Edge 속성은 μ–΄λ– ν•œμ§€, λ˜λŠ” Edgeκ°€ μ‘΄μž¬ν•˜λŠ”μ§€ μ—¬λΆ€λ₯Ό μ˜ˆμΈ‘ν•©λ‹ˆλ‹€. 이 μ„Έ 가지 μˆ˜μ€€μ˜ 예츑 λ¬Έμ œλŠ” 단일 λͺ¨λΈ 클래슀인 GNN으둜 λ‹€ ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ¨Όμ € μ„Έ 가지 μˆ˜μ€€ λ³„λ‘œ ꡬ체적인 μ˜ˆμ‹œλ₯Ό 톡해 쑰금 더 μžμ„Ένžˆ μ‚΄νŽ΄λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.


Graph-level task

κ·Έλž˜ν”„ μˆ˜μ€€μ—μ„œμ˜ λͺ©ν‘œλŠ” 전체 κ·Έλž˜ν”„μ˜ 속성을 μ˜ˆμΈ‘ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 예λ₯Ό λ“€λ©΄ λΆ„μžμ‹μ„ κ·Έλž˜ν”„λ‘œ ν‘œν˜„ν•œ κ²½μš°μ—, λΆ„μžκ°€ μ–΄λ–€ λƒ„μƒˆλ₯Ό ν’κΈ°λŠ”μ§€ ν˜Ήμ€ μ§ˆλ³‘κ³Ό κ΄€λ ¨λœ μˆ˜μš©μ²΄μ— 결합할지λ₯Ό μ˜ˆμΈ‘ν•  수 있죠.

μ΄λŸ¬ν•œ 접근방식은 라벨을 이미지에 μ—°κ²°ν•˜λŠ” MNIST, CIFAR의 이미지 λΆ„λ₯˜ λ¬Έμ œμ™€ λΉ„μŠ·ν•©λ‹ˆλ‹€. ν…μŠ€νŠΈ λ°μ΄ν„°λ‘œ 보자면, 전체 λ¬Έμž₯의 λΆ„μœ„κΈ°λ‚˜ 감정을 νŒŒμ•…ν•˜λŠ” 이λ₯Έλ°” 감정 뢄석이 λΉ„μŠ·ν•œ 접근이라고 ν•  수 μžˆμ„ κ²λ‹ˆλ‹€.


Node-level task

Node μˆ˜μ€€μ˜ 예츑 μž‘μ—…μ€ ν•˜λ‚˜μ˜ κ·Έλž˜ν”„ μ•ˆμ—μ„œ 각 Node의 νŠΉμ„±μ΄λ‚˜ 역할을 μ˜ˆμΈ‘ν•˜λŠ” 게 μ£Όλͺ©μ μž…λ‹ˆλ‹€.

Node μˆ˜μ€€ 예츑 문제의 λŒ€ν‘œμ μΈ μ˜ˆλŠ” β€™μž¬μ»€λ¦¬ κ°€λΌν…Œ 클럽 λ°μ΄ν„°β€™μž…λ‹ˆλ‹€. 제컀리 κ°€λΌν…Œ 클럽 λ°μ΄ν„°λŠ” 클럽 λ‚΄ μ •μΉ˜μ  λΆˆν™”λ‘œ 클럽이 λ‘˜λ‘œ κ°ˆλΌμ§€λ©΄μ„œ, ν•œ κ³³μ—λ§Œ 좩성을 λ§Ήμ„Έν•œ μ‚¬λžŒλ“€λ‘œ κ΅¬μ„±λœ μ†Œμ…œ λ„€νŠΈμ›Œν¬ κ·Έλž˜ν”„μž…λ‹ˆλ‹€. 쑰금 더 μŠ€ν† λ¦¬λ₯Ό μ„€λͺ…ν•˜μžλ©΄ κ°€λΌν…Œ 강사 Mr. Hi와 κ΄€λ¦¬μž John A 사이에 λΆˆν™”κ°€ 생겨 κ°€λΌν…Œ 클럽이 λΆ„μ—΄λ©λ‹ˆλ‹€. νšŒμ›μ˜ 절반 κ°€λŸ‰μ΄ Mr. Hiλ₯Ό μ€‘μ‹¬μœΌλ‘œ μƒˆλ‘œμš΄ κ°€λΌν…Œ ν΄λŸ½μ„ κ²°μ„±ν•˜κ²Œ 되죠.

μ—¬νŠΌ κ·Έλž˜ν”„μ—μ„œ NodeλŠ” κ°œλ³„ κ°€λΌν…Œ μˆ˜λ ¨μƒμ„ λ‚˜νƒ€λ‚΄κ³ , EdgeλŠ” κ°€λΌν…Œ 클럽 λ°–μ—μ„œμ˜ νšŒμ›λ“€ κ°„μ˜ μƒν˜Έ μž‘μš©μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. μ—¬κΈ°μ„œ μ˜ˆμΈ‘λ¬Έμ œλŠ” λΆˆν™” 이후 νŠΉμ • νšŒμ›μ΄ Mr. Hi와 John A 쀑 μ–΄λŠ μͺ½μ— μΆ©μ„±ν•˜κ²Œ 될지 λΆ„λ₯˜ν•˜λŠ” κ±°μ£ . 이 경우 νŠΉμ • Node와 Mr. Hiμ™€μ˜ 거리, ν˜Ήμ€ John Aμ™€μ˜ κ±°λ¦¬λŠ” 좩성도와 높은 상관관계가 μžˆμŠ΅λ‹ˆλ‹€.

이미지 뢄석에 λΉ„μœ λ₯Ό ν•΄λ³΄μžλ©΄, Node μˆ˜μ€€μ˜ 예츑 λ¬Έμ œλŠ” 이미지 μ•ˆμ—μ„œ 각 ν”½μ…€μ˜ 역할에 λ ˆμ΄λΈ”μ„ μ§€μ •ν•˜λŠ” 이미지 λΆ„ν• (image segmentation)κ³Ό μœ μ‚¬ν•œ μ ‘κ·Όμž…λ‹ˆλ‹€. ν…μŠ€νŠΈ λΆ„μ„μ—μ„œλŠ” λ¬Έμž₯ μ•ˆμ—μ„œ 각 λ‹¨μ–΄μ˜ ν’ˆμ‚¬λ₯Ό μ˜ˆμΈ‘ν•˜λŠ” 것과 λΉ„μŠ·ν•˜μ£ .


Edge-level task

λ§ˆμ§€λ§‰μœΌλ‘œ 남은 예츑 λ¬Έμ œλŠ” Edge μ˜ˆμΈ‘μž…λ‹ˆλ‹€.

Edge μˆ˜μ€€μ˜ 예츑의 ν•œ 가지 μ˜ˆλŠ” 이미지 μž₯λ©΄ 이해(Image scene understanding)μž…λ‹ˆλ‹€. λ”₯λŸ¬λ‹ λͺ¨λΈμ€ μ΄λ―Έμ§€μ—μ„œ 객체λ₯Ό μ‹λ³„ν•˜λŠ” 것 외에도 객체 κ°„μ˜ 관계λ₯Ό μ˜ˆμΈ‘ν•˜λŠ” 데 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό Edge μˆ˜μ€€ λΆ„λ₯˜λΌκ³  ν‘œν˜„ν•  수 있죠. μ΄λ―Έμ§€μ˜ 객체(Node)듀이 주어지면 Node κ°€μš΄λ° μ–΄λ–€ Nodeκ°€ Edgeλ₯Ό μ„œλ‘œ κ³΅μœ ν•˜λŠ”μ§€, ν˜Ήμ€ κ·Έ Edge의 값이 무엇인지 μ˜ˆμΈ‘ν•©λ‹ˆλ‹€. 각 개체 κ°„μ˜ 연결을 λ°œκ²¬ν•˜κΈ° μœ„ν•΄μ„  κ·Έλž˜ν”„λ₯Ό μ™„μ „ κ·Έλž˜ν”„(Complete graph, λͺ¨λ“  Node간에 Edgeκ°€ μ‘΄μž¬ν•˜λŠ” κ·Έλž˜ν”„)둜 μ„€μ •ν•œ λ’€ 예츑된 값에 따라 Edgeλ₯Ό μž˜λΌλ‚΄λ©΄μ„œ ν¬μ†Œ κ·Έλž˜ν”„(Sparse graph, Node κ°œμˆ˜λ³΄λ‹€ Edge κ°œμˆ˜κ°€ 적은 κ·Έλž˜ν”„)에 도달할 수 μžˆμŠ΅λ‹ˆλ‹€.

원본 μ΄λ―Έμ§€μ—μ„œ 각 μ„ μˆ˜, μ‹¬νŒ, 관쀑, 맀트 λ“± 5개의 μ—”ν‹°ν‹°(Entities)둜 μ„ΈλΆ„ν™”ν•΄ κ·Έλ“€ μ‚¬μ΄μ˜ 관계λ₯Ό ν‘œν˜„ν•΄λ΄…λ‹ˆλ‹€

μ™Όμͺ½μ—λŠ” μ—”ν‹°ν‹° ꡬ뢄 전에 κ΅¬μΆ•λœ 초기 κ·Έλž˜ν”„κ°€ μžˆμŠ΅λ‹ˆλ‹€. 였λ₯Έμͺ½μ€ Edge 라벨링된 κ²°κ³Ό κ·Έλž˜ν”„μž…λ‹ˆλ‹€.


The challenges of using graphs in machine learning

κ·Έλ ‡λ‹€λ©΄ 신경망을 톡해 μœ„μ—μ„œ μ‚΄νŽ΄λ³Έ λ‹€μ–‘ν•œ κ·Έλž˜ν”„ μž‘μ—…μ„ ν•΄κ²°ν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Ό ν• κΉŒμš”? κ°€μž₯ λ¨Όμ € ν•΄μ•Ό ν•  건 신경망과 ν˜Έν™˜λ˜λ„λ‘ κ·Έλž˜ν”„λ₯Ό μ–΄λ–»κ²Œ ν‘œν˜„ν• μ§€ μƒκ°ν•˜λŠ” κ²λ‹ˆλ‹€.

λ¨Έμ‹ λŸ¬λ‹ λͺ¨λΈμ€ 일반적으둜 μ§μ‚¬κ°ν˜•μ΄λ‚˜ 격자λͺ¨μ–‘μ˜ 배열을 input κ°’μœΌλ‘œ λ°›μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ 이λ₯Ό λ”₯λŸ¬λ‹κ³Ό ν˜Έν™˜λ˜λŠ” ν˜•μ‹μœΌλ‘œ ν‘œν˜„ν•˜λŠ” 방법은 직관적이지 μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. κ·Έλž˜ν”„μ—λŠ” Node, Edge, κΈ€λ‘œλ²Œ μ»¨ν…μŠ€νŠΈ, μ—°κ²°μ„± λ“± μ˜ˆμΈ‘μ— 잠재적으둜 μ‚¬μš©ν•  수 μžˆλŠ” 4개의 정보가 μžˆμŠ΅λ‹ˆλ‹€. μ•žμ˜ 3κ°œλŠ” 비ꡐ적 κ°„λ‹¨ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄μ„œ Node의 경우 각각의 Node에 인덱슀 \(i\)λ₯Ό ν• λ‹Ήν•˜κ³  \(node_i\)의 νŠΉμ§•μ„ Node νŠΉμ§• ν–‰λ ¬(Node feature matrix) \(N\)에 넣을 수 μžˆμ„ κ²λ‹ˆλ‹€. μ΄λŸ¬ν•œ ν–‰λ ¬μ—λŠ” λ‹€μ–‘ν•œ μ˜ˆκ°€ μžˆμ§€λ§Œ νŠΉλ³„ν•œ 기술이 λ“€μ–΄κ°ˆ ν•„μš” 없이 μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν•˜μ§€λ§Œ κ·Έλž˜ν”„μ˜ 연결성을 ν‘œν˜„ν•˜λŠ” 건 λ³΅μž‘ν•©λ‹ˆλ‹€. μ•„λ§ˆλ„ κ°€μž₯ ν™•μ‹€ν•œ 방법은 μ‰½κ²Œ ν…μ„œν™”(Tensorisable)ν•  수 μžˆλŠ” 인접 행렬을 μ‚¬μš©ν•˜λŠ” 것일 κ²λ‹ˆλ‹€. ν•˜μ§€λ§Œ 이 방법은 λͺ‡ 가지 단점이 μžˆμŠ΅λ‹ˆλ‹€. μ–΄λ–€ κ·Έλž˜ν”„μ˜ Node μˆ˜λŠ” 수백만 κ°œμ— 달할 수 μžˆμŠ΅λ‹ˆλ‹€. 그리고 Node별 Edge μˆ˜λŠ” 맀우 가변적이죠. 이둜 인해 인접 행렬은 ν¬μ†Œ ν–‰λ ¬(Sparse matrix)이 될 κ°€λŠ₯성이 λ†’μ•„ 곡간이 λΉ„νš¨μœ¨μ μΈ κ²½μš°κ°€ λ§ŽμŠ΅λ‹ˆλ‹€.

또 λ‹€λ₯Έ λ¬Έμ œλŠ” λ™μΌν•œ 연결성을 인코딩할 수 μžˆλŠ” 인접 행렬이 λ§Žλ‹€λŠ” κ²λ‹ˆλ‹€. λ™μΌν•œ 연결성을 λ‚˜νƒ€λ‚΄μ§€λ§Œ λ‹€λ₯Έ λͺ¨μ–‘μ˜ 인접 행렬이 심측 μ‹ κ²½λ§μ—μ„œ λ™μΌν•œ κ²°κ³Όλ₯Ό μƒμ„±ν•œλ‹€λŠ” 보μž₯이 μ—†μ£ . 즉 λ‹€μ‹œ 말해 μˆœμ—΄ λΆˆλ³€(Permutation invariance, μž…λ ₯ 벑터 μš”μ†Œμ˜ μˆœμ„œμ™€ 상관없이 같은 좜λ ₯을 μƒμ„±ν•˜λŠ” νŠΉμ„±)이 μ•„λ‹ˆλΌλŠ” κ²λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄μ„œ μ•žμ„œ μ„€λͺ…ν•œ μ˜€μ…€λ‘œ κ·Έλž˜ν”„λŠ” μ•„λž˜ 두 인접 ν–‰λ ¬λ‘œ ν‘œν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


μ•„λž˜ μ˜ˆλŠ” 4개의 Node둜 κ΅¬μ„±λœ μž‘μ€ κ·Έλž˜ν”„λ₯Ό ν‘œν˜„ν•  수 μžˆλŠ” λͺ¨λ“  인접 행렬을 λ‚˜νƒ€λ‚Έ κ²λ‹ˆλ‹€. μΈμ ‘ν–‰λ ¬μ˜ κ°œμˆ˜λŠ” \(4! = 24\)개둜, μƒλ‹Ήν•œ μˆ˜κ°€ λ‚˜μ˜΅λ‹ˆλ‹€. μ˜€μ…€λ‘œ κ·Έλž˜ν”„μ™€ 같이 더 큰 λ°μ΄ν„°μ—μ„œλŠ” 인접 ν–‰λ ¬μ˜ μˆ˜λŠ” μ—„μ²­λ‚˜κ²Œ λŠ˜μ–΄λ‚  κ²λ‹ˆλ‹€.

λ©”λͺ¨λ¦¬ νš¨μœ¨μ„ κ³ λ €ν•œλ‹€λ©΄ 인접성 λͺ©λ‘μœΌλ‘œ ν¬μ†Œ ν–‰λ ¬(sparse matrices)을 ν‘œν˜„ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 인접성 λͺ©λ‘μ˜ k번째 ν•­λͺ©μ—λŠ” Node \(n_i\)와 Node \(n_j\) μ‚¬μ΄μ˜ Edge \(e_k\)의 연결성을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€. ν¬μ†Œ ν–‰λ ¬μ΄λ‹ˆλ§ŒνΌ Edge μˆ˜κ°€ ν–‰λ ¬μ˜ ν•­λͺ© 수 \(n^2_{nodes}\)) 보닀 훨씬 적을 ν…Œκ³ , 그만큼 κ·Έλž˜ν”„μ—μ„œ μ—°κ²°λ˜μ–΄ μžˆμ§€ μ•ŠλŠ” 뢀뢄에 λŒ€ν•œ 계산과 μ €μž₯을 ν”Όν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ˜ˆμ‹œμ—μ„œ λ³Έ κ·Έλ¦Όμ—μ„œλŠ” Node, Edge, Global에 슀칼라 값을 μ‚¬μš©ν–ˆμ§€λ§Œ, λŒ€λΆ€λΆ„μ˜ μ‹€μ œ ν…μ„œ ν‘œν˜„μ—μ„œλŠ” κ·Έλž˜ν”„μ˜ 각 속성당 벑터λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.