Command Palette
Search for a command to run...
GraphVite : Un système hybride haute performance pour l'embedding de nœuds
GraphVite : Un système hybride haute performance pour l'embedding de nœuds
Zhaocheng Zhu Shizhen Xu Meng Qu Jian Tang
Résumé
L'apprentissage de représentations continues des nœuds attire de plus en plus l'intérêt dans les milieux académiques et industriels récemment, en raison de sa simplicité et de son efficacité dans diverses applications. La plupart des algorithmes et systèmes existants d'embedding de nœuds sont capables de traiter des réseaux comportant plusieurs centaines de milliers ou quelques millions de nœuds. Cependant, l'échelle à laquelle ces méthodes peuvent être appliquées à des réseaux comptant des dizaines de millions, voire des centaines de millions de nœuds, reste un problème difficile.Dans cet article, nous proposons GraphVite, un système hybride haute performance pour l'entraînement d'embeddings de nœuds, qui optimise conjointement l'algorithme et le système. Du côté CPU, des échantillons d'arêtes augmentés sont générés en parallèle par des marches aléatoires en ligne sur le réseau, servant ainsi de données d'entraînement. Du côté GPU, une nouvelle méthode d'échantillonnage négatif parallèle est proposée pour exploiter plusieurs GPU afin d'entraîner simultanément les embeddings de nœuds, avec peu de transfert et synchronisation de données. De plus, une stratégie efficace de collaboration est proposée pour réduire davantage les coûts de synchronisation entre les CPU et les GPU.Les expériences menées sur plusieurs réseaux du monde réel montrent que GraphVite est extrêmement efficace. Il ne prend qu'environ une minute pour un réseau avec 1 million de nœuds et 5 millions d'arêtes sur une machine unique dotée de 4 GPU, et environ 20 heures pour un réseau avec 66 millions de nœuds et 1,8 milliard d'arêtes. Comparé au système actuellement le plus rapide, GraphVite est environ 50 fois plus rapide sans compromettre ses performances.