  Node2Vec is a state-of-the-art general-purpose feature learning method for
network analysis. However, current solutions cannot run Node2Vec on large-scale
graphs with billions of vertices and edges, which are common in real-world
applications. The existing distributed Node2Vec on Spark incurs significant
space and time overhead. It runs out of memory even for mid-sized graphs with
millions of vertices. Moreover, it considers at most 30 edges for every vertex
in generating random walks, causing poor result quality. In this paper, we
propose Fast-Node2Vec, a family of efficient Node2Vec random walk algorithms on
a Pregel-like graph computation framework. Fast-Node2Vec computes transition
probabilities during random walks to reduce memory space consumption and
computation overhead for large-scale graphs. The Pregel-like scheme avoids
space and time overhead of Spark's read-only RDD structures and shuffle
operations. Moreover, we propose a number of optimization techniques to further
reduce the computation overhead for popular vertices with large degrees.
Empirical evaluation show that Fast-Node2Vec is capable of computing Node2Vec
on graphs with billions of vertices and edges on a mid-sized machine cluster.
Compared to Spark-Node2Vec, Fast-Node2Vec achieves 7.7--122x speedups.
