mots quotidiens.
Daichi Mochihashi (持橋大地) daichi <at> ism.ac.jp by hns, version 2.10-pl1.

先月 2005年10月 来月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

2005年10月23日() [n年日記]

#1 けいはんな文化フォーラム

第210回のけいはんな文化フォーラムで元国連の 明石康さんが話される とのことで, これは聞かないといけないだろうなぁ, と思ったので, 日曜日にけいはんなプラザのホールに行って聞いてきました。

国際関係について, ニュースで言われているような話が色々あって, その後に, 日本人は何でも日本語で読め, 情報を得られるので, 日本という世界に 浸かってしまって国際感覚を失いがちだ, という話がありました。
印象的だったのは, 明石さんが"「国際貢献」という言葉は嫌いだ" とおっしゃって いたこと。"「国際協力」という言葉の方が好きです" とのことでした。
つまり, 国際的に日本が損をして奉仕する, というのではなくて, (そういう風に明示的には言われませんでしたが)互恵的な関係であることが 大事なのではないか, ということでした。これが思うに第一のポイントで, また, 中国の上海と南部とで13倍もある経済格差をなくすために, NGOなどの日本の方がずいぶん頑張ってくださっていて, そういう経済的でない 援助も重要ではないか, というのが第二のポイントだったかと思います。
こういう話を聞くということは, 話自体の情報だけというよりも, latent attitude を育てるという意味がまず一番であろうかと思うのですが。
なお, この内容は録音されていて, 来年の(確か)1/22のNHKラジオ第二で流れる のだそうです。(前に聞いた時はそういう話はなかったので, 今回は特別 なのだと思う。)


2005年10月28日(金) [n年日記]

#1 Polya分布再考

下に色々書き足したので, ここまで来ると, 別に文書にした方がいいような 気がしてきました。
と言っても, そんなに完全に新しいことを言っているわけ ではないと思うので, 少し躊躇があります。

