Upgrade to Pro — share decks privately, control downloads, hide ads and more …

191016_KDD2019_Reading

okiyuki
October 16, 2019

 191016_KDD2019_Reading

KDD2019論文読み会で発表した「 A/Bテスト周辺と
Diagnosing Sample Ratio Mismatch in Online Controlled Experiments
」のスライドです

okiyuki

October 16, 2019
Tweet

More Decks by okiyuki

Other Decks in Science

Transcript

  1. A/Bテスト周辺と
 Diagnosing Sample Ratio Mismatch in Online Controlled Experiments
 2019-10-16

    / KDD2019 読み会 
 紹介者:LINE Data Labs - Motoyuki OKI

  2. だれよ?
 • 大木基至 (@okiyuki99)
 • 博士(工学)
 • LINE Data Labs

    (2019/01 -)
 ◦ LINE(Messenger)を担当 
 • 趣味
 ◦ ボードゲーム制作
 ◦ 息子と遊ぶ
 
 2 (宣伝1)ピクテル

  3. A/Bテストを1枚で
 3 KDD2019 Tutorial Challenges, Best Practices and Pitfalls in

    Evaluating Results of Online Controlled Experiments - p.13 

  4. KDD2019 - A/Bテストに関する論文など
 • Tutorial : Challenge, Best Practices and

    Pitfalls in Evaluating Results of Online Controlled Experiments
 • Tutorial : Fundamentals of large-scale sequential experimentation
 • Shrinkage Estimators in Online Experiments 
 • The Identification and Estimation of Direct and Indirect Effects in A/B Tests through Causal Mediation Analysis
 • Diagnosing Sample Ratio Mismatch in Online Controlled Experiments
 5
 *オレンジを1スライド / 青をメインで紹介

  5. Tutorial : Challenge, Best Practices and Pitfalls in Evaluating Results

    of Online Controlled Experiments
 参考 : A/Bテストのベストプラクティスと落とし穴 ~KDD2019 レポート~ - Gunosyデータ分析ブログ
 6 • なぜA/Bテストは必要?
 • A/Bテストを実施時に活用で きるフォーマット
 実践的なA/Bテストのノウハウが 公開されています
 GunosyのBlog を
 要チェック!

  6. The Identification and Estimation of Direct and Indirect Effects in

    A/B Tests through Causal Mediation Analysis (Etsy, Inc.)
 Treatment Effect = Indirect Effect + Direct Effect で分解して、New Featureに よる効果を知りたい
 7 T Y :Treatment(Recommend Moduleがある)かどう か(0 or 1)
 事例:Recommend ModuleのA/Bテストで有 意差が検出されなかった
 M Direct Effect
 :アウトカム(CV)
 :Organic Searchのクリック数
 ユーザiのTreatment Effect 
 = + Indirect Effect = 
 Direct Effect = 
 Recommend Moduleの効果 を確認
 Indirect Effect
 Baron-Kenny法の発展 - 一般化回帰モデル 
 Treatment ではないなら Treatment であるなら
  7. Sample Ratio Mismatch
 サンプルちゃんとランダムに割付できてますか?
 Control(C) : Treatment(T) = 50 :

    50 で割当した
 しかし、実際集まったのは、50.2 : 49.8 の割合になっていた
 
 9 49.8%
 50.2%

  8. Tが少ないから問題になるの?
 10 シミュレーション1
 C : 1000人 (= 250 * 4

    levels)
 T : 1000人 (= 250 * 4 levels)
 
 
 ライト ~ ヘビーの4 Level
 +2.041
 どんなユーザにも魅力的な機 能で + 2 の効果
 Sample Ratio Mismatch

  9. 11 シミュレーション2
 C : 1000人 (= 250 * 4 levels)


    T : 800人 (= 200 * 4 levels)
 
 +1.965
 Tが少ないから問題になるの?
 ライト ~ ヘビーの4 Level
 どんなユーザにも魅力的な機 能で + 2 の効果
 Sample Ratio Mismatch

  10. 12 シミュレーション3
 C : 1000人 (= 250 * 4 levels)


    T : 800人 
 (= 50 * 1 level + 250 * 3 levels)
 
 +2.411 !
 Tが少ないから問題になるの?
 ライト ~ ヘビーの4 Level
 どんなユーザにも魅力的な機 能で + 2 の効果
 Sample Ratio Mismatch

  11. A/Bテストの4STEP
 (1) 実験の割当 
 • ユーザを2つの実験グループ(C or T)に割り当てる
 (2) 実験の実行


    • テストのためのコンテンツを配信し、実験に参加できる状態にする
 (3) ログの処理
 • ユーザの行動ログ等のデータが収集・処理され、集約する
 (4) 分析
 • 集約したデータを分析する
 
 17 つまり、これらの各ステップに対応
  12. その1 : Experiment Assign SRM
 
 19 A/Bテスト概要
 msn.com のA/Bテストの前に、A/Aテス

    トを実施。その中で検知された。なぜ?
 原因
 テスト割当サーバーのバグ。ユーザをラ ンダムに格納されてるバケットの数がC だけ0.1%少なかった
 つまり、C:T = 49.9 : 50
 キーメッセージ 
 テスト割当サーバは、
 (1) 50:50の比率でユーザを割り当てる
 (2) 同じA/Bテストでユーザは常に同じGroupを割り当てる(途中でCからTはだめ)
 (3) 複数A/Bテストが同時にあるとき互いに関連のないテストにのみ割当
 *ランダム割当でそれが守られてないなら、実験が開始されないように制御するべき

  13. その2 : Experiment Execution SRM
 
 キーメッセージ
 • 実験対象になるときの定義(何が起こったらTになるのか)を確認
 •

    ただのロギングにも警戒
 ◦ New Featureによりログが追加される場合、その分だけStepが増えるためユーザが離脱する可 能性は高まる
 ◦ 速度等の性能が悪いと、ロギングの前にユーザが離脱し正しいログが欠損し得る 
 20 A/Bテスト概要
 Skypeの改善に関するテスト。 TはMLを使ってパラ メータをオンライン更新し、通話品質を高める。しか し、全く反対の結果(音声の歪みや遅延が増加)が 示され、さらにセッション数(コール数)がControlと 比べて30%も少なかった。なぜ? 
 原因
 通話セッションの途中で実験のための設定が非 同期にリフレッシュされ、バグにより Tセッション終 了後にCのログに変更された

  14. その3 : Experiment Log Processing SRM
 
 21 A/Bテスト概要
 MSNのカルーセルを12→16枚に変更す

    るテスト。多くのカルーセルを見たほう が、クリック数とTのユーザ数も減少。な ぜ?
 原因
 データ処理の中の別のアルゴリズムの せいで、Tのユーザの一部がbotと分類 され分析対象外になっていた
 
 キーメッセージ • データ収集のところのSRMを避けるのが難しい(分析者が気づけない)。システムアー キテクチャに依存する • ログ処理の各要素で除かれてしまったユーザ数もモニタリング
  15. その4 : Experiment Analysis SRM
 
 22 A/Bテスト概要
 あるプロダクトのページXに初めて訪れ たユーザに見せる特別ページYをTの

    ユーザでは省略するテスト。ページYを 見た(Tはしたと想定される)ユーザに絞 り分析したところ、Tのユーザ数が多かっ た。なぜ?
 原因
 ページYのロード時間が長かったことに より、Cでは離脱してるユーザが増えて しまった
 
 キーメッセージ
 • ユーザを絞る前でSRMが起こってないなら、絞る条件を疑う
 • 絞る条件が厳しいほどバイアスが発生しがち。条件を緩めて分析したほうが吉
 ◦ 例 : あるアクションXをした < アクションXができるページを見た

  16. その5 : Experiment Interference SRM
 
 23 A/Bテスト概要
 MS Storeのページデザイン変更のテス

    ト。Cのユーザが増加。なぜ?
 原因
 検索エンジンのキャンペーン?により、予 期しないURLに強制的にリダイレクトされ てしまった
 キーメッセージ
 • 影響を受けなかったユーザで分析(しかし、多くの場合テストの再実施が必要)
 • テストユーザが見るはずだった画面が変更されてないかモニタリング

  17. まとめ:SRM原因調査の10のルール 24 1. 分析時のユーザの絞り方を調べよう 
 2. あるユーザセグメントだけに起こってないか 
 3. ある時間セグメントだけに起こってないか

    
 4. ログのパフォーマンスメトリクスも確認 
 5. Engagement高い場合は、Engagementが低い ユーザを調べよう(逆も) 
 6. SRMが複数発生してるなら割当システムを疑う 
 7. A/Aテストで発生してるなら割当システムを疑う 
 8. TとCのサンプル比率が大きく異なるなら、ログ処理 時にユーザが除外されている可能性を疑う 
 9. データ収集から集約までのパイプラインを確認 
 10.パイプラインが複数あるなら比較しよう