투빅스 사람들과 함께 GNN 스터디를 시작했다. 유튜브에 공개된 스탠포드 대학의 CS224W 강의를 기반으로 진행될 예정이다. 그래프 이론들이 자연어에서 지식 그래프 등으로 활발히 활용되고, 이외에도 다양한 방식으로 활용되는 것 같아 이후에 어떻게 사용될지 모르지만 우
이전의 강의에서 그래프를 이용한 머신러닝은 세가지 차원에서 다뤄진다고 했다. Node, Line, Graph 세가지 차원이다. Node level prediction은 해당 노드의 특징들이 어떠한 지 예측한다. Link level prediction은 두 노드 간의 링
노드 임베딩을 다루기 전에, 이전의 머신러닝 기법이 어떻게 그래프를 다뤘는지 다시 한번 생각해보자. 머신러닝 기법들은 그래프를 각각의 도메인과 태스크에 맞게 feature engineering하여 노드, 링크, 그래프 레벨의 변수들을 생성했다. 그리고 이렇게 만들어진
이번 강의에선 구글이 과거 "구글"이 될 수 있었던 중요한 검색 알고리즘 페이지 랭크를 다룰 것이다. 지금이야 무척이나 다른 알고리즘을 사용하지만 구글의 두 창업자가 페이지 랭크를 이용해서 처음 구글을 공개했을 때만 해도 무척이나 좋은 성능을 보이는 획기적인 알고리즘이
이번 수업에서 다룬 내용은 한 그래프에서 특정 노드들에 레이블에 매겨져 있을 때, 다른 노드들에 레이블을 매기는 방법에 대해 다루게 된다. 즉, 아래 그림과 같이 그래프 전체에서 일부 노드에 레이블이 있고, 나머지 노드에는 레이블이 없을 때, 이를 예측하는 방법론을 다
앞서 이야기한 내용들을 잠깐 정리하고 시작하도록 하자.우리가 노드 임베딩을 통해 이루고자 한 것은 노드들을 임의의 d차원 벡터로 나타내려고 한 것이다. 이때, 잘 임베딩한다는 것의 정의를 다음과 같이 내렸다. 그래프 내에서 유사한 두 노드 $u, v$가 인코더를 통과한
앞선 수업에선 GNN의 대략적인 개념을 살펴보았다. 이제 좀 더 심화된 GNN 모델들을 살펴볼 예정인데, 이때 간단한 모델에 비해 달라질 수 있는 부분이 어디인지 생각해보자. Message GNN은 결국 그래프 구조를 따라서 중심이 되는 노드에 메세지를 전달하는 모델이
GNN의 Framework는 다음과 같은 요소로 구성되어 있었다. Message TransformationMessage AggregationLayer ConnectivityGraph AugmentationLearning Objective이전 강의에서 1 ~ 3에 대해
이번엔 지금까지 배웠던 다양한 GNN 모델에 대해 한번 다시 생각해보는 시간을 갖도록 하자. GNN의 핵심적인 아이디어는 결국 이웃 노드의 정보를 이용해 노드 임베딩을 생성하는 것이다. 이때 1) 이웃노드의 정보를 모으고 2) 모아진 정보를 가공하여 각 레이어에서의 노
이전까지 우리가 다뤄왔던 그래프는 모두 한 종류의 엣지와 노드를 가진 그래프였다. 하지만 다양한 종류의 엣지와 노드를 가진 그래프가 존재한다. 이번엔 이러한 그래프를 다루는 방법에 대해 배워보도록 하자. 우선 heterogenous graphs에 대해 정의해보자.
이번엔 지난 시간에 다룬 지식 그래프를 이용해 새로운 지식을 얻어내는 방법을 알아보도록 하자. 이전에 배운 KG completion task는 head와 relation이 주어졌을 때, 현재 그래프에 연결되어 있지만, 연결될 가능성이 높은 tail을 예측하는 태스크였다