適正CPIの精度を上げるために新しい推定方式を検討した話

こんにちは、りせ(@rice_Place)と申します。

IIDX SP☆12の難易度推定サイト、CPIの運営を行っています。

 先日CPIの登録ユーザー数が4000人を超えました。日頃のご愛顧に感謝いたします。今回の記事はCPIの難易度推定に大きく関わる話題です。

 

CPIにおける「適正CPI」

CPIで推定している様々な項目のうち、いわゆる譜面難易度に相当するものは「適正CPI」です。ここではクリア割合が50%であることを「適正」と呼んでいます。

 具体的に、Boomy and The Boost*1のHARD CLEARについて、プレイヤーのクリア状況をグラフにしてみます。

f:id:rice_Place:20220109085520p:plain

 総合CPIを20ごとに区切り、該当するプレイヤーのクリア割合を100%積み上げグラフで示しています。クリア割合が最も50%に近いのは、総合CPIが1610~1630のプレイヤーであることがわかります。つまり、適正CPIは1610~1630の範囲内にあることが推定されます。

 より正確な値を知りたいと思い、総合CPIを区切る幅を狭くしてみたらどうでしょう。CPI幅を5にしたグラフがこちらです。

f:id:rice_Place:20220109085951p:plain

 ご覧の通り、CPI幅20のグラフと比較して赤(ハード未達成)と青(ハード達成)の境界がギザギザしていることがわかります*2。これではクリア割合が50%に最も近いCPI帯がいくつか決めかねてしまいます。

 

これを解決するためには、全体の状況をいい感じに近似できるような式を探して、クリア割合が50%となるCPIの値を数値的に求めるのが良さそうです。

 そのためのモデル式として、CPIではロジスティック方程式を採用しています(詳細は後述)。

 先ほどのグラフに式を当てはめたものがこちらです。

f:id:rice_Place:20220109095138p:plain

 黄色いS字が当てはめた式の描く曲線です。赤と青の境界の中間あたりを良い感じに通過していることがわかります。これで適正CPIが1624.69とわかりました。

 

ここまでは現在の推定方式についての確認でした。少なくともBoomy and The Boostのハード難易度に関しては、推定された適正CPIが実際のクリア状況とよく対応していそうです。

 一方で、推定が上手く行くのは、「全体の状況をいい感じに説明できるよう」に探してきたロジスティック方程式が、実際のクリア状況を表すものとして適切な場合に限られます。

 

適正CPIは本当に適正か?

ロジスティック方程式による確率推定は、社会学・経済学・生物学・医学などなど幅広い分野で古くから使われているもので、近い所では発狂BMSの難易度推定でも使用されています。

 確率0%(事象が全く発生しない)から確率100%(事象が必ず発生する)にかけて、滑らかにS字を描くのが特徴であり、実社会に起こる出来事をモデル化するのに適していると言われています。

 一方でこのモデルにはいくつかの前提があり、例えば確率50%を境に対称であることは重要です。これはロジスティック方程式の描く曲線が点対称であるためです。

 弐寺においても、全てのプレイヤーがその時点で持てる全力でランプを点灯させようと努力したと仮定すれば、上記の仮定は成り立つと考えられます*3

 

しかしながら弐寺のクリア状況においては、譜面の難易度・個人差度および解禁の有無といった条件のために、必ずしも確率50%を境に対称とならない場面は存在します。

 具体例としてSinus Iridumのイージーのクリア状況を見てみます。

f:id:rice_Place:20220109111255p:plain

 説明のために先ほどまでとグラフの体裁を変えています。該当CPI帯におけるクリア割合は水色の縦棒が表し、該当CPI帯におけるプレイ人数は灰色の縦棒が表します*4

 グラフを見てみると、クリア割合が低いCPI帯と高いCPI帯のそれぞれで、実際のクリア状況よりも高めにクリア割合を推定しているようです。逆にクリア割合が50%に近いCPI帯では低めにクリア割合が推定されており、水色の縦棒がクリア割合50%(黒の横線)の高さに近くなるCPI帯よりも、推定される適正CPI(黒丸)は右の方に位置しています。つまり、クリア割合が50%となるような実際のクリア状況と比較して、適正CPIが高めに推定されているように見えます。

 同じような傾向の譜面をいくつか示します。

f:id:rice_Place:20220109140441p:plain

 

f:id:rice_Place:20220109123857p:plain

 

今度は同じSinusのハードを見てみます。

f:id:rice_Place:20220109115738p:plain

 イージーとは反対に、クリア割合が低い・高いCPI帯では実際より低めにクリア割合を推定しており、適正CPIも実際より低めに推定されているように見えます。

 こちらも同じような傾向の譜面をいくつか示します。

f:id:rice_Place:20220109123709p:plain

f:id:rice_Place:20220109140820p:plain

 

新しい多項式モデルの導入

ここまでのように、少なくとも一部の譜面のクリア状況は理想的なロジスティック曲線から乖離していることがわかりました。

 クリア確率の予測精度を上げるためだけであれば、総合CPIとは別の新たな特徴量を探すという手もありますが、その場合は(一次元の)難易度推定が出来なくなり、譜面同士の比較が難しくなってしまいます。

 上述のグラフを見ても総合CPIとクリア割合にある程度の相関があるのは確かなので、当てはめる曲線そのものの形を改良するのが良さそうです。

 具体的に、現行のロジスティック曲線は

\displaystyle{ \frac{1}{1+e^{-(a\times(CPI)+b)}} }

と表されますが、これを

\displaystyle{ \frac{1}{1+e^{-(a\times(CPI)^2+b\times(CPI)+c)}} }

