Dynamical SimRank Search on Time-Varying Networks
In this article, we study the efficient dynamical computation of all-pairs SimRanks on time-varying graphs. Li et al.'s approach requires O(r^4 n^2) time and O(r^2 n^2) memory in a graph with n nodes, where r is the target rank of the low-rank SVD. (1) We first consider edge update that does not accompany new node insertions. We show that the SimRank update Δ S in response to every link update is expressible as a rank-one Sylvester matrix equation. This provides an incremental method requiring O(Kn^2) time and O(n^2) memory in the worst case to update all pairs of similarities for K iterations. (2) To speed up the computation further, we propose a lossless pruning strategy that captures the "affected areas" of Δ S to eliminate unnecessary retrieval. This reduces the time of the incremental SimRank to O(K(m+|AFF|)), where m is the number of edges in the old graph, and |AFF| (< n^2) is the size of "affected areas" in Δ S, and in practice, |AFF| ≪ n^2. (3) We also consider edge updates that accompany node insertions, and categorize them into three cases, according to which end of the inserted edge is a new node. For each case, we devise an efficient incremental algorithm that can support new node insertions. (4) We next design an efficient batch incremental method that handles "similar sink edges" simultaneously and eliminates redundant edge updates. (5) To achieve linear memory, we devise a memory-efficient strategy that dynamically updates all pairs of SimRanks column by column in just O(Kn+m) memory, without the need to store all (n^2) pairs of old SimRank scores. Experimental studies on various datasets demonstrate that our solution substantially outperforms the existing incremental SimRank methods, and is faster and more memory-efficient than its competitors on million-scale graphs.
READ FULL TEXT