【統計】「どっちが面白い?」の主観評価を客観スコアに変える技術(Bradley-Terryモデル)
私たちの研究室
アドベントカレンダー20日目
背景
コンテストの審査で、「AとB、どっちが優れているか?」という一対比較(Paired Comparison)のデータ扱うことがあります。これらを集計してランキングを作る際、単なる「勝ち数」ではなく、統計的に妥当なスコアを算出できるのがBradley-Terryモデルです。
今回は、このモデルの数理的な仕組みと、そのパラメータを推定するための最尤推定法について解説します。
1. モデルの定義:強さをどう定義するか
Bradley-Terryモデルでは、比較対象(プレイヤーや作品)
このとき、プレイヤー
この数式は、以下の特徴を持ちます。
- 実力差が勝率になる: 勝敗は、2者のスコアの差
だけで決まります。\theta_i - \theta_j - 差が0なら五分五分: 実力が同じ(
)なら、分母が\theta_i = \theta_j となり、確率は1+1=2 (50%)になります。0.5 - 差が開くと確率は1または0に近づく: 実力差が大きくなると、勝率は限りなく100%に近づきます。
つまり、Bradley-Terryモデルとは「勝敗データを使って、この未知のパラメータ (実力スコア)を逆算する問題」と言い換えることができます。\theta
2. 推定の仕組み:最尤推定法 (MLE)
では、手元にある勝敗データ(結果)から、どうやって
これは「手元のデータが観測される確率(尤度)が最大になるような
尤度関数(Likelihood Function)の構築
例えば、以下のようなデータが得られたとします。
•
•
この全事象が同時に起こる確率(尤度
しかし、確率(0〜1の値)を何百回も掛け算すると、値が小さくなりすぎてコンピュータが計算できません(アンダーフロー)。そこで、両辺の対数を取って「掛け算」を「足し算」に変換します。これが対数尤度関数(Log-Likelihood Function)です。
最適化問題への帰着
この
具体的には、数理最適化アルゴリズム(BFGS法など)を用いて、この関数を最大化する
「今のスコア設定だと、この試合結果になる確率は低いな…じゃあスコアを修正しよう」という試行錯誤を、微分を使って高速に行うイメージです。
3. 実践上の課題:全勝・全敗問題と正則化
理論上は上記の最尤推定で解けますが、現実のデータ(特にデータ数が少ない場合)では問題が起きます。
例えば、「5戦全勝」のプレイヤーがいた場合、モデルは「この人は負ける確率が0だ」と判断し、スコア
これを防ぐために、実装時には正則化項(Regularization Term)を加えます。
後ろの
まとめ
• Bradley-Terryモデル: スコア差から勝率を算出する数理モデル。
• 最尤推定法: 「現実の勝敗データ」が最も起こりうるようなスコアを逆算する手法。
• 正則化: データが極端な場合(全勝など)に計算が破綻しないようにする現実的な工夫。
この一連の処理を経ることで、コンテストのような「まばらで主観的な比較データ」からも、客観的なランキングを作り出すことが可能になります。
Discussion