Paper Introduction Of Hammers and Nails: An Empirical Comparison of Three Paradigms for Processing Large Graphs 発表者: Kazuhiro Inaba.

Slides:



Advertisements
Similar presentations
G ゼミ 2010/5/14 渡辺健人. パフォーマンスの測定 CUDA Visual Profiler CUDA の SDK に標準でついているパフォーマン ス測定用のツール 使い方: exe ファイルのパスと作業ディレクトリ指定して実 行するだけ 注意点 : GPU のコード実行後にプログラム終了前に,
Advertisements

組合せ最適化輪講 2.3 連結性 川原 純. 2.3 連結性 内容 – グラフ上の節点をすべてたどるアルゴリズム 計算機上でのグラフの表現 – 強連結成分を求めるアルゴリズム トポロジカル順序を求める方法も – k- 連結、 k- 辺連結について – 2- 連結グラフの耳分解について.
HBSP モデル上での 行列積を求めるアルゴリ ム 情報論理工学 吉岡健太.
SQL による数独の解法 青山学院大学理工学部 矢吹太朗・佐久田博司. 数独とは何か ナンプレとも呼ばれ る制約充足問題 各行・列・ブロック に 1 から 9 の数字を一 つずつ当てはめる 新聞等に載っている ものはとても簡単 人間には難しいもの → もある.
Lecture02-Binary Search Trees 通信情報システム専攻 岩間伊藤研究室 M1 前田圭介.
MPIを用いたグラフの並列計算 情報論理工学研究室 藤本 涼一.
コンピュータビジョン特論B - Graph Cuts - 永橋知行.
極小集合被覆を列挙する 実用的高速アルゴリズム
簡潔データ構造 国立情報学研究所 定兼 邦彦.
秘密のリンク構造を持つグラフのリンク解析
2010年7月9日 統計数理研究所 オープンハウス 確率モデル推定パラメータ値を用いた市場木材価格の期間構造変化の探求 Searching for Structural Change in Market-Based Log Price with Regard to the Estimated Parameters.
from KDD 2012 speaker: Kazuhiro Inaba
An Algorithm for Enumerating Maximal Matchings of a Graph
Approximation of k-Set Cover by Semi-Local Optimization
An Analysis of Social Network-Based Sybil Defenses
検索エンジンに関して The Anatomy of a Large-Scale Hypertextual Web Search Engine
リンク構造を考慮したベクトル空間法によるWebグラフ分割手法に関する研究
Paper from PVLDB vol.7 (To appear in VLDB 2014)
先端論文紹介ゼミ Role-based Context-specific Multiagent Q-learning
C11: 大量データ処理のための領域効率の良いアルゴリズム
第11講: 平成18年12月 8日 (金) 4限 E352教室 グラフ (1).
①データ構造 ②アルゴリズム ③プログラム言語 ④マークアップ言語
LogStructuredFileSystem Servey
PlanetLab における 効率的な近隣サーバ選択法
5.5 The Linear Arboricity of Graphs (グラフの線形樹化数)
ユーザ毎にカスタマイズ可能な Web アプリケーション用のフレームワークの実装
マイクロソフト Access での SQL 演習 第1回 SQL問い合わせ(クエリ)
二分探索木によるサーチ.
大阪大学 大学院情報科学研究科 博士前期課程2年 宮原研究室 土居 聡
領域分割手法について 2008年2月26日 中島研吾.
MPIを用いた並列処理 ~GAによるTSPの解法~
正規分布における ベーテ近似の解析解と数値解 東京工業大学総合理工学研究科 知能システム科学専攻 渡辺研究室    西山 悠, 渡辺澄夫.
決定木とランダムフォレスト 和田 俊和.
アルゴリズムとデータ構造 2013年7月16日
Speaker: Kazuhiro Inaba
オーバレイ構築ツールキットOverlay Weaver
ユーザ毎にカスタマイズ可能な Webアプリケーションの 効率の良い実装方法
IIR輪講復習 #3 Dictionaries and tolerant retrieval (前半)
WWW上の効率的な ハブ探索法の提案と実装
The Web as a graph 末次 寛之 清水 伸明.
コンピュータ概論B ー ソフトウェアを中心に ー #09 データベース (後編)
Internet広域分散協調サーチロボット の研究開発
マイクロソフト Access での SQL 演習 第4回 並べ替え(ソート)
分子生物情報学(2) 配列のマルチプルアライメント法
変換されても変換されない頑固ベクトル どうしたら頑固になれるか 頑固なベクトルは何に使える?
Data Clustering: A Review
不確実データベースからの 負の相関ルールの抽出
サポートベクターマシンを用いた タンパク質スレッディングの ためのスコア関数の学習 情報科学科4年 81025G 蓬来祐一郎.
マイクロソフト Access での SQL 演習 第2回 集計,集約
3.リレーショナルデータベース,主キー, SQL
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
モデル検査(5) CTLモデル検査アルゴリズム
「データ学習アルゴリズム」 第3章 複雑な学習モデル 報告者 佐々木 稔 2003年6月25日 3.1 関数近似モデル
第4章 データ構造 p.82 [誤] ハミルトニアン経路問題  [正] ハミルトン閉路問題 p.82,83 [誤] セールスパーソン問題
Data Clustering: A Review
確率的画像処理アルゴリズム入門 東北大学 大学院情報科学研究科 田中 和之
大規模ネットワークに対する 実用的クラスタ発見アルゴリズムの開発
``Exponentiated Gradient Algorithms for Log-Linear Structured Prediction’’ A.Globerson, T.Y.Koo, X.Carreras, M.Collins を読んで 渡辺一帆(東大・新領域)
オブジェクトの動的支配関係解析を 用いたシーケンス図の縮約
卒業研究 JCSPを用いたプログラム開発  池部理奈.
ガウス分布における ベーテ近似の理論解析 東京工業大学総合理工学研究科 知能システム科学専攻 渡辺研究室    西山 悠, 渡辺澄夫.
Amicus: A Group Abstraction for Mobile Group Communications
発表者: 稲葉 一浩 複雑ネットワーク・地図グラフ セミナー 2017/1/19
Jan 2015 Speaker: Kazuhiro Inaba
BSPモデルを用いた 最小スパニング木 情報論理工学研究室 02-1-47-134 小林洋亮.
Speaker: Kazuhiro Inaba Paper Introduction from WSDM 2015
MAUI Project 2009 インターネットにおける近接性
慶應義塾大学 政策・メディア研究科 修士課程 2年 間 博人
第8章 データベースシステムの発展 8.1 オブジェクトリレーショナルデータベース 8.2 分散データベース 8.3 インターネットとデータベース.
グラフの帯域幅連続多重彩色 を求めるアルゴリズム (Bandwidth Consective Multicolorings of Graphs) 西関研究室 西川和秀.
Presentation transcript:

