頻出部分グラフマイニング データマイニングと …...2011/11/18 1...

17
2011/11/18 1 頻出部分グラフマイニング の原理と応用 2011年11月18日 北海道大学大学院 情報科学研究科 湊ERATO連携講座大学院特論科目(3) 集中講義「大規模離散計算科学特論」 客員教授 鷲尾隆(大阪大学産業科学研究所) 1 講義内容 データマイニングとは? ー 概論 ー グラフ同型・部分グラフ判定の原理 頻出部分グラフマイニングの原理と応用 グラフ検索の原理と応用 統計的因果推論の原理と応用 2 背景 世の中にネットワークや木、系列など構造 を持つデータが沢山蓄積されている。 蓄積されたデータから特定の構造を持つも のを検索したり、特徴的部分構造を見つけ たい。 ACGTACG TGCATGC 5´ 3´ 3´ 3 列挙による頻出構造マイニング以前の 連続系列データのマイニング 数値時系列データ システム同定[Ljung, 87] ニューラルネット[Wasserman,89] 記号系列データ 隠れマルコフ・学習オートマトン[Murphy,95] 機械学習[Dietterich&Michalski,85] 膨大な系列データ アイテム系列パターン[Agrawal &Srikant,95] エピソード(半順序記号連鎖)[Mannila et al., 97] ハッシュ分割高速化[Sintani&Kitsuregawa,98] 4

Transcript of 頻出部分グラフマイニング データマイニングと …...2011/11/18 1...

2011/11/18

1

頻出部分グラフマイニングの原理と応用

2011年11月18日

北海道大学大学院 情報科学研究科

湊ERATO連携講座大学院特論科目(3)

集中講義「大規模離散計算科学特論」

客員教授 鷲尾隆(大阪大学産業科学研究所)

1

講義内容

• データマイニングとは? ー 概論 ー

• グラフ同型・部分グラフ判定の原理

• 頻出部分グラフマイニングの原理と応用

• グラフ検索の原理と応用

• 統計的因果推論の原理と応用

2

背景• 世の中にネットワークや木、系列など構造

を持つデータが沢山蓄積されている。

• 蓄積されたデータから特定の構造を持つものを検索したり、特徴的部分構造を見つけたい。

ACGTACGTGCATGC

5´ 5´3´

3´

3

列挙による頻出構造マイニング以前の連続系列データのマイニング

• 数値時系列データ

–システム同定[Ljung, 87]–ニューラルネット[Wasserman,89]

• 記号系列データ

– 隠れマルコフ・学習オートマトン[Murphy,95]– 機械学習[Dietterich&Michalski,85]

• 膨大な系列データ

– アイテム系列パターン[Agrawal &Srikant,95]– エピソード(半順序記号連鎖)[Mannila et al., 97]– ハッシュ分割高速化[Sintani&Kitsuregawa,98]

4

2011/11/18

2

列挙による頻出構造マイニング以前の非連続系列データのマイニング

• 低多項式時間PAC学習[Arimura,98]• 高効率探索手法でのDNA解析[Miura&Ishida,98]

例)TTATCAT***TTATAATC

5

列挙による頻出構造マイニング以前のグラフ構造データ(木構造)

• Apriori‐based– 集合階層構造データ(アイテム集合の集合...)[Matsuzawa&Fukuda,00]

– 木構造データ中の部分木構造(スキーマ)[Wang&Liu,97]

• 論理プログラミングベース

– Regular term tree[Miyahara,00]

6

列挙による頻出構造マイニング以前のグラフ構造データ(化学分子)

• CASE, MultiCASE[Klopman,84,92]– 化学分子中で枝分かれのない1本の共通原子鎖をマイニ

ング

• 分類決定木C4.5, 回帰分類木M5[Kramer, 97], ILP[King,96] 化学分子中の特徴的部分構造を予め人間が指定し,記述子(属性)表・トランザクションとして付与

(1) (2)

(1)ベンゼン環:2,NH2:2,… (2)OH:3, O=:3,…7

列挙による頻出グラフ構造マイニング時代の幕開け

