2015/01/29 グラフクラスタリングセミナ 3.1. Generation models for clustered graphs & Graph Clustering With Missing Data: Convex Algorithms and Analysis Ramya Korlakai Vinayak, Samet Oymak, Babak Hassibi 発表: 井上 祐馬 1 Satu Elisa Schaeffer
2015/01/29グラフクラスタリングセミナ
3.1. Generation models for clustered graphs
& Graph Clustering With Missing Data:
Convex Algorithms and AnalysisRamya Korlakai Vinayak, Samet Oymak, Babak Hassibi
発表: 井上 祐馬
1
Satu Elisa Schaeffer
2015/01/29グラフクラスタリングセミナ
今日のお話• データ欠損のある隣接行列でクラスタリング • 元のグラフに生成モデルを仮定すると、クラスタリングの成功率を保証できる定式化を提案
• まずは生成モデルの話をします
2
サンプリング
1 2 3 4 5 6 7 81 0 1 ? ? 0 ? 0 12 1 ? 1 1 0 ? ? ?3 ? 0 0 1 ? 0 ? ?4 1 1 1 1 ? ? ? ?5 0 1 ? ? ? 1 0 16 ? ? ? ? 1 ? 1 17 ? ? 0 0 ? ? 0 ?8 ? ? 0 ? ? ? ? 1
2015/01/29グラフクラスタリングセミナ
3.1. Generation models for clustered graphs
3
2015/01/29グラフクラスタリングセミナ
Gilbert model [Gilbert 59]• 一様ランダムな生成
✓ nC2の各辺が独立に確率pで存在
✓ 次数はポアソン分布に従う ✓ 密なクラスタは期待できない
4
p
1-p
2015/01/29グラフクラスタリングセミナ
planted ℓ-partition model [Condon01]• n = ℓ・k として、ℓ 個の頂点からなる k 個のクラスタを生成
• 同じクラスタの頂点間は確率 p 、違うクラスタの頂点間は確率 q で辺を生成 (q < p)
5
p1-p
q
2015/01/29グラフクラスタリングセミナ
Stochastic Block model [Holland01]• n = Σk ni として、ni 個の頂点からなる k 個のクラスタを生成
• 同じクラスタの頂点間は確率 pi 、違うクラスタの頂点間は確率 q で辺を生成 (q < pi)
6
p1-p
q
2015/01/29グラフクラスタリングセミナ
Caveman Graph [Watts99]
• Cave と呼ばれるクリーク (クラスタ) が複数ある
• Cave 内の辺 1 本を他の Cave の頂点に繋ぎかえ
7
2015/01/29グラフクラスタリングセミナ
Caveman Graph [Watts99]
• Cave と呼ばれるクリーク (クラスタ) が複数ある
• Cave 内の辺 1 本を他の Cave の頂点に繋ぎかえ
8
2015/01/29グラフクラスタリングセミナ
Caveman Graph [Watts99]
• Cave と呼ばれるクリーク (クラスタ) が複数ある
• Cave 内の辺 1 本を他の Cave の頂点に繋ぎかえ
9
2015/01/29グラフクラスタリングセミナ
Caveman Graph [Watts99]
• Cave と呼ばれるクリーク (クラスタ) が複数ある
• Cave 内の辺 1 本を他の Cave の頂点に繋ぎかえ
10
2015/01/29グラフクラスタリングセミナ
Relaxed Caveman Graph [Virtanen03]
• 再帰的に定義される多階層のクラスタ
✓ クラスタ内の辺存在確率 p
✓ 一階層潜る度に係数 s で存在率が変化
✓ subcave のサイズの min と max も設定
1111
2015/01/29グラフクラスタリングセミナ
モデルの特徴• planted partition model や relaxed caveman
model はいい感じの人工データ
✓ planted partition model は調整等が扱いやすい
✓ relaxed caveman model は違うサイズのクラスタを作りやすい
12
2015/01/29グラフクラスタリングセミナ
Graph Clustering With Missing Data: Convex Algorithms and Analysis
13
2015/01/29グラフクラスタリングセミナ
概要• グラフ上の関係 nC2 個のデータを完全に得るのは難しい場合がある
• 不完全な隣接行列に対するグラフクラスタリングを考えよう!
• 隣接行列補完手法を提案
• クラスタリング成功/失敗率の見積もり付き
14
2015/01/29グラフクラスタリングセミナ
問題定義• Input : 欠損あり隣接行列 Aobs
• Goal : 欠損がない隣接行列 A に対する グラフクラスタリング
15
1 2 3 4 5 6 7 81 0 1 ? ? 0 ? 0 12 1 ? 1 1 0 ? ? ?3 ? 0 0 1 ? 0 ? ?4 1 1 1 1 ? ? ? ?5 0 1 ? ? ? 1 0 16 ? ? ? ? 1 ? 1 17 ? ? 0 0 ? ? 0 ?8 ? ? 0 ? ? ? ? 1
2015/01/29グラフクラスタリングセミナ
行列補完法1: Simple Convex Program
• L : Low-Rank matrix, 復元された行列
• S : エラーを表す行列
• クラスタ = 理想的にはクリークが独立して存在
⇔ 行列のランクは低い16
minL,S
kLk⇤ + �kS||1
subject to
0 Li,j 1 for all i, j 2 {1, 2, . . . , n}
Lobs + Sobs = Aobs
2015/01/29グラフクラスタリングセミナ
行列補完法1: Simple Convex Program
• : nuclear norm, 行列の特異値の総和
• : ℓ1 norm, 各エントリの絶対値の総和
• ランク最小化はNP-hardなので convex な
nuclear normを使う17
minL,S
kLk⇤ + �kS||1
subject to
0 Li,j 1 for all i, j 2 {1, 2, . . . , n}
Lobs + Sobs = Aobs
k · k⇤
k · k1
2015/01/29グラフクラスタリングセミナ
行列補完法1: Simple Convex Program
• 問題点: p<1/2 になると復元の方が大変に
なって L = 0 になりやすい
18
minL,S
kLk⇤ + �kS||1
subject to
0 Li,j 1 for all i, j 2 {1, 2, . . . , n}
Lobs + Sobs = Aobs
理想 最適化
2015/01/29グラフクラスタリングセミナ
• : クラスタ内の辺の総数 (既知とする)
• S : クラスタ内の辺のみに関するエラー行列
• L のエントリの和に下限が与えられているので0に行列にならない
19
Li,j
= Si,j
whenever Aobs
i,j
= 0
sum(L) � |R|
行列補完法2: Improved Convex ProgramminL,S
kLk⇤ + �kS||1subject to
|R|
0 Si,j Li,j 1 for all i, j 2 {1, 2, . . . , n}
2015/01/29グラフクラスタリングセミナ
本論文の貢献• 前述2つの最適化問題への定式化を与え、グラフがあるモデルに従うという仮定の元で理論解析した
1. について、成功率/失敗率の見積もりを与えた。これによりどの辺りで成功/失敗が入れ替わるのかがわかりやすくなった
2. について、成功率を与えた • 実験で性能を確認した
✓ モデルに従ったグラフでの実験
✓ Crowdsourcing で集めた結果でのクラスタリング実験
20
2015/01/29グラフクラスタリングセミナ
仮定するモデル• 生成モデル : Stochastic Block Model
• ni 個の頂点からなる k 個のクラスタを生成
• 同じクラスタの頂点間は確率 pi 、違うクラスタの頂点間は確率 q で辺を生成 (q < pi)
• 欠損モデル : Partial Observation Model
• ある辺が観測されるかどうかは独立に確率 r
21
2015/01/29グラフクラスタリングセミナ
仮定するモデル• まとめると……
✓ l と m が同じクラスタ i に含まれるなら
✓ そうでないなら
22
Aobs
l,m
=
8><
>:
1, w.p. rpi
0, w.p. r(1� pi
)
⇤, w.p. 1� r
Aobs
l,m
=
8><
>:
1, w.p. rq
0, w.p. r(1� q)
⇤, w.p. 1� r
2015/01/29グラフクラスタリングセミナ
定理 - Simple Convex Program -
✓ : 異なるクラスタ間の辺の総数
✓
✓ 証明略23
� � (1 + ✏)⇤fail
1� c1 exp(�c2|Rc|)
|Rc|
⇤�1fail =
vuutrq
n�
KX
i=1
n2i
n
!
失敗率について、 を満たすなら
確率 で失敗する
2015/01/29グラフクラスタリングセミナ
定理 - Simple Convex Program -
✓ ✓
24
成功率について、 を満たすとき
• なら、
確率 で成功する
• なら、確率 で失敗する
0 < � (1� ✏)⇤succ
min1iK
{nir(2pi � 1)} � (1 + ✏)1
�
min1iK
{nir(2pi � 1)} (1� ✏)1
�
1� c1n2exp(�c2 min
1iKni)
1� c1 exp(�c2 min
1iKni)
�succ = max
1iK2rpni
p2(1/r � 1) + 4(q(1� q) + pi(1� pi))
⇤�1succ = 2r
pnp1/r � 1 + 4q(1� q) + �succ
2015/01/29グラフクラスタリングセミナ
• 要約すると……
• なら、クラスタ外の辺が少ないほど高確率で失敗
• なら、 のときクラスタが大きいほど高確率で成功
• のときはよくわからない
25
定理 - Simple Convex Program -
� > ⇤fail
� < ⇤succ min1iK
{nir(2pi � 1)} > 1/�
⇤fail < � < ⇤succ
�0 1min
1iK{nir(2pi � 1)} ⇤succ ⇤fail
fail failsucc ???
2015/01/29グラフクラスタリングセミナ
• を仮定すると、式変形より高い成功率のためのクラスタサイズの下限がわかる
26
定理 - Simple Convex Program -max
1iKni = o(n)
min1iK
ni >2pn
2p� 1
r1
r� 1 + 4q(1� q)
2015/01/29グラフクラスタリングセミナ 27
定理 - Improved Convex Program -
成功率について、 を満たすとき
• なら、
確率 で成功する1� c1n2exp(�c2 min
1iKni)
0 < � (1� ✏)⇤succ
⇤�1succ = 2r
pnp
(1/r � 1 + q)(1� q) + �succ
�succ = 2 max
1iKrpni
p(1� pi)(1/r � 1 + pi) + (1� q)(1/r � 1 + q)
min1iK
{nir(pi � q)} � (1 + ✏)1
�
✓ ✓ ✓ 同じく証明略
2015/01/29グラフクラスタリングセミナ
• 要約すると……
• ならクラスタが大きいほど高確率で成功
• を仮定すると、式変形より高い成功率のためのクラスタサイズの下限がわかる
• 式変形より、欠損箇所をそのままにするより、0 で埋めた方が精度がよくなることがわかる
28
定理 - Improved Convex Program -
min1iK
{nir(pi � 1)}�1 < � < ⇤succ
max
1iKni = o(n)
min1iK
ni >2pn
p� q
vuut 1
r� 1 + q
!(1� q)
2015/01/29グラフクラスタリングセミナ
実験1: 人工データ + Simple CP• 600頂点3クラスタのグラフを SBM + POM に従って生成
1. n1 = n2 = n3 = 200 に固定し、p と r を変化させる
2. p1 = p2 = p3 = 0.85 に固定し、nmin と r を変化させる
• として、成功と失敗の境界を観察
29
� = 1.01 min1iK
{nir(2pi � 1)}�1
白:成功, 黒:失敗 赤:理論成功閾値 緑:理論失敗閾値
だいたい理論通り
2015/01/29グラフクラスタリングセミナ
実験2: 人工データ + Improved CP• 600頂点3クラスタのグラフを SBM + POM に従って生成
✓ n1 = n2 = n3 = 200 に固定し、p と r を変化させる
• として、成功の境界を観察
30
白:成功, 黒:失敗 赤:理論成功閾値
� = 0.49⇤succ
だいたい理論通り
2015/01/29グラフクラスタリングセミナ
実験3: 人工データで比較• 600頂点3クラスタのグラフを SBM + POM に従って生成
✓ n1 = n2 = n3 = 200, r = 1 に固定し、p を変化させる
• として、成功の境界を観察
31
� = 0.49⇤succ
Simple は1/2以下ではダメ Improved は 0.35 までOK
2015/01/29グラフクラスタリングセミナ
実験4: クラウドソーシング• 犬の画像による犬種の分類
✓ Stanford Dogs Dataset より
✓ 3犬種: Norfolk Terrier (172枚)
Toy Poodle (151枚)
Bourvier des Flandres (150枚)
32
2015/01/29グラフクラスタリングセミナ
実験4: クラウドソーシング• 実験設定 ✓ 一人のワーカーにランダムに 30 組の写真を見せる
✓ 隣接行列の 111,628 エントリのうち 16,750 が埋まり、間違いは23.53%含まれていた
✓ 何もしない・simple CP・improved CPの
それぞれで k-means した結果を
比較 (λ = 1/√n, |R| = 0.125nC2)
33
2015/01/29グラフクラスタリングセミナ
実験4: クラウドソーシング• 実験結果:精度向上
クラスタ数推定のための固有値も綺麗に出る
34
2015/01/29グラフクラスタリングセミナ
実験4: クラウドソーシング• 実験結果:精度向上
クラスタ数推定のための固有値も綺麗に出る
35
2015/01/29グラフクラスタリングセミナ
まとめ• モデルに基づくクラスタが存在するグラフの隣接行列に対し、効果的な行列補完を定式化した
• (式は実験では拡張ラグランジュ法で解いた)
• 理論的な成功 / 失敗率を見積もり、実験でその正当性を確認した
• 現実のクラスタリングに使用したところ、精度が向上した
36