Almost Linear-Time Algorithms for Adaptive Betweenness Centrality using Hypergraph Sketches KDD 2014, to appear 𠮷田 悠一 国立情報学研究所 ERATO河原林巨大グラフプロジェクト・ 感謝際Summer 2014/8/8 中心性 • 頂点の中心性 ≈ その頂点がどれだけ重要か? ネットワーク科学で非常に重要な概念 • 最短路に基づいた中心性 沢山の最短路が通る ⇒ その頂点は重要 – 被覆中心性 – 媒介中心性 – 近接中心性 被覆中心性 頂点vの被覆中心性C(v): 何割のペアの最短路中にvが含まれるか v 被覆中心性 頂点vの被覆中心性C(v): 何割のペアの最短路中にvが含まれるか t v s 被覆中心性 頂点vの被覆中心性C(v): 何割のペアの最短路中にvが含まれるか v t s 被覆中心性 頂点vの被覆中心性C(v): 何割のペアの最短路中にvが含まれるか v t s C(v) = #{(s, t) : s-t間の最短路がvを通る} / n2 媒介中心性 頂点vの媒介中心性B(v) 各ペアについて何割の最短路がvを通るかも考慮 t v s (s, t)は1/2だけ加味される 被覆・媒介中心性の応用 コミュニティ検出 [Girvan-Newmanのアルゴリズム] • 一番媒介中心性が高い頂点を選ぶ 被覆・媒介中心性の応用 コミュニティ検出 [Girvan-Newmanのアルゴリズム] • 一番媒介中心性が高い頂点を選ぶ 被覆・媒介中心性の応用 コミュニティ検出 [Girvan-Newmanのアルゴリズム] • 一番媒介中心性が高い頂点を選ぶ • その頂点を取り除く 被覆・媒介中心性の応用 コミュニティ検出 [Girvan-Newmanのアルゴリズム] • 一番媒介中心性が高い頂点を選ぶ • その頂点を取り除く • 同じことを(例えばk回)繰り返す 被覆・媒介中心性の応用 コミュニティ検出 [Girvan-Newmanのアルゴリズム] • 一番媒介中心性が高い頂点を選ぶ • その頂点を取り除く • 同じことを(例えばk回)繰り返す 被覆・媒介中心性の応用 コミュニティ検出 [Girvan-Newmanのアルゴリズム] • 一番媒介中心性が高い頂点を選ぶ • その頂点を取り除く • 同じことを(例えばk回)繰り返す 被覆・媒介中心性の応用 • ワクチン投与 • グラフ上の二点間の最短距離を答える為のイン デクシング手法 – PLL (秋葉さんの講演・動画を参照) 適応的中心性 最初に全頂点の中心性を計算するのでは駄目 頂点の影響を取り除きながら中心性を適応的に再 計算したい! 既存手法は遅い 被覆中心性 厳密手法 O(kn2m) 近似手法 Õ(knm/ε2) 媒介中心性 O(knm) [Bra01] Õ(knm/ε2) [BP08] 近似:毎回中心性を±εで近似する 我々の貢献 適応的中心性に基づく頂点順番を ほぼ線形時間で求める! 計算量 任意のkに対して • 被覆中心性: O((n + m)log n /ε2) • 媒介中心性: 実用上O((n + m)log n/ε2) (ε : error parameter) 我々の貢献 適応的中心性に基づく頂点順番を ほぼ線形時間で求める! 理論保証 得られる頂点順番は関連する最適化問題に対する (1-1/e -ε)-近似解となっている 実験による確認 • 厳密手法に”近い”頂点順番を求める • 素朴な近似手法の1000倍以上高速になることも 頂点集合の被覆中心性 • 頂点集合S ⊆ Vの被覆中心性C(S) = S中の何れかの頂点に被覆されたペアの割合 t t’ s s’ (s, t)も(s’, t’)も加味される 問題の言い換え 以下の手順で得られる頂点順を計算したい for i = 1 to k: vi ← argmaxv C(v, v1,…,vi -1) – C(v1,…,vi -1). 貪欲に被覆中心性を大きくする頂点を選んでいる ⇒ 最も良い大きさkの頂点集合の(1-1/e)倍の被覆中 心性が得られる (劣モジュラ性より) 提案手法:ハイパーグラフによるスケッチ 以下の手順でハイパーグラフHを作成 for i = 1 to M = O(log n/ε2): ペア (s, t)をランダムに選ぶ s-t間の最短路(DAG)を計算しHに加える 計算量: O((n+m)M). 提案手法:適応的被覆中心性の計算 以下の手順で頂点順番を求める for i = 1 to k : vi ← argmaxv dH-{v1,…,vi-1}(v). v2 v1 ハイパーグラフ中の次数を保持するだけで良い! ⇒ 計算量: O((n+m)M). 正しさ dH(v): 頂点vのハイパーグラフHにおける次数 1. E[dH(v) / M] = C(v) 2. E[dH-S(v) / M] = C(S + v) – C(S) 証明 1. Pr[dH(v)が+1される確率] = C(v) 2. Pr[dH-S(v)が+1される確率] = C(S+v) - C(S) 1.よりC(v)はdH(v)/Mで近似できる。 2.よりC(S+v)-C(S)もHからSを削除すれば近似できる 実験 厳密手法に対する中心性の大きさ データセット: p2p-Gnutella k vs 被覆中心性 M = 4K or 16Kで十分 k vs 媒介中心性 小さいグラフに対する計算時間の比較 枝数<20Kまでのグラフで実験 k = nでは既存の(近似)手法と比べて1000倍以上高速 Intel Xeon E5-2690 (2.90 GHz) processor and 256 GB 大きいグラフに対する計算時間 • 枝数<10Mまでのグラフで実験 • もう少し速く出来ると良い? 道路ネットワークの距離クエリへの応用 • PLL[AIY’13]は道路ネットワークが非常に苦手 頂点順番を次数順にしているから • 頂点順番を変えるだけで性能改善するか? 適応的被覆中心性で大幅に索引構築時間・サイズ が改善された まとめ 「被覆・媒介中心性の高い頂点を適応的に 選ぶことで得られる頂点順」 ・・・(*) をほぼ線形時間で求める手法を提案 • 精度に対して理論保証 • k = nの時は1000倍以上の高速化 • 大規模なグラフでの(*)の有用性の確認
© Copyright 2024 ExpyDoc