« 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