<aside> 💡 GNN의 Key idea node의 local neighborhood로부터 신경망으로 정보를 aggregation하여 embedding을 생성
</aside>
GCN
GraphSAGE
<aside> 💡 Q. GNN은 어떻게 그래프 구조를 구분할까? A) 위 그래프처럼, 모든 node의 feature가 동일한 경우가 있을 수 있으므로, local neighborhood 구조를 이용하여 node를 구분하는 방법을 생각해볼 수 있다.
</aside>
(idea) node degree를 이용
node 1과 node 4는 같은 node degree를 갖기 때문에, node degree 만으로는 node의 구분이 어려움 ⇒ node의 이웃 node의 degree까지 고려 ⇒ “Computation graph”
2-hop degree까지의 각 node에 대한 computational graph(rooted subtree structure)를 그려보았을 때, 1, 3, 4, 5번 node는 구분이 가능함
그러나, GNN은 색깔로 구분되는 feature만을 고려하므로, node 1과 node 2을 구분할 수 없다.
⇒ node 1과 node 2에 대해서 같은 embeding을 생성함
<aside>
💡 Q. GNN의 표현력을 극대화할 수 있는 방안은 어떤 것 일지?
A. aggregation 함수가 injective 해야함
(subtree A ≠ subtree B $\xrightarrow{aggregation}{}$ embedding of subtree A ≠ embedding of subtree B)
</aside>