  Most methods for Personalized PageRank (PPR) precompute and store all
accurate PPR vectors, and at query time, return the ones of interest directly.
However, the storage and computation of all accurate PPR vectors can be
prohibitive for large graphs, especially in caching them in memory for
real-time online querying. In this paper, we propose a distributed framework
that strikes a better balance between offline indexing and online querying. The
offline indexing attains a fingerprint of the PPR vector of each vertex by
performing billions of "short" random walks in parallel across a cluster of
machines. We prove that our indexing method has an exponential convergence,
achieving the same precision with previous methods using a much smaller number
of random walks. At query time, the new PPR vector is composed by a linear
combination of related fingerprints, in a highly efficient vertex-centric
decomposition manner. Interestingly, the resulting PPR vector is much more
accurate than its offline counterpart because it actually uses more random
walks in its estimation. More importantly, we show that such decomposition for
a batch of queries can be very efficiently processed using a shared
decomposition. Our implementation, PowerWalk, takes advantage of advanced
distributed graph engines and it outperforms the state-of-the-art algorithms by
orders of magnitude. Particularly, it responses to tens of thousands of queries
on graphs with billions of edges in just a few seconds.
