共役事前分布
Conjugate Prior ・ きょうやくじぜんぶんぷ
事後分布が事前分布と同じ形になる組み合わせ。ベイズ更新を閉じた式にする
概要
共役事前分布とは、ある尤度(データの生成モデル)と組み合わせたとき、事後分布が事前分布と同じ族の分布になるような事前分布のことです。たとえば成功率pの二項分布のデータにベータ分布の事前を組み合わせると、事後分布もまたベータ分布になります。分布の「形」が更新の前後で保たれ、変わるのはパラメータの数値だけ — この性質を共役性と呼びます。
共役性の何がうれしいのか。事前分布と事後分布をつなぐベイズ更新には、本来なら正規化のための積分計算が必要で、これが一般には解けません。ところが共役な組み合わせでは、事後分布が「事前分布のパラメータにデータの集計値を足す」だけの閉じた式で書けてしまいます。積分が足し算に化ける — ベイズ更新を紙と鉛筆で実行可能にする仕掛けが共役事前分布です。
MCMCが普及した現在でも、共役モデルはベイズ推論の教科書の入口であり、逐次更新が高速に必要な現場(オンライン学習、バンディットアルゴリズムなど)の実用部品であり、複雑なモデルの部品としても生き続けています。
なぜ生まれたか
ベイズ推論の原理は18世紀からあったのに、20世紀末まで実用が広がらなかった最大の理由は計算です。事後分布を確率分布として完成させるには「尤度×事前を母数の全域で足し合わせる」積分が必要で、電子計算機のない時代はもちろん、あっても母数が多次元になれば数値積分は手に負えませんでした。ベイズの枠組みは美しいが計算できない — これが長年の課題でした。
共役事前分布は、この課題への「モデルの側を計算できる形に選ぶ」という解決です。尤度の数式の形をにらみ、掛け算しても同じ族に収まる事前分布をあらかじめ選んでおけば、事後分布は積分なしでパラメータの更新式として求まります。1950〜60年代にライファとシュレイファーらが意思決定理論の文脈でこの考え方を体系化し、主要な尤度に対する共役族のカタログが整備されました。MCMC以前のベイズ統計は、実質的にこのカタログの範囲で営まれていたと言ってよいほどです。
詳細
ベータ二項モデル — 足し算になる更新
共役性の代表例がベータ二項モデルです。成功率pのベルヌーイ試行(成功/失敗の繰り返し)について、事前分布としてベータ分布 Beta(a, b) を置きます。aとbは「これまでに見たことにする成功数・失敗数」と読める形のパラメータです。ここでn回中k回成功というデータを観測すると、事後分布は Beta(a + k, b + n − k) になります。成功数を a に、失敗数を b に足すだけ。積分はどこにも現れません。
この更新式は直感的にも読み下せます。事前分布 Beta(2, 2) は「成功2回・失敗2回ぶんの経験を持っているつもり」というゆるい五分五分の見立てで、そこに実データの成功7回・失敗3回が加算されて Beta(9, 5) になる。事後分布の山は 7/10 = 0.7 と事前の中心 0.5 の間(平均は 9/14 ≈ 0.64)に立ちます。事前分布のパラメータが「疑似的な観測数」として働くこの読み方は、事前の強さを設計する際の実用的な物差しになります。a、bを大きくすれば頑固な事前、小さくすれば素直にデータに従う事前です。
共役ペアのカタログ
共役性は尤度と事前の「ペア」の性質です。代表的な組み合わせとして、二項分布(成功率)にはベータ分布、ポアソン分布(発生率)にはガンマ分布、正規分布の平均(分散既知)には正規分布、カテゴリ比率にはディリクレ分布、指数分布の率パラメータにはガンマ分布が共役です。いずれも尤度の数式と同じ「形」を持つ族を事前に選んでいるため、掛け算しても族から出ない、というのが共通の種明かしです。逆に言えば、尤度ごとに共役族は決まってしまい、自由に選べるわけではありません。
なぜ実務で今も使われるか
MCMC時代の現在でも共役モデルには明確な出番があります。第一に速度です。更新が定数時間の足し算なので、リクエストのたびにクリック率の分布を更新するようなオンライン処理でも計算コストがほぼゼロで済みます。多腕バンディットの定番手法トンプソンサンプリングは、まさにベータ二項の共役更新を毎回回して腕を選びます。第二に逐次性との相性です。事前分布と事後分布の連鎖(今日の事後を明日の事前にする運用)が、パラメータを持ち越すだけで実現できます。第三に、階層モデルのような複雑なモデルの内部でも、共役な部分だけ解析的に済ませて残りをサンプリングする(ギブスサンプリングや周辺化)ことで、MCMCの効率を大きく改善できます。
限界 — モデリングの自由と引き換え
共役事前分布の弱点は、その便利さの裏返しです。共役性を優先すると、事前分布の形が「計算の都合」で決まってしまい、本当に表現したい事前知識と食い違うことがあります。たとえば「pは0.2付近か0.8付近のどちらかだろう」という二山の事前はベータ分布では表せません。また尤度が複雑なモデル(非線形モデルや階層の深いモデル)には、そもそも使える共役族が存在しないことがほとんどです。現代の実務では、共役で済むところは共役で高速に、済まないところはMCMCや確率的プログラミングで力任せに、という使い分けが標準です。共役事前分布は「ベイズ更新が本来どれほど単純な操作か」を見せてくれる教材であると同時に、計算資源が許す限りモデルの表現を優先する、という現代的な設計判断の比較対象でもあります。
