Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Engineering for a Science-Centric Experimentation Platform #10

Closed
shyaginuma opened this issue Sep 6, 2020 · 0 comments
Closed

Engineering for a Science-Centric Experimentation Platform #10

shyaginuma opened this issue Sep 6, 2020 · 0 comments

Comments

@shyaginuma
Copy link
Owner

shyaginuma commented Sep 6, 2020

Meta

どんなもの?(著者は何をやりたかったの?)

  • NetflixのExperimentation PlatformのSoftware Architectureについての論文
  • 次の要件を満たすように設計されている
    • Scalable:グローバルスケールのデータ規模にも耐えうること
    • Performant:実験結果が数秒や数分以内に計算できること
    • Cost efficient:ストレージや計算コストをできるだけ抑えること
    • Trustworthy:再現可能な結果を計算すること、計算が正しいこと
    • Usable:初見でも簡単に使うことができること
    • Extensible:Data Scientistが拡張可能なこと

先行研究と比べてどこがすごい?

  • Engineering for a Science-Centric Experimentation Platform というタイトルの通り、Science部分はData Scientistが拡張できるようにmetrics, causal modelsに統一的、直感的なインターフェースを提供し、EngineeringとData Scienceの共存を達成できていること
  • Science部分をData Scientistに任せることでエンジニアはパフォーマンスの部分に集中することができている

技術、手法のキモはどこ?

大きくPerformant, Extensibleがコアだと感じた

Performant

  • Pre-compute vs Live-compute.
    • よく使われる切り口でのブレークダウンは事前に計算しておく
      • userの国、OSなど
    • それ以外の切り口でのブレークダウンはadhocに計算する
  • Data compression
    • 正規分布を仮定する場合、ローデータを全て保持するのではなく、平均と分散のみ保持するなど
  • その他、自分の知識では字面を追うことしかできなかったが様々なEngineering的な工夫が施されていると感じた

Extensible

  • Metrics Repo
    • 下のようなクラスを書くとクエリを自動で生成してくれる
    • メトリクス定義の一元的管理が可能になる

  • Causal Models
    • In-houseなPythonのライブラリ
    • Metrics Repoからデータを受け取り、サマリ的統計量やATEを返す
    • 入力と持つべきメソッドを抽象化してある(scikit-learnのような感じ)
      • 入力:
        • y: The metric that needs to be measured
        • X: A binary variable indicating whether a user received treatment
        • W: Other features that are useful for modeling the variation in y
        • t: A variable for indexing time
        • θ: Hyperparameters for a model
      • 持つべきメソッド
        • train: モデルのトレーニング
        • predict: 介入がされた時とされなかった時のアウトプットの予測

どうやって有効だと検証した?

  • どのくらいのメトリクスが新規に作成されたか
  • 何人のDSがCausal Modelsにコントリビュートしたか

議論はある?

Next frontiersとして三点挙げられている

  • Feature-based analyses
  • Automation
  • Adaptive experiments

中でも Adaptive experiments がとても興味深い

  • テストを走らせている中で自動で意思決定してくれる仕組み
    • 悪い効果があった時に自動でテストを停止してくれる
    • 多腕バンディッドを用いて良いvariantのweightを調整することでビジネス的な機会損失を最小化する

次に読むべき論文はなに?

  • 参考文献の文献には一旦一通り目を通す
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant