Graph Embeddings at Scale
  Graph embedding is a popular algorithmic approach for creating vector
representations for individual vertices in networks. Training these algorithms
at scale is important for creating embeddings that can be used for
classification, ranking, recommendation and other common applications in
industry. While industrial systems exist for training graph embeddings on large
datasets, many of these distributed architectures are forced to partition
copious amounts of data and model logic across many worker nodes. In this
paper, we propose a distributed infrastructure that completely avoids graph
partitioning, dynamically creates size constrained computational graphs across
worker nodes, and uses highly efficient indexing operations for updating
embeddings that allow the system to function at scale. We show that our system
can scale an existing embeddings algorithm - skip-gram - to train on the
open-source Friendster network (68 million vertices) and on an internal
heterogeneous graph (50 million vertices). We measure the performance of our
system on two key quantitative metrics: link-prediction accuracy and rate of
convergence. We conclude this work by analyzing how a greater number of worker
nodes actually improves our system's performance on the aforementioned metrics
and discuss our next steps for rigorously evaluating the embedding vectors
produced by our system.
