360 likes | 506 Views
系列パターンマイニングを用いた有効な素性の組み合わせの発見. 奈良先端科学技術大学院大学 情報科学研究科 工藤 拓 松本 裕治. 背景. SVM をはじめとする Kernel Method のめざましい進展 自然言語処理も例外ではない テキストチャンキング 固有名詞抽出 構文解析 Kernel Method は万能なのか?. Kernel Method の問題点. 有効な素性の分析が困難 素性空間が陰に表現される 有効な素性(事例の部分構造)は我々の知らない一種の知識 (マイニング) 分類の計算量が大きい
E N D
系列パターンマイニングを用いた有効な素性の組み合わせの発見 奈良先端科学技術大学院大学 情報科学研究科 工藤 拓 松本 裕治
背景 • SVM をはじめとする Kernel Method のめざましい進展 • 自然言語処理も例外ではない • テキストチャンキング • 固有名詞抽出 • 構文解析 • Kernel Method は万能なのか?
Kernel Method の問題点 • 有効な素性の分析が困難 • 素性空間が陰に表現される • 有効な素性(事例の部分構造)は我々の知らない一種の知識 (マイニング) • 分類の計算量が大きい • Kernel Method に基づくチャンカーや構文解析器は大規模テキストデータの解析に不向き GOAL: この2つの問題の克服
ケーススタディ(日本語係り受け) • SVM に基づく日本語係り受け解析システム「南瓜」 • 2000年 Perl + C++ プロトタイプ 2-3秒/文 • 2001年 春 C++ で再実装 0.4秒/文 • 2001年 夏 データ構造の工夫 0.3秒/文 • 新聞記事数年分を解析するのに 数週間 • ちなみに.. 形態素解析 0.0001秒/文 • SVMの分類アルゴリズムを改良しない限り、これ以上の高速化は無理
本発表の流れ • 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(・,・)の計算量) • 係り受けの場合、L = 35,000 ぐらい • 素性空間が陰に表現されてしまい, 有効な素性の 提示が困難
本発表の流れ • 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) |=2 |X∩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(L・|Z|) • 集合要素が疎な時に有効(自然言語処理など)
PSKE (Expanded Representation) (1/2) • PSK における は, 集合 X を, Power Set の 空間に部分集合重み付きで写像するような関数 • w をあらかじめ計算しておき, 高次元空間空間 (Power Set 空間)での内積を直接計算 • [磯崎 2002] と考え方は同じ
PSKE (Expanded Representation) (2/2) 展開テーブル C w 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 Cr の算出 α 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の実際 • 展開テーブル の作成 • 素性の d個の組み合わせを全展開するのは非常に困難 (係り受けの素性は 4万程度) • [磯崎2002]は 2個の組み合わせだけに限定 • |w|は, その部分集合の分類寄与度を与える. |w|の小さい部分集合は考えない(近似) • データマイニングアルゴリズムの適用 • 展開テーブル の保持 • そのままでは冗長なので 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 merge 頻度 X 正例 {a} 10.5 {b} –10.5 {a,b} 12 {a,c} 12 {b,c} -12 {b,d} -18 {c,d} -24 {b,c,d} -12 σ=15 σ正例=10 σ負例=5 1 2 12 6 {a, b, c} {a, b, d} 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} w= (f正例-f負例)・ C|p|/Cmax 3 24 {b, c, d} (例) {b} の重み W=(18-24)*7/12=10.5 Minsup=5
TRIEによる表現 root w 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} a b c d 10.5 -10.5 c c d d b -24 12 12 -12 -18 d -12 • 共通 Prefix の圧縮 • TRIE の実装にはダブル配列を用いた
本発表の流れ • Kernel Method • Power Set Kernel • Power Set Kernel の高速化手法 • PSKB (ベースライン) • PSKI (提案手法 1) • PSKE (提案手法 2) • 日本語係り受けタスクにおける実験 • 考察, 今後の課題
実験 • 日本語係り受け解析[工藤,松本2002] • 3次の多項式 Kernel • マイニング→PrefixSpan [Peiら 2000] * XEON 2.4GHz, Linux, C++ による実装
B A C 素性 係るかどうかの判定? 彼の1 友人は2 この本を3 持っている4 女性を5 探している6 係り元 係り先 • 静的素性 • 係り元/係り先 • 主辞/機能語: (表層、品詞、品詞再分類、活用型、活用形、括弧の有無、疑問符の有無、句読点の有無、位置) • 間: 距離(離散値)、括弧の有無、句読点の有無、疑問符の有無 • 動的素性 [工藤, 松本 2000] • A,B : 機能語の静的素性 • C:主辞の静的素性
考察 • PSKI が 約3倍, PSKEが 30倍程度 高速 • σ=0.0005のときの部分集合のサイズは 826万, TRIEのサイズは 391MB • 頻度によるフィルタリング • 部分集合のそれぞれに対し、事例集合中の出現頻度がξ(=1,2,3..)以上の部分集合を残し, 残りを削除 • 頻出部分集合も バスケットマイニングアルゴリズムを用い効率よく列挙する • σ=0.0005に固定し, ξを変化させる
頻度によるフィルタリング結果 • フィルタリングにより、サイズを約1/3に • 若干ながら精度向上→頻度の小さい例外的事例の排除
PSKEにおいて実際に抽出された 3つ組み素性 ● {係り元-主辞-品詞細分類-普通名詞, 係り元-機能語-表層-と, 係り先-主辞-品詞細分類-普通名詞} 「普通名詞 と 普通名詞」 並列構造 ● {係り元-機能語-表層-を, 係り先-主辞-表層-中心, 係り先-機能語-表層-に} 「~を 中心に」 頻出言い回し, 一般 名詞が「を格」をとる特殊なパターン ● {係り元-機能語-表層-から, 係り元-機能語-品詞-助詞, 係り先-機能語-表層-まで} 「~から ~まで」 頻出言い回し
まとめ • Power Set Kernel の定式化と分析 • Power Set Kernel の高速化 • PSKI (事例集合を転置した形で表現) • PSKE (Power Set の空間で分類) • PSKI が 3倍程度、PSKE が 30倍程度の高速化に成功
今後の課題 • 部分集合重み Cr の分析 • Cr の適当な推定 → Crに即した Kernel • 頻度によるフィルタリングの詳細な分析 • 係り受け以外のデータセットでの実験
おまけ • PSK のより詳細な分析は、次回のアクティブマイニング研究会で発表いたします • PSKI は拙作の 汎用 チャンカー YamCha と, 係り受け解析プログラム CaboCha に使われています • PSKE に基づくチャンカー, 係り受け解析プログラムの公開 (まだモデルが大きすぎる?)