言語モデルの評価について

パープレキシティは簡単な比較をするためには便利だけれど、
特徴を分析して改良のヒントを探すためには粗すぎる。

というわけでもっと細かい評価の方法:

1. テストコーパスを文程度のレベルで区切って、
長さ正規化された確率降順でセグメントをランキング

2. 正解単語と予測単語の確率順リストを照らし合わせたときの、
reciprocal rank の分布とか推移

大規模コーパスを使ってテストする場合には、
細かすぎるかもしれない。
その場合は、適当な長さ・個数の区間をサンプリングしてやる。

どの評価指標を使うかは、目的や応用による。
確率スコアそのものは使わなくて、順位付けだけを使う場合には、
平均順位が有効だろうし、
スコアを使って足したり引いたりする場合には、
スコアそのものを使うパープレキシティが有効だろう。

順位を使うものとパープレキシティ以外には、
負例を入れた識別性能でみる discriminative language model with negative examples が有効。