FSNLP 5.4 Mutual Information(相互情報量) 追伸

ちょっと前に "Foundations of Statistical Natural Language Processing"(FSNLP) 5.4 の Mutual Information(相互情報量)について書いた。

そこで Pointwise Mutual Information(PMI) についての説明にいろいろ納得いかないことがある、と書いたのだが、id:takeda25 さんにコメントにてフォローをいただいたりして、疑問に思っていたことについて少しわかって来たようなので、まとめておく。


再掲になるが、納得いかなかったのは FSNLP の p179 にあった以下の記述。

For example, the mutual information measure tells us that the amount of information we have about the occurence of 'Ayatolah' at position i in the corpus increses by 18.38 bits if we are told that 'Ruhollah' occurs at position i+1.

これを「コーパス内の i 番目に 'Ayatolah' が出現していることについて得ている情報量は、i+1 番目に 'Ruhollah' が出現すると教えられれば、18.38 bits 増える」と読んでしまい、いやいやそんなわけないだろう、と。より詳しくは前回の記事参照


これは正しくは「コーパス内の i 番目に 'Ayatolah' が出現していることについて持っている情報量は、i+1 番目に 'Ruhollah' が出現すると教えられれば、(i+1 番目についての情報を教えられる前と比べて) 18.38 bits 増える」と読むべきだった。下線部が修正/追記したもの*1


これがどういうことか、数式で表す。
X, Y は確率変数、x, y はそれぞれの事象とする。
「事象 x が起こったことを知らされたときに受け取る情報量」、すなわち self-information は I(X=x) = log 1/P(X=x) = -log P(X=x) 。
x と y の pointwise mutual information(PMI) は PMI(X=x, Y=y)=\log\frac{P(X=x, Y=y)}{P(X=x)P(Y=y)}


PMI を self-information で書き直すと、

  • PMI(X=x, Y=y)=I(x)+I(y)-I(x, y)

となるが(ここまで前回と一緒)、さらに条件付 self-information で書き直せば

  • PMI(X=x, Y=y)=I(x)-I(x|y)=I(y)-I(y|x)

となる。
これは「 I(x) と I(x|y) の差は PMI(X=x, Y=y)」、つまり「X=x の素の情報量」は「Y=y がわかっているときの X=x の情報量」より PMI(X=x, Y=y) だけ多いことを表している。
そして同じく、「Y=y の素の情報量」は「X=x がわかっているときの Y=y の情報量」より PMI(X=x, Y=y) だけ多いこともわかる(対称性)。


すっきり。
てか、最初からそう書いてくれれば……いや、誤読を本のせいにしては。

*1:"we have about the occurence of 'Ayatolah'" を「ここが『持っている』だと、どこから増えるのかがわからないなあ」と『得ている』に「意訳」したのが誤訳だった、と