English

Dynamic PageRank: Algorithms and Lower Bounds

Data Structures and Algorithms 2024-05-20 v2

Abstract

We consider the PageRank problem in the dynamic setting, where the goal is to explicitly maintain an approximate PageRank vector πRn\pi \in \mathbb{R}^n for a graph under a sequence of edge insertions and deletions. Our main result is a complete characterization of the complexity of dynamic PageRank maintenance for both multiplicative and additive (L1L_1) approximations. First, we establish matching lower and upper bounds for maintaining additive approximate PageRank in both incremental and decremental settings. In particular, we demonstrate that in the worst-case (1/α)Θ(loglogn)(1/\alpha)^{\Theta(\log \log n)} update time is necessary and sufficient for this problem, where α\alpha is the desired additive approximation. On the other hand, we demonstrate that the commonly employed ForwardPush approach performs substantially worse than this optimal runtime. Specifically, we show that ForwardPush requires Ω(n1δ)\Omega(n^{1-\delta}) time per update on average, for any δ>0\delta > 0, even in the incremental setting. For multiplicative approximations, however, we demonstrate that the situation is significantly more challenging. Specifically, we prove that any algorithm that explicitly maintains a constant factor multiplicative approximation of the PageRank vector of a directed graph must have amortized update time Ω(n1δ)\Omega(n^{1-\delta}), for any δ>0\delta > 0, even in the incremental setting, thereby resolving a 13-year old open question of Bahmani et al.~(VLDB 2010). This sharply contrasts with the undirected setting, where we show that poly logn\rm{poly}\ \log n update time is feasible, even in the fully dynamic setting under oblivious adversary.

Keywords

Cite

@article{arxiv.2404.16267,
  title  = {Dynamic PageRank: Algorithms and Lower Bounds},
  author = {Rajesh Jayaram and Jakub Łącki and Slobodan Mitrović and Krzysztof Onak and Piotr Sankowski},
  journal= {arXiv preprint arXiv:2404.16267},
  year   = {2024}
}
R2 v1 2026-06-28T16:05:42.574Z