• Geedyな探索・列挙:不完だが全高速– SUBDUE [Cook 94], GBI[Yoshida&Motoda,95]

頂点ペアチャンク反復によるGreedy探索

• 論理による探索・列挙:完全だが低速– WARMAR (Apriori+ILP)[Dehaspe,98]Progol記述,幅優先完全探索(2,3ノードまで)

• パターン列挙と計数による探索:完全で比較的高速– AGM[Inokuchi et al., 99,00]Apriori+グラフ接続行列の幅優先完全探索

(高速,10から20ノードまで)

8グラフカーネルなど数理的方法については今回割愛する。

2011/11/18

3

1

23

45

6

7 8

5

1

17

2

2

9

3

3 411 11 4

11

87

5

9

75

4

6

1

23

1

23

2

1011

多頻度な頂点ペアチャンキング

Greedyな探索・列挙の例

GBI(Graph-Based Induction)

9

多頻度な頂点ペアのチャンキングをGreedyに進める前方探索を用いるので,すべての頻出構造を見つける保証はない.

頂点数に比例する計算複雑性しか持たず高速である.

頂点ペアの選択基準は頻度だけでなく,様々なものを利用可能な柔軟性がある.

GBIの特徴

10

表形式表現

nodeno.1 a 1 22 a 3 4 53 e 34 b 4 5 65 c 76 d 57 b

nodename

node no. of children

データ表現

3

1 2 3

4

6 7

5b c

b

ea a

b3

11

b

a c123

abc

2

2

Chunk 0001nodeno.

nodename

Node no. of children

1 3

2

b

a c

0001

b

a c

0001

d

b

a c

0001

d

1

2 3

5

4

0:まだチャンクされていない頂点最初のグラフのチャンク前の親頂点番号

各チャンク毎にインデックス番号を振り直す

1

1

1

2

2

2

3

3

3

link 1 link 2 link 3

4

1 4 42 112 1 10 323 5 52 03

5 4 40 35

in‐chunk node no.

nodeno.

node no. of parents

node no.of 

childrenin‐chunk node no.

node no. of children

12

2011/11/18

4

b

b

d

a

b

b

d

a

b

b

c

a

Initial graph

Final grapha,b,b,d

a,b,b,d

c

b

a,bb

b

d

a

頂点ペアチャンキング

a,b

b

a,b

db

a,b

c

b

d

b

a

b

aa,b,b

a,b,b

c

d

d

b

ba

b

a,b

a,b,b,d

a,b,b,d

c

b

a,bb

b

d

a

13

Chunka→b

子頂点の情報

(辺が向かう先の頂点)

親頂点の情報

(辺が生じた頂点)

チャンクする多頻度ペアを選ぶ。

テーブル形式でグラフを表現

頂点ペアを数えるparents, children, link, link inf. of parents, link inf. of children, self‐loop flag

多頻度頂点ペアをチャンクし,リンク情報を更新する。

a a,bb

アルゴリズム

14

1

2

3

4

5

6

7 8

910

11

Chunk name: 0001

0001

1a

0001

0001

0001

00011

5

8

0002

0002

0002

12b

a0002

0003

0003

1

2a

0003 b

0004

0004

1

2a

0004

bc3

a

c

b a

b

a c a

ba

a

チャンキングの簡単な例

0003

Chunk name: 0002

Chunk name: 0003

Chunk name: 0004

1 a 1

nodeno.

nodename

node no. of children

nodeno.123

abc

1  2

nodename

node no. of children

2  3

12

ab

1  2

nodeno.

nodename

node no. of children

2

12

ab

1  2

nodeno.

nodename

node no. of children

15

計算性能• 頂点数100~10000個のグラフから頻出部分グラフ

をGreedyに導出

16グラフ当たり頂点数計

算時

間(sec.)

0 2000 4000 6000 8000 100000246810121416

color link1      105      101        35        3

2011/11/18

5

出力(多頻度部分グラフ)

パターン列挙と計数による頻出部分グラフデータマイニング

入力・ 多頻度グラフの候補の数 (頂点,辺,ラベルの組合せ)