Paper Introduction Of Hammers and Nails: An Empirical Comparison of Three Paradigms for Processing Large Graphs 発表者: Kazuhiro Inaba

この論文について WSDM ’12 ACM Conference on Web Search & Data Mining

巨大Webグラフを扱う計算パラダイム の 比較 PageRank Relational SALSA Data-Parallel SCC WCC In-Memory ASP 3つの計算パラダイム を、     5つのアルゴリズムで比較

データセット ClueWeb 09 Dataset http://lemurproject.org/clueweb09/ Category A: 4.77G nodes, 7.94G edges 71GB uncompressed, 29GB compressed Category B: 0.428G nodes, 0.454G edges

スコアを in-edge のスコアの和に更新 Algorithm 1: PageRank 全ノードのスコアを 1/|V| に初期化 z 回繰り返し スコアを in-edge のスコアの和に更新 確率 d で ランダムジャンプ

Paradigm 1: Relational (実験対象: SQL Server 2008 Parallel DataWarehouse) Relation (= Table) (= Finite set of Tuples) に 対する集合演算で計算処理を表現する 長い研究・実用の歴史 [Codd 1970] 関係代数などに基づいた最適化・並列化 データ表現の柔軟性が低い (なんでもRelationに しないといけない) src dest weight 1 2 1.5 3 12.3

PageRank × SQLServer edges link_count src dest 1 2 3 ... id cnt 1 23 2 SELECT src AS id, COUNT(dest) AS cnt FROM edges GROUP BY src src dest 1 2 3 ... id cnt 1 23 2 10 ... nodes score_prev score_cur id 1 2 ... id score 1 0.01 2 ... id score 1 0.01 2 0.23 ... (次ページ)

PageRank × SQLServer lc.id lc.cnt 1 23 2 10 ... e.src e.dest 1 2 3 sp.id sp.scr 1 0.01 2 ... SELECT ... FROM e, lc, sp e.src e.dest lc.id lc.cnt sp.id sp.scr 1 2 23 0.01 3 10 WHERE sp.id=lc.id & sp.id=e.src e.src e.dest lc.id lc.cnt sp.id sp.scr (1) 2 (23) (0.01) (1, 2) 3 (1,2) (23,10) (0.01,0.01) GROUP BY e.dest curid newscr 2 ... 3 SELECT e.dest AS curid SUM((1-d)/(sp.scr/lc.cnt)) AS newscr

Paradigm 2: Data-Parallel (実験対象: DryadLINQ) 「データの列に一斉に同じ処理をする」 「その結果を特定のキーで集計し別の列を作る」 の多段重ねで計算を記述 Dryad : Microsoft の Data-Parallel インフラ LINQ : MS の言語拡張インフラ Relational Model より 扱えるデータや プログラムは柔軟 計算の一斉同時適用 意外のことは苦手

