DEIM Forum 2015 E3-4 113-8654 7-3-1 101 8430 2-1-2 E-mail: {thayashi,t.akiba}@is.s.u-tokyo.ac.jp, yyoshida@nii.ac.jp 1,,,, 1. Freeman [6] 2 [1, 8, 9, 16] Brandes [4] n m O(n 2 + nm) [2, 5, 7, 18, 21] [10 13] 2 Bergamini [3] 1 Bergamini [3] [15, 20] 1.6M 44M 2. 2. 1 Brandes [4]
n O(n 2 + nm) O(nm + n 2 log n) 2 [2, 5, 7, 18] Brandes Pich [5] Geisberger [7] Brandes Pich Bader [2] Riondato [18] 2 k [21] DAG 2. 2 [10 13] Lee [13] Brandes [4] Kas [11] Ramalingam [17] Lee [13] 10 Green [10] Kourtellis [12] [10] 2 Bergamini [3] Riondato [18] Riondato 2 2 2 Bergamini [3] O(m + n) 3. 3. 1 G = (V, E) V n E m G 2 u, v V dist G(u, v) u v dist G(u, v) = s t s, t 1 P s,t P s,t = {v V dist G(s, v) + dist G(v, t) = dist G(s, t)} P s,t e E s P s,t (DAG) P s,t DAG s, t DAG 3. 2 s, t (v) s, t v s = v t = v (v) = 0 G (v) v C B(v) = v V 3. 3 [21] 3. 3. 1 G = (V, E) H Algorithm 1 M M (s, t) H s, t v P st v v (v) { } (v, (v) ) v P st V (e) e w e (v) e v v / V (e) w e (v) = 0
Algorithm 1 [21] procedure BuildHypergraph(G, M) H for i = 1 to M do (s, t) { } e = (v, (v) ) v P st H e v H w H(v) e H we(v) C B(v) C B(v) = n2 wh(v) M 3. 3. 2 C B(v) C B(v) w H(v) Lemma 1. v V E H[w H(v)] = M n 2 C B(v) Proof. (s, t) w H(v) (v) w H(v) 1 n 2 C B(v) C B(v) Hoeffding Lemma 2 (Hoeffding ). X 1, X 2,..., X n [0, 1] X = 1 n n i=1 Xi Pr[ X E[X] > = t] < = 2 exp( 2t 2 n) Hoeffding C B (v) C B (v) C B (v) ϵ C B (v) ϵn 2 δ Lemma 3. ϵ, δ M = O( 1 log 1 ) Pr[ ϵ 2 CB (v) C δ B (v) > = ϵn 2 ] < = δ Proof. Lemma 1 E[ C B (v)] = C B (v) C B (v) [0, 1] M Hoeffding Pr[ C B(v) C B(v) > = ϵn 2 ] = Pr[ n2 n2 wh(v) M M E[wH(v)] > = ϵn2 ] = Pr[ 1 M wh(v) 1 M E[wH(v)] > = ϵ] < = 2 exp( 2ϵ 2 M) M = 1 2ϵ 2 log 2 δ = O( 1 ϵ 2 log 1 δ ) 3. 3. 3 ϵ, δ Pr[ C B(v) C B(v) > = ϵn 2 ] < = δ (BFS) O(n + m) 1 Lemma 3 M = O( 1 log 1 ) Pr[ CB(v) C ϵ 2 δ B(v) > = ϵn 2 ] < = δ O( n+m ϵ 2 4. log 1 δ ) [21] M 4. 1 (u, v) (u, v) 2 M M 2 (s, t) x x x s, t DAG P st v s d sv (v) 3 H st = { (v, d sv, (v) ) v P st } s, t v s d sv s V (H st) s, t H st
s d s v v B s = {(v, dist G(s, v)) dist G(s, v) < = d s} t d t v v B t = {(v, dist G(t, v)) dist G(t, v) < = d t} d s, d t x d s + d t + 1 = dist G(s, t) x B s, B t v d w B v = {(w, dist G(v, w)) dist G(v, w) < = d} v d R(B v) d V (B v) v d w V (B v) dist Bv (w) dist G(v, w) w / V (B v) dist Bv (w) = 2 B s, B t 3 (H st, B s, B t) G 4. 2 G = (V, E) x (s, t) 3 (H st, B s, B t) s, t 2 B s, B t B s, B t 0 2 BFS V (B s) V (B t) s, t B s, B t 1 B s dist G(s, v) = R(B s) v w B B {(w, R(B s) + 1) dist G(s, w) = R(B s)} B t s, t BFS (s, t) 3 (,, ) s, t B s, B t s, t DAG Algorithm 2 V (B s) V (B t) S S 2 B s, B t P st S v B s, B t dist G(s, v) + dist G(v, t) = R(B s) + R(B t) = dist G(s, t) S P s,t S B s, B t s, t BFS s t S P st B s S P s B t S P t P st = P s P t S P st R(B s) + R(B ) + 1 = dist G(s, t) x B s, B t B s, B t 1 B s, B t P st BFS H st P st P H st Algorithm 3 s BFS P v s d sv s σ sv P v d tv σ tv v σ svσ vt v s, t { } σ svσ vt H st = (v, d sv, σ svσ vt ) v P st Algorithm 2 DAG procedure TwoBallsToDAG(B s, B t) S V (B s) V (B t) P S Q s S FIFO while not Q s.empty() do v = Q s.pop() for each (v, w) E s.t. w / P do if dist Bs (w) + 1 = dist Bs (v) then P P {w} Q s.push(w) t B t return P P st s B s Algorithm 3 P st P P (s, t) procedure ComputeHyperedge(s, t, P ) s P BFS v P d sv, σ sv t P BFS v P d vt, σ vt e for each v P do if d sv + d vt = d st then return e 4. 3 e e (v, d sv, σ svσ vt ) v P st 3 (H st, B s, B t) (u, v) u v (u, v), (v, u) 4. 3. 1 (u, v) 2 B s, B t H st Algorithm 5 Tretyakov [19] s (u, v) B s Algorithm 4 dist Bs (u) + 1 < dist Bs (v) s v (u, v) dist Bs (v) dist Bs (u) + 1 v
v w s dist Bs (v) + 1 < dist Bs (w) dist Bs (w) w Algorithm 4 BFS s R(B s) B s B t B s Algorithm 4 (u, v) B s procedure BallInsertEdge(B s, u, v) if dist Bs (u) < R(B s ) then Q FIFO if dist Bs (v) > dist Bs (u) + 1 then dist Bs (v) dist Bs (u) + 1 Q.push(v) while not Q.empty() do v Q.pop() if dist Bs (v) = R(B s ) then continue; for each (v, w) E do if dist Bs (w) > dist Bs (v) + 1 then dist Bs (w) dist Bs (v) + 1 Q.push(w) (u, v) u, v B u, B v u BFS B u 0 1 V (B s ) V (B u ) = B u B v u, v G s, t (u, v) s, t B u, B v R(B u ) R(B v ) B s, B t x R(B u ) R(B v ) u, v B s, B t 1 u v V (B s ) V (B t ) ( 1a) u, v Lemma 4. u, v s, t u, v x B u, B v V (B s ) V (B u ) =,V (B v ) V (B t ) = Proof. x B u, B v V (B s ) V (B u ) = V (B v ) V (B t ) = V (B s ) V (B u ) = B u B v u v v u s t s t R B s R B t R B s R B t B s B t B s B t (a) u, v V (B s) V (B t) (b) u V (B s) 1 s, t dist G (s, u) + dist G (u, v) + dist G (v, t) > = dist G (s, u) + 1 + R(B t ) > R(B s ) + x + 1 + R(B t ) = dist G (s, t) u, v s, t V (B v ) V (B t ) = R(B u ), R(B v ) x 2 u V (B s ) ( 1b) dist G (s, u) dist Bs (s, u) u, v Lemma 5. u, v s, t v d st dist Bs (u) R(B t ) 1 B v V (B v ) V (B t ) = R(B v ) d st dist Bs (u) R(B t ) 1 u V (B s ) R(B u ) 0 3 v V (B t ) (2) R(B u ) d st dist Bt (v) R(B s ) 1 R(B v ) 0 (2),(3) (2) B u, B v V (B u ) V (B s ) = V (B v ) V (B t ) = (u, v) s, t DAG P = V (H st ) P su P vt ComputeHyperedge s, t, P H st DAG (u, v) 3 (H st, B s, B t ) 4. 3. 2 B s, B t (u, v) B s dist Bs (u) + 1 = dist Bs (v) B s s BFS B v
Algorithm 5 (u, v) procedure UpdateHyperedge(u, v) B u {(u, 0)}, B v {(v, 0)} d u 0, d v 0 B u, B v if u / V (B s ) V (B t ) and v / V (B s ) V (B t ) then d u x, d v x else if u V (B s) then d v d st dist Bs (u) R(B t) 1 else if v V (B t ) then d u d st dist Bt (v) R(B s ) 1 while V (B s) V (B u) = and R(B u) < d u do B u 1 while V (B v) V (B t) = and R(B v) < d v do B v 1 if V (B s ) V (B u ) = or V (B v ) V (B t ) = then P V (H st ) P P TwoBallsToDAG(B s, B u) P P TwoBallsToDAG(B v, B t) H st ComputeHyperedge(s, t, P ) P st Tretyakov [19] H st (u, v) H st {u, v} V (H st) d su + 1 = d sv (u, v) 2 1 s, t, t (u) = 1 (v) = 1 H st s, t BFS (H st, B s, B t) 2 s, t s, t DAG V (H st) H st ComputeHyperedge(s, t, V (H st)) 5. 5. 1 Stanford Network Analysis Project (SNAP) [14] 1 1 d D 10,000 n m d D GrQc 5,242 28,980 11.1 6.1 Enron 36,692 367,662 20.0 4.0 Epinions1 75,879 811,480 21.4 4.3 Slashdot0811 77,360 1,092,974 28.3 4.0 Pokec 1,632,803 44,603,928 54.6 4.7 Stanford 281,903 3,985,272 28.3 6.9 NotreDame 325,729 2,235,126 13.7 7.2 Google 875,713 8,644,102 19.7 7.1 BerkStan 685,230 13,298,940 38.8 6.4 Patents 3,774,768 33,037,896 17.5 8.2 5. 2 C++11 Google Sparse Hash 1 gcc 4.8.3 -O3 Linux (CPU: Intel(R) Xeon(R) CPU E5-2670 2.60GHz: 512GB) 5. 3 200 1024 5 5. 4 5. 4. 1 5. 4. 1 V (B s ) + V (B t ) 1 (s, t) B s, B t V (H st ) x x = 0 x = 0 30 1000 1 x x = 2 130 20,000 1 2,000 99% 0.05n 2 1 https://code.google.com/p/sparsehash/
Stanford BerkStan NotreDame Google 2 V (B s) + V (B t) x = 0 x = 1 x = 2 V (H st ) GrQc 123 64 38 13 Enron 282 49 29 23 Epinions1 174 44 33 28 Slashdot0811 191 42 31 27 Pokec 1,674 264 79 47 Stanford 6,807 3,454 1,013 66 NotreDame 3,026 1,308 629 24 Google 2,943 427 145 28 BerkStan 25,677 12,707 4,204 55 Patents 5,680 1,978 700 37 5. 4. 2 3 1024 x = 0 Pokec BerkStan 3 x x 6. [1] A. Abbasi, L. Hossain, and L. Leydesdorff. Betweenness centrality as a driver of preferential attachment in the evolution of research collaboration networks. Journal of Informetrics, 6(3):403 412, 2012. [2] D. A. Bader, S. Kintali, K. Madduri, and M. Mihail. Approximating Betweenness Centrality. In WAW, pp. 124 137, 2007. [3] E. Bergamini, H. Meyerhenke, and C. L. Staudt. Approximating Betweenness Centrality in Large Evolving Networks. In ALENEX, pp. 133 146, 2015. [4] U. Brandes. A Faster Algorithm for Betweenness Centrality. J. Math. Sociol., 25(2):163 177, 2001. [5] U. Brandes and C. Pich. Centrality Estimation in Large Networks. Int. J. Bifurcat. Chaos, 17(07):2303 2318, 2007. [6] L. C. Freeman. A Set of Measures of Centrality Based on Betweenness. Sociometry, 40(1):35 41, 1977. [7] R. Geisberger, P. Sanders, and D. Schultes. Better Approximation of Betweenness Centrality. In ALENEX, pp. 90 100, 2008. [8] M. Girvan and M. E. J. Newman. Community structure in social and biological networks. P. Natl. Acad. Sci., 99(12):7821 6, 2002. [9] K.-I. Goh, E. Oh, B. Kahng, and D. Kim. Betweenness centrality correlation in social networks. Phys. Rev. E, 67:017101, 2003. [10] O. Green, R. McColl, and D. A. Bader. A fast algorithm for streaming betweenness centrality. In SocialCom/PASSAT, pp. 11 20, 2012. [11] M. Kas, M. Wachs, K. M. Carley, and L. R. Carley. Incremental Algorithm for Updating Betweenness Centrality in Dynamically Growing Networks. In ASONAM, pp. 33 40, 2013. [12] N. Kourtellis, G. D. F. Morales, and F. Bonchi. Scalable Online Betweenness Centrality in Evolving Graphs. CoRR, abs/1401.6981, 2014. [13] M.-J. Lee, J. Lee, J. Y. Park, R. H. Choi, and C.-W. Chung. QUBE: a Quick algorithm for Updating BEtweenness centrality. In WWW, pp. 351 360, 2012. [14] J. Leskovec and A. Krevl. SNAP Datasets: Stanford large network dataset collection. http://snap.stanford.edu/ data, June 2014. [15] S. Milgram. The Small World Problem. Psychology today, 2(1):60 67, 1967. [16] M. E. J. Newman and M. Girvan. Finding and evaluating community structure in networks. Phys. Rev. E, 69:026113, 2004. [17] G. Ramalingam and T. W. Reps. On the Computational Complexity of Incremental Algorithms. University of Wisconsin-Madison, Computer Sciences Department, 1991. [18] M. Riondato and E. M. Kornaropoulos. Fast Approximation of Betweenness Centrality Through Sampling. In WSDM, pp. 413 422, 2014. [19] K. Tretyakov, A. Armas-cervantes, L. García-ba nuelos, and M. Dumas. Fast Fully Dynamic Landmark-based Estimation of Shortest Path Distances in Very Large Graphs Categories and Subject Descriptors. In CIKM, pp. 1785 1794, 2011. [20] D. J. Watts and S. H. Strogatz. Collective dynamics of small-world networks. Nature, 393(6684):440 442, 1998.
3 (ms) (s) x = 0 x = 1 x = 2 x = 0 x = 1 x = 2 GrQc 0.1 1.7 2.2 4.7 0.8 8.8 0.4 76 57 27 149 14 333 Enron 1.9 3.9 5.4 12.9 0.4 242.8 0.3 477 346 145 4,415 8 5,557 Epinions1 2.0 2.3 1.2 15.9 0.4 633.9 0.3 865 1,646 123 5,331 3 5,748 Slashdot0811 2.4 1.8 1.2 13.6 0.5 478.8 0.3 1,291 1,948 173 5,098 5 6,867 Pokec 18.8 1.0 1.5 11.4 0.5 451.0 0.4 17,931 12,149 1,652 34,678 42 46,892 Stanford 23.0 55.5 348.6 256.3 118.2 1,401.0 28.2 414 66 90 195 16 814 NotreDame 9.9 3.5 287.7 69.1 107.3 612.3 9.7 2,784 34 143 92 16 1,013 Google 8.3 4.2 11.7 19.7 1.1 193.0 0.5 1,952 707 421 7,287 43 15,445 BerkStan 134.1 92.2 3,789.3 1,943.3 1,046.8 7,481.4 224.3 1,454 35 69 128 18 598 Patents 20.0 1.1 6.2 6.8 1.4 41.7 0.7 18,513 3,238 2,948 13,872 478 30,270 [21] Y. Yoshida. Almost Linear-Time Algorithms for Adaptive Betweenness Centrality using Hypergraph Sketches. In KDD, pp. 1416 1425, 2014.