・ 部分グラフ同型問題 (NP‐Complete) 最小支持度(閾値)=217

定義• 支持度 (support)

• 多頻度部分グラフ (frequent subgraph)– ユーザが指定した最小支持度 (minsup: minimum support)を超える支持度を持つグラフ

• 多頻度部分グラフ抽出問題

– グラフ構造データの集合と最小支持度が与えられたときに,部分グラフとして含まれる多頻度部分グラフを全て抽出する問題

るグラフデータの数データベースに含まれ

むグラフデータの数を部分グラフとして含GGsup )(

18

パターン列挙と計数によるグラフマイニング手法の歴史

19

パターン列挙と計数による頻出部分グラフデータマイニング

• 共通する原理1. グラフデータD={Gi|i=1,…,n}に頻出する大きさ(頂点数や

辺数)k=1の部分グラフを列挙

fg(k)={g(k)| sup(g(k))≧minsup} 2. fg(k)の各部分グラフg (k)の頻度sup(g(k))より、それを含

む1つ大きな部分グラフ(g(k)⊂)g(k+1)の頻度sup(g(k+1))は、小さいか等しい; sup(g(k+1)) ≦ sup(g(k)) という頻度の逆単調性から、 g(k)⊂g(k+1)を満たす大きさk+1の頻出部分グラフ候補g(k+1)を列挙

3. 各候補g(k+1)のDにおけるsup(g(k+1))の頻度を数え、実際に頻出なg(k+1)の集合を得る。

fg(k+1)={g(k+1)| sup(g(k+1))≧minsup} 4. k=k+1, fg(k)が空でないなら, ステップ2へ。

5. 頻出部分グラフ集合FG=∪i=1,…kfg(i)を得る。 20

2011/11/18

6

パターン列挙と計数による頻出部分グラフデータマイニング

• 幅優先探索(BFS) V.S.深さ優先探索(DFS)– 大きさkの頻出部分グラフg(k)を含む1つ大きな頻出部分グラフ

候補(g(k)⊂)g(k+1)を列挙する際、幅優先探索(BFS)を行うものと深さ優先探索(DFS)を行うものがある。

– メモリ使用効率や速さの点でDFSを使うものが多い。

• 部分グラフ列挙 V.S. スパニングツリー列挙と枝付加

– 頻出部分グラフg(k)から頻出部分グラフ候補g(k+1)を生成する際、g(k)から直接g(k+1)を列挙するものとg(k)のスパニングツリーからg(k+1)のスパニングツリーを列挙し枝を追加するものがある。

• 複数グラフ V.S. 1枚グラフ

– 複数グラフに亘るマイニングを行うもの(殆どのも)と、1枚の大きなグラフのマイニングを行うもの(SiGraM(Pafi)など) 21

パターン列挙と計数による頻出部分グラフデータマイニング

• 幅優先探索(BFS)方式:AGM,AcGMなど

22

パターン列挙と計数による頻出部分グラフデータマイニング

• 深さ優先探索(DFS)方式:gSpan,Gastonなど

23

パターン列挙と計数による頻出部分グラフデータマイニング

• 部分グラフ列挙方式:AGM,AcGM,gSpanなど

24

g(k)

g(k+1)

g(k)を拡張してデータ

に含まれる1つ大きな部分グラフ候補g(k+1)を生成

2011/11/18

7

パターン列挙と計数による頻出部分グラフデータマイニング

• スパニングツリー列挙と枝付加方式:GASTONなど

25

g(k)の小さいスパニングツリーに

頂点1個とその間の辺を追加して、データに含まれる1つ大きなスパニングリーとそれを含む部分グラフ候補g(k+1)を生成

AGM(Apriori‐based Graph Mining)アルゴリズム

DB

最小支持度=1

頂点数1のグラフの候補

頂点数1の多頻度グラフ

頂点数2のグラフの候補

頂点数2の多頻度グラフ

頂点数3のグラフの候補

頂点数3の多頻度グラフ

26

世界初のパターン列挙と計数による頻出部分グラフ完全探索アルゴリズム(幅優先探索(BFS)方式,部分グラフ列挙方式)

定義 ‐ カノニカルラベル ‐

• code

• CODE

1011100011)( 5 Xcode

000111123310111)( 5 XCODE)( 5Xcode

27

定義 ‐ 正準形 ‐

• 正準形 (Canonical Form)– 同型のグラフを表す隣接行列のなかでラベルコードが

最大となる隣接行列28

2011/11/18

8

多頻度グラフの候補の生成• 条件 1

• 条件 2– 第1生成行列が正準形である

• 条件 3 – CODE(Xk)≧CODE(Yk)

0000100110010010100110110

1

3

5

1

3

52

4

2

4

G G  G  G  R

0000100110010010100110110

G  G G G  B 

0*0001*00001000110001001001001110110

G  G  G  G  R  B

1 2

3 4

5 6

正規形

29

AGMアルゴリズム(候補列挙)

0

0 0 0 00 0 0 00 0 0 00 0 0 0

0 1 11 0 11 1 0

0 1 11 0 01 0 0

0 11 0

0 00 0

0 1 01 0 10 1 0

0 1 01 0 00 0 0

0 0 00 0 00 0 0

0 0 00 0 10 1 0

0 1 1 11 0 1 11 1 0 11 1 1 0

0 1 1 11 0 1 11 1 0 01 1 0 0

0 0 0 00 0 0 00 0 0 10 0 1 0 ……

0 1 1 11 0 1 01 1 0 11 0 1 0

0 1 1 11 0 1 01 1 0 01 0 0 0

0 1 1 01 0 1 11 1 0 10 1 1 0

0 1 1 01 0 1 11 1 0 00 1 0 0

0 1 1 01 0 1 01 1 0 10 0 1 0

0 1 1 01 0 1 01 1 0 00 0 0 0

0 1 1 11 0 0 01 0 0 11 0 1 0

0 1 1 11 0 0 01 0 0 01 0 0 0

30

頻出部分グラフデータマイニング

......多頻度部分グラフ

......多頻度連結部分グラフ

木,順序木

......多頻度木多頻度順序木

31

frequent

DB入力

出力

最小支持度

正規化頻度計算

多頻度部分グラフ

グラフ抽出バイアス

多頻度連結部分グラフ

連結グラフバイアス

多頻度パス

パス抽出バイアス

コード化

・・・

候補列挙

正準化join subgraph check

多頻度順序木

順序木抽出バイアス

AGMの一般化Generalized (Biased) AGMの枠組み

追加バイアス

32

2011/11/18

9

連結部分グラフ抽出バイアスダメな方法

• 追加する条件

– 第1,第2生成行列が連結グラフを表すとき,2つの隣接行列を結合する。

0 1 1 11 0 1 11 1 0 01 1 0 0

0 1 1 11 0 1 11 1 0 11 1 1 0

0 1 1 11 0 0 11 0 0 01 1 0 0

0 1 1 11 0 0 11 0 0 11 1 1 0

0 1 1 11 0 1 01 1 0 01 0 0 0

0 1 1 11 0 1 01 1 0 11 0 1 0

0 1 1 11 0 0 01 0 0 01 0 0 0

0 1 1 11 0 0 01 0 0 11 0 1 0

0 1 11 0 01 0 0

0 1 11 0 11 1 0

0 11 0

0

は生成されないと 33

連結部分グラフ抽出バイアス• 結合の条件

– 条件1

– 条件2• Xk が正準形である

– 条件3• G(Xk) が連結である

– 条件4• G(Xk) と G(Yk) の第 k 頂点ラベルが等しいとき

• G(Xk) と G(Yk) の第 k 頂点ラベルが等しくないとき

またはG(Xk) が非連結である

02

11

xxX

X kk

02

11

yyX

Y kk

)()( kk YcodeXcode

))))(((())))(((( kkkk YGVvlbnumXGVvlbnum 34

連結部分グラフ抽出バイアス

0 1 1 11 0 1 11 1 0 01 1 0 0

0 1 1 11 0 1 11 1 0 11 1 1 0

0 1 1 01 0 1 11 1 0 00 1 0 0

0 1 1 01 0 1 11 1 0 10 1 1 0

0 1 1 11 0 1 01 1 0 01 0 0 0

0 1 1 11 0 1 01 1 0 11 0 1 0

0 1 1 11 0 1 01 1 0 01 0 0 0

0 1 1 01 0 1 01 1 0 10 0 1 0

0 1 11 0 01 0 0

0 1 11 0 11 1 0

0 11 0

0

0 1 1 01 0 0 01 0 0 00 0 0 0

0 1 1 01 0 0 01 0 0 10 0 1 0

0 1 1 11 0 0 01 0 0 01 0 0 0

0 1 1 11 0 0 01 0 0 11 0 1 0

0 1 1 01 0 0 11 0 0 00 1 0 0

0 1 1 01 0 0 11 0 0 10 1 1 0

0 1 01 0 00 0 0

0 1 01 0 10 1 0

0 00 0

35

実験 ‐発がん性データ‐• 発がん性データ(PTE Data)

– PTE (Predictive Toxicology Evaluation)– 340個化合物

• 原子:頂点

• 結合:辺

• 原子の種類:頂点ラベル

• 結合の種類:辺ラベル

C C

Cl

H

H

H

Chemical compound Graph data

C C

H

H

H

Cl

36

2011/11/18

10

実験 ‐発がん性データ‐

1

10

100

1000

10000

1 2 3 4 5 6 7 8 9 10

minimum support [%]

com

puta

tion t

ime [

sec]

B-AGM (Connected Graph)B-AGM (Induced Connected Graph)FSG (Connected Graph)gSpan (Connected Graph)

FSG,gSpan:多頻度連結グラフを抽出するためのアルゴリズム37

順序木抽出バイアス

A

AC C

A B

1

2

3 4

5 6preorder

A

AC C

A B

• 対象データ

– 入力:順序木の集合

– 出力:多頻度順序木の集合

• 連結部分グラフ抽出バイアスでも対応可

– 非効率

• 順序木を対象としたアルゴリズム

– FREQT[Asai2002],TreeMiner[Zaki2002]

38

順序木抽出バイアス

• 結合の条件

– 条件1

– 条件2• Xk が正準形である

– 条件3• 第2生成行列が連結グラフを表すとき

– 条件4• G(Xk) が連結である

02

11

xxX

X kk

02

11

yyX

Y kk

)()( kk YCODEXCODE

39

順序木抽出バイアス• 順序木パターン作成の例

– 再右拡張 (FREQT[Asai 2002])– 正規形⇔正準形– 一般の木の場合は,CODEが最

大の隣接行列を正準形とする

40

2011/11/18

11

A

BC R

G

FA B

R

A B

R

F

1

2

3 4 5 6

7

8 9 10

1

2 3

PatternData

実験 –Web巡回データ‐• データ

– あるWebサイトのログ (Zakiより提供)– 1人のユーザのログが1つのデータに対応

– 13,361個の頂点ラベル(Webページ)と555,691個(人)のデータ

– 例

• R→A→C→(戻る)→B→(戻る)→R→・・・・

41

実験 –Web巡回データ‐

1

10

100

1000

10000

0 1 2 3 4 5

minimum support [%]

com

puta

tion t

ime [

sec]

TreeMinerB-AGM

42

実験 ‐半構造データ‐• FREQTとの比較

– オンライン文献データベースCiteseerにあるキーワードを入力して得られたデータ

– 7,127個の頂点ラベル(タグ)と196,247個の頂点からなる1つの順序木

– 支持度• sup(pattern)=(ルート出現回数)/(データの頂点の総数)=2/10

A

BA A

A

AA B

A

A B

R

B

1

2

3 4 5 6

7

8 9 10

1

2 3

PatternData43

実験 ‐半構造データ‐

1

10

100

1000

10000

100000

1000000

minimum support [%]

# o

f fr

equ

ent

patt

ern

s

0.1

1

10

100

1000

10000

com

puta

tion t

ime [

sec] # of frequent patterns

Comp. time for FREQT

Comp. time for B-AGM

44

2011/11/18

12

45

創薬における副作用候補分析支援システムへの応用

リスク警告

活性プロファイル知識ベース

部分構造

マイニング 類似薬品検索

治験薬構造活性データベース

前処理

HOMO, LUMO,Dipole, LogP

データベース

構造 生理活性

活性

不活性

O-

N+

ON

N

S

H

H

H

N +

O

O -

O

OHH

H H

H

新薬品

予想外副作用?

我々と化学者(関西学院大学:岡田教授)の共同研究成果[Inokuchi et al. 2001]

46

頻出部分グラフマイニング手法AGMを適用

変異原性を有する化学物質構造の例各分子構造を1枚のグラフとして 扱い、変異原性の強い分子に頻出する部分分子構造を洗い出す。

0

500

1000

1500

2000

2500

3000

5 7 9 11 13 15

部分グラフの平均サイズ

多頻

度部

分グ

ラフ

パタ

ーン

0

500

1000

1500

2000

2500

3000

3500

4000

計算

時間

[sec]

47

データの性質に合わせたAGMの高速化

結合種類と計算時間:AGM+は改良手法

成果 NO2基とHが引き合いNO2基がベンゼン環平面と同じになる。RNA2重螺旋に入りこみやすくなり、遺伝子を傷つける要因となる。

化学分子固有のグラフ構造の性質を構造列挙の制約に用いる。

48

ニトロ芳香族化合物の変異原性

高いLogP  AND高いLUMO AND(A≠H)

条件

高い低い変異原性

AGMカスケードモデルマイニング法

A

A

A

N+

O-

OH

N+

O-

O

発見された部分構造

2011/11/18

13

49

O

O

Cl

ClCl

Cl N+

O-

OH

H H

N+

O–á

O

H

H

H H

H

水素以外

水素

NO2基とHが引き合いNO2基がベンゼン環平面と同じになる。RNA2重螺旋に入りこみやすくなり、遺伝子を傷つける要因となる。

ニトロ芳香族化合物の変異原性 現状最速のパターン列挙・計数型の頻出グラフマイニングアルゴリズムの1つ

• gSpan [Yan and Han 2002]– グラフを直接探して同型性を確認するのではなく、

カノニカルDFSコードを生成して比較する。

– 各グラフは一意なカノニカルDFSコードを持つので、コードの照合でグラフが同型か否か判る。

– カノニカルDFSコードは深さ優先探索(DFS)木を基に定義される。

– 探索木と一体なコードを定義することによって、アルゴリズム上効率的に照合して同型性を判定すると共に、無駄な探索を避ける。

50

gSpan• DFS 木

– 木のノードが探索中の部分グラフの頂点に対応– 探索途中で訪問順にグラフ頂点番号を振る– vi < vj if vi is traversed before vj

• DFS木のルートからノードまでのパスが、部分グラフ上の順序づけられたパスに対応する。

• DFS木は部分グラフの各辺を2つのグループに分ける。– 前向き辺集合: (vi, vj) where vi < vj– 後ろ向き辺集合: (vi, vj) where vi > vj

• 部分グラフ上の辺のなぞり方は多数あるので、このままではDFS木も膨大にあり得る。

51

gSpan

• あるグラフの異なるなぞり方

52

実線:前向き辺集合破線:後ろ向き辺集合

2011/11/18

14

gSpan• なぞり方を一意にするため辺に全順序を導入

– 1. (u, v) <T (u, w) if v < w– 2. (u, v) <T (v, w) if u < v– 3. e1 <T e2 and e2 <T e3 implies e1 <T e3

• この規則に従う辺の全順序付けをDFSコードという。これによってなぞり方が減る。

53

gSpan

• 1つの辺を表すDFSコードは4つのタプルからなる。– 辺(起点と終点の頂点番号の組み)

– 起点頂点のラベル

– 辺のラベル

– 終点頂点のラベル

• 頂点や辺のラベルに辞書順を導入する。

• 以上により、4つのタプルからなるDFSコードにも辞書順を定義する。

54

gSpan

• DFSコードの例

55

gSpan

• あるグラフGの辞書順で最小のDFSコードを最小DFSコードmin(G)という。

• 定理 任意2つのグラフGと Hは、 min(G)=min(H)の時、かつその時に限り同型である。

(最小DFSコードはカノニカルである)

• 頻出部分グラフマイニング問題– 頻出部分グラフ問題はそれらに対応する最小DFS

コードをマイニングすることと等価である。

– これはパターン列挙・探索アルゴリズムで逐次処理可能である。

56

2011/11/18

15

gSpan• DFSコード木を定義して用いる。

– DFS コードの親と子

α=(a0 , a1 ,.., am)β=(a0 ,a1 ,..,am , b)

– code's parent and child– α は β の親であり、β は αの子である。

• DFS コード木では– 各ノードがルートからのDFSコードを表す。

– 親子間の関係は上記で定義した関係を表す。

– 兄弟はDFSの辞書順の関係に従う。57

gSpan• DFSコード木の性質

–グラフの頂点、辺ラベル集合Lが与えられたとき、DFSコード木はそのLについてすべての可能のグラフを表すことができる。

–DFSコード木において、第nレベルのノードに対応する各部分グラフはn‐1個の辺からなる。

–DFSコード木はそのノードが表すすべての部分グラフの最小DFSコードを含む。

58

gSpan• 頻度の逆単調性より、ある部分グラフg1が多

頻度ならば、その部分グラフg2(⊂g1)は多頻度である。

• もしDFSコード α が多頻度なら、 αのすべての祖先も多頻度である。

• もし α が多頻度でなければ、 α のすべての子孫も多頻度ではない。

59

gSpan• DSFコード木の優れた性質

– DFSコード木の中で、いくつかの部分グラフは複数のDFSコードノードに対応する。

– DFSコード木を辞書順になぞった時、ある部分グラフについて最初に現れたコードが最小DFSコードである。

• 定理 DFSコード木において、もしノードのDFSコードが最小でない場合、そのノードより下を枝刈りしても、取りこぼしなくすべての部分グラフが保持される。

– DFSコード木を単純に辞書順に探索することで、すべての頻出部分グラフ候補を列挙できる。

60

2011/11/18

16

gSpan• 前述のDFSコード木の性質を使うことで

– (k+1)‐辺を持つ多頻出部分グラフを、拡張により既知のk‐辺の頻出部分グラフから生成できる。

–この時、DFSコードに性質により、深さ優先探索で拡張しても取りこぼしは起きない。

• 無駄なバックトラックが発生せず、メモリー空間も節約でき、非常に効率的である。

61

現状最速のパターン列挙・計数型の頻出グラフマイニングアルゴリズムは?

• ベンチマーク比較 [Nijssen 2004]

62

自由木(根なし木)データセットのマイニング結果

現状最速のパターン列挙・計数型の頻出グラフマイニングアルゴリズムは?

• ベンチマーク比較 [Nijssen 2004]

63

分子構造データセットのマイニング結果

現状最速のパターン列挙・計数型の頻出グラフマイニングアルゴリズムは?

• ベンチマーク比較 [Worlein et al. 2005]

64

HIVデータ 分子構造グラフ42639個, 最大頂点数234,平均頂点数27,頂点ラベル数58

メモリ消費量 計算時間

2011/11/18

17

現状最速のパターン列挙・計数型の頻出グラフマイニングアルゴリズムは?(つづき)

• ベンチマーク比較 [Worlein et al. 2005]

65

各種辺密度の人工データに関する計算時間

まとめ

• グラフデータに頻出する部分グラフを探索するグラフマイニングの枠組みと原理、比較、応用例について話をした。

• 多数グラフからなるデータセットから頻出部分グラフを完全探索する最速アルゴリズムは、現状では深さ優先探索(DFS)を用るgSpanかGASTONである。

• 化学物質分子の部分構造と物性(毒性)の相関解析への適用例を示した。

66