
임베딩 차원 는 일반적으로 노드의 개수 보다 훨씬 작은 수임
그러나 대략적으로 를 학습하는 방식으로 해를 찾을 수 있음
- Frobenius norm을 사용하여 를 최적화
- 를 구하고, 제곱값을 합산
- lecture 3에서는, l2 norm을 사용하지 않고, softmax 함수를 사용했음 (그러나 근사치를 구하려는 목표는 동일했음!)
결론 : 에지 연결에 의해 노드유사도를 정의하는 내적 디코더는 의 행렬분해 표현과 동일함
앞 장에서 살펴본대로, DeepWalk나 node2vec에서의 노드유사도에 대한 정의는 보다 복잡한 형태를 갖게됨
Deepwalk의 행렬분해:
👇 자세한 설명
- : 인접행렬 항목의 합 (#of edge의 2배?)
- : 노드의 차수를 나타내는 행렬(대각행렬)
- : window size. 랜덤워크의 길이
- : 네거티브샘플링한 수
- Skip gram with negative sampling(SGNS)의 수식을 행 확률론적 행렬(Walk의 한걸음)의 거듭제곱으로 r개의 walk를 표현하여 유도
👇 논문에서 제시한 유도 과정
👇 node2vec 등등에 대한 행렬분해식
- 노드 1과 노드 11은 구조적으로 유사(하나의 triangle 그래프의 구성요소이며, 차수는 2임)
- 그러나 랜덤워크에서 노드1에서 시작하여, 노드11까지 도달할 수 있을까? 아마 그렇지 않을 것이기 때문에, 매우 다른 임베딩을 갖게 될 것이라는 의미
(1) J. Qiu, Y. Dong, H. Ma, J. Li, and K. Wang, "Network embedding as matrix factorization: Unifying deepwalk, line, pte, and node2vec," Proceedings of the Eleventh ACM International Conference on Web Search and Data Mining, ACM, 2018.