sapziling 2023. 3. 10. 14:23

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) 빨간 노드의 임베딩을 만들어내는 거임