« perl でメモリ不足 | メイン | Information Retrieval に! »
2005年03月09日
CRF と HMM
職場の人に質問されたのがきっかけで、CRF と HMM について
再考する機会をもった。
CRF は条件付き確率 P(Y|X) をモデル化するのに対し、HMM は
同時確率 P(Y,X) をモデル化する (Y: 形態素列, X: 入力文)
ここで、いわゆる「言語モデル」とは 入力文がどれだけ観察されやすいか
ということなので、言語モデル=P(X)となる。
同時確率は、以下のように P(X) を導出できる。
Σ P(Y,X) = P(X)
Y
つまり、HMM は言語モデルとして使える。また、分布が鋭い場合は
P(Y,X) を最大にならしめる Y' を使って
P(Y', X) ~= P(X)
と近似できる。
つまり、HMM ベースの 形態素解析器 (ChaSen) は、コストの総和を
言語モデルとして使うことができる。微妙に違う2つの入力 A, B を
形態素解析して、そのコストを相対的に比較することで、どちらが
言語らしいかという評価は原理的には可能である。
一方、CRF は はじめから P(Y|X) である。これをどういじっても
P(X) を導けない。つまり、言語モデルとして使えない。
入力文 A, B の形態素解析結果のコスト値を比較することはできない。
ただし、P(Y|X) は、形態素解析という意味だと、こちらのほうが
直接的な表現になっている。 これはモデル化を自由度を与え
このことが形態素解析という意味での精度向上に貢献している。
ちなみに、CRF 的な言語モデルも存在します。
whole sentence maximum entropy model
投稿者 taku : 2005年03月09日 02:41
トラックバック
このエントリーのトラックバックURL:
http://chasen.org/~taku/blog/mt-tb.cgi/112