본문 바로가기
728x90
반응형

GNN20

[CS224w] Label Propagation on Graphs (2) - Label Propagation Label Propagationlabeled node는 ground truth label $Y_v^*$로 초기화한다.unlabeled node는 $Y_v = 0.5$로 초기화한다. Update each unlabeled node\[ P^{(t+1)}(Y_v = c) = \cfrac{1}{\sum_{(v, u) \in E} A_{v,u} } \sum_{(v, u) \in E} A_{v, u} P^{(t)}(Y_v = c) \]$A_{v, u}$: edge에 가중치(strength, weight)가 있다면 $A_{v, u}$는 두 노드 $v$와 $u$ 사이의 edge weight를 나타낸다.$P(Y_v = c)$: 노드 $v$가 label이 $c$일 확률convergence할 때 까지 반복하여 update를.. 2023. 7. 13.
[PyG] GIN 예제 코드 Introduction GIN은 graph-level task에 적합한 GNN 모델이다. protein dataset을 이용하여 graph classification을 수행해보자. Setup import gc import os import random import numpy as np import torch import torch.nn as nn import torch.nn.functional as F from torch_geometric.nn import GCNConv, SAGEConv, GATConv, GINConv, global_add_pool, global_mean_pool from torch_geometric.datasets import TUDataset from torch_geometric.l.. 2023. 7. 12.
[CS224w] Label Propagation on Graphs (1) - Outline Introduction주어진 데이터 그래프의 모든 노드에 label이 있지 않을 수 있다.이 때 network의 다른 node에 label을 어떻게 할당할 수 있을까? 기본적으로 node embedding (random walk, GNN 등)을 이용하여 해결할 수 있지만, network topology를 이용한 방법은 없을까?Observation: Correlations in Networks이웃한 노드들은 서로 correlated한 경향이 있다.이웃하는 노드가 상관성을 갖는 것은 크게 homophily와 influence로 설명할 수 있다.Homophily: 같은 interest를 갖는 사람들끼리 더 연결되는 경향이 있다.Influence: 내가 친구에게 음악을 추천새주면, 친구들 중 일부는 나랑 같은 .. 2023. 7. 12.
[PyG] GCN, GraphSAGE, GAT 예제 코드 Import import gc import os import random import numpy as np import torch import torch.nn as nn import torch.nn.functional as F from torch_geometric.nn import GCNConv, SAGEConv, GATConv from torch_geometric.datasets import Planetoid​ Load Dataset (Cora dataset) os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID" os.environ["CUDA_VISIBLE_DEVICES"]="1" device = torch.device('cuda:1' if torch.cuda.is_avail.. 2023. 7. 12.
[CS224w] General Tips for Debugging GNN 꼭 GNN에 해당하는 내용은 아니겠지만, cs224w에서 별도의 강의 슬라이드를 만들었으니 간단히 정리한다. General Tips데이터 전처리는 매우 중요하다. note attribute는 매우 많다. 따라서 정규화(normalization)을 해야한다. 확률이라면 $(0, 1)$로, 필요(데이터)에 따라 넓은 범위도 가능하다. Optimizer: Adam이면 상대적으로 robust하다.Activation function: ReLU도 충분하지만 LeakyReLU, PReLU도 좋다. 그러나 output layer에는 activation function을 적용하면 안된다. 그리고 모든 layer에 bias를 추가한다.Embedding dimension: 32, 64, 128 차원에서 시작한다. 학습결과에.. 2023. 6. 18.
[CS224w] Theory of GNNs (2) - Neighbor Aggregation, GIN (Graph Isomorphism Network) 전 포스팅에서는 GNN의 node embedding이 왜 표현력이 좋은지 omputational graph의 관점에서 설명했다.이번에는 neighbor aggregation의 관점에서 더 살펴보자. Neighbor AggregationNeighbor aggregation은 multi-set function과 동일한 구조를 갖는 것에서 시작한다.aggregation function으로 GCN (ICLR 2017)에서는 mean-pool, GraphSAGE (NeurIPS)에서 max-pool을 제안하였다.GCN에서는 $\text{Mean}(\{ x_u \}_{u \in N(v)})$GraphSAGE에서는 $\text{Max}(\{ x_u \}_{u \in N(v)})$GCN (mean-pool) [ICLR.. 2023. 6. 17.
728x90
반응형