雑記: レーティングのベイズ的解釈の話

キャラクターは架空のものです。お気付きの点がありましたらご指摘いただけますと幸いです。
f:id:cookie-box:20190101155733p:plain:w60

一昨日、佐藤和俊七段が渡辺明三冠に勝利して、以下のサイトでの両者のレーティングが 14 変化しましたね。以下のサイトでのイロレーティングの定数値 K16 ですから、一回のレーティング変化の理論上限が 16 であり、14 というのは相当大きな変化ということになります。

今回の変化を表にまとめると以下です。
12月20日対局前12月20日対局後
渡辺明三冠レーティング R_W R_W^{(0)} = 2016 R_W^{(1)} = R_W^{(0)} - 16 W_{WS}^{(0)}  = 2002
佐藤和俊七段レーティング R_S R_S^{(0)} = 1696 R_S^{(1)} = R_S^{(0)} + 16 W_{WS}^{(0)}  = 1710
佐藤和俊七段が渡辺明三冠に勝利する確率 W_{SW}W_{SW}^{(0)} = 0.1368W_{SW}^{(1)} = 0.1570
渡辺明三冠が佐藤和俊七段に勝利する確率 W_{WS}W_{WS}^{(0)} = 0.8632W_{WS}^{(1)} = 0.8430
勝利確率はレーティングから算出される勝利確率 \displaystyle W_{SW}^{(t)} = \frac{1}{10^{(R_W^{(t)} - R_s^{(t)})/400} + 1} ですね。400 はただのスケーリング係数です。レーティングの更新規則も表の中に示しました。K=16 は上記のサイトで採用されている定数値、いわば更新の度合いのハイパーパラメータですね。大きいほど直近の対局結果を反映するレーティングになります。つまりレーティングとは、負けた方から勝った方へ数値を移動させる、どれだけ数値を移動させるかは「勝った方が勝てなかったであろう確率」に比例させる、というパイの奪い合いです。そのため、パイを奪って引退する人が多いとレーティングはデフレし、奪われて引退する人が多いとレーティングはインフレします。将棋のプロ棋士の場合、引退間際には棋力が衰えてパイを奪われた状態で引退するケースが多いと思われるのでインフレ傾向にあると思われますが。無論、対局が強い対局者同士/弱い対局者同士に偏っていたり、棋士によって対局の頻度が違ったり、更新の度合いが状況の変化に追いつかないとレーティングは実態から乖離しますし、そもそも棋力は1次元に射影できるものでもありませんが…。
…さておき、上の表をみると、佐藤和俊七段が渡辺明三冠に勝利する確率(またはその逆)が、12月20日の対局の結果を受けて 13.68% から 15.70% に更新されていますが、まるでベイズ推測のようではないですか? であれば、更新の度合い K とは、ベイズ逆温度 \beta に相当するのではないでしょうか??

f:id:cookie-box:20190101160814p:plain:w60

…まぎれもなく12月20日の対局の結果を受けて更新されてはいるよね。ただそれがベイズ的かどうかは、ベイズ推定の枠組みにはまるかどうかという気がするけど…「佐藤和俊七段が渡辺明三冠に勝つか負けるか」の確率モデルはベルヌーイ分布だよね。なら共役事前分布はベータ分布  {\rm Beta}(a, b) になる。以下の日記でやったコイン投げの例だね。

 \varphi(w) = {\rm Beta}(a, b) とすれば、まだデータを1つも観測していないときは  p^{\ast}( {\rm head} ) = a/ (a + b)p^{\ast}( {\rm tail} ) = b/ (a + b) だね。「表(勝ち)」のデータを1つ観測したときは以下のように更新される。
  •  Z_1(\beta) = \int_{0}^{1} w^{a - 1 + \beta} (1-w)^{b - 1} dw = \Gamma(a + \beta) \Gamma(b) / \Gamma(a + b + \beta)
  •  p(w|X^1) = \bigl\{ \Gamma(a + b + \beta) / \Gamma(a + \beta) \Gamma(b) \bigr\} w^{a - 1 + \beta} (1-w)^{b - 1}
  •  p^{\ast}( {\rm head} ) = \bigl\{ \Gamma(a + b + \beta) / \Gamma(a + \beta) \Gamma(b) \bigr\} \cdot \int_{0}^{1} w^{a - 1 + \beta + 1} (1-w)^{b - 1} dw = (a + \beta) / (a + b + \beta)
  •  p^{\ast}( {\rm tail} ) = \bigl\{ \Gamma(a + b + \beta) / \Gamma(a + \beta) \Gamma(b) \bigr\} \cdot \int_{0}^{1} w^{a - 1 + \beta} (1-w)^{b - 1 + 1} dw = b/ (a + b + \beta)
 \varphi(w) = {\rm Beta}(a, b) を事前分布にしてベイズ推測するのは、予め「表(勝ち)」を a 回、「裏(負け)」を b 回観測しておいたと考えて、観測したデータを \beta 倍に「水増し」して最尤推定した結果と同じになるね。…それで、上の結果をイロレーティングと対比するとこうかな(ここで、本質的でない係数や対数の底を適当に変換したよ)。
