More Related Content
Similar to 大規模グラフ解析のための乱択スケッチ技法
Similar to 大規模グラフ解析のための乱択スケッチ技法 (20)
More from Takuya Akiba (8)
大規模グラフ解析のための乱択スケッチ技法
- 4. 3
今日の話
1. MinHashSketches入門
•基礎的かつ強力な乱択スケッチ(900+引用!)
2. All-Distances Sketches 入門
•グラフにおける様々な操作を可能にする乱択スケッチ
時間の都合上,中心性の計算を主に扱います.
グラフ解析の基礎にも触れながら説明していきます.
集合のスケッチ技法
グラフのスケッチ技法
- 7. Sketching による効率化
解決策:
集合そのものの代わりになるSketchを使う
6
Sketch 푫(푺)
集合푺
hoge
piyo
fuga
???
•小さい!
•効率的に処理ができる!
•ただし結果は推定になる
- 8. Jaccard 係数
集合の類似度としてJaccard 係数を考えます
集合푺ퟏと푺ퟐのJaccard 係数:
퐽푆1,푆2= 푆1∩푆2|푆1∪푆2|
具体的な場面
•文章の類似検索,重複検出
•商品の推薦
集合のJaccard 係数を推定したい気持ちになって下さい
7
- 10. Jaccard 係数推定の基礎
重要な性質
Prminℎ푎|푎∈푆1=minℎ푏|푏∈푆2=퐽푆1,푆2
2 つの集合のハッシュ値のmin が一致する確率は
Jaccard 係数に等しい!
※ハッシュ関数は完全にランダムに振る舞うと仮定
9
푆1のSketch
푆2のSketch
- 11. Jaccard 係数推定の基礎
なぜ?具体例で考えてみます.
•푆1=2,5,7,9,푆2=1,2,4,7,10
푆1∩푆2=2,7.例えば2で一致する場合とは?
•argminℎ푎|푎∈푆1=2⇔{2,5,7,9}で2が最強
•argminℎ푏|푏∈푆2=2⇔{1,2,4,7,10}で2が最強
条件を合わせると,
•2で一致⇔1,2,4,5,7,9,10=푆1∪푆2中で2が最強
一致するのは7 でも良く,このように,要は
푆1∪푆2中で最強のものが푆1∩푆2のいずれかであればよい.
その確率は:S1∩푆2/S1∪푆2=퐽푆1,푆2.
10
最強=ハッシュ値が最低
- 12. 풌-min MinHashSketch
あとはこれを푘個並べると……!
풌-min MinHashSketch
•異なる푘個のハッシュ関数ℎ1,ℎ2,…,ℎ푘を用意
•それぞれについてさっきのmin を計算&保存
Jaccard 係数の推定
•「一致した数/ 푘」により퐽푆1,푆2を推定
推定値はunbiased(不偏)
また分散は퐽1−퐽/푘になることが示せる
11
- 13. MinHashFamily
こんな感じでハッシュ関数の最小値に注目する
Sketchingの手法が一般にMinHashと呼ばれる.
(Jaccard 係数推定以外のことも色々できる.)
MinHashのバリエーション
•푘個の並べ方
–푘-min Sketch (OddSketchはコレ)
–푘-partition Sketch(HyperLogLogはコレ)
–Bottom-푘Sketch(最近のAll-Distances Sketches はコレ)
•ハッシュ値の使い方
–Full Ranks (さっきのやつはコレ)
–푏-bit MinHash(Jaccard係数でよく使われているヤツ)
–Base-푏Ranks(HyperLogLogはBase-2 Ranks)
–……
12
- 17. All-Distances Sketches の歴史
起源は実は20 年前
•E. Cohen. J. Comput. System Sci,1997
最近の注目
•P. Boldi, et al. WWW 2011・・・近傍関数・有向直径
•E. Cohen, et al. COSN 2013・・・関連性
•E. Cohen. PODS 2014・・・近傍関数・中心性
•E. Cohen, et al. CIKM 2014 ・・・影響最大化
•E. Cohen, et al. submitted・・・影響最大化(時間減衰)
16
- 20. All-Distances Sketches の定義
定義1
ADS 푣 ≔ 푢 푟 푢 < k푟
th Φ<푢 푣
定義2
任意の距離푑 に対する近傍関数푁푑 푣 の
Bottom-k MinHash の和集合
19
??? 意味不明だと思うので
ゆっくり説明していきます
- 22. ADS(풗)の視覚的な説明
21
ADS푣=
自分より左下に点が
푘個未満の頂点
푘=3の例
(MinHash同様にパラメータがある)
풗からの距離
ランク
性質
•ランク小さい方から푘個は必ず含まれる
•近い方から푘個も必ず含まれる
•遠くなってゆくほど含まれにくくなっていく
- 23. MinHashとADS の関連
풌-Min MinHash
푘個の独立なハッシュ関数を用意しそれぞ れで最小値を記録
(先ほど紹介したもの)
Bottom-풌MinHash
1 つのハッシュ関数で푘個の最小値を記録
(これでも色々できる)
22
- 24. All-Distances Sketches の定義
定義1
ADS 푣 ≔ 푢 푟 푢 < k푟
th Φ<푢 푣
定義2
任意の距離푑 に対する近傍関数푁푑 푣 の
Bottom-k MinHash の和集合
23
??? 意味不明だと思うので
ゆっくり説明していきます
- 25. ADS(풗)の視覚的な説明
24
ADS푣=
自分より左下に点が
푘個未満の頂点
푘=3の例
(MinHash同様にパラメータがある)
Bottom-풌MinHash
1 つのハッシュ関数で푘個の最小値を記録
풗からの距離
ランク
- 27. ADS のサイズ
26
なぜ?
近い頂点から順に考える.ランクが
ランダムであることを思い出す.
푖番目の頂点がADS に含まれる確率푝푖は
푝푖=min1,푘/푖
よって,
Σ푝푖=푘+푘퐻푛−퐻푘 ADS푣≅푘1+ln푛−ln푘=푂푘log푛
풗からの距離
ランク
調和数
- 30. 中心性とは
中心性=重要度の推定値
色々な式がある
•次数中心性(Degree Centrality)
–単純に次数を重要度とみなす
•近接中心性(Closeness Centrality)
•媒介中心性(BetweennessCentrality)
•(PageRank, HITS, …)
29
- 31. 近接中心性
距離に基づいた中心性
•퐶푣=Σ푢∈푉 1 푑퐺푣,푢
•퐶푣=Σ푢∈푉2−푑퐺푣,푢
一般に
퐶훼푣= 푢∈푉 훼푑퐺푣,푢
훼は単調非減少,훼푑∈0,1
(他の定義もあるけどこれで大部分はカバーできてる)
푢から푣への距離
http://en.wikipedia.org/wiki/Centrality
- 33. 近傍関数
近接中心性
퐶훼푣= 푢∈푉 훼푑퐺푣,푢
近傍関数
푛푑푣=#푢∈푉|푑퐺푣,푢≤푑
(距離푑以下で何頂点に到達できるか?)
近傍関数は近接中心性の一種
近傍関数のほうが簡単なので,近傍関数か ら始める
32
- 34. ADS による近傍関数の推定1
Basic Estimator
푛푑푣= 푘−1 휏푘
到達可能な頂点のBottom-푘MinHashを取り出して,
MinHashによる集合サイズ推定を適用している
33
풗からの距離
ランク
휏푘
範囲内で
푘番目に小さいランク
簡単!
- 35. ADS による近傍関数の推定1
Basic Estimator
푛푑푣= 푘−1 휏푘
精度
퐶푉≤1/푘−2
CV (coefficient of variation):
標準偏差/ 平均
34
풗からの距離
ランク
휏푘
- 36. ADS による近接関数の推定2
HIP Estimator [Cohen, PODS’14]
着想:
•先ほどのBasic EstimatorはMinHashを取り 出してその情報だけを使った
–ちなみにMinHash情報のみを使う場合は先ほ どの推定がほぼoptimal
•全体の情報を使ってより良い推定はでき ないのか?
35
- 37. ADS による近接関数の推定2
HIP Estimator [Cohen, PODS’14]
푛푑푣= 푢∈ADS푣,푑퐺푣,푢≤푑 1 휏푢
36
풗からの距離
ランク
풖
푘=3
1
2
3
휏푢
各푢について,
そいつより左で푘番目に
小さいランク
- 38. ADS による近接関数の推定2
HIP Estimatorを納得する
•휏푢は,条件付き確率
–条件:それまでの頂点のランクを固定
–確率変数:푢のランク
–何の確率?:푢がADS푣に含まれる
37
풗からの距離
ランク
풖
푘=3
1
2
3
휏푢
自分より左で푘番目に
小さいランク
- 39. ADS による近接関数の推定2
HIP Estimatorを納得する
푛푑푣= 푢∈ADS푣,푑퐺푣,푢≤푑 1 휏푢
•휏푢は,푢がADS푣に含まれる条件付き確率
•푢がADS(푣)に含まれるのは確率휏푢の現象
•1/휏푢個ぐらい“仲間” が居たはず
–過去に戻って(historic)確率を求め(probability) 逆数を たす(inverse) からHIP
38
- 40. ADS による近接関数の推定2
HIP Estimator
푛푑푣= 푢∈ADS푣,푑퐺푣,푢≤푑 1 휏푢
精度
퐶푉≤1/2(푘−1)
(Basic Estimator: 퐶푉≤1/푘−2)
CV (coefficient of variation):
標準偏差/ 平均
- 41. 近接中心性の推定
近傍関数
푛푑푣= 푢∈ADS푣,푑퐺푣,푢≤푑 1 휏푢
近接中心性
퐶훼푣= 푢∈ADS(푣) 훼푑퐺푣,푢 휏푢
精度
同じく퐶푉≤1/2(푘−1)
40
- 43. 42
まとめ
1. MinHashSketches入門
2. All-Distances Sketches 入門
•MinHashは集合の,ADS はグラフのスケッチ
•ADS はMinHashを部品としており,良い性質を多数持つ
•ADSから様々なものが推定できる
–MinHashを取り出して行う推定
–全体を使うHIP Estimator
ADSの課題
•実際に使ってみると,ほぼ線形とは言え,データサイズ が大きすぎる(푘を大きくできず精度が出ない)
この点も近いうちに改善されることが期待される