PageRank × DryadLINQ pages 1 => {2, 3} 2 => {3, 4} 3 => {} ... scores1 2 => 0.005 3 => 0.005 4 => 0.005 scores 1 => 0.01 2 => 0.01 3 => 0.01 ... scores 2 => ... 3 => ... 4 => ... ...

Paradigm 3: In-Memory Store (SHS : Scalable Hyperlink Store) この論文の第一著者の研究 (HT’09) Webのリンク構造を分散・圧縮して保持する データストア ただリンク構造を記憶・取り出しできるだけなので、それ自体に並列計算機構はない (以下の実験でも1マシンで直列実行) 計算部分は普通の小規模プログラムと 変わりないので記述は楽

PageRank × SHS for each u in V ... データストアに 都合のいい単位で 隣接辺集合を まとめて取得 s’[v] += (1-d)*s[u] / |links|

PageRank: 速度 (単位:秒) SQL Dryad SHS 4G : 16台 156,982 68,791 836,445 DataSize : Machine SQL Dryad SHS 4G : 16台 156,982 68,791 836,445 0.4G : 16台 8,970 4,513 90,942 0.4G : 1台 122,305 83,472 63,711 スケール している スケール している

in-Edge があるノードが Authority 候補 Algorithm 2: SALSA “Stochastic Approach to Link-Sensitivity Analysis” 条件RにマッチするWebページ群での”authority度” R とその近傍 in-Edge があるノードが Authority 候補 収束まで繰り返し 2部グラフ上を ランダムウォーク in/out双方で正規化

Implementation SQL DryadLINQ SHS PageRank の場合と似たような実装 Stream join “s.Key equals p.Key” の組み合わせで VR, ER を求める ローカルノードでメインの計算 SHS 擬似コードの通りに VR, ER を求める

SALSA: 速度 (単位:秒) SQL Dryad SHS 4G : 16台 2,199 2,221 124 0.4G : 16台 DataSize : Machine SQL Dryad SHS 4G : 16台 2,199 2,221 124 0.4G : 16台 2,034 439 163 0.4G : 1台 5,873 4,843 37 速い

Algorithm 3: 強連結成分分解 ノードを、相互にreachableなノード集合に分解

Algorithm 3: 強連結成分分解 深さ優先探索 workaround: 次数1のノードは先に除く を2回実行 → これは本質的に sequential なので遅すぎる workaround: 次数1のノードは先に除く

Prune degree-1 node + local naive computation SCC: 速度 (単位:秒) DataSize : Machine SQL Dryad SHS 4G : 16台 7,306 6,294 15,903 - 0.4G : 16台 475 446 1,073 214,858 0.4G : 1台 1,147 3,243 816 94,836 Naive Prune degree-1 node + local naive computation

各ノードを 単一のグループに分類 (代表元=自分) Algorithm 4: 連結成分(無向) 各ノードを 単一のグループに分類 (代表元=自分) 収束まで繰り返し 各ノードについて 隣接ノードの代表元の 最小のIDで 自分(の近傍)の 代表元を置き換え

なぜもっと速いアルゴリズムを 使わないのか? Disjoint-Set Forest (Galler & Fischer 64) a.k.a. Union-Find 全ノードで代表元を覚えるのではなく、代表元に近づく “親” を覚えて木構造を作る。木の高さがlog N になるように工夫する → これも sequential な計算方法なので、   SQLやData-Parallel では書きにくい

Disjoint-set DataStructure WCC: 速度 (単位:秒) O(mn/p) > O(m α(n)) DataSize : Machine SQL Dryad SHS 4G : 16台 214,479 160,168 26,219 0.4G : 16台 4,207 3,844 1,976 0.4G : 1台 63,972 74,359 1,801 Naive Disjoint-set DataStructure

Algorithm 5: 近似最短距離クエリ (Sketch-based: 第1,第5著者ら ’10) S_i = 2^i 個の “seed” 各ノードについて、 最近seedとその距離を計算 (Bellman-Ford)

ASP: 速度 (単位:秒) さほど 速くない SQL Dryad SHS 4G : 16台 671,142 749,016 DataSize : Machine SQL Dryad SHS 4G : 16台 671,142 749,016 2,381,278 0.4G : 16台 30,379 17,089 246,944 0.4G : 1台 138,911 175,839 77,214 index作成の計算時間

まとめ & 感想 まとめ 感想 PageRank => inherently parallel. good. SALSA => 局所的な解析は並列化の恩恵があまりない SCC, ASP vs WCC => sequential vs arbitrary-order access 感想 当然の結果が確かめられていた もっと複雑ネットワークの性質に特化した計算モデル?