相変わらず, Γ関数の海を泳いでいるわけですが..。
いま, 語彙が全部で V 個あったとして, ある文書において, それぞれの単語が x = (n_1, n_2, ..., n_V) 回現れたとする。 単語のユニグラム確率を p_i とすれば, このデータ x の確率は p_i が n_i 回現れているので, 多項分布に従って
p(x|p) = (n0!/Πini!)Πi pi^ni     (1)
になる。ただし, n0 = Σi ni.
これを最大にする確率 p_i は最尤推定で,
pi = ni/n0     (2)
として求まる。 これは基本的に Naive Bayes で使われている方法で, 高村君のNBのチュートリアル などを参照。
ただ, ni はほとんどが0で非零要素はせいぜい100個くらいなのに, 10000次元ぐらいある p_i が正確に求まるはずがない。 つまり, 確率 p_i 自体に不確実性があるということなので, p_i を生成する 確率分布 p(p|α) をもってきて,
p(x|α) = ∫p(x|p)p(p|α)dp
として p を積分消去してしまうことができる。この積分は解析的に計算できて,
p(x|α) = Γ(α0)/Γ(α0+n0i Γ(αi+ni)/Γ(αi)     (4)
になる。この分布は Polya分布 (Dirichlet/Multinomial)と呼ばれている。 ただし, α0 = Σiαi.
ここまでが前フリ。

Γ関数を含むこの分布は僕は毎日のように使っているわけだけれども, 一体この分布はどういう意味を持っているのだろうか, というのが気になった。
実はこの答えは, Minka の "Estimating a Dirichlet distribution" の4章に書いてあるのだが, とりあえず必要がなかったので, これまで 読み飛ばしていた。(この論文は普通に見るとかなり難しいと思うので, 隅から隅まで読んで計算をフォローしている人はあまりいないと思うのですが..。) ここに書いてある議論は, 以下のようなこと。

いま, (1)式は

p(x|p) ∝ Πipi^ni
を意味するので, 両辺の log をとると
logp(x|p) = Σi ni log pi.
よって, ∂logp(x|p)/∂pi = ni/pi.つまり, ni = (∂log(x|p)/∂pi)・piということになる。
これを Polya 分布の場合に同じ計算をしてみると,
(∂logp(x|α)/∂mi)・mi = αi[Ψ(αi+ni) - Ψ(αi)] ≡ n~(i).
になる。ここで, mi = αi0.
これは ni と同じような意味を持っていると考えられるので, n~(i) とおくと, これがどういう意味を持っているかが問題になります。 以下の話は, Minkaの論文には書いていない話。

さて, digamma関数 Ψ(x) = d/dx logΓ(x) は, Ψ(x+1) = 1/x + Ψ(x) という性質を持っているので (Γ(x+1) = xΓ(x) なので, 両辺を対数微分すれば簡単に出てきます。 きのうの夜はこれに気付かずに, ワイエルシュトラスの公式を使って一生懸命計算して しまった。; ), 実は Ψ(x+n) - Ψ(x) = Σi=1n 1/(x+n-i)です。つまり, n~(i) は (n_i = n, α_i = αと書くと)
n~(i) = α Σi=1n 1/(α+n-i)
= Σi=1n α/(α+n-i)
= Σi=1n 1/(1+(n-i)/α).
ここで, Σの中の各項が1に等しければ, 当然 n~(i) = n_i です。 しかし実際は, 各項は
1/(1+(n-i)/α)
で, 1より小さくなっています。つまり, この和は
1 + 1/(1+1/α) + 1/(1+2/α) + ... + 1/(1+(n-1)/α)
になっていて, 頻度 i が大きくなるほど, その実際のカウントは1増えるのでは なく, 1/(1+(n-i)/α) = 1 - (n-i)/(α+n-i) だけ "dumping" されます。 Minka の論文の Figure 1 には, この和がαが小さい時には log のような ダンピング効果を持つと書いてありますが ∫1/xdx = log(x) なことを考えると (この場合は離散ですが), わりと納得できると思う。
つまり, ある単語が20回出たという事象は1回出た事象の20倍の意味がある (普通の多項モデル)ではなく, log(20)倍くらいだろう (対数の底は任意として), という常識的な直観をモデル化していることになっている。 もちろん, この dumping は αi, つまり事前の仮想的な観測数に依存していて, αiが大きい, つまり観測が多いと仮定されていればほとんどダンピングはなく 線形に伸びるが, αiが小さく観測があまり信頼できないと予想されていれば, たとえその後何回も観測された としても, その効果は log 程度に緩められる, ということになる。

実際, ここで α が 0.001 のように非常に小さい時(自然言語の場合は よくある), 上の級数の2項めから後ろは分母が非常に大きくなるのでほとんど0に 近付いて, 結局「n が何であっても」この effective count はほぼ1になる, ということ。(!)
つまり, もし αi が小さい→ xi の事前観測値が小さければ, xi が何回観測されても, 1回だけ観測されたのと同じになる, ということ。 これが Minka の論文の(79)式の意味する所だと思う(こういう説明は論文には 全然書いていないが)。

・ LOO approximation

文書データ X = (x1, x2, .., xN)が与えられた時, 上の(4)式のαを最適化するためには,
αk' = αk ・(ΣiΨ(αk+nik)-Ψ(αk)) /(ΣiΨ(α0+ni)-Ψ(α0))
という fixed-point iteration を計算します。 (この式を導くには, 色々自明でない bound を使って計算する必要があります。)
ただ, DM の論文にあるように, この計算はΨ関数を使っていて重いので, LOO近似を使うと, また自明でない bound を使って結構計算して,
αk' = αk ・(Σi nik/(αk+nik-1)) /(Σi ni/(α0+ni-1))
という fixed-point iteration を解けばいいことがわかります。
この式の意味は僕はずっとよくわからなかったのですが, 上で書いたように, Ψ(x+n) - Ψ(x) = Σi=1n 1/(x+n-i)なので, 実はこの近似は
Ψ(α+n) - Ψ(α) = Σi=1n 1/(α+n-i) ~ n/(α+n-1)
という近似をやっているのだ, ということに気がつきました。
つまり, 1/(α+n-1) + 1/(α+n-2) + .. + 1/α という和を, 各項をみな一番小さい値 の 1/(α+n-1) で近似して, n * 1/(α+n-1) として計算しているということ。 これだと誤差が出るはずですが, 分子でも分母でも同じ近似をしているので相殺されて いるのかもしれません。この近似が, LOO近似は
Γ(x+n)/Γ(x) = x(n) = x(x+1)..(x+n-1) ~ (x+n-1)^n
という近似をしているのだ, という Minka の(71)式の意味なのだと思います。 (この式には説明がないので, 前に読んだ時は(71)式の理由が全然わからなかった。)

・ MacKay's interpretation

実は MacKay も, "Models for Dice Factories and Amino Acid Probabilities" (PDF)の最後で少し違った解釈を書いています。
ただ, MacKayの近似は α_i > 0.1 のような大きい場合を対象にして計算して いますが, 言語の場合は α_i はずっと小さいのであまり当てはまらないような 気はします。小さい場合の近似式を使って計算してみたところ, あまり 面白くない式になってしまいました。(大きい場合には, KLダイバージェンス*αで 正則化がかかっていると解釈できるような式が得られる。)


2 days displayed.
タイトル一覧
カテゴリ分類
 なかのひと
Powered by hns-2.10-pl1, HyperNikkiSystem Project