대학원 일기

[GCN] Graph Convolution Network에서 샘플링을 안해볼 순 없을까..?

HR & 빅데이터 2024. 10. 10. 14:41

랜덤워크의 시퀀스 생성 단계에서 갑자기,, 의문이 생겼다... 

 

샘플링 안하면 어떻게 되는데...?

 

 

라는 생각이 계속 들었다.. GCN에서 노드와 엣지를 만들고 난 뒤, 시퀀스 데이터를 생성하는 단계에서 여러가지 방법론들을 배우며 시작되었다 ㅋㅋㅋ 

모든 노드에서 시작되는 시퀀스를 생성하고, 한 시퀀스 당 길이를 설정하고, 한 노드 당 랜덤워크를 생성하는 횟수를 결정하고, BFS(넓이우선탐색)/DFS(깊이 우선탐색) 을 각각 어느정도로 적용할건지 설정하고.. 이런 방법론들을 배우면서 말이다.. 타 알고리즘들이랑 샘플링기법들 다 잘 배워놓고.. 정보 과잉의 문제점에 대해서도 잘 배워놓고... 모델 돌려놓고 오래 걸려서 발 동동 굴러보고도... 왜 갑자기 이러는지는 나도 모르겠다.. 

 

암튼 나 스스로에게 "GCN을 할 때 왜 샘플링을 해야 하는지 납득시켜줄게." 라는 것을 목적으로 포스팅을 좀 끄적거려 보면..


1. 대부분의 네트워크는 대규모의 노드를 갖고 있다..

ex. 페이스북 이용자 수..

 

2. 대규모 그래프를 가정해보자.
  • 노드의 수가 100,000 개이고,
  • 평균 이웃 노드 수가 10개,
  • 랜덤워크 길이 4의

모든 가능한 랜덤워크 시퀀스를 생성한다면?

경우의  = 100,000×10^3=100,000 * 1,000 = 10^8 = 100억개의 시퀀스

3. 시퀀스 생성하고, 처리(임베딩벡터 생성) 까지 하는 데에 어느정도 비용이 들까. (가정)

 

(가정한 것이기 때문에 비용/용량 관련하여 구체적인 숫자는 다를 수 있음)

 

Amazon 임베딩벡터 생성까지 총 비용: 2.11달러 + 12.8달러 = 14.91 달러
Databrick 임베딩벡터 생성까지 총 비용: 15,59 달러

 

 

 

4. ..? 생각보다 낼만 한데? 

 

  1. 임베딩계산은 전체 워크플로우의 첫 단계. (반복학습, 하이퍼파라미터 튜닝, 교차검증 아예 시작도 하기 전)
  2. ex. epoch 10번, 튜닝할 하이퍼파라미터 5개, 이렇게만 해도 최종 비용은 기본 비용의 약 50배 증가
  3. 따라서 15달러가 아니라 약 750달러가 될 수 있음.
  4. 더 복잡한 모델이라면 수천달러로 증가. (상방 뚫려있음..ㅎㅎ)
  5. 노드가 10만개보다 더 크다면? 랜덤워크 수 4 초과로 늘린다면..? 또한 상방이 뚫려있음.
  6. +단일 클러스터의 메모리 용량 초과할 경우, 메모리 스왑 및 데이터 이동시간 추가 발생, 저장공간도 병목현상 생길 수 있음
  7. 클라우드 서비스 비용은 자원 수료에 따라 변동될 수 있음..

 

5. 따라서 장기적으로 보았을 때 샘플링 제대로 안하면 큰일이 날 수있다.
(=샘플링을 제대로 못하는 엔지니어는 회사의 예산을 혼자 다 써 버릴수가 있다..!) 

 


 

흠.. 충분히 납득이 된 것 같다.

사실 공부가 하기 싫어서 든 생각인 것 같다. 얼른 과제하러 가야겠다. 총총....