半構造化テキストの分類のための ブースティングアルゴリズム

37
1 半半半半半半半半半半半半半半半 半半半半半半半半半半半半半 半半 半半 半半 半半半半半半半半半半半半半半半半半半半半

Upload: david-manning

Post on 03-Jan-2016

28 views

Category:

Documents


0 download

DESCRIPTION

半構造化テキストの分類のための ブースティングアルゴリズム. 工藤 拓 松本 裕治 奈良先端科学技術大学院大学情報科学研究科. メールを送受信した日付、時間が表示されるのも結構ありがたいです→良い点 なんとなく、レスポンスが悪いように思います →悪い点. その論議を詰め、国民に青写真を示す時期ではないのか     →主観的 バブル崩壊で会社神話が崩れ、教育を取り巻く環境も変わった  →客観的. 背景 ~ テキスト分類の多様化. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 半構造化テキストの分類のための ブースティングアルゴリズム

1

半構造化テキストの分類のためのブースティングアルゴリズム

工藤 拓 松本 裕治

奈良先端科学技術大学院大学情報科学研究科

Page 2: 半構造化テキストの分類のための ブースティングアルゴリズム

2

背景 ~ テキスト分類の多様化

メールを送受信した日付、時間が表示されるのも結構ありがたいです→良い点なんとなく、レスポンスが悪いように思います →悪い点

その論議を詰め、国民に青写真を示す時期ではないのか     →主観的

バブル崩壊で会社神話が崩れ、教育を取り巻く環境も変わった  →客観的

メッツ松井、21打席目オープン戦初本塁  →スポーツ大腸がんは細胞増殖制御遺伝子の異常 札幌医大など発表 →科学 自民、森山参院議員を公認へ 衆院鹿児島5区補選 →政治

「単語」を素性 (Bag of Words)機械学習アルゴリズム  (SVM, Boosting)

「単語」を素性 ???→ 直感的にうまくいきそうにない

単語のつながり / 関係 , テキストの部分構造

Page 3: 半構造化テキストの分類のための ブースティングアルゴリズム

3

半構造化テキストの分類単語の集合としてのテキスト v.s 半構造化テキスト 単語の並び , 係り受け木 , XML (→ ラベル付き順序木 )

構造を考慮した学習 / 分類 学習事例は木 単語ベクトルではない 部分構造 ( 部分木 ) を素性 , サイズに制限を

設けない 最適な素性集合を自動的に選択 テキストマイニングのツール

Page 4: 半構造化テキストの分類のための ブースティングアルゴリズム

4

提案手法

Page 5: 半構造化テキストの分類のための ブースティングアルゴリズム

5

順序木分類問題ラベル付き順序木 順序木 : 各接点の兄弟間に順序が定義された木 ラベル付き木 : 各節点にラベルが付与された木 ラベル : 単語 , 文節 , HTML XML のタグなど

順序木学習データ : 順序木 x  と クラス y (+1 or –1) のペアの

集合

d

ac

a

cd

+1 -1 d

ac

cb

+1 -1 d

ba

