$30 off During Our Annual Pro Sale. View Details »

Numerai はいいぞ / An encouragement of Numerai

Kon
May 25, 2021

Numerai はいいぞ / An encouragement of Numerai

Kon

May 25, 2021
Tweet

More Decks by Kon

Other Decks in Science

Transcript

  1. Numerai はいいぞ
    社内勉強会
    May 25, 2021

    View Slide

  2. Yu Ohori (a.k.a. Kon)
    NS Solutions Corporation (Apr 2017 - )
    ● Researcher
    ● Data Science & Infrastructure Technologies
    ● System Research & Development Center
    ● Technology Bureau
    @Y_oHr_N
    @Y-oHr-N
    #SemiSupervisedLearning #AnomalyDetection #DataOps

    View Slide

  3. Outline
    Numerai を知らない,Numerai に参加したことがない方に向けた内容です.解法の話は一切しません
    ● Numerai
    ● Numerai tournament
    ○ data
    ○ modeling
    ○ diagnostics
    ○ scoring
    ○ payouts
    ○ results
    ○ remarks
    ● Q&A
    3

    View Slide

  4. Numerai
    2015 年 10 月に設立されたクラウドソーシングヘッジファンド
    ● 多数の分析者が作成したモデルの予測結果に基づいて資金を運用
    2 種類のコンペティションを週次開催
    ● Numerai tournament
    ○ 所与の金融データを使用して株式市場の動向を予測
    ● Numerai signals
    ○ 自身で収集した金融データを使用して独自の投資指標を作成
    4

    View Slide

  5. Numerai tournament - data
    id era
    data_t
    ype
    featur
    e_intel
    ligence
    1
    featur
    e_intel
    ligence
    2
    ...
    featur
    e_wisd
    om45
    featur
    e_wisd
    om46
    target
    n0003
    15175
    b6797
    7
    era1 train 0 0.5 ... 0.5 0.75 0.75
    n0014
    af834a
    96cdd
    era1 train 0 0 ... 0.25 1 0.25
    ... ... ... ... ... ... ... ... ...
    n009aa
    2d323
    89eca
    era120 train 0.25 1 ... 0.5 0.25 0
    匿名化された金融データを使用
    ● id
    ○ 日時と銘柄名の組を表す識別子(推定)
    ● era
    ○ ひと月に相当する期間
    ● data_type
    ○ train: 訓練データ
    ○ validation: 参加者のための検証データ
    ○ test: Numerai のための検証データ
    ○ live : テストデータ
    ● feature_{group}{i}
    ○ 6 つの集合からなる 310 つの特徴
    ○ {0, 0.25, 0.5, 0.75, 1}
    ● target
    ○ {0, 0.25, 0.5, 0.75, 1}
    5

    View Slide

  6. 2020 年 4 月から以下のようにデータの仕様が変更
    ● valid1 が容易に予測できたため,元々の test から valid2 を新たに用意
    ● 過去のデータとの整合性を保つため,test1, test2 に重複行が発生
    Numerai tournament - data
    train (501k rows)
    era1 ~ era120
    valid1 (56k rows)
    era121 ~ era132
    valid2 (81k rows)
    era197 ~ era212
    test1 (1407k rows)
    era575 ~ era852
    test2
    era927 ~ era???
    live
    eraX
    numerai_tournament_data.csv
    numerai_training_data.csv
    不変 ラウンド毎に変化
    時刻
    6
    Validation 2 Announcement - Announcements - Numerai Forum

    View Slide

  7. Numerai tournament - modeling
    7
    example モデルとして XGBoost を利用したコードを公開

    View Slide

  8. Numerai tournament - diagnostics
    検証データ(valid1, valid2)を用いてモデルの予測性能を評価
    ● Validation Sharpe: corr のシャープレシオ(Validation Corr / Validation SD)
    ● Validation Corr: target との era 別 corr の平均値
    ● Validation FNC: 全特徴に対して直行化した後の target との era 別 corr の平均値
    ● Validation SD: target との era 別 corr の標準偏差
    ● Feature Exposure: 各特徴との era 別 corr の平均値の最大値

    ○ 特定の特徴に予測結果が大きく依存しているかどうか

    ● Max Drawdown: target との era 別 corr + 1 の累積積の最大値
    ○ 特定の期間に予測性能が急激に悪化するかどうか
    ● Corr + MMC Sharpe: corr + mmc のシャープレシオ
    ● MMC Mean: era 別 mmc の平均値
    ● Corr With Example Preds: example モデルの予測結果との era 別 corr の平均値
    8

    View Slide

  9. Numerai tournament - diagnostics
    Numerai は参加者が提出した全予測結果を掛金で加重平均してメタモデルを作成
    ● メタモデルの予測性能を最大化するため,それに大きく貢献する独自的な予測結果を高く評価
    2020 年 5 月から Meta Model Contribution (MMC) による評価を採用
    ● メタモデルの予測結果に対して直行化した後の target との era 別共分散の平均値 / 0.0841
    ○ 検証時,メタモデルの予測結果は未知であるため,example モデルの予測結果を用いて計算
    ● 自身のそれと似たような予測結果が沢山ある(メタモデルとの差異が少ない)と値が悪化
    ○ private sharing の防止に寄与
    9
    MMC2 Announcement - Data Science - Numerai Forum

    View Slide

  10. 予測結果を N 次元のベクトルと考えたとき,corr と mmc は以下のように表すことができる
    ● corr = cos θ
    ● mmc = (target と neutralized user の内積) / 0.0841
    Numerai tournament - diagnostics
    10
    meta model
    user
    neutralized user
    target
    θ

    View Slide

  11. Numerai tournament - scoring
    Sun Mon Tue Wed Thu Fri Sat
    1 2 3 4 5 6 7
    Round N open
    18:00 UTC
    8 9
    Submission deadline in round
    N
    14:30 UTC
    10 11 12
    1st daily score in round N
    20:00 UTC
    13 14
    Round N+1 open
    18:00 UTC
    15 16 17 18 19 20 21
    Round N+2 open
    18:00 UTC
    22 23 24 25 26 27 28
    Round N+3 open
    18:00 UTC
    29 30 31 1 2 3 4
    Round N+4 open
    18:00 UTC
    5 6 7 8
    Final score in round N
    20:00 UTC
    9 10 11
    Round N+5 open
    18:00 UTC
    11
    提出された予測結果を 4 週間に渡って評価

    View Slide

  12. Numerai tournament - payouts
    参加者は Numerai が発行する仮想通貨 Numeraire (NMR) を掛金(>= 3 NMR)として予測結果の品質を担保
    ● 2021 年 4 月から掛金の下限が 3 NMR に変更
    ● 掛金の変更は 4 週間後に反映
    Numerai は予測結果の出来に応じて報酬を付与,または,掛金の一部を没収
    ● 4 週間前のラウンドの結果に基づいて掛金を毎週更新
    12
    Announcing new NMR staking minimum - Announcements - Numerai Forum

    View Slide

  13. Numerai tournament - payouts
    2021 年 3 月から以下の式で報酬額(没収額)を計算
    ● payout = stake_value * payout_factor * clip(corr + mmc * mmc_multiplier, -0.25, 0.25)
    ○ stake_value: 掛金
    ○ payout_factor ∈ [0, 1]: 指数的に増加する報酬を制御するために設けられた係数
    ○ mmc_multiplier ∈ {0, 0.5, 1, 2}: 参加者が設定できる係数
    13
    Announcing new payouts system mini-release - Announcements - Numerai Forum

    View Slide

  14. Numerai tournament - payouts
    14
    上位者の年利は 300 % 超

    View Slide

  15. Numerai tournament - results
    15
    Numeraire price today, NMR live marketcap, chart, and info | CoinMarketCap
    4/12 から 52,800 JPY を原資に参加
    出金・取引手数料を差引後,5.27 NMR に換金

    View Slide

  16. Numerai tournament - results
    16
    INTEGRATION_TEST
    Numerai が提供する example モデル
    NEUTRALIZE
    筆者が作成したモデル
    ラウンド 259, 260 共に example モデルに敗北…

    View Slide

  17. Numerai tournament - remarks
    17
    Kaggle に比べて人口が少ない,かつ,notebook も頻繁に公開されていないため,情報を収集しづらい
    ● 1 ヶ月やそこらで好成績を出すことは難しい
    データの変化に動じない安定したモデルが求められる
    ● 時系列データであるため,検証を念入りに行う必要がある
    ● リスクに関する評価指標も注視しなければならない
    まずは example モデルに賭けるべし
    ● example モデルに賭けても十分に稼ぐことができる
    ● 十分に検証できないまま自分のモデルに賭けると損する可能性が大いにある
    長い間モデルを自分で運用するので MLOps の勘所を自然と掴むことができる

    View Slide

  18. Q&A
    Numerai の CEO と CTO が YouTube で以下の質問について回答
    ● 参加者が増えると一人当たりの報酬は減るか?
    ○ 短期的に報酬は減るが,NMR の価値も上昇するので,中長期的に見れば皆が儲かる
    ● 価格変動の激しい NMR の代わりとしてステーブルコインによる報酬を考えているか?
    ○ 報酬総額の上限である 500 万 NMR を使い切らない限り,考えていない
    ● 今後,報酬総額の上限を引き下げることを考えているか?
    ○ 2020 年 9 月時点で,Numerai は参加者に対して 1 日当たり 300 万 USD 支払っている
    ○ NMR を十分に保有しているので,むしろ上限を引き上げることも考えている
    ● 報酬総額が上限に達してしまったらどうするか?
    ○ Numerai はまだ小さいファンドであるため,自身の利益の一部を参加者に還元することができない
    ○ NMR を使用しているのは,利益を出す前に参加者に報酬を支払うことができるからである
    ○ いずれ還元する計画を考えているが,今はまだ話す段階ではない
    ● payout_factor が 0.1 に達してしまったらどうするか?
    ○ それまでに報酬体系は必ず刷新する
    ○ コンペティションをある程度難しくして報酬総額の上限を撤廃するのが理想である
    18

    View Slide

  19. Appendix - tools
    numerapi
    ● Numerai API の Python クライアント
    ● データのダウンロード,予測結果のアップロード,ユーザ情報の集計が可能
    ● Numerai tournament と Numerai signals の両方で動作
    numerai-cli
    ● 予測結果を自動でアップロードするワークフローを AWS 上に作成するツール
    ● 費用は 5 USD / 月未満
    Numerai Payouts
    ● 現在のスコアや損益を確認できるアプリケーション
    19

    View Slide

  20. Appendix - cryptocurrency exchange
    NMR は国内取引所で扱っていないため,以下の手順で Numerai に NMR を送金
    ● 出金や取引に多くの手数料が発生
    国内取引所
    e.g. bitFlyer
    国内銀行
    e.g. 楽天銀行
    海外取引所
    e.g. Binance
    Numerai
    1. JPY
    10. JPY
    3. BTC
    8. BTC
    5. NMR
    6. NMR
    2. JPY 2. BTC 4. BTC 4. NMR
    7. BTC 7. NMR
    9. BTC
    9. JPY
    20

    View Slide

  21. Appendix - cryptocurrency exchange
    取引所名
    JPY 出金手数料
    [JPY]
    BTC 出金手数料
    [BTC]
    NMR 出金手数料
    [NMR]
    取引手数料(Maker)
    [%]
    取引手数料(Taker)
    [%]
    bitFlyer
    220~770
    (出金先銀行,出金額に応じて)
    0.0004 NaN
    0.01~0.15
    (取引量に応じて)
    0.01~0.15
    (取引量に応じて)
    bitbank
    550~770
    (出金額に応じて)
    0.0006 NaN
    -0.02~0
    (通貨ペアに応じて)
    0~0.12
    (通貨ペアに応じて)
    Coincheck 407 0.001 NaN 0 0
    GMO コイン 0 0 NaN -0.01 0.05
    Binance NaN
    0.000006~0.00084
    (ネットワークに応じて)
    0.48
    0.012~0.1
    (取引量,残高,招待数に応じて)
    0.024~0.1
    (取引量,残高,招待数に応じて)
    21

    View Slide