More Related Content Similar to 多数のグラフからの統計的機械学習 (2014.7.24 人工知能学会 第94回人工知能基本問題研究会 招待講演) (20) More from Ichigaku Takigawa (20) 多数のグラフからの統計的機械学習 (2014.7.24 人工知能学会 第94回人工知能基本問題研究会 招待講演)5. /404
0.1 0.7 1.2 0.2 1.3 0.9
g1 g2 g3 g4 g5
y1 y2 y3 y4 y5
g6
y6
y
g
本題:多数のグラフからの統計的機械学習
関⼼:多数の離散的な対象に統計を効かせて連続的法則性をモデル化したい
グラフ 値
有限事例 から、 となるようなモデル を構成したい
6. /405
0.1 0.7 1.2 0.2 1.3 0.9
g1 g2 g3 g4 g5
y1 y2 y3 y4 y5
g6
y6
y
g
今⽇の話に通底する本質は「特徴設計」
Q.与えられた問題を解くための適切な特徴をどう設計すれば良いのか?
→ 特徴⼯学、特徴選択、表現学習の問題
(究極的には⼈⼯知能で昔からあるフレーム問題+記号着地の問題?)
顔 変顔度例)
7. /406
0.1 0.7 1.2 0.2 1.3 0.9
⽣物活性
化学構造
実問題の典型例
「化合物が突然変異誘発性(毒性)を持つかどうか?」
帰納論理プログラミングで解析され伝統的なHansh-藤⽥のQSAR法と⽐較された。
参考:「帰納論理プログラミング(古川康⼀ら著,共⽴出版,2001)」の10.3節
構造物性相関(SPR)
例) 構造活性相関(SAR):構造からその活性をどの程度予測できるのか?
10. /408
0.1 0.7 1.2 0.2 1.3 0.9
⽣物活性
化学構造
例) 構造活性相関(SAR):構造からその活性をどの程度予測できるのか?
多数のグラフに対する統計的機械学習
「化合物が突然変異誘発性/毒性を持つかどうか?」
基本的には背景原理が複雑すぎてよく分からない/規模的に理論計算できない現象が対象!
薬剤候補の毒性、安全性、吸収・分布・代謝・排泄(ADME)など…
17. /4014
0.1
0.7
0.9
⋮ ⋮
1.2
…
0 0 1 1 1 0 …
1 0 0 0 0 1 …
1 1 0 1 1 0 …
⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱
1 0 1 1 1 0 …
y g
x1 x2 x3 x4 x5 x6
g1
g2
g3
gn
全ての可能な部分構造特徴による空間
※あくまで仮想的なもので陽に構成するのは⼩さいnですら⾮現実的
18. /4014
0.1
0.7
0.9
⋮ ⋮
1.2
…
0 0 1 1 1 0 …
1 0 0 0 0 1 …
1 1 0 1 1 0 …
⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱
1 0 1 1 1 0 …
y g
x1 x2 x3 x4 x5 x6
g1
g2
g3
gn
全ての可能な部分構造特徴による空間
※あくまで仮想的なもので陽に構成するのは⼩さいnですら⾮現実的
部分グラフ指⽰⼦
出現数や確率などの重みを掛ける
ことも多いが、基本的には
0 or 1 (出現するかしないか)
のみが重要
bag-of-
features
19. /4014
0.1
0.7
0.9
⋮ ⋮
1.2
…
0 0 1 1 1 0 …
1 0 0 0 0 1 …
1 1 0 1 1 0 …
⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱
1 0 1 1 1 0 …
y g
x1 x2 x3 x4 x5 x6
g1
g2
g3
gn
全ての可能な部分構造特徴による空間
※あくまで仮想的なもので陽に構成するのは⼩さいnですら⾮現実的
本⽇、概説する⽅法は基本的に
この空間の部分空間で説明できる
部分グラフ指⽰⼦
出現数や確率などの重みを掛ける
ことも多いが、基本的には
0 or 1 (出現するかしないか)
のみが重要
bag-of-
features
20. /4015
Data-Driven Fingerprints
• Extended Connectivity Fingerprint
(Rogers and Hahn, 2010)
• Frequent and/or Bounded-Size Subgraphs
(Wale et al, 2008)
関連する⼿法:主な3つの枠組の概説
Sparse Learning
• Graph AdaBoost
(Kudo et al, 2004)
• Graph LPBoost (gBoost)
(Saigo et al, 2009)
• Graph LARS/LASSO
(Tsuda et al, 2007)
Discriminative Subgraph Mining
(※ )
• LEAP
(Yan et al, 2008)
• GraphSig
(Ranu et al, 2009)
• CORK
(Thoma et al, 2009)
Graph Kernels
• Marginalized Kernels
(Kashima et al, 2003, 2004; Máhe et al, 2005)
• Walk Kernels
(Gärtner et al, 2003; Borgwardt et al, 2005;
Vishwanathan et al, 2010)
• Weighted Decomposition Kernels
(Menchetti et al, 2005)
• Subtree Kernels
(Mahé and Vert, 2009)
• Weisfeiler-Lehman Kernel
(Shervashidze et al, 2011)
❶
❷
❸
❹
21. /4016
0.1
0.7
0.9
⋮ ⋮
1.2
…
0 0 1 1 1 0 …
1 0 0 0 0 1 …
1 1 0 1 1 0 …
⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱
1 0 1 1 1 0 …
y g
x1 x2 x3 x4 x5 x6
g1
g2
g3
gn
❶ Data-Driven Fingerprints
1. 事前知識と対象問題の特性から
決めうちで有限特徴集合を設計
2. 特徴を学習データから⽣成
• 最も伝統的 (もともと検索⽤?)
• PubChem fingerprintやMaccs Key
など確⽴したものや、⾊々な特許も
• 性能のデータ・問題依存性が⾼い
→ データ駆動のfingerprint
特徴の有無で表現される0-1特徴
ベクトルをfingerprintと呼ぶ
ただし、全ての可能な部分構造特徴
から⾒れば部分セット
23. /4018
Hashed Fingerprint (Wale et alではChemAxonのもの)
❶ Data-Driven Fingerprints
DaylightやChemAxonを含む商⽤の⼈気ケモインフォパッケージで
標準的に⽤いられる (部分構造のサイズや種類はある程度限定)
https://docs.chemaxon.com/display/jchembase/User's+Guide
24. /4019
❶ Data-Driven Fingerprints
Extended Connectivity Fingerprints
http://chembioinfo.com/2011/10/30/revisiting-
molecular-hashed-fingerprints/
1. 左図のように各頂点ごとに0〜3近
傍の部分グラフ特徴を列挙
2. 部分グラフ特徴を何らかの⽂字列
表現(SMARTS/SMILES等)にして
適当なハッシュ関数でHashed
Fingerprintを⽣成
概要(いくつかのvariationあり)
※実際はMorganのアルゴリズム(Morgan: J.
Chem. Doc. 5, 107-113, 1965)という頂点
番号付け⼿順を使って効率的に計算できる
25. /4020
❷ Graph Kernels
0.1
0.7
0.9
⋮ ⋮
1.2
…
0 0 1 1 1 0 …
1 0 0 0 0 1 …
1 1 0 1 1 0 …
⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱
1 0 1 1 1 0 …
y g
x1 x2 x3 x4 x5 x6
g1
g2
g3
gn
種類を制約することでimplicitに
内積値が効率的に計算できるも
のを探究する
• Walkのみ
• ⻑さl以下のPathのみ
• Treeのみ
:
すべてのSubgraphの場合は内積
計算の計算コストが⼤きすぎ(NP-
hard)で現実的には実装不可能
データ⾏列は陽には構成しない!
26. /40
0 1 0 0 1
0 0 1 0 1
1 2 0 0 0
0 0 0 1 2
21
❷ Graph Kernels
a a a b a c b b b c
a b c
a c b
a a b
b
b b c
g1
g2
g3
x1 x2 x3 x4 x5
例) スペクトルカーネル (⽂字列と同様)
モデルの学習に
⽤いる特徴集合
2
1 2
2 0 5
2 2 0 5
g1
g2
g3
g1 g2 g3
グラム⾏列
これだけ計算
できればOK
27. /40
(ゆえに )
22
❷ Graph Kernels
• Marginalized Kernels
(Kashima et al, 2003, 2004; Máhe et al, 2005)
• Walk Kernels
(Gärtner et al, 2003; Borgwardt et al, 2005;
Vishwanathan et al, 2010)
• Weighted Decomposition Kernels
(Menchetti et al, 2005)
• Subtree Kernels
(Mahé and Vert, 2009)
• Weisfeiler-Lehman Kernel
(Shervashidze et al, 2011)
特徴空間Vでの内積値k(g,gʼ)
が効率的に計算可能かが⼤事
ユークリッド的な空間 V
(再⽣核Hilbert空間)
再⽣性
⼀般のカーネル法の原理
陽に特徴空間Vを作る事でカーネル法が適⽤
できること(kの正定値性)を⽰す事が多い?
28. /4023
❷ Graph Kernels
例) Weisfeiler-Lehman Kernel
ECFPと似て近傍を特徴として取っていくが、再帰的リラベルを⽤いる
2つのグラフが⾮同型なことを効率的にcheckするWeisfeiler-Lehman
アルゴリズム(1968)という発⾒的⽅法の⽣成ラベルでカーネル設計を⾏う
http://www.cc.gatech.edu/~lsong/teaching/8803ML/lecture22.pdf
リラベル リラベル
(Shervashidze et al, JMLR 2011)
①x5 ①x5
同型? ②x3 ③x2
④x1
②x3 ③x2
④x1
⑥x1 ⑦x2
⑧x2 ⑩x1
⑤x2 ⑥x1
⑨x2 ⑩x1
⾮同型!同型?
異なる!
29. /4024
❸ Sparse Learning: Boostingによる特徴選択
0.1
0.7
0.9
⋮ ⋮
1.2
…
0 0 1 1 1 0 …
1 0 0 0 0 1 …
1 1 0 1 1 0 …
⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱
1 0 1 1 1 0 …
y g
x1 x2 x3 x4 x5 x6
g1
g2
g3
gn
候補は「すべての可能な部分構造
特徴」を考え、必要な特徴を疎学
習によって同時獲得する
基本アイデア:
各部分グラフ指⽰⼦(とその反転)
を弱学習器とみて、boostingによ
り逐次選択していく
30. /4025
❸ Sparse Learning: Boostingによる特徴選択
例) Adaboostに基づく特徴とモデルの同時学習
(Kudo et al, NIPS 2004)
各iterationでは各々の「部分グラフ指⽰⼦」のすべての候補の中から、
最も”重み付き誤差”を最⼩にするものをモデルに加える(*)
Tラウンドまでで最⼤T個の部分グラフ指⽰⼦の線形モデルが学習される
★重要ポイント
上の*の探索は頻出部分グラフ列挙(gSpan等)の探索構造とBranch
and Boundを使って効率的に解く事ができる。
→ 後述のLPboostでも同じ
(Adaboostが使われたが原理上はArc-GVやsoft-margin boostingも可)
31. /4026
❸ Sparse Learning: Boostingによる特徴選択
例) LPboostに基づく特徴とモデルの同時学習(gBoost)
(Saigo et al, Mach Learn, 2009)
基本はAdaboostをLPboostにする話だが含意するものがもっと広い。
で損失関数LがSVMと同じhingeの場合 (1-norm SVM)と等価
SVMは正則化項が
上記hinge loss+L1最⼩化は線形計画問題
※Totally corrective boosting
列⽣成法というDantzig-Wolfe分解の考え⽅を応⽤するLPの計算技法を使う
= これをboostingとして⾒たのがLPboost
(最適化の観点で⾒るとある種のCoordinate Descent?)
Adaboostは?な部分が…
LPboost (Demiriz et al,2002)
34. /4029
❸ Sparse Learning
得られている成果
1, 2 > 0 L
= ( 1, 2, . . . )
g gµ( | , 0) := 0 +
j=1
jI( )xj
min
, 0
n
i=1
L yi, µ(gi | , 0) + 1 1 +
2
2
2
2
0
基本⽅針: Adaboostをやめて、LPboost(Coordinate Descent)的な捉え⽅で
陽な最適化を⼯夫し、何とかすべての部分グラフ特徴を考えても動くようする。
あまり検討してない事:罰則が無い or 陽に考えないことにすれば、
Gradient Boosting等の⼀般化Boostingを⾏う⽅向も有り得るのかも?
35. /4030
g gµ( | , 0) := 0 +
j=1
jI( )xj
❸ Sparse Learning: 設定の再考
0.1
0.7
0.9
⋮ ⋮
1.2
…
0 0 1 1 1 0 …
1 0 0 0 0 1 …
1 1 0 1 1 0 …
⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱
1 0 1 1 1 0 …
y g
x1 x2 x3 x4 x5 x6
g1
g2
g3
gn
AdaboostでもLPboostでも(多くの
graph kernel法でも)最終的に得るの
は上の形の線形モデル
指⽰⼦の0-1変数に対して、1次の
Pseudo-boolean functionになる。
もし の値を適当な閾値で切って
⼆値化する場合(分類などの場合)、
Linear threshold functionになる。
特徴ベクトルはboolean cubeの端点に分布
38. /4032
x
x
zi 2 {0, 1}f(z1, z2, . . . , zn) 2 R
x
x
列挙⽊の各頂点 にはn次元Boolean vectorが付随
探索が深くなるに
つれて
1をとる添字集合
が⼊れ⼦的に減る!
今のノードより深く探索した場合の
関数値の上界・下界は今1の箇所を
任意に0に変えて可能なmaxとmin
鍵となる⽊型の探索空間とbounding技法
この付随するn次元Boolean vectorを
引数とする実関数 を考える。
※⼀般には全組合せの探索が必要
39. /4033
鍵となる⽊型の探索空間とbounding技法
f(u) f(v) f(u) for all v s.t. 1(v) 1(u)
f(u) :=
i 1(u)
max{fi(0), fi(1)} +
i 0(u)
fi(0)
f(u) :=
i 1(u)
min{fi(0), fi(1)} +
i 0(u)
fi(0)
f : {0, 1}n
! R, f(u1, u2, . . . , un) =
Pn
i=1 fi(ui)
v =
n
z }| {
001000110· · ·0
u = 011001110· · ·1
• Gain:
n
i=1 wiyi(2I(x gi) 1)
• Weighted error count:
n
i=1 wi I(I(x gi) = yi)
• Correlation with response:
n
i=1 yiI(x gi)
Gainで定義された Morishita, 2001; Kudo et al, 2005 より⼀般的
系:Morishita-Kudo Bounds for Separable Functions
が0-1変数
全組合せの探索が不要な場合 (典型例は全てこのケース)
40. /4034
従来のBoostingによる特徴学習の再解釈
1I(x1 g)
1I(x1 g) + 2I(x2 g)
1I(x1 g) + 2I(x2 g) + 3I(x3 g)
Iteration 1:
Iteration 2:
Iteration 3:
...
特徴を⼀つづつ加えて線形モデルを作る
x
x
最も良い特徴 を探索する
Main Trick: MK BoundsによるBranch & Bound
の⼦孫が達成する最も良い特徴が現暫定候補より
悪ければ、 の⼦孫を探索する必要はない(pruning)。
の⼦孫(subtree)
xi
これが を弱学習器とみたboosting
各iterationごとに
x
x
列挙⽊
※ k-bestを⾜すのもアリ?
(列⽣成法における
multiple pricing)
41. /4035
Iterations: (t + 1) (t) + d(t), d(t) := T( (t)) (t)
★上記の最⼩化をblock coordinate descentで解くのがBCGD
T(✓(t)) := arg min
⇠
hrf(✓(t)), ⇠ ✓(t)i +
1
2
h⇠ ✓(t), H(t)(⇠ ✓(t))i + R(⇠)
2nd-order approx of f(✓) at ✓(t)
min f( ) + R( ), = ( 0, )
nonsmooth
Coordinate blockはGauss-Southwell式に定めると収束保証ができる。
d(t)j = 0 for d(t)j C d(t) (Gauss-Southwell-r rule)
step length selected by Armijo rule at each iteration
正定値⾏列
さらに広いクラスを解く: Tseng-Yunʼs BCGD
BCGD: Block Coordinate Gradient Descent
42. /4036
得られている汎⽤アルゴリズムと知⾒
1) パラメタをzero vectorで初期化
2) iterate:
BCGDの各iteration後に⾮ゼロになる特徴を全て加えてパラメタ更新
(iteration毎に複数の部分グラフ特徴が⾃然に加わる)
→ 更新後にゼロになる条件が「MK bounds+少し探索を⼯夫」
により枝狩りに使える
(=より深く探索してもゼロ成分がない条件)
3) BCGDの収束条件で終了
概要
知⾒ • より広いクラスを解く(boostingによらない)最適化の⼿だて
が得られた。(elastic-net罰則付き⼀般線形モデル)
• 各iterationでの収束レートと安定性が良くなる。
• ただし、現実装では1iterationにかかるコストが⼤きく
boostingと⽐べ、かなり遅いので現在改良の試⾏錯誤中
43. /4037
要検討な問題と展望
• 部分グラフ指⽰⼦は包含関係のせいで、かなり冗⻑(完全共線形性)かつ⾼相関
→ かなり⼤きい同値類が存在=学習された特徴の解釈には注意すべし(+抑制変数)
→ LPboostや提案法のL1-罰則はこの設定下で意図通り機能しているの!?
• 確率的に⽣成したデータを使って分析したところ、Boostingにせよ提案法にせよ、デー
タに重要な部分特徴があっても、それより⼩さめの部分特徴の組合せで対処するよう
学習されてしまう。
→ 結局⼩さいデータのほうが汎⽤性が⾼い(test graphに出る可能性が⾼い)から?
(もしかしてだけど)「サイズ制約出現部分グラフ」のfingerprintで⼗分!?(要検討)
• 線形で良いの!?
部分グラフ指⽰⼦の冗⻑性・相関構造については現在も研究中 (L2罰則効果も)
• その他の問題: ⾼速化、階層(ベイズ)化、オンライン学習化、などなど
任意のpseudo-boolean functionはuniqueな多項式展開を持つ
→ まず、⼆次交互作⽤付き線形モデル学習へ拡張 (尤度⽐で交互作⽤検定が出来る)
44. /4038
① この問題の特徴付けと背景
② この問題の代表的解法の概説
③ 最近の研究と今後の⾒通し
本⽇のまとめ:多数のグラフからの統計的学習
「どのような特徴を使うか」と「計算効率」が最も⼤事
(1) データ駆動型フィンガープリント
(2) グラフカーネル法
(3) 疎学習
広いクラスの問題で(3)は可能、ただし効率の良い解法など
実⽤化については、まだまだ解決すべき問題が多数残る
特徴クラスを制限
全ての可能な特徴から
モデルと同時に学習