a

},,,,,,{ 2211 KK yyyT xxx

T

,, ,T=

Page 6: 半構造化テキストの分類のための ブースティングアルゴリズム

6

部分木ある順序木 B が 順序木 A の部分木

e

a d

b c

c

c

f

d

c

e

dc

順序木 A 順序木 B

マッチング関数 φ が存在 φ は単射 φ は親子関係を保存 φ は兄弟関係を保存 φ はラベルを保存

BA

Page 7: 半構造化テキストの分類のための ブースティングアルゴリズム

7

Decision Stumps for Tree (1/3)

)1)(2(

)(,

x

xx

tIy

otherwisey

tifyh yt

 

<t, y>: 分類器のパラメータ ( ルール )

部分木の有無に基づく分類器

d

ac

b x = <t1, y>=< , +1>a

c

h <t1, y>(x) = 1 h <t2, y>(x) = 1

<t2, y>=< , -1>bd例

Page 8: 半構造化テキストの分類のための ブースティングアルゴリズム

8

Decision Stumps for Tree (2/3)

)(),(

),(maxargˆ,ˆ

,1

}1,1{,

iyt

K

ii

yFt

hyyt gain

ytgainyt

x

学習 : gain (~精度 ) が最大のルールを選択

} '|'{1

i

K

i

ttF x

F: 素性集合 ( すべての部分木の集合 )

},,,,,,{ 2211 KK yyyT xxx

Page 9: 半構造化テキストの分類のための ブースティングアルゴリズム

9

Decision Stumps for Tree (3/3)

d

ac

a

cd

+1 -1 d

ac

cb

+1 -1 d

ba

a

a, +1 +1 +1 +1 +1 0

<t,y>

a, -1 -1 -1 -1 -1 0 b, +1 -1 -1 +1 +1 -1

cb

da

-1

+1 +1 +1 -1 2

……

ac

d

+1+1 -1 +1 -1 4

Gain が 最大になる <t,y> を選択

gain

Page 10: 半構造化テキストの分類のための ブースティングアルゴリズム

10

Boosting の適用Decision Stumps だけでは精度が悪いBoosting [Schapire97] を適用

1. Weak Leaner (Decision Stumps) を構築 : Hj

2. Hj  が誤って /正しく分類した事例の重み (頻度 )を     増やす /減らす

3. 1, 2 を T 回繰り返す4. H1 ~ HT  の重み付き多数決を最終的な学習器と

する

gain: 重み (頻度 ) di を導入

K

iiiiyt

K

iii ddhydyt

1,

1

1,0 ),(),(gain x

Page 11: 半構造化テキストの分類のための ブースティングアルゴリズム

11

実装

Page 12: 半構造化テキストの分類のための ブースティングアルゴリズム

12

弱学習器の構築 (再考 ))(maxargˆ,ˆ ,

1}1,1{,iyt

K

iii

yFthydyt x

} '|'{1

i

K

i

ttF x

素性集合 F は巨大 効率よく最適ルールを発見する必要がある

 分枝限定法 (Branch-and-Bound)• 部分木を列挙する探索空間 を定義 ( 最右拡張 )• 探索空間を辿りながら , gain を最大にする部分木を発見• gain の上限値を見積もり , 探索空間を枝刈り

Page 13: 半構造化テキストの分類のための ブースティングアルゴリズム

13

最右拡張 [Asai02, Zaki02]部分木を 完全に , 重複なく 枚挙する方法サイズ k の木に 1ノード追加し k+1 の木を構築 最右の枝に末弟として追加再帰的に適用→探索空間

Page 14: 半構造化テキストの分類のための ブースティングアルゴリズム

14

探索空間の枝刈り すべての について

        なる上限値を見積もる  準最適 gain が分かっているとき ,

      ならば、 t から先は枝刈り可能

}1,1{ ,' ytt

)(),'( tytgain

)(t

4.0

4.0

gain

7.0

)( 1.0

gain

6.0

)(3.0

gain

5.0

)( 4.0

gain

)( 5.0 gain

)( 4.0 gain

枝刈り- 準最適 gain: 0.5- 0.4 以上の解はこの先の空間に存在しない

)(),'(

,'

tytgain

tt

Page 15: 半構造化テキストの分類のための ブースティングアルゴリズム

15

