GNN
1. node 2 vec : node 단위 graph embedding
목적 : node들간의 관계를 저차원 공간으로 표현하는 것
https://frhyme.github.io/machine-learning/node2vec/
word 2 vec 복습 : 주변 단어와 현재단어를 같이 학습해서, 문장안에서 비슷한 주변 단어와 함께 나오는 단어 1은 단어 2와 비슷하다
word2vec 과의 차이 : 학습에 필요한 corpus가 word2vec은 문장, node2vec은 노드 시퀀스이다. 그 노드 시퀀스를 만들어내는 탐색방법은 BFS(노드들간의 관계), DFS(구조적 학습) 이 있다. 그 노드 시퀀스로 skip-gram을 한다.
2. deepwalk : node2vec 에서 노드 시퀀스를 만들어내는 방법은 random walk로. 그래서 node2vec은 더 정확한 representation, deepwalk는 대략 빠르게? node2 vec이 더 다양한 그래프에 적용될 수 있다고 함 by chatgpt..
3. graph sage : 현실적인 상황에서 계속 node가 추가되면 다시 graph embedding 학습해야하는 문제가 발생
https://velog.io/@dongdori/GraphSage-Inductive-Representation-Learning-on-Large-Graphs
[논문리뷰]GraphSage : Inductive Representation Learning on Large Graphs(2017)
오늘은 graphsage라는 프레임워크를 제안한 논문에 대해 다루어 보겠습니다. Node2vec이나 DeepWalk와 같은 shallow node embedding learning을 통해 고정된 node들에 대한 representation을 학습할 수 있습니다.하지
velog.io
일단 node feature 이란 node embedding와 다름. node feature는 임베딩 값이 아니라 해당 NODE의 특성(예. 성별 나이등)
- 1억개 노드 임베딩 값이 있다고 하자.
- 하나 노드가 추가되었는데, 1억+1 노드 임베딩 값을 다시 계산한다고 하면 얼마나 계산량 낭비고 오래 걸리겠나.
- 그래서 그 하나 노드(a.k.a 빨간) 의 임베딩 값은 추론하는게 목적.
- 그런데 1억 개 다 써서 추론하면 넘 많으니까 1) 주변 노드 중 일부 샘플링
- 2) 샘플링된 노드들의 피쳐(node feature) 를 조물조물해가지고
- 3) 빨간 노드의 임베딩을 만들어내는 거임