370 likes | 533 Views
素性の組み合わせを実現する Power Set Kernel とその高速化. 奈良先端科学技術大学院大学 情報科学研究科 工藤 拓 松本 裕治. 背景. SVM をはじめとする Kernel Method のめざましい進展 自然言語処理も例外ではない 形態素解析 固有名詞抽出 構文解析 Kernel Method は万能なのか?. Kernel Method の問題点. 有効な素性の分析が困難 素性空間が陰に表現される 有効な素性(事例の部分構造)は我々の知らない一種の知識 (マイニング) 分類の計算量が大きい
E N D
素性の組み合わせを実現するPower Set Kernel とその高速化 奈良先端科学技術大学院大学 情報科学研究科 工藤 拓 松本 裕治
背景 • SVM をはじめとする Kernel Method のめざましい進展 • 自然言語処理も例外ではない • 形態素解析 • 固有名詞抽出 • 構文解析 • Kernel Method は万能なのか?
Kernel Method の問題点 • 有効な素性の分析が困難 • 素性空間が陰に表現される • 有効な素性(事例の部分構造)は我々の知らない一種の知識 (マイニング) • 分類の計算量が大きい • Kernel Method に基づく固有名詞抽出器や構文解析器は大規模テキストデータの解析に不向き • 一文解析するのに 0.5 ~ 1 秒 GOAL: この2つの問題の克服
本発表の流れ • Kernel Method • Power Set Kernel • Power Set Kernel の高速化手法 • PSKB (ベースライン) • PSKI (提案手法 1) • PSKE (提案手法 2) • 日本語係り受けタスクにおける実験 • 考察、今後の課題
本発表の流れ • Kernel Method • Power Set Kernel • Power Set Kernel の高速化手法 • PSKB (ベースライン) • PSKI (提案手法 1) • PSKE (提案手法 2) • 日本語係り受けタスクにおける実験 • 考察、今後の課題
Kernel Method • 事例間の内積を与える Kernel 関数のみ定義 • 陽に表現された素性ベクトルは不要 • 事例 x の構造に基づく Kernel の設計 (集合, ベクトル, 系列, 木, グラフ…)
Kernel Method の問題点 • 分類に O(L・m) の計算量 (m は K(・,・)の計算量) • 素性空間が陰に表現されてしまい, 有効な素性の 提示が困難
本発表の流れ • Kernel Method • Power Set Kernel • Power Set Kernel の高速化手法 • PSKB (ベースライン) • PSKI (提案手法 1) • PSKE (提案手法 2) • 日本語係り受けタスクにおける実験 • 考察、今後の課題
Power Set • 集合のすべての部分集合の集まりをべき集合(Power Set)とよぶ • 集合 X の Power Set を P(X)と記す 例 X={a,b,c} P(X)={φ,{a},{b},{c},{a,b},{a,c}, {b,c},{a,b,c}}
(Special) Power Set Kernel • 集合の内積を与える Kernel • X, Z は集合 • X の要素数を |X|と記す • K(X, Z) = | P(X) ∩ P(Z) | 例 X = {a,b,c}, Z={a,b,d} P(X) = {φ,{a},{b},{c},{a,b},{a,c},{b,c},{a,b,c}} P(Z) = {φ,{a},{b},{d},{a,b},{a,d},{b,d},{a,b,d}} P(X)∩P(Z)={φ,{a},{b},{a,b}} K(X,Z) = |P(X) ∩ P(Z)| = 4
Power Set Kernel (PSK) (部分集合重み) (例) X = {a,b,c}, Z={a,b,d}, C0=2, C1=3, C2=1, C3=0 P(X) = {φ,{a},{b},{c},{a,b},{a,c},{b,c},{a,b,c}} P(Z) = {φ,{a},{b},{d},{a,b},{a,d},{b,d},{a,b,d}} P(X)∩P(Z)={φ,{a},{b},{a,b}} K(X,Z) = 2・1+ 3・2 + 1・1 + 0・0 = 9
PSK の周辺定理 • X,Zを任意の集合, を正の整数とするとき, は PSK となる • X,Zを任意の集合, を n階微分可能でかつ となる関数とするとき, はPSKとなる • すべての PSK K(X,Z) は, |X∩Z|の多項式で表現できる Crが事前に分かる場合, PSK を設計できる
多項式Kernel 定理2を満たし, Power Set Kernel 例 d=2 のとき C0 = 1, C1=3, C2=2 d=3 のとき C0 = 1, C1=7, C2=12, C3 = 6 一般に d=k のとき
RBF Kernel |X|=|Z|=定数 (要素数は一定) ならば 定理2を満たし, Power Set Kernel
本発表の流れ • Kernel Method • Power Set Kernel • Power Set Kernel の高速化手法 • PSKB (ベースライン) • PSKI (提案手法 1) • PSKE (提案手法 2) • 日本語係り受けタスクにおける実験 • 考察、今後の課題
Power Set Kernel の高速化 • PSKB • 通常の分類手法(ベースライン) • PSKI (Inverted representation) • 事例 の集合を転置した形で表現 • PSKE (Expanded representation) • 事例を Power Set の空間で分類
PSKB (ベースライン) 3 K(X,Z) = (|X∩Z|+1) α X {a, b, c} {a, b, d} {b, c, d} K(X,Z) 1 2 3 1 0.5 -2 分類したい事例 Z={a,c,e} 3 3 3 f(Z)=1・(2+1) + 0.5・(1+1) - 2 (1+1) = 15 計算量は常にO(L・|Z|)
PSKI (Inverted Representation) 3 K(X,Z) = (|X∩Z|+1) α X Inverted Representation 分類したい事例 Z= {a, c, e} a b c d {1,2} {1,2,3} {1,3} {2,3} {a, b, c} {a, b, d} {b, c, d} 1 2 3 1 0.5 -2 ・ 3 3 3 f(Z)=1・(2+1) + 0.5・(1+1) - 2 (1+1) = 15 • 計算量は, O(B・|Z|+L), 最悪O(L・|Z|) • 集合要素が疎な時に有効(自然言語処理など)
PSKE (Expanded Representation) (1/2) • PSK における は, 集合 X を, Power Set の 空間に部分集合重み付きで写像するような関数 • w をあらかじめ計算しておき, 高次元空間空間 (Power Set 空間)での内積を直接計算 • [磯崎 2002] と考え方は同じ
PSKE (Expanded Representation) (2/2) C w Expansion Table 3 1 -0.5 10.5 -3.5 -7 -10.5 12 12 6 -12 -18 -24 6 3 0 -12 φ {a} {b} {c} {d} {a,b} {a,c} {a,d} {b,c} {b,d} {c,d} {a,b,c} {a,b,d} {a,c,d} {b,c,d} K(X,Z) = (|X∩Z|+1) 分類したい事例 Z={a,c,e} 7 C0=1, C1=7, C2=12, C3=6 α X 12 P(Z)={{φ},{a},{c}, {e},{a,c},{a,e}, {c,e},{a,c,e}} 展開 {a, b, c} {a, b, d} {b, c, d} 1 2 3 1 0.5 -2 6 F(z)=-0.5+10.5-7+12 =15 • 計算量は O(|P(Z)|), 事例数に依存しない • 事例数が大きいときに有効 • d次の多項式 Kernel → d個の部分集合のみ
PSKEの実際 • Expansion Table の作成 • 素性の d個の組み合わせを全展開するのは非常に困難 • [磯崎2002]は 2個の組み合わせだけに限定 • |w|は, その部分集合の分類寄与度を与える. |w|の小さい部分集合は考えない(近似) • データマイニングアルゴリズムの適用 • Expansion Table の保持 • そのままでは冗長なので TRIE を作成
マイニング問題としての定式化 |w|≧σ となるような部分集合を もれなく効率よく列挙せよ C w 例 1 -0.5 10.5 -3.5 -7 -10.5 12 12 6 -12 -18 -24 6 3 0 -12 φ {a} {b} {c} {d} {a,b} {a,c} {a,d} {b,c} {b,d} {c,d} {a,b,c} {a,b,d} {a,c,d} {b,c,d} C w 7 10.5 -10.5 12 12 -12 -18 -24 -12 {a} {d} {a,b} {a,c} {b,c} {b,d} {c,d} {b,c,d} 7 σ=10 12 12 6 6
部分集合のマイニング(1/3) • αは実数で, 単純な頻度とみなせない • 正例(α≧0),負例(α<0)の事例に分けてそれぞれ独立にマイニング • 部分集合 p の重み w は (正例の頻度)-(負例の頻度) • 正例,負例の数には偏りがある、σを正負例の数に応じて線形分配し, 正負別々の最小サポート値を与える • サイズ r の部分集合の頻度は Cr倍される • 最悪の状況 Cmax=max(C0,C1,..,C|x|) を考え, 事例の頻度を Cmax倍しておく • マイニング後, パターンp の頻度を C|p|/ Cmax 倍
部分集合のマイニング (3/3) 3 バスケットマイニング (Apriori, PrefixSpan) K(X,Z)= (|X∩Z|+1) |Cmax・α|を 頻度とみなす C0=1, C1=7,C2=12 C3=6, Cmax=12 {φ} 18 {a} 18 {b} 18 {c} 12 {a,b} 18 {a,c} 12 {b,c} 12 頻度 X merge 正例 σ=15 σ正例=10 σ負例=5 1 2 12 6 {a, b, c} {a, b, d} {a} 10.5 {d} –10.5 {a,b} 12 {a,c} 12 {b,c} -12 {b,d} -18 {c,d} -24 {b,c,d} -12 Minsup=10 α X {φ} 24 {b} 24 {c} 24 {d} 24 {b,c} 24 {b,d} 24 {c,d} 24 {b,c,d} 24 負例 頻度 X 1 2 3 1 0.5 -2 {a, b, c} {a, b, d} {b, c, d} 3 24 {b, c, d} w= (f正例-f負例)・ C|p|/Cmax (例) {b} の重み W=(18-24)*7/12=10.5 Minsup=5
TRIEによる表現 root w C 10.5 -10.5 12 12 -12 -18 -24 -12 {a} {d} {a,b} {a,c} {b,c} {b,d} {c,d} {b,c,d} 7 a b c d 10.5 -10.5 12 c c d d b -24 12 12 -12 -18 6 d -12 • 共通 Prefix の圧縮 • TRIE の実装にはダブル配列を用いた
本発表の流れ • Kernel Method • Power Set Kernel • Power Set Kernel の高速化手法 • PSKB (ベースライン) • PSKI (提案手法 1) • PSKE (提案手法 2) • 日本語 わかち書き, 係り受けタスクにおける実験 • 考察, 今後の課題
実験 • 日本語 わかち書き/係り受け解析 • 3次の多項式 Kernel • マイニング→PrefixSpan [Peiら 2001] * XEON 2.4GHz, Linux, C++ による実装
考察 • PSKI が 約 3-12倍, PSKE が 約 30-280倍程度 高速 • σ=0.0005のときの部分集合のサイズは 826万, TRIEのサイズは 391MB (係り受け解析) • 頻度によるフィルタリング • 部分集合のそれぞれに対し、事例集合中の出現頻度がξ(=1,2,3..)以上の部分集合を残し, 残りを削除 • 頻出部分集合も マイニングアルゴリズムを用い効率よく列挙する • σ=0.0005に固定し, ξを変化させる
頻度によるフィルタリング結果(係り受け) • フィルタリングにより、サイズを約1/3に • 若干ながら精度向上→頻度の小さい例外的事例の排除
まとめ • Power Set Kernel の定式化と分析 • Power Set Kernel の高速化 • PSKI (事例集合を転置した形で表現) • PSKE (Power Set の空間で分類) • PSKI が 3-12倍程度、 PSKE が 30-280倍程度の高速化に成功
今後の課題 • 部分集合重み Cr の分析 • Cr の適当な推定 → Crに即した Kernel • 頻度によるフィルタリングの詳細な分析 • 他のデータセットでの実験
PSKEにおいて実際に抽出された 3つ組み素性 ● {係り元-主辞-品詞細分類-普通名詞, 係り元-機能語-表層-と, 係り先-主辞-品詞細分類-普通名詞} 「普通名詞 と 普通名詞」並列構造 ● {係り元-機能語-表層-を, 係り先-主辞-表層-中心, 係り先-機能語-表層-に} 「~を 中心に」 頻出言い回し, 普通名詞が「を格」をとる特殊なパターン ● {係り元-機能語-表層-から, 係り元-機能語-品詞-助詞, 係り先-機能語-表層-まで} 「~から ~まで」 頻出言い回し
おまけ • PSKI は拙作の 汎用 チャンカー YamCha と, 係り受け解析プログラム CaboCha に使われています • PSKE に基づくチャンカー, 係りうけ解析プログラムの公開 (そのうち?)
部分集合重み Cr (1/2) • サイズr の部分集合(r個の組み合わせ素性)をどれだけ重要視するか • 決定木→ 深さ r の枝の精度 r=0 root 過汎化 • 最適な深さ r が存在 • Crは 凸関数 r=1 a b c d Cr …… r=2 b c d 過学習 r r=3 0 1 2 3 4
部分集合重み Cr (2/2) Cr 多項式 K(X,Z)=(|X∩Z|+1) Quasi-RBF K(X,Z)=exp (2s|X∩Z|) d r s大 Cr s小 r • 多項式 Kernel は、凸関数のCrを持つ • ピーク時が d によって決定付けられる • RBF は、単調減少(増加)の場合しかない • 集合を素性とする場合, RBF より 多項式 Kernel の ほうが実験結果がよいことの説明