タガー2

前回(タガー - アスペ日記)の続き。

前回の考え方(変形 n-gram)では、学習データに出現する文脈については遠くのラベル情報が利用できるという意味では利点があるのだが、素性情報の利用が難しいという欠点があった。そのため、それを補うことを考える。二つのアイデアがある。

1. 変形 n-gram で求めた確率をベースに、素性による補正を加える
2. 変形 n-gram で利用する情報を元に CRF で処理する

1 の考え方について。

基本は CRF。適当な素性を仮に作り、変形 n-gram によって求めたそれぞれのパスの確率に合わせて、そのパスにおけるその素性の出現回数を調整する。そのことによって、他の素性の重みがゼロの時に変形 n-gram の確率がそのまま使われることになり、それだけではうまくいかないところがその他の素性によって調整されることを期待する。この場合、それぞれのパスの混合 n-gram 確率を付与する時に、そのパスを含むデータで学習した確率を使ってしまってはもちろん意味がないので、ヘルドアウトの形でやる必要がある。

2 の考え方について。

こちらも基本は CRF。変形 n-gram の利点というのは「学習データに出現する文脈については遠くのラベル情報が利用できる」ということなので、だったらそれをそのまま CRF の素性に入れてしまえばいいのでは、という考え。CRF といえば普通は bigram 素性(first-order)しか使わないが、学習データに出現するものについてはその長さを可変長にする。1 のような、Power-law 的な確率と素性による調整を組み合わせるといったややこしいことをしなくてすむので楽だが、要はただの CRF(CRF は元々一般的なモデルなので、次数を可変長にしても CRF のバリエーションに過ぎない)。

さて、どちらがいいか。

1 のほうが、「新規性」という意味では多少なりとも上かもしれない(2 はただの CRF なので)。

しかし、やっていることがいかにも怪しい。変形 n-gram 確率をオラクル的に与えて、残りを最大エントロピー風にやるという時点で、すでに最大エントロピーでも何でもないし、モデル的な正当性がわからない。うまくいくかもしれないが、怪しいモデルでやってうまくいかなかったら悲惨だ。直観的には、うまくいくかもしれないという程度。

2 のほうは、無難といえば無難。CRF(判別モデル)なので、「生成モデルは判別モデルに比べて云々」ということも言われないですむ(その考え方は「何か違う」という気がするのだが、現時点でははっきりと反論できない)。一応、可変長オーダーということで、(理論的にはともかく)実装としては新規性がないこともない。ただ、学習・ラベリングに時間がかかりすぎないかが心配。

総合的に考えて、2 の線で行ってみよう。2 のほうは今日思いついたことだけど。

とりあえず、普通に bigram 素性で CRF を使った場合と比較をしないと。Stanford Tagger の素性を参考にしつつ、がんばって実装しよう。