191016_KDD2019_Reading

417e0d13c3164093c65868c0281fe986?s=47 okiyuki
October 16, 2019

 191016_KDD2019_Reading

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

417e0d13c3164093c65868c0281fe986?s=128

okiyuki

October 16, 2019
Tweet

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. つまり、
 4
 「ユーザを評価したいプロダクトに正しく(*) 無作為に割り付けで きれば、アウトカム(評価したいメトリック)の差はNew Featureに よるもの」と結論付けれる
 プロダクト改善において、A/Bテストは強力な武器
 *SUTVA +

    Mean Exchangeability が成り立つ仮定のもとで
 

  5. 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スライド / 青をメインで紹介

  6. 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 を
 要チェック!

  7. 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 であるなら
  8. 紹介する論文
 • A/BテストにおけるSRMの原因総まとめ論文
 • MSとBooking.comとOutreach.io
 8 3社のコミュニティによ り形成されてる


  9. Sample Ratio Mismatch
 サンプルちゃんとランダムに割付できてますか?
 Control(C) : Treatment(T) = 50 :

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

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

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

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


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

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


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

  13. 13 つまり、
 • シミュレーション2のように異質なユーザが均等に減る分にはメ トリックによっては問題はない(気づかない)
 ◦ もちろん度数自体に興味のある場合を除いて
 • しかし、SRMの発生の多くはシミュレーション3のように均等で はない(

    = サンプリングバイアスの一種)
 
 Sample Ratio Mismatch

  14. 14 https://twitter.com/ronnyk/status/932798952679776256 SRMが発生したままだと、各種メトリッ クで有意な差を検出
 データをきれいにした後、各種メト リックはFlatに
 MicrosoftのKohavi氏のTweetより
 とあるA/Bテストで....


  15. SRMを検出するには?
 • 期待割当 = 50:50の割付になってるかを、カイ二乗検定で判定
 15

  16. SRM検出されたらどうしたらいいの?
 • なんで発生したかを明らかにするのはかなり難しい(らしい)
 ◦ MSでは、分析者が数日 ~ 数ヶ月かかることも...
 つまり、この論文の貢献は
 • 複数の実列を交えてSRMが発生したA/Bテストを紹介


    • SRMの発生原因を分類し、原因調査の勘所とそれらの防止策をまとめた
 16
  17. A/Bテストの4STEP
 (1) 実験の割当 
 • ユーザを2つの実験グループ(C or T)に割り当てる
 (2) 実験の実行


    • テストのためのコンテンツを配信し、実験に参加できる状態にする
 (3) ログの処理
 • ユーザの行動ログ等のデータが収集・処理され、集約する
 (4) 分析
 • 集約したデータを分析する
 
 17 つまり、これらの各ステップに対応
  18. SRMの調査
 • 論文の著者の過去のケースやA/Bテストを行っている分析者 のインタビューも含めた定量&定性調査
 ◦ 集めたA/Bテストの数は10,000個…!
 18 MSでのA/Bテストのうち 6% のテストでSRMを検出


    https://www.dropbox.com/s/h0291u1fcqg0eze/SRM%20Int erview%20Guide.pdf?dl=0. インタビュー内容(のキャプチャ) 

  19. その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テストが同時にあるとき互いに関連のないテストにのみ割当
 *ランダム割当でそれが守られてないなら、実験が開始されないように制御するべき

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

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

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

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

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

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

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

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

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

  25. 全体を振り返っての所感
 • KDDは毎年非常に実践的なA/Bテストの論文が多い
 • MS中心のコミュニティで規模と量が圧倒的
 • 不当なA/Bテスト(〇〇バイアス)の検知に関する研究が盛んで ある
 • A/Bテストはプロダクト改善において非常に重要。各社がA/Bテ

    スト専用プラットフォームを揃えている
 • (個人的にも) A/Bテストの分析は予想外の結果が多く、かつプ ロダクト改善に繋がるので楽しい
 25
  26. ご清聴ありがとうございました
 2019-10-16 / KDD2019 読み会 
 紹介者:LINE Data Labs -

    Motoyuki OKI

  27. Reference
 • SRMのシミュレーション例 http://okiyuki99.github.io/HowToR/ex_srm.html
 27