일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 임베디드 딥러닝
- 컴퓨팅사고
- MCU 딥러닝
- 삼성코딩테스트
- sort
- 자료구조
- 다이나믹프로그래밍
- 포스코 교육
- dfs문제
- 코테 문제
- tflite
- DP
- BFS
- 삼성코테
- 삼성역량테스트
- 포스코 ai 교육
- 코테
- 초소형머신러닝
- DP문제
- 영상처리
- 포스코 AI교육
- bfs문제
- tinyml
- dfs
- 그리디
- 딥러닝
- 코딩테스트
- 알고리즘
- 삼성역테
- TensorFlow Lite
- Today
- Total
코딩뚠뚠
[머신러닝 공부] Graph Representation learning 1 본문
Graph 에서의 Representation learning
representation learning : 표현학습 으로 쉽게 말하면 딥러닝 그 자체이다. 복잡한 데이터의 구조를 layer화 한다.
Graph 에서의 representation learning 은 우리가 알고있는 딥러닝 layer 와 다르게 동작할까?
''같은 의미로 동작한다''
graph의 node를 function을 통해 Latent space(embedding space)로 embedding 할 수 있다.
graph의 embedding을 통해 다양한 임무를 효과적으로 수행할 수 있다.
그래프를 왜 Embedding 할까?
graph는 node로 이루어져있고 각 노드는 인접한 node가 있다.
그 정보들로 인접행렬 (Adjacency Matrix)를 구성할 수 있다.
위는 인턴때 정리한 자료 중 하나이다. 연결된 node로 Adjacency Matrix를 보인 것을 알 수 있다.
graph의 인접행렬은 각 column이 node를 의미하기 때문에 크기가 매우 크다.
인접행렬을 그대로 다루기에는 연산쪽에서의 문제가 있을 것이다.
따라서 graph의 각 node를 low-dimension으로 mapping 할 필요가 있다.
Adjacency Matrix 의 dimension -> (embedding) -> Latent dimension = computation 효과 |
node별로 representation이 가능하게 된다.
대신, Adjacency matrix의 각 column은 node를 나타내지만 latent demension에서 나타낼 수 있는 embedding matrix의 column은 각 node를 나타내지는 않는다.
latent demension의 column들은 node가 아닌 node간의 상관관계와 같은 graph 정보를 의미하는 feature가 된다.
Adjacency matrix의 그래프 정보를 latent dimension으로 encoding하고, node representation을 만들어 내는 것 |
그래프 정보를 담았으니 latent 에서 나타내지는 node간의 similarity는 실제 graph에서의 node간의 similarity라고 볼 수 있다.
Embedding Nodes
graph의 node들을 어떻게 embedding 할까?
우선, embedding의 목적은
위 그림의 embedding 공간 상의 similarity와 원본 graph의 similarity를 최대한 동일하게 만드는 것이다.
embedding 공간상의 두 벡터의 similarity는 dot product (Zv
embedding을 시키는 것은 encoder의 역할이다. (같은 의미이기도 하지만)
Encoder
shallow encoding, Deep Walk, node2vec, TransE 등의 encoder 로 Embedding 할 수 있다.
Similarity Function
두 벡터의 similarity를 어떤 기준으로 정의할까?
- 두 노드의 연결관계
- 공유하는 neighbor node
- structural role의 유사성
등이 있을 것이다.
Optimization
위의 논문을 참고
Node embedding 방법
Random Walk Approaches to Node Embeddings
Random Walk 를 직역하면 node위를 랜덤하게 걸어다니는 것을 뜻한다.
그래프의 특정한 점에서 랜덤하게 주변 노드들을 선택해 나가는데 그 point들의 시퀀스들을 ramdom walk라고 한다.
이를 sampling 한다고 표현한다.
왜 Random Walk 를 사용할까?
Expressivity(표현력) : local과 higher-order neighborhood정보를 함께 고려하는 node similarity에 유연한 확률적 정의를 내릴 수 있다.
Efficiency(효율성) : 모든 node쌍으로 학습할 필요 없이 random walk와 함께 발견될 쌍들만을 고려
Ramdom walk Embedding (Deep walk로 encoding)
Zu^T * Zv = network 전체 random wolk 에서 u 와 v 가 co-occur(함께 발생) 할 확률
Zu와 Zv 의 Similarity가 높다는 것은 latent space 상에 가깝게 위치할 것
=> node u와 v의 similarity가 높다는 의미
=> random walk에서 동시에 발견될 확률이 높다
과정
1. Random walk strategy R을 사용하여 u에서 출발해 v에 방문할 확률을 추정한다.
2. 이 확률을 encoding 하기 위해 embedding을 최적화 시킨다.
다음엔 Random Walk Optimization 에 대해 포스팅 할 예정이다.
Reference
아래는 공부하고 포스팅을 하는데 참고한 유튜브 채널과 블로그이다
www.youtube.com/watch?v=zCEYiCxrL_0
www.youtube.com/watch?v=4PTOhI8IWTo&t=293s
velog.io/@minjung-s/GNN-Graph-Representation-Learning-Deep-Walk-node2vec
'공부 > ML&DL' 카테고리의 다른 글
[머신러닝 공부] 딥러닝/GNN (Graph Neural Network) (0) | 2021.04.03 |
---|---|
[머신러닝 공부] Graph Representation learning 2 (0) | 2021.04.03 |
[머신러닝 공부] 딥러닝 평가지표의 종류 (0) | 2021.04.01 |
[머신러닝 공부] 머신러닝 딥러닝 확실한 차이 (2) | 2021.03.29 |
[머신러닝 공부] 행렬과 벡터 연산 (0) | 2021.02.12 |