Lecture1. Machine Learning with Graphs

🤔 Why Graph


<aside> 💡 What is Graph?

</aside>

Untitled

Graph는 Entity간의 관계와 상호작용을 설명하고 분석하기 위해 사용되는 일반적인 언어이다. 이는 각 레코드를 독립된 데이터 포인트로 생각하는게 아니라, 관계적인 측면에서 해석한다는 뜻이다.

Graph로 표현될 수 있는 도메인의 대표적인 예로는 컴퓨터 네트워크, 전염병 경로, SNS등이 있다. 이런 도메인을 Graph로 표현하면, Entity사이의 관계를 잘 캡쳐할 수 있다. 또 지식이나 사실을 Entity사이의 관계로 표현할 수 있는데 장면에 대한 설명(Scence Graph), 혹은 코드에 대한 추상적인 구조(Code Graph)등이 그 예이다.

CS224W에서 다룰 메인 주제는 Relational Structure(Graph)를 활용하여 어떻게 더 나은 Prediction을 하는가이다. 이 주제를 풀어서 얘기하면, Relational Structure를 가진 복잡한 도메인은 Graph로 표현이 가능하며 Graph를 이용해 이런 관계들을 명시적으로 묘사함으로서, 더 나은 Perforamance를 얻는다는 뜻이다.


<aside> 💡 Why is Graph Deep Learning Hard?

</aside>

현대 딥러닝의 ToolBox는 단순한 시퀀스, 그리드같은 데이터 유형에 대해 특화되어 있다. 예를들어 텍스트나 음성은 선형적인 구조를 갖고 있고 이미지는 Fixed Size Grid 구조를 갖고있으며, 현대 딥러닝 모델들은 이러한 입력을 처리하는데 매우 뛰어나다 (RNN, CNN)

Untitled

Graph는 훨씬 복잡한 구조를 가지고 있어 모델링이 어려운데, 예를 들면 다음과 같다.

  1. 임의의 크기와 복잡한 Topology를 가지고 있다.
  2. 고정된 기준점이나 순서가 없기때문에 Spatial Locality라는 개념이 없다.
  3. 네트워크 자체가 종종 Dynamic하며, Multi-Modal Feature를 갖는다.

CS224W는 Graph같은 복잡한 데이터 유형에 대해 딥러닝 모델링을 하는 법에 대해 다루며, Graph에 대한 모델링은 실제로 아직도 개척중인 분야이다.


<aside> 💡 Deep Leaning in Graph

</aside>