と総合CPIの2次式にしてみます。イメージとしては、元々のロジスティック曲線が(クリア割合50%の部分で)曲線の動きを1回だけ変えることができるのに対して、2次式を導入すると曲線の動きを2回変えられるようになる、というところです。

 曲線の様子をグラフにしたものがこちらです。

f:id:rice_Place:20220109144926p:plain

 グラフのとおり、2次式を導入したことで「クリア割合が低い・高いCPI帯では高めにクリア割合を推定する」といったより複雑なクリア状況の再現ができるようになりました。

 同様に3次式のグラフも見てみます。

f:id:rice_Place:20220109151913p:plain

 曲線の動きを3回変えられるようになり、より複雑な曲線を描けるようになりました。

 このまま4次式、5次式、……と次数を上げていけば精度も上がって行きそうに見えますが、実際には不必要に複雑なモデルを選択すると手元のデータに過剰に当てはまってしまい、手元にないデータを予測する際の精度が低下することが知られています(no-free-lunch theorem)。

 前述のクリア状況のグラフのように、「低CPI帯ではクリア確率が上がり、中CPI帯では下がり、高CPI帯ではまた上がる」といったクリア状況は実際に存在するようなので、今回は上限を3次式までとすることにしました。

 

実際に先ほどピックアップした譜面で確かめてみます。

f:id:rice_Place:20220109154225p:plain

f:id:rice_Place:20220109154418p:plain

f:id:rice_Place:20220109154615p:plain

f:id:rice_Place:20220109154902p:plain

f:id:rice_Place:20220109154912p:plain

f:id:rice_Place:20220109154922p:plain

 1次元だけの時と比べて、より柔軟に当てはめられていることがわかります。それに従って適正CPIの推定値も変化しています。

難易度推定の対象となる全譜面・各クリアタイプについて、同様の推定を行いました。

f:id:rice_Place:20220109193050j:plain

適正CPIの変化量のヒストグラム
全体の93.5%は変化量が10以内だった。

 新方式で適正CPIが下がった譜面トップ20がこちらです。

f:id:rice_Place:20220109192023p:plain

 個人的な印象としては、それなりに対策が必要かつ難しそうな譜面が揃っており、何となく手を出しにくいラインナップに感じられます。

f:id:rice_Place:20220109193512p:plain

減少量が全体1位だったGo Beyond!!エクハのグラフ。
新方式では高CPI帯でのクリア割合が(現行と比べて)低く推定されている。

 反対に新方式で適正CPIが上がった譜面トップ20がこちらです。

f:id:rice_Place:20220109202117p:plain

 こちらは積極的に狙う人が多い超高難度の譜面が選ばれていそうですが、フルコンに関してはその限りでは無さそうです。フルコンはサンプル数の少なさや、クリアゲージに関わらずランプが点く仕様などから、他のクリアタイプと比較して著しく個人差が大きくなります。そのため(適正CPIと比べて)低CPI帯の挙動に大きく影響されると考えられ、より柔軟な曲線への当てはめの結果として適正CPIが上方に修正されたと考えられます。

f:id:rice_Place:20220109203258p:plain

f:id:rice_Place:20220109203310p:plain

 

「個人差度」の再定義

良いことづくめに見える新推定方式ですが、複雑な曲線を描けるようになった代償として、解釈がわかりにくくなったというデメリットがあります。

 以前こちらの記事で述べましたが、現行方式ではロジスティック曲線の「傾き」の逆数を「個人差度」と定義する*5ことで、純粋な難易度情報とは別に、いわゆる地力譜面(総合CPIとクリア確率の相関が強い)と個人差譜面(相関が弱い)の違いを知ることができました。いちいちグラフを参照しなくとも、2種類の数字だけでクリア状況の様子をうかがえるということです。

 

ところが2次式・3次式となると話はそう単純ではありません。曲線の動きが途中で複数回変化するために、単に曲線の「傾き」を見るだけでは、グラフの全体像を把握することができなくなります。

 具体的には、2次式を把握するためには3種類の数字が、3次式を把握するためには4種類の数字が必要となります。

 個人的には(少なくとも難易度表に表示させる分については)指標のさらなる複雑化は避けたいです。そのため、例えば適正CPIの他にクリア確率25%CPI・75%CPIを計算し、それぞれを信頼区間のような形で表示させるといった案を考えています。

f:id:rice_Place:20220110150745p:plain

適正CPIの「信頼区間」の表示案
上が現行方式(適正CPI±個人差度)、下が新方式

 

まとめ

・クリア状況の分布が対称とならない一部の譜面について、適正CPIの推定値と実測値にズレが生じることがある。

・難易度推定に使用する関数を工夫することで、一部の譜面では実際のクリア状況に近付けた推定を行えるようになった。

・関数が複雑化した反面、個人差度などの指標は解釈が従来どおりでなくなるため、新たな指標案を考える必要がある。

 

参考にしたサイト様

funyakofunyao.click多項式回帰のメリット・デメリットについてわかりやすく説明されています。

 

本記事についてのご意見・ご感想は、記事へのコメントあるいは冒頭のTwitterまでお願いします。


それでは、良き音ゲーライフを。

*1:ビートマニアで一番いい曲。データに基づかない意見です

*2:白く抜けている部分は該当するプレイヤーが存在しなかったCPI帯

*3:厳密にはプレイヤーの実力分布などに関しても前提条件があると思われます

*4:式の当てはまりをプレイヤー全体に最適化する過程で、CPI帯ごとのプレイ人数の多寡は重要となります

*5:正確には、前述の式

\displaystyle{ \frac{1}{1+e^{-(a\times(CPI)+b)}} }

における

\displaystyle{ \frac{1}{a} }

で表されます。