Support Vector Machine による日本語係り受け解析

26
Support Vector Machine にににににににににににに ににににににににににににに ににににににに ににににににににに にに に にににに

description

Support Vector Machine による日本語係り受け解析. 奈良先端科学技術大学院大学 情報科学研究科 自然言語処理学講座 工藤 拓 松本裕治. 係り受け解析. 日本語の統語解析の基本技術の1つ 二文節間の係りやすさを数値化した行列を作成し,文全体を最適化する係り受け関係を導出 人手による手法から、解析済みコーパスから統計的に求める手法へ. 統計的係り受け解析. 入力文節列. 係り先パターン列. 文節 i, j の言語的特徴を示すn次元素性ベクトル. 係り関係がすべて独立だと仮定. 従来手法の問題点(1). 慎重な素性選択が必要 - PowerPoint PPT Presentation

Transcript of Support Vector Machine による日本語係り受け解析

Page 1: Support Vector Machine による日本語係り受け解析

Support Vector Machine による日本語係り受け解析

奈良先端科学技術大学院大学情報科学研究科 自然言語処理学講座

工藤 拓 松本裕治

Page 2: Support Vector Machine による日本語係り受け解析

係り受け解析 日本語の統語解析の基本技術の1つ 二文節間の係りやすさを数値化した行

列を作成し,文全体を最適化する係り受け関係を導出

人手による手法から、解析済みコーパスから統計的に求める手法へ

Page 3: Support Vector Machine による日本語係り受け解析

