メタモデルへの貢献(MMC)について

MMCを最大化するモチベーション

多くのNMRを受け取るためには、Corr(correlation)の高い予測モデルを作成し、提出する必要があります。 一方、Numeraiは参加者から提出された予測ファイルを変換し、Numeraiがで使用できる形にします。 この時、Numeraiは全参加者の予測値を各参加者のNMRステーク量でアンサンブルしたモデル(メタモデル)を使用します。 NumeraiはメタモデルのCorrを高めることを目標としています。そのため、Numeraiはmmcという指標を用いて参加者に報酬/罰金を与える仕組みを作りました。 Corrが個人のパフォーマンスに報酬を与えるのに対し、mmcはメタモデルのcorrelationやグループパフォーマンスへの貢献に報酬を与えます。

Tournament参加者の大多数はexample_model.pyと似たようなモデルです。他の人と異なる独自のモデルを作れば高いMMCを得られます。

2019年には、Integration_test のようなツリーベースのモデルがよいパフォーマンスを出しており、非常に人気があります。 一方、Corrを最大化しつつ、mmcを最大化したい場合、どのようにモデル設計をすればよいでしょう? 他の人が考えないような方法で予測ファイルを提出すればmmcを高められると思います。 試行錯誤しましょう!

mmcの計算方法

特定のラウンドのユーザ(以下Uとする)のmmc は、以下の手順で計算されます。

  • NMRをステークしているユーザーの67%をランダムに選択します。(選択されるユーザーは入れ替えられることがあります)

  • これらのユーザーのステークしているNMRの量を用い、加重した予測値を計算します。

  • 加重した予測値とUのモデルの両方を一様分布に変換します。

  • 上記の予測値とUのモデルを中和します。中和とは、加重した予測値とUのモデルを線形回帰しその差分を計算することです。(参考)

  • Uのモデルとtarget の間の共分散を計算します。

  • この値を0.0841で割ったものがMMCのスコアです。 (このステップは、期待されるスコアを相関と同じ大きさにするためです)

  • この全体のプロセスを20回繰り返しすことでMMCの平均スコアが計算できます。

    MMCの図

本図はUKIさん作成したものを引用しています。

MMCのデザインについて

  • MMCのシステムが攻撃されないようにするには各参加者がステークしたNMRを加重する操作が必要です。

  • 冗長性を高めるために、毎回67%の参加者をランダムサンプリングします。もし、この操作がなかったら、自分と似たファイルを提出した人が多額のNMRをステークしていた場合、過剰なペナルティが課されてしまう可能性があります。

議論

より詳しいMMCの計算についてはこちら、MMCと収益性についてはこちら、MMCとオリジナリティの価値については、このMediumの記事をお読みください。