wsdm2016報告会−論文紹介(distributed balanced partitioning via linear embedding google...

30
2016/4/27 論文紹介 Distributed Balanced Partitioning via Linear Embedding Google Research 矢野 将之 ヤフー株式会社

Upload: yahoo

Post on 09-Jan-2017

357 views

Category:

Technology


0 download

TRANSCRIPT

2016/4/27

論文紹介Distributed Balanced Partitioning via Linear Embedding

Google Research

矢野 将之

ヤフー株式会社

P2

できるだけカットサイズが小さい分割位置を見つける

この論文の目的

G=(V, E)

分割

大規模グラフ分割時のカットサイズ最小化方式の提案

分割

P3

Server CServer BServer A

小カットサイズなら、別Serverにリクエストする可能性が減る

この論文の目的

分割したグラフを分散サーバに配置

ネットワーク通信 ネットワーク通信

P4この提案の必要性

グラフ分割の必要性• 1サーバではリソース不足• 並列処理による高速化

カットサイズ最小化の必要性• 高速化• ネットワークコスト

この提案の必要性• シンプルなのでMapReduceで実装可能• 先行研究より少ないカットサイズを実現

P5提案手法

1.グラフの頂点を直線状にマッピング

2.頂点を入れ替え順番を変更

3.カット位置を変更しカットサイズを改善

主には3つのステップ

P61. グラフの頂点を直線状にマッピング

G=(V, E)

0 41 2 3 5 6 7 8 10119

Initial ordering

• 局所最適化できる問題への切り替え

P72. 頂点を入れ替え順番を変更

Initial ordering

0 61 3 2 5 4 11 8 10 79

Semi-local moves

• 均等に分割• カットサイズが少なくなるように頂点をスワップ

P83. カット位置を変更しカットサイズを改善

0 61 3 2 5 4 11 8 10 79

Semi-local moves

0 61 3 2 5 4 11 8 10 79

Imbalance

• カットサイズが小さくなるようにカット位置を変更

P9提案手法

1.グラフの頂点を直線状にマッピング

2.頂点を入れ替え順番を変更

3.カット位置を変更しカットサイズを改善

主には3つのステップ

P101. グラフの頂点を直線状にマッピング

• Random mapping• 頂点をランダムに並べる

• Hilbert curve mapping• 空間充填曲線• 空間的に近いものを直線上の近い位置に配置

• Affinity-based mapping• 凝集型階層クラスタリング• 近似指標には共通隣接頂点数の割合を利用

P11凝集型階層的クラスタリングイメージ

G=(V, E)

• 最初は各頂点自体がクラスタリング

• 各クラスタにラベルをつける(v0, v1, …)

v0

v1

v2

P12凝集型階層的クラスタリングイメージ

G=(V, E)

• 赤同士で距離が近いものをクラスタリング(オレンジ)

• 各クラスタにラベルをつける (A0, A1, A2, A3)

※ここでの距離は共通隣接頂点数の割合。上の図はその意味で正確ではありません

A0

A1

A3A2

P13凝集型階層的クラスタリングイメージ

• オレンジ同士で距離が近いものをクラスタリング(緑)

• 各クラスタにラベルをつける( B0, B1 )

G=(V, E)

B0

B1

P14Affinity-based mapping

0 41 2 3 5 6 7 8 10 119

C0

B0 B1

A0 A2

v0 v5v2

v0のラベル C0#B0#A0#v0

v5のラベル C0#B1#A2#v5

• ラベルでソートすることで頂点の位置を並び替え

P15提案手法

1.グラフの頂点を直線状にマッピング

2.頂点を入れ替え順番を改善

3.カット位置を変更しカットサイズを改善

主には3つのステップ

P16Minimum Linear Arrangement

G = (V, E)

𝜙 ∶ 𝑉 → 0,1,… , 𝑛 − 1

𝑚𝑖𝑛

(𝑢,𝑣)∈𝐸

𝜙 𝑣 − 𝜙(𝑢) 𝓌𝓊𝓋

0 41 2 3 5 6 7 8 10 119

3-0=32-1=14-1=3…11-9=211-10=1合計 23

P17Minimum Linear Arrangement

グラフ上で繋がりのある頂点はできるだけ直線上の近くに配置する

グラフ上で密な箇所はある程度固まった箇所に配置されるので分割しやすいはず

4 5 6 7 8 10 1190 1 2 3

P18Minimum Linear Arrangement

MapReduceで収束するまで(または指定回数)実行

MR Phase 11. 現在の位置と隣の位置の重みからweighted medianを算出2. その位置を新しいRankとする

MR Phase 21. 位置が重複したらIDベース順などで並べる2. 各ノードに新しいRankをつける

グラフによって収束するまでの回数は異なる

P19Rank Swap

0 41 2 3 5 6 7 8 10 119

I0 I1 I0 I1

各グループからランダムにペアを選ぶ (例えば左 l1 と 右 l0のペア)

43 5 6 7 8

I1 I0

分割したパーティションをさらにいくつかのグループに分ける

カットサイズが小さくなるようにこのペアの頂点を入替え

P20提案手法

1.グラフの頂点を直線状にマッピング

2.頂点を入れ替え順番を改善

3.カット位置を変更しカットサイズを改善

主には3つのステップ

P21Windowの定義

W1 W2 W3

与えられたグラフを k 分割

均等な分割場所

𝑞𝑗 =𝑗𝑛

𝑘, 1 ≤ 𝑗 < 𝑘, 1 ≤ 𝑖 < 𝑛

許容可能なバランス𝛼 > 0

Window

𝑊𝑗 = 𝜋 𝜋𝑞𝑗−𝛼′ → 𝜋𝑞𝑗+𝛼′ , 𝛼′ =𝛼𝓃

2𝑘

−𝛼′ 𝛼′−𝛼′ −𝛼′𝛼′𝛼′

P22Windowの詳細

41 2 3 5 6 7 8

• W2の頂点に繋がっていない辺は未記述

• 反対側の頂点はカットサイズに影響しないので未記述

W2

W1 W2 W3

−𝛼′ 𝛼′−𝛼′ −𝛼′𝛼′𝛼′

P23Scalable linear boundary optimization

41 2 3 5 6 7 8

• window内の順序は維持

• 分割の位置のみ最適化

• この図では1と2の間でのカットが最適

(カットサイズは4)

W2

P24Scalable minimum-cut optimization

81 7 3 6 2 4 5

• window内での順序は自由に入替え

• この図では8と6の間でのカットが最適

(カットサイズは1)

W2

P25実験(テストデータ)

頂点 辺 その他

World-roads 数億 10億以上 • 辺の重さなし• 緯度経度を持つ• 少数のサーバ

Twitter 4100万 24億 • 辺の重さなし• 無向グラフ

LiveJournal 480万 4290万

P26Metric, Swapとアンバランス(Twitter)

Metric: Minimum Linear ArrangementSwap: Rank SwapCombination: Metric+Swap+アンバランス

論文引用

P27Metric, Swapとアンバランス(World-roads)

Metric: Minimum Linear ArrangementSwap: Rank SwapCombination: Metric+Swap+アンバランス(3%)

論文引用

P28他システムとの比較

LiveJournal

Twitter

論文引用

論文引用

P29Conclusion

• 大規模グラフの分割アルゴリズムを提案

• 頂点を直線上に配置するアルゴリズム

• 凝集型階層クラスタリング

• Random-swapとminimum cutによる最適化

• 他のシステムよりも良いカットサイズ

• Google Maps Driving Directionにてヒルベルト曲線のアルゴ

リズムより共有クエリ数を40%削減

P30