設計メモ

version: 20190825に関するメモ

・ポイント計算における変更点

当初はマイナーチェンジの予定でしたが、最終的には前回のバージョン(20190715)と比べて大きく変更される形になりました。ここでは、なぜこのような形になったか詳細に解説しようと思います。

・前バージョンの問題点

前計算手法では、標本平均の分散の差をなるべく小さくするため、加重平均に補正を加えて累計ポイントを算出していました。一方でこの補正項により、前計算手法では参加頻度が高いPlayerが高く評価されやすくなる傾向がありました(Fig. 1)。すなわち逆に、「参加数をできるだけ多く重ねることが、上位層に入るための実質的な必須条件になっていた」とも言えるでしょう。

一方で"334"は開催時間が早朝なこともあり、コンスタントに試合に参加できるPlayerは限られます。この結果、上位を狙うことができるPlayerがかなり限定される状況になっていました。また、そもそも"334"は基本的にはジャストタイムとの誤差を競う競技で、陸上競技がそうであるように、参加頻度よりも記録が重要視されるほうが妥当だと考えられます。

新しいバージョンの開発は、これらの問題を克服し、参加頻度の異なるより多くのPlayerが、できるだけ公平に上位陣のランキング争いに参加できるようにすることを目的に始められました。

Fig 1. 前バージョンにおける日付補正項の効果

上図) 加重平均が結果的に何倍に補正されるかの値を示したグラフ。数値実験を基に算出。網掛けは標準偏差を表す。

下図) 全試合出場するPlayerと比べたとき、実質的なビハインドの数値がどの程度発生するか示したグラフ。

例えば、2日に一回有効記録を出すPlayerは荷重平均が約0.6倍されており、全試合有効記録を出したPlayerと比しておよそ60~70[ms]分の遅れを加えてポイントが計算されていることを意味する。


・Simple is best.

さて、この問題に対処すべく、当初は前計算手法に上書きする形で補正項を加えた修正案をいくつか用意しました。しかしながら、開発途中で以下の二点の問題に直面しました。

まず一点目がパラメータ数の増大です。係数が増えることにより必然的にパラメータ数が増えるのですが、数が増えるほどその妥当性を評価することが難しくなりました。また一般に恣意性を排し公平さを追求するためにも、パラメータ数が少ないほうが望ましいと言えます。

二点目が計算手法のわかりやすさです。上記の修正案を実際にいくつか実装し、なかには尤もらしいポイントと順位が得られる手法はあったものの、工数が多くなり、結果として非直感的でわかりにくい計算方法になってしまいました。やはり参加者からの理解が得られやすい手法にすべきです。

そこで、前回までの手法から離れ、シンプルかつ直感的な手法を新たに開発することにしました。そして生まれたのが本計算手法です。本計算手法は複数のスポーツにおけるポイント計算法をブレンドする形で作られました。具体的にはゴルフのOWG Rankings (日付による減衰)、テニスのATP Rankings (上位記録のみを反映)、その他陸上競技自動車競技のランキングシステムを参考に作られています。


・運命は勇者に微笑む

このような経緯で生まれた計算手法ですが、以下の二点の特徴を持ちます。

まず一点目が、より大胆なPlayerにより高い評価を与える点です。上位10記録が累計ポイントに反映されるので、安定的に記録を残すPlayerよりも、好タイムを狙うPlayerのほうが高く評価されやすくなります。そして同時にこれは、よりシビアな結果を狙うインセンティブとなりうるでしょう。なぜならば、ポイントを増やすには過去の記録より良い記録を出してその記録を追い出す必要があるからです。

次に二点目が、悪い記録やフライング・不参加に対するペナルティが前バージョンよりかなり小さい点です。上位10記録が累計ポイントに反映されるということは逆に、失敗した記録は無視されることを意味します。また減衰係数が前バージョン(0.95のべき乗)よりかなり緩やかなため、フライングや不参加で数日間記録がなくても、ポイントが下がりにくくなっています (もちろん最後の参加から3ヶ月経てば0 ptにはなりますが)。

このように、新しい計算手法では、積極的なPlayerがより高く評価されます。また上位10記録に計算の対象を絞ることで、参加頻度の異なるより多くのPlayerが、比較的公平な基準の下、上位を目指しやすくなったといえるでしょう。


・パラメータの設定

最後にパラメータの設定に関して解説します。本手法における10, 30, 90という3つのパラメータ (i.e. 過去90日以内の記録のうち上位10記録の平均を取る。ただし30日以降は線形に減衰させる)はここ数ヶ月の参加者の参加頻度の分布を基にして決めました。10, 30という値は、3日に1回 (一週間に2回強)参加するPlayerが一定数存在しており、この参加頻度以上のPlayerに対して日付の減衰によるペナルティをほとんどなくす意図で設定されています。また90日間という値は、単純に3ヶ月でキリが良く、かつ累計ポイントを計算する上で丁度良い妥当な期間として設定されました。

・階級における変更点

・ 400 pt 区切り => 500 pt区切り

計算手法更新に伴い、ポイントの分布が裾野が広がる形で大きく変動しました。それに伴い500 pt区切りに変更しました。


・ 5,000 pt 以上 => S級

またS級の比率を調整するため、E・E+級を新たに追加して5000 pt以上をS級に設定しました。これでも前バージョンに比べて、S級到達へのハードルがかなり下がりましたが(※1)、S級か否かはPlayerの腕前を見極める一つの試金石として機能すると思われます。

また結果的に全体として整理されてわかりやすくなったと(個人的には)思います。将棋に例えるならば、さしずめ5,000 pt以下は級位(10級〜1級)、5,000 pt以上は段位(初段〜九段)、そして殿堂入りは名人位十段等のタイトルといった感じです。

※1 前バージョンのS級は8月時点で世界ランク上位30位くらいでしたが、新しいバージョンでは上位100位がS級になります。新しいバージョンではおよそS5級 (7,000 pt)以上で上位30位になります。


・殿堂入りの基準 => 9,500 pt

殿堂入りの基準を9,500 ptに設定したのですが、これは数値的にシミュレーションして検証した実験結果を基に決定されています。

そのシミュレーション結果によれば、人間の時間分解能の範囲内でも、根気よく参加し続けさえすれば、それなりの確率で到達できそうです(※2)。また開発者としても「到達する猛者が現れるのでは」と内心期待している基準です。

ただそれでも、前バージョンより少し緩いくらいのかなりハードな条件であることには変わらないので、しばらく様子を見て改めて修正するかもしれません (※3)。

いずれにせよこの基準への到達は、アンタッチャブルレコードを打ち立てることを意味し、そのPlayerは"334"の蘊奥(うんおう)を極めたといって差し支えないでしょう。

※2 実験の詳細情報は、とても長くなるのでここには載せませんが、もし興味があれば、直接開発者にDM等で聞くか、実際に調べてみてください。

※3 殿堂入りはいわば永世称号みたいなもので、他にも年間記録等もう少し到達がゆるい称号を追加する予定です。