統計的係り受け解析},,{ 1 mBBB

nnijmmij ffF Rffff },,{},,,,{ 1112

)}1(,),1({ mDepDepD

)|(maxarg BDPDD

best

入力文節列 係り先パターン列

)|)(()|(1

1

m

iijjiDepPBDP f

文節 i, j の言語的特徴を示すn次元素性ベクトル

係り関係がすべて独立だと仮定

Page 4: Support Vector Machine による日本語係り受け解析

従来手法の問題点 (1) 慎重な素性選択が必要

多くの素性を使用すると過学習してしまう 最適な素性集合の選択は試行錯誤や人手に

頼っている

Page 5: Support Vector Machine による日本語係り受け解析

従来手法の問題点 (2) 各素性の組み合わせ(共起,依存関係)を効率よく

学習できない 共起選択の方法はさまざま,人手により発見的に選択 細かな依存関係を見ると…

データスパースネス,計算量増加,過学習

))...(),(),((|))(),(),((|?

))(),((|))(),((|?

))((|))((|))((|))((|?

))(),(),(),(|)((

jposjlexiposPjposjlexilexP

jposiposPjlexilexP

jposPiposPjlexPilexP

jposjlexiposilexjiDepP

Page 6: Support Vector Machine による日本語係り受け解析

Support Vector Machine ( 1 )

V.Vapnik 95 入力素性数に依存しない汎化能力を持

ち過学習しにくい 計算量をほとんど変えることなく,素

性どうしの組み合わせ(共起,依存関係)を含めた学習が可能

Page 7: Support Vector Machine による日本語係り受け解析

SVM(2)

RRxw

Rxxxx

bwb

yyyyn

in

illii

,0)(

}1,1{)(,),(),( 11 線形2値(正例,負例)分類器, Euclid 空間上の平面

で分離

正例,負例,その他 ( マージン領域),の3つの領域に分割

1])[(

1if1)(

1if1)(

by

yb

yb

ii

ii

ii

xw

xw

xw

Page 8: Support Vector Machine による日本語係り受け解析

SVM(3)

1iy

1iy0 bxw1 bxw

1 bxw

d

||||

2

||||

||min

||||

||min

11 ww

xw

w

xw

bbd i

yx

i

yx iiii

マージン d を最大にするためには ||w|| を最小にすればよい

d

d

マージン d が最大となる識別平面

d

Page 9: Support Vector Machine による日本語係り受け解析

SVM(4)以下の制約付き多項式の最適化問題に帰着

Lagrange 乗数 α を導入して双対問題に変換

最終的な識別関数

最小化:制約条件:

制約条件:

最大化:

2||||)( ww L

l

jijijiji

l

ii yyL

1,1

)(2

1)( xx

l

iiii y

1

0,0

1])[( by ii xw

bybfl

iiii

1

)(sgn)sgn()( xxxwx

Page 10: Support Vector Machine による日本語係り受け解析

Kernel 関数 (1)線形分離できない場合

各素性をの組み合わせを展開し,より高次元の素性ベクトル空間に射影すれば線形分離しやすくなる

1 2 3 4 5 6 7nspaceInput Rx

nn

spaceFeaturen ')( 'Rx

1 2 4 5 6 7 1,2 1,3 1,4 1,5 1,6 1,7 2,3 2,4 2,5

Page 11: Support Vector Machine による日本語係り受け解析

Kernel 関数 (2)

学習:

l

jijijiji

l

ii yyL

1,1

))()((2

1)( xx

byfl

iiii

1

))()((sgn)( xxx 識別関数 :

学習、識別は素性ベクトルの内積のみに依存した形

Φ を経由せずに簡単な演算で直接内積を計算できれば計算量を大幅に減らすことが可能

)()(),( jijiK xxxx K: Kernel 関数

)(2

1)(

1,1

l

jijijiji

l

ii yyL xx

byfl

iiii

1

)(sgn)( xxx

Page 12: Support Vector Machine による日本語係り受け解析

Kernel 関数 (3)例 d

jijiK )1(),( xxxx d 次の Polynomial 関数

)1,2,2,2,,(),(:

)1,2,2,2,,()1,2,2,2,,(

1222

)1()1(),(

),(,),(2

212122

2121

212122

212121

22

21

2121221122

22

21

21

22211

2

221

221

zzzzzzzz

bbbbbbaaaaaa

bbaababababa

babaK

bbaad

T

jiji

ji

xxxx

RxRx

2 次元を 6 次元の空間へ写像,組み合わせの項も追加されるd 次の Polynomial 関数は d 個までの組み合わせを含めた学習

Page 13: Support Vector Machine による日本語係り受け解析

SVM (まとめ) 入力素性数に依存しない汎化能力を持ち

過学習しにくい マージン最大化

計算量をほとんど変えることなく素性どうしの組み合わせを含めた学習が可能 Kernel 関数

d 個までの素性の組み合わせを考慮しながらその中で汎化能力を最大にする戦略 Smoothing の効果が期待できる

Page 14: Support Vector Machine による日本語係り受け解析

SVM による係り受け解析( 1 )

正例,負例の与え方

学習データ中の全係り受け候補

係った事例 → 正例

係らなかった事例 → 負例

Page 15: Support Vector Machine による日本語係り受け解析

SVM による係り受け解析( 2 )

係り受け確率

lk

ijklklklij bKyjiDepP,

)'(tanh)'|)(( fff

1)tanh(0)exp(1

1)tanh(

x

xx ( Sigmoid 関数)

厳密には確率値ではない,距離を確率値に正規化, Sigmoid 関数は確率へのよい近似を与えることが実験的に示されている ( J.Platt 99 )

従来からある確率モデルの枠組で解析 関根99の文末からビームサーチを行う解析手法を採

Page 16: Support Vector Machine による日本語係り受け解析

静的素性と動的素性 静的素性

2 文節の主辞の語彙,品詞, 2 文節間距離など 文節まとめあげの段階で決定される

私は | この本を | 持っている | 女性を | 探している。?

動的素性 係り関係そのもの,解析しながら動的に追

加 動的素性も含めてビームサーチ

「探している」の素性として「女性を」を追加二重 を格 の可能性が取り除かれる

Page 17: Support Vector Machine による日本語係り受け解析

実験環境,設定( 1 )

京都大学テキストコーパス Version2.0 の一部 学習データ 1月 1 日-8日 7958文 テストデータ 1月9日 1246 文 内元 98と同じ学習データ,テストデータ Kernel 関数は, Polynomial 関数,次元数 d=3 Beam 幅 k=5

評価方法 係り受け正解率

文末から 2番目の評価含める (A) デフォルト, 含めない( B )

文正解率

Page 18: Support Vector Machine による日本語係り受け解析

実験環境,設定( 2 )静的素性

係り元 /係り先文節

主辞(見出し,品詞,品詞細分類, 活用,活用形)語形(見出し,品詞,品詞細分類,活用,活用形)括弧,句読点,文節位置

文節間 距離( 1 , 2-5 , 6 ),助詞,括弧,句読点

動的素性

2 文節間にある文節で,後ろの文節に係る文節の語形見出し

Page 19: Support Vector Machine による日本語係り受け解析

実験結果( 1 )( d=3 , k=5 )

84.86

85.6286.14

87.2186.52

89.0988.7788.66

88.34

87.67

87.7487.38

86.987.26

8484.5

8585.5

8686.5

8787.5

8888.5

8989.5

1172 1917 3032 4318 5540 6756 7956学習文数

(A/B

)%

文節

正解

率(

Page 20: Support Vector Machine による日本語係り受け解析

実験結果( 2 )( d=3 , k=5 )

40.0639.31

46.1745.36

45.2

44.07

42.94

38

40

42

44

46

1172 1917 3032 4318 5540 6756 7956学習文数

%文

正解

率(

Page 21: Support Vector Machine による日本語係り受け解析

動的素性の効果( d=3 , k=5 )

86.12

86.81

87.6287.21

86.52

89.0988.7788.66

88.34

87.67

88.7788.55

88.33 88.4

86

86.5

87

87.5

88

88.5

89

89.5

1172 1917 3032 4318 5540 6756 7956学習文数

(A)

%文

節正

解率

()

Page 22: Support Vector Machine による日本語係り受け解析

Kernel 関数と解析精度

87.67

86.87

87.72

86.5

87

87.5

88

2 3 4

(3032 k=5次元数 文, )

(A)

%文

節正

解率

()

Page 23: Support Vector Machine による日本語係り受け解析

ビーム幅と解析精度

88.64

88.59

88.5588.5588.56

88.63

88.66

88.5

88.6

88.7

1 3 5 7 10 15 25

Beam (5540 d=3)幅 文,

(A)

%文

節正

解率

()

Page 24: Support Vector Machine による日本語係り受け解析

関連研究との比較 内元 98との比較

最大エントロピー法に基づくモデル 87.2%の精度 (本手法は 89.1%) 素性の組み合わせ(共起,依存関係)の重要性

を指摘しているが,組み合わせは,人手により発見的に 選択,有効な組み合わせを網羅できない

本手法は Kernel 関数の変更のみ,網羅性, 一貫性という意味で優位

Page 25: Support Vector Machine による日本語係り受け解析

今後の課題

明らかに係らない制約を(人手により)導入 他の計算コストの少ないモデルとの融合 誤り駆動型による素性選択

全係り受け関係を用いるため,多くの計算量が必要

すべての候補から分類に必要な事例を選択学習の効率化,解析の高速化

Page 26: Support Vector Machine による日本語係り受け解析

まとめ

7958文という非常に少量のデータにもかかわらず, 89.1%の高い精度を示す

SVM の持つ,高次元の入力に対して過学習しにくいという性質を裏付ける結果

係り受け解析は各素性の組み合わせ(共起,依存関係)が重要, SVM は Kern el関数を使うことで効率性,網羅性,一貫性で優位