representation learning 목적은 feature engineering을 통해 직접 node의 feature를 지정하는 대신, feature를 자동으로 학습하는 것입니다.
그림에서와 같이, representation learning을 거쳐 node u를 d차원 vector로 표현하게 됩니다. 이때, feature를 표현하는 vector를 **‘feature representation’ 혹은 ‘embedding’**이라고 부릅니다. 이 vector는 node의 특징을 잘 담아내야 하며, 그래프의 전반적인 구조의 의미도 포함해야 합니다.
embedding space내에 표현된 node들은 유사성(similarity) 가질수록 비슷한 embedding을 가진다는 것이 핵심입니다. 이렇게 표현된 node들은 후속 작업인 예측 task (node classification, link prediction, graph classification 등)에 효과적으로 활용됩니다.
DeepWalk 의 연구로, Zachary’s Karate Club network를 2차원 vector의 feature로 표현했습니다. 같은 색상을 가진 node끼리 비슷한 vector 값을 갖는 것을 확인할 수 있으며, 이를 통해 embedding 작업이 꽤 성공적으로 이루어졌다고 판단할 수 있습니다.
우선 간단한 그래프에서 시작해봅시다!
feature는 없고, 연결 관계만(adjacency matrix)만 존재하는 undirected 그래프가 있다고 합시다. 이때 embedding 목표는 embedding후의 embedding space에서의 각 node끼리의 유사성(similarity)과 그래프상에서의 유사성이 비슷해지는 것입니다. embedding space에서의 유사성을 측정할 때는 vector간의 dot product 연산을 수행하는 것이 일반적입니다. dot product은 $a \cdot b = |a||b|cos\theta$ 이므로, 두 vector간의 각도가 작을수록(=가까움, 비슷함), 큰 값을 갖게 됩니다. 자 이제, embedding space에서의 유사성은 측정할 수 있게 되었으므로, 그래프상에서의 유사성을 측정할 수 있는 similarity function을 정의해야 합니다.
Goal : $\red {similarity(u,v)} \;\approx\; \green{z^T_v z_u}$
1) Encoder를 통해 node를 embedding값으로 변환합니다. Encoder : $ENC(v) = z_v$, $z_v : d$-dimensional embedding 이때, embedding 차원으로 보통 64~1000을 채택합니다.