[부스트캠프 AI Tech 5기] Graph Neural Networks

GNN과 GCN
Graph Data Structure


- 그래프는 directed/undirected, weighted/unweighted 등으로 나뉘어 짐
Representation Learning

- 어떤 특징을 추출하는가?
- GNN은 그래프 구조를 통해 특징을 추출

- 일련의 과정을 통해 Node를 분류, Graph를 분류, 새로운 Link를 예측하는 3가지 Task로 나뉨
Brief History

- Spectral 방법론에서, GCN의 등장으로 Spatial filtering 위주의 방법론으로 바뀜
- GCN과 GAT를 공부할 예정
- Spatial GCN : Neighborhood aggregation
Matrix Representatoin
Adjacency Matrix

- Self Loop 등이 포함될 수 있으며, Undirected일 경우에는 대칭행렬이 아닐 것
- 이외에도 Node Feature matrix, Degree Matrix, Laplacian Matrix 등이 있음
- 그래프를 Matrix로 변환한 뒤, NN을 통과시켜 학습 시킬 것
GCN

- 이미지와 Sequence도 어떻게 보면 Graph의 형태
- 차이점이라면, CNN은 Locality가 중요함 (거리가 중요)
- Graph는 거리는 상관 없고, 관계성이 중요
- EX) Social Networks, E-commerce

- 인접 노드의 벡터들을 CNN 처럼 중간으로 모으는 과정

- 결국 AHW가 GCN의 수식
- CNN의 Convolution과 의미상으로 같다는 것

- 인접행렬 A는 neighbor node의 연결만 표현하기에, 노드 자체의 feature를 고려한 Identity matrix를 더해줘야 함
- A는 정규화되어 있지 않기에, 차수로 정규화 해주어야 함
Graph Attention Network (GAT)



- 주변 정보를 가져올 때, Attention Score 만큼 가중치를 주겠다는 아이디어
- GAT의 Multi-head Attention은 Attention을 여러번 수행하여 Concat or Average 하는 것
- Attention Score는 dot product, weighted dot product 등 다양한 방법이 있는데 concat한 후 mlp를 통과시키는 방법도 존재
Receptive Field

- CNN에서 Layer가 깊어질 수록 이웃 정보가 넓어지는 것 처럼 GCN에서도 동일한 구조
- GCN에서는 K-hop으로 표현
Over-Smoothing

- hop이 늘어날수록 노드의 representation이 모두 유사해져버리는 단점 over smoothing이 존재
- 실험적으로 4~5 hop 이상이면 over smoothing이 발생한다고 알려져 있음
- Node dropout(노드와 연결된 모든 엣지가 사라짐), Edge dropout(엣지가 사라짐), Layer-Wise Edge Dropout(Random Walk), PairNorm(Centering 하고 Rescailing을 통해 node를 펼침) 등을 통해 이 현상을 방지할 수 있음
결론

- GNN은 Node feature matrix와 Adjacency Matrix를 통해 aggregate 및 combine으로 효율적인 node embedding을 찾는 과정
- 여기서 graph 단위의 task를 수행할때에는 node를 더하거나, concat하는 readout 과정이 수행 됨