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

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


    View Slide

  2. だれよ?

    ● 大木基至 (@okiyuki99)

    ● 博士(工学)

    ● LINE Data Labs (2019/01 -)

    ○ LINE(Messenger)を担当 

    ● 趣味

    ○ ボードゲーム制作

    ○ 息子と遊ぶ


    2
    (宣伝1)ピクテル


    View Slide

  3. A/Bテストを1枚で

    3
    KDD2019 Tutorial Challenges, Best Practices and Pitfalls in Evaluating
    Results of Online Controlled Experiments - p.13 


    View Slide

  4. つまり、

    4

    「ユーザを評価したいプロダクトに正しく(*) 無作為に割り付けで
    きれば、アウトカム(評価したいメトリック)の差はNew Featureに
    よるもの」と結論付けれる

    プロダクト改善において、A/Bテストは強力な武器

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


    View Slide

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


    View Slide

  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
    を

    要チェック!


    View Slide

  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 であるなら

    View Slide

  8. 紹介する論文

    ● A/BテストにおけるSRMの原因総まとめ論文

    ● MSとBooking.comとOutreach.io

    8
    3社のコミュニティによ
    り形成されてる


    View Slide

  9. Sample Ratio Mismatch

    サンプルちゃんとランダムに割付できてますか?

    Control(C) : Treatment(T) = 50 : 50 で割当した

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


    9
    49.8%

    50.2%


    View Slide

  10. Tが少ないから問題になるの?

    10
    シミュレーション1

    C : 1000人 (= 250 * 4 levels)

    T : 1000人 (= 250 * 4 levels)



    ライト ~ ヘビーの4 Level

    +2.041

    どんなユーザにも魅力的な機
    能で + 2 の効果

    Sample Ratio Mismatch


    View Slide

  11. 11
    シミュレーション2

    C : 1000人 (= 250 * 4 levels)

    T : 800人 (= 200 * 4 levels)


    +1.965

    Tが少ないから問題になるの?

    ライト ~ ヘビーの4 Level

    どんなユーザにも魅力的な機
    能で + 2 の効果

    Sample Ratio Mismatch


    View Slide

  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


    View Slide

  13. 13
    つまり、

    ● シミュレーション2のように異質なユーザが均等に減る分にはメ
    トリックによっては問題はない(気づかない)

    ○ もちろん度数自体に興味のある場合を除いて

    ● しかし、SRMの発生の多くはシミュレーション3のように均等で
    はない( = サンプリングバイアスの一種)


    Sample Ratio Mismatch


    View Slide

  14. 14
    https://twitter.com/ronnyk/status/932798952679776256
    SRMが発生したままだと、各種メトリッ
    クで有意な差を検出

    データをきれいにした後、各種メト
    リックはFlatに

    MicrosoftのKohavi氏のTweetより

    とあるA/Bテストで....


    View Slide

  15. SRMを検出するには?

    ● 期待割当 = 50:50の割付になってるかを、カイ二乗検定で判定

    15

    View Slide

  16. SRM検出されたらどうしたらいいの?

    ● なんで発生したかを明らかにするのはかなり難しい(らしい)

    ○ MSでは、分析者が数日 ~ 数ヶ月かかることも...

    つまり、この論文の貢献は

    ● 複数の実列を交えてSRMが発生したA/Bテストを紹介

    ● SRMの発生原因を分類し、原因調査の勘所とそれらの防止策をまとめた

    16

    View Slide

  17. A/Bテストの4STEP

    (1) 実験の割当 

    ● ユーザを2つの実験グループ(C or T)に割り当てる

    (2) 実験の実行

    ● テストのためのコンテンツを配信し、実験に参加できる状態にする

    (3) ログの処理

    ● ユーザの行動ログ等のデータが収集・処理され、集約する

    (4) 分析

    ● 集約したデータを分析する


    17
    つまり、これらの各ステップに対応

    View Slide

  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.
    インタビュー内容(のキャプチャ) 


    View Slide

  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テストが同時にあるとき互いに関連のないテストにのみ割当

    *ランダム割当でそれが守られてないなら、実験が開始されないように制御するべき


    View Slide

  20. その2 : Experiment Execution SRM


    キーメッセージ

    ● 実験対象になるときの定義(何が起こったらTになるのか)を確認

    ● ただのロギングにも警戒

    ○ New Featureによりログが追加される場合、その分だけStepが増えるためユーザが離脱する可
    能性は高まる

    ○ 速度等の性能が悪いと、ロギングの前にユーザが離脱し正しいログが欠損し得る
    
 20
    A/Bテスト概要

    Skypeの改善に関するテスト。 TはMLを使ってパラ
    メータをオンライン更新し、通話品質を高める。しか
    し、全く反対の結果(音声の歪みや遅延が増加)が
    示され、さらにセッション数(コール数)がControlと
    比べて30%も少なかった。なぜ? 

    原因

    通話セッションの途中で実験のための設定が非
    同期にリフレッシュされ、バグにより
    Tセッション終
    了後にCのログに変更された


    View Slide

  21. その3 : Experiment Log Processing SRM


    21
    A/Bテスト概要

    MSNのカルーセルを12→16枚に変更す
    るテスト。多くのカルーセルを見たほう
    が、クリック数とTのユーザ数も減少。な
    ぜ?

    原因

    データ処理の中の別のアルゴリズムの
    せいで、Tのユーザの一部がbotと分類
    され分析対象外になっていた


    キーメッセージ
    ● データ収集のところのSRMを避けるのが難しい(分析者が気づけない)。システムアー
    キテクチャに依存する
    ● ログ処理の各要素で除かれてしまったユーザ数もモニタリング

    View Slide

  22. その4 : Experiment Analysis SRM


    22
    A/Bテスト概要

    あるプロダクトのページXに初めて訪れ
    たユーザに見せる特別ページYをTの
    ユーザでは省略するテスト。ページYを
    見た(Tはしたと想定される)ユーザに絞
    り分析したところ、Tのユーザ数が多かっ
    た。なぜ?

    原因

    ページYのロード時間が長かったことに
    より、Cでは離脱してるユーザが増えて
    しまった


    キーメッセージ

    ● ユーザを絞る前でSRMが起こってないなら、絞る条件を疑う

    ● 絞る条件が厳しいほどバイアスが発生しがち。条件を緩めて分析したほうが吉

    ○ 例 : あるアクションXをした < アクションXができるページを見た


    View Slide

  23. その5 : Experiment Interference SRM


    23
    A/Bテスト概要

    MS Storeのページデザイン変更のテス
    ト。Cのユーザが増加。なぜ?

    原因

    検索エンジンのキャンペーン?により、予
    期しないURLに強制的にリダイレクトされ
    てしまった

    キーメッセージ

    ● 影響を受けなかったユーザで分析(しかし、多くの場合テストの再実施が必要)

    ● テストユーザが見るはずだった画面が変更されてないかモニタリング


    View Slide

  24. まとめ:SRM原因調査の10のルール
    24
    1. 分析時のユーザの絞り方を調べよう 

    2. あるユーザセグメントだけに起こってないか 

    3. ある時間セグメントだけに起こってないか 

    4. ログのパフォーマンスメトリクスも確認 

    5. Engagement高い場合は、Engagementが低い
    ユーザを調べよう(逆も) 

    6. SRMが複数発生してるなら割当システムを疑う 

    7. A/Aテストで発生してるなら割当システムを疑う 

    8. TとCのサンプル比率が大きく異なるなら、ログ処理
    時にユーザが除外されている可能性を疑う 

    9. データ収集から集約までのパイプラインを確認 

    10.パイプラインが複数あるなら比較しよう 


    View Slide

  25. 全体を振り返っての所感

    ● KDDは毎年非常に実践的なA/Bテストの論文が多い

    ● MS中心のコミュニティで規模と量が圧倒的

    ● 不当なA/Bテスト(〇〇バイアス)の検知に関する研究が盛んで
    ある

    ● A/Bテストはプロダクト改善において非常に重要。各社がA/Bテ
    スト専用プラットフォームを揃えている

    ● (個人的にも) A/Bテストの分析は予想外の結果が多く、かつプ
    ロダクト改善に繋がるので楽しい

    25

    View Slide

  26. ご清聴ありがとうございました

    2019-10-16 / KDD2019 読み会 

    紹介者:LINE Data Labs - Motoyuki OKI


    View Slide

  27. Reference

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

    27

    View Slide