ベルヌーイ分布のベイズ推測イロレーティング
対局前の勝利確率\displaystyle \frac{a}{a + b}\displaystyle \frac{1}{\exp \bigl( R_W - R_S \bigr) + 1}
対局後の勝利確率\displaystyle \frac{a + \beta}{a + b + \beta}\displaystyle \frac{1}{\exp \left( R_W - R_S - \frac{2K}{\exp(R_S - R_W) + 1} \right) + 1}
ちょっとみづらいから  r_{W} := \exp(R_W) r_{S} := \exp(R_S) とおくか。ウィキペディアイロレーティングの記事をみるとわかるけど、レーティングのエクスポネンシャルは意味としては平均的なプレイヤーに対するオッズ(勝つ確率/負ける確率)だね。どちらかというと、オッズの対数がレーティングなんだけど。
ベルヌーイ分布のベイズ推測イロレーティング
対局前の勝利確率\displaystyle \frac{a}{a + b}\displaystyle \frac{r_S}{ r_S + r_W}
対局後の勝利確率\displaystyle \frac{a + \beta}{a + b + \beta}\displaystyle \frac{r_S}{r_S + \exp \left( - \frac{2 K r_W}{r_S + r_W} \right) r_W}
\displaystyle = \frac{r_S \exp \left( \frac{2 K r_W}{r_S + r_W} \right) }{r_S \exp \left( \frac{2 K r_W}{r_S + r_W} \right) + r_W}
\displaystyle = \frac{r_S + r_S \left[ \exp \left( \frac{2 K r_W}{r_S + r_W} \right) -1 \right] }{r_S + r_W + r_S \left[ \exp \left( \frac{2 K r_W}{r_S + r_W} \right) -1 \right]}
無理やり形を合わせにいってみた…変なことをしていない自信はない…。上の式変形を認めるなら、ベイズ推測とイロレーティングの対応は以下だな。
ベルヌーイ分布のベイズ推測
における各パラメータの役割
イロレーティングをベイズ更新と
解釈すると対応するもの
事前分布  {\rm Beta}(a, b)a予め相手に a 回勝っていたと考える自分の平均的プレイヤーへのオッズ r_S
事前分布  {\rm Beta}(a, b)b予め相手に b 回負けていたと考える相手の平均的プレイヤーへのオッズ r_W
ベイズ逆温度  \beta対局結果を \beta 倍に水増しする \displaystyle r_S \left[ \exp \left( \frac{2 K r_W}{r_S + r_W} \right) -1 \right]
K は予め適当に決めた定数
r_W/(r_S + r_W) は事前の負け確率
だから「更新の度合い Kベイズ逆温度 \beta に相当するのか」という問いへの答えは、ぴったり対応はしていない。でも、以下の極限での挙動は一致している。
  •  \beta \to 0 K \to 0 も、対局結果を全く取り入れないことに相当する。
  •  \beta \to +\infty K \to +\infty も、対局結果にしたがい勝った方の勝率を 1 にすることに相当する。
イロレーティングにおいてベイズ逆温度 \beta に相当するもの  \displaystyle r_S \left[ \exp \left( \frac{2 K r_W}{r_S + r_W} \right) -1 \right] は、更新の度合い K の他に自分のオッズ r_S と事前の負け確率 r_W/(r_S + r_W) が入っているね。
  • 自分のオッズ r_S が大きいほどそれに比例して対局結果を水増しする。
  • 更新の度合い K が大きいほど指数関数的に対局結果を水増しする。
  • (勝ったとき)事前の負け確率 r_W/(r_S + r_W) が大きいほど指数関数的に対局結果を水増しする。

f:id:cookie-box:20190101155733p:plain:w60

ん? K や事前の負け確率が大きいほどレーティングが大きく変動するのはわかります。そのような定義式ですし。でも、自分のオッズ r_S が大きいほどレーティングは大きく変化するということはありませんよ? レーティング変化は水準によらず、 K に事前の負け確率をかけた数値です。

f:id:cookie-box:20190101160814p:plain:w60

レーティングはね。でもレーティングと勝利確率は違うよ。例えば冒頭の対局結果は両対局者のレーティングが 400 ずつ低かったとしても対局前後の勝利確率は同じになるけど(勝利確率はレーティング差にしか依存しないからね)、レーティングが低い(オッズが小さい)のに同じだけの勝利確率の変化をさせたかったら、対局結果をオッズをかけて取り込まないといけないって感じかな。ただそもそも上の定義だと「予め相手に a 回勝っていたと考える」の a が自分のオッズだから自分のオッズが大きいほど強い事前信念をもっている感じになっちゃうんだよね…全体を自分のオッズで割ってからベイズ推測とイロレーティングを対応させた方がよかったかな…。

ベルヌーイ分布のベイズ推測イロレーティング
対局前の勝利確率\displaystyle \frac{a}{a + b}\displaystyle \frac{1}{ 1 + \frac{r_W}{r_S}}
対局後の勝利確率\displaystyle \frac{a + \beta}{a + b + \beta}\displaystyle \frac{1}{1 + \exp \left( - \frac{2 K r_W}{r_S + r_W} \right) \frac{r_W}{r_S}}
\displaystyle = \frac{\exp \left( \frac{2 K r_W}{r_S + r_W} \right) }{\exp \left( \frac{2 K r_W}{r_S + r_W} \right) + \frac{r_W}{r_S}}
\displaystyle = \frac{1 + \left[ \exp \left( \frac{2 K r_W}{r_S + r_W} \right) -1 \right] }{1 + \frac{r_W}{r_S} + \left[ \exp \left( \frac{2 K r_W}{r_S + r_W} \right) -1 \right]}

つづかない