上限値の見積もり [Morishita02] の拡張

},1|{ 1

},1|{ 1

2

,2

max)(

x

x

tyi

K

iiii

tyi

K

iiii

i

i

dyd

dyd

t

 

)(),'(

}1,1{,'

tytgain

ytt

Page 16: 半構造化テキストの分類のための ブースティングアルゴリズム

16

分類関数

Ft

yFtyt

yFtytyt

btIw

tIy

hf

t)(sgn

)1)(2(sgn

)(sgn)(

}1,1{,,

}1,1{,,,

x

x

xx

)(

)(2

1,1,

1,1,

Rttt

ttt

b

w

- 単純な線形分類器- wt : 木 t に対する重み- b : バイアス ( デフォルトクラス )

)1)(2()(, xx tIyh yt  

Page 17: 半構造化テキストの分類のための ブースティングアルゴリズム

17

SVM との関連性

Page 18: 半構造化テキストの分類のための ブースティングアルゴリズム

18

SVM と Tree Kernel [Collins 02]

)}(,),({)( 1 xxxx JtItI b

ac {0,…,1,…1,…,1,…,1,…,1,…,1,…,0,…}

a b c a

b

a

c b

a

c

Tree Kernel: 全部分木を素性

btIw

bf

t )(sgn

})(sgn{)(

x

xwx

     

SVM:

btIwft

)(sgn)( xxBoosting:

モデルの形 , 素性空間は同一重み w の導出原理 , 方法が異なる

Page 19: 半構造化テキストの分類のための ブースティングアルゴリズム

19

SVM v.s Boosting 精度という観点では比較困難 ( タスク依存 ) Boosting の利点 解釈のしやすさ

分類に有効な素性 ( 部分木 ) が陽に抽出できる分類が陽に実行され ,  分析しやすい

素性集合がスパース必要最小限の素性が選択され、冗長なものは排除

分類が高速少数の素性でモデルが表現でき , 分類が高速Kernel Methods は非常に遅い

Page 20: 半構造化テキストの分類のための ブースティングアルゴリズム

20

実験

Page 21: 半構造化テキストの分類のための ブースティングアルゴリズム

21

文の分類問題 評判分類 : PHS (5741 文 ) ドメイン : PHS の批評掲示板 カテゴリ : 良い点 , 悪い点

文のモダリティ判定 [ 田村ら 96]: mod (1710 文 ) ドメイン : 新聞記事 ( 社説 ) カテゴリ : 断定 , 意見 , 叙述

良い点 : メールを送受信した日付、時間が表示されるのも結構ありがたいです。悪い点 : なんとなく、レスポンスが悪いように思います。

断定 : 「ポケモン」の米国での成功を単純に喜んでいてはいけない。意見 : その論議を詰め、国民に青写真を示す時期ではないのか。叙述 : バブル崩壊で会社神話が崩れ、教育を取り巻く環境も変わった。

Page 22: 半構造化テキストの分類のための ブースティングアルゴリズム

22

文の表現方法 N- グラム (ngram) 直後の単語に係る木 部分木は N- グラム

係り受け木 (dep) 文節内は直後に係け , 文節内の最後の形態素は , 係り先

の文節の head に係ける

 単語の集合 (bow) ベースライン

BOS/ レスポンス / が / とても / 悪い /。 / EOS

BOS/ レスポンス / が / とても / 悪い /。 / EOS

すべて単語の表層ではなく、原型を用いた

Page 23: 半構造化テキストの分類のための ブースティングアルゴリズム

23

結果

SVM + Tree Kernel

dep 77.0 24.2 81.7 87.6

n-gram

78.9 57.5 84.1 90.1

ベースライン (bow) より高精度 dep v.s n-gram: 有意差は認められない

PHS MOD

opinion assertion description

Boosting bow 76.0 59.6 70.0 82.2

dep 78.7 78.7 86.7 91.7

n-gram

79.3 76.7 87.2 91.6

SVM はカテゴリによって極端に精度が悪い

Page 24: 半構造化テキストの分類のための ブースティングアルゴリズム

24

「使う」を含む素性

0.00273 使う たい 0.00015 使う0.00013 使う てる0.00007 使う やすい

「充電」を含む素性0.0028 充電 時間 が 短い -0.0041 充電 時間 が 長い

「にくい」を含む素性

解釈のしやすさ (1/2)

-0.000177 にくい 。-0.000552 にくい なる た-0.000696 読む にくい-0.000738 にくい なる-0.000760 使う にくい -0.001702 にくい 

-0.00010 使う やすい た-0.00076 使う にくい-0.00085 は 使う づらい-0.00188 方 が 使う やすい-0.00233 を 使う てる た

0.004024 切れる にくい

Ft

btIwft

)(sgn)( xx

PHS データセット (dep) の例

Page 25: 半構造化テキストの分類のための ブースティングアルゴリズム

25

解釈のしやすさ (2/2)

木 t と重み wt

事例分類結果

Ft

btIwft

)(sgn)( xx

PHS データセット (dep) の例

Page 26: 半構造化テキストの分類のための ブースティングアルゴリズム

26

その他の利点

素性集合がスパース Boosting: 1,783 ルール

1-gram, 2-gram, 3-gram の異なり数がそれぞれ 4,211, 24,206, 43,658

SVM: おそらく 数十 ~百万

分類が高速 Boosting: 0.135秒 / 1149 事例 SVM: 57.91秒 / 1149 事例 400 倍程度 高速

PHS データセット (dep) の例

Page 27: 半構造化テキストの分類のための ブースティングアルゴリズム

27

まとめと今後の課題 部分木を素性とする Decision Stumps 分枝限定法 Boosting の適用 , SVM との関連性 利点 解釈のしやすさ 素性集合がスパース 分類が高速 グラフ構造への拡張 部分グラフの枚挙アルゴリズム G-span [Yan et al. 02]

Page 28: 半構造化テキストの分類のための ブースティングアルゴリズム

28

Kernel 法に基づく SVMs との関連性

Decision Stumps に基づく Boosting Tree Kernel に基づく SVM

         本質的に同一 類似点 学習に使われる素性 マージン最大化に基づく学習 相違点 マージンのノルム モデルのスパース性

Page 29: 半構造化テキストの分類のための ブースティングアルゴリズム

29

分類の高速化 (1/3)

Rt

yFtyt

yFtytyt

btI

tIyw

hwf

t)(sgn

)1)(2(sgn

)(sgn)(

}1,1{,,

}1,1{,,,

x

x

xx

)(

)(2

}0)(,|{

1,1,

1,1,

1,1,

Rttt

ttt

tt

wwb

ww

wwFttR

- 単純な線形分類器-R : 分類に必要な素性集合 |R|<<|F|

)1)(2()(, xx tIyh yt  

Page 30: 半構造化テキストの分類のための ブースティングアルゴリズム

30

分類の高速化 (2/3)

Rt

btIft

)(sgn)( xx

分類のコストは , 入力 x に対し を導出するコストと同一

}|{ x ttR

単純な方法 - R 中のそれぞれの木が x の部分木になるか チェック → O(|R|) - x 中の部分木を列挙して R 中にあるかチェック → O(exp(|x|))

Page 31: 半構造化テキストの分類のための ブースティングアルゴリズム

31

分類の高速化 (3/3)木の文字列表現

b

d

a

e

b

d

a

i

c

c

a b c –1 d e

a b c –1 –d –1 –1 i

- 文字列表現のノードの出現順 = RME の適用順- TRIE = RME が作る探索空間- 分類 : TRIE を辿ることで実現 , コスト ~ O(|x|)

a

d

b

d

-10.2 b c

-0.3 b d –1 e

0.1 a d

0.5 a b –1 c

-0.2 a b d

0.3 a b c

subtrees root

b

c d -1

c0.3

c

e

0.1

-0.2

0.2

-0.30.5

RTRIE

Page 32: 半構造化テキストの分類のための ブースティングアルゴリズム

32

SVM v.s Boosting (2/4)1/1/1 1, |||| qppw q ノルムマージンの最大化

d

SVM: 2 ,|||| 2 qw

d

Boosting: q ,|||| 1w

∞ノルム→冗長な次元を削除

Page 33: 半構造化テキストの分類のための ブースティングアルゴリズム

33

最右拡張 [Asai02, Zaki02]

B

A

C

1

2 4

A B5 6C3

B

A

C

1

2 4

A B5 6C3

B

A

C

1

2 4

A B5 6C3

B

A

C

1

2 4

A B5 6C3

最右枝7

77

サイズ k の木に 1 つのノードを追加し サイズ k+1 の木を構築 - 最右枝に追加 - 末弟として追加

の位置 x ラベルの種類 {A,B,C}の木が構築される

Page 34: 半構造化テキストの分類のための ブースティングアルゴリズム

34

Boosting

Page 35: 半構造化テキストの分類のための ブースティングアルゴリズム

35

SVM v.s Boosting (1/3)

1||||

,))(( ..

2

maxarg

w

xw

ww

iiyts

J

SVM:

1||||

,))(( ..

1

1

maxarg

w

x

ww

J

jijji hwyts

J

Boosting:

1. 1 つめの制約は、本質的に同一 - Tree Kernel → すべての部分木を素性 - Boosting → すべての部分木を弱学習器2. 相違点は、 w のノルム (1-norm, 2-norm)

Page 36: 半構造化テキストの分類のための ブースティングアルゴリズム

36

Tree Kernel [Collins 02][Kashima 03]

)}(,),({)( 1 xxxx JtItI

ba

c {0,…,1,…1,…,1,…,1,…,1,…,1,…,0,…}

a b c a

b

a

c b

a

c

),()()( 2121 xxxx K

SVM (Kernel Methods) は , 事例間の内積しか使わない→ 陽に素性展開せず , 陰に内積のみを効率よく計算→ 素性抽出を , Kernel (一般化された内積 ) として実現

全部分木を素性

Page 37: 半構造化テキストの分類のための ブースティングアルゴリズム

37

上限値の見積もり[Morishita 02] の拡張

y=+1 y=-1

t

T

t’

'tt 2・ ( ) + C

- -= 2・ ( ) + 定数 =C

2・ ( ) + C

)1,'gain( t 2 ・ ( ) - C

max( , ) )(t ),'gain( yt 2・ ( ) – C 2・ ( ) + C

)1,'gain( t -

)(),(gain ,1

iyti

K

ii hdyyt x

- ++1 -1 -1 +1