GraphVite: 노드 임베딩을 위한 고성능 CPU-GPU 하이브리드 시스템

최근, 노드의 연속 표현을 학습하는 것이 그들의 단순성과 다양한 응용 분야에서의 효과성 때문에 학계와 산업계에서 점점 더 많은 관심을 받고 있습니다. 기존의 대부분 노드 임베딩 알고리즘과 시스템은 수십만 또는 수백만 개의 노드를 가진 네트워크를 처리할 수 있는 능력을 가지고 있지만, 수천만 또는 심지어 수억 개의 노드를 가진 네트워크로 확장하는 것은 여전히 어려운 문제입니다. 본 논문에서는 알고리즘과 시스템을 공동 최적화하여 노드 임베딩을 학습하기 위한 고성능 CPU-GPU 하이브리드 시스템인 GraphVite(그래프바이트)를 제안합니다. CPU 측면에서는 네트워크 상에서 온라인으로 랜덤 워크를 통해 증강된 엣지 샘플이 병렬로 생성되어 훈련 데이터로 사용됩니다. GPU 측면에서는 여러 GPU를 동시에 사용하여 노드 임베딩을 훈련시키면서도 많은 데이터 전송과 동기화 없이 수행할 수 있는 새로운 병렬 부정 샘플링 방법이 제안되었습니다. 또한, CPU와 GPU 간의 동기화 비용을 더욱 줄일 수 있는 효율적인 협력 전략도 제안되었습니다. 다수의 실제 세계 네트워크에서 수행한 실험 결과, GraphVite가 매우 효율적임이 입증되었습니다. 4개의 GPU를 장착한 단일 머신에서 100만 개의 노드와 500만 개의 엣지를 가진 네트워크는 약 1분, 6600만 개의 노드와 18억 개의 엣지를 가진 네트워크는 약 20시간이 소요되었습니다. 성능에 어떠한 손실도 없이 현재 가장 빠른 시스템보다 GraphVite는 약 50배 빠르다는 사실이 확인되었습니다.