Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
白金鉱業Meetup_経験値ゼロから始める A_B テスト布教活動と意思決定に活かしやすいA_...
Search
Taro Masuda
September 19, 2024
1
280
白金鉱業Meetup_経験値ゼロから始める A_B テスト布教活動と意思決定に活かしやすいA_Bテスト設計の一案 / brainpad-meetup-20240919
白金鉱業 Meetup Vol.15@六本木(効果検証)
https://brainpad-meetup.connpass.com/event/324913/
の登壇資料です。
Taro Masuda
September 19, 2024
Tweet
Share
More Decks by Taro Masuda
See All by Taro Masuda
企業・業界動向抽出のための経済情報ラベルの定義とタグ付きコーパスの構築 / yans2023-poster-s3-p21
taro_masuda
0
67
NLP2024 参加報告LT ~RAGの生成評価と懇親戦略~ / nlp2024_attendee_presentation_LT_masuda
taro_masuda
1
370
BtoBプロダクト改善のためのデータドリブン活動と組織の概要/b2b_data_driven_team
taro_masuda
0
810
企業の業界分類予測における共変量シフト問題の抑制
taro_masuda
3
1.4k
ディジタル信号処理の入り口に立つ
taro_masuda
3
310
歌声の特徴に基づいて曲を探そう!
taro_masuda
1
1.5k
NGBoost論文読んでみた
taro_masuda
2
3.8k
Featured
See All Featured
How to name files
jennybc
77
99k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
249
21k
Optimising Largest Contentful Paint
csswizardry
31
2.8k
WebSockets: Embracing the real-time Web
robhawkes
59
7.3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
92
16k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
How GitHub Uses GitHub to Build GitHub
holman
473
290k
How to Think Like a Performance Engineer
csswizardry
16
1k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Design by the Numbers
sachag
278
19k
The Cost Of JavaScript in 2023
addyosmani
43
5.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.7k
Transcript
経験値ゼロから始める A/B テスト布教活動 と 意思決定に活かしやすい A/B テスト設計の一案 白金鉱業 Meetup Vol.15
@六本木(効果検証) 日本経済新聞社 データサイエンティスト 増田太郎,西川凌
経験値ゼロから始める A/B テスト布教活動
自己紹介:増田 太郎(ますだ たろう) 3 • 日経で BtoB Web サービスの分析を担うデータサイエンティスト •
施策の効果を数値化することに興味 ◦ A/B テストやベイズ統計モデリング • 取得称号・資格 ◦ Kaggle Master,統計検定 1 級, Google Cloud PDE • 趣味 兼 宣伝 ◦ Kaggler などデータサイエンス界隈で楽しむ,ゆるフットサル⚽ • 業務内容:チームリーダーとしてメンバーの分析結果のレビュー・ メンター・教育,他部署での A/B テスト設計のお手伝い
• 「Pythonで学ぶ 効果検証入門」 が愛読書! • 実際に社内ミート アップで布教した スライドが こちら → アイスブレイク
4
• 日経では 各事業部=ユニット・室 にデータサイエンティスト (DS)が点在 → 👎 取り組み当初は縦割り感が強かった • 私のチームは
BtoB ユニット内の複数プロダクト横断でデータ施策を 担当 前提知識:組織体制 5 情報サービス (BtoB) ユニット 社長 デジタル編成 (電子版)ユニット プラットフォー ム推進室 D S S W E 営 業 ・・・ D S S W E 営 業 ・・・ D S S W E ・・・ ・・・
• A/B テスト導入以前 ◦ 👎チームメンバーが少なく,複数プロダクトから 降ってくる分析依頼に応える受動的な分析が多め • A/B テスト導入のきっかけ ◦
👍チームメンバー増:西川さん(新入社員)の入社 ▪ 数理統計の素養もあり,入社してすぐ効果検証 の枠組み作りに協力いただくことに決定 ◦ 能動的な分析をプロダクト側に提案したくなった 社内的経緯・内発的動機 6
A/B テスト布教活動の流れ 7 影響範囲 A/B テスト輪読会 社内ミートアップ 実験設計テンプレート制定 テスト実行 社外発信・PR
社外 自チーム +他部署有志 社内全体の DS + ユニット長・専務 Web プロダクトを扱う 全ての部署
• 知識ほぼゼロからスタート:まずはインプットから • 2022 年当時は「カバ本」を選定 ◦ 今なら「Python で学ぶ効果検証 入門」もオススメ •
興味のある SWE / DS / PdM たちを 他部署でも巻き込んで開催 • (余談) ◦ 自主的な勉強も並行して実施 ▪ 西川さんと違って増田は統計学の知識もほぼゼロ → 統計検定 1 級の取得を目安に独学 A/B テスト輪読会 8
• 👎 発表当番制 : 発表当番回と 非当番回の理解度にムラが出る • 👍 全員でコメント自由記入制 ◦
読んでいて「勉強になったこと・分からなかったこと・ 納得できないこと」のメモを事前に記載 ◦ 当日はメモを上から読んでいって議論 ◦ 毎回当事者意識を全員が持って参加できる ◦ 各自が疑問に思ったこと・引っかかったことの議論にフォーカス できるため時間の使い方が効率的 ▪ 自明なことの説明に時間を食わない 輪読会の運営方針 9
A/B テスト布教活動の流れ 10 影響範囲 A/B テスト輪読会 社内ミートアップ 実験設計テンプレート制定 テスト実行 社外発信・PR
社外 自チーム +他部署有志 社内全体の DS + ユニット長・専務 Web プロダクトを扱う 全ての部署
• A/B テスト輪読会 → DS 関連の取り 組みが社内で点在しているのもった いなくない?という課題感から企画 • 各部署のデータサイエンス関連の
取り組みを持ち回りで紹介 • 懇親会の費用拠出を専務に直談判 • 事業部長クラスも巻き込んでトーク • 社内で顔が売れる →他部署の A/B テスト設計のお手 伝いをして経験値を一気に積めた 社内組織横断型のミートアップの開催 11
A/B テスト布教活動の流れ 12 影響範囲 A/B テスト輪読会 社内ミートアップ 実験設計テンプレート制定 テスト実行 社外発信・PR
社外 自チーム +他部署有志 社内全体の DS + ユニット長・専務 Web プロダクトを扱う 全ての部署
• メルカリさんのブログを大いに参照 ◦ メルカリにおけるA/Bテスト標準 化への取り組み|Mercari Analytics Blog • Notion テンプレートを作成して
部署を超えて配布,普及を促す ◦ 分かりにくい・書きにくい項目に ついてフィードバックを貰い改訂 ▪ 実行フェーズに改定例あり 実験設計テンプレートの制定 13
A/B テスト布教活動の流れ 14 影響範囲 A/B テスト輪読会 社内ミートアップ 実験設計テンプレート制定 テスト実行 社外発信・PR
社外 自チーム +他部署有志 社内全体の DS + ユニット長・専務 Web プロダクトを扱う 全ての部署
• 全社展開したテンプレートを元に効果検証の枠組みが普及 ◦ 自部署でもテンプレートに忠実に従いテストを設計 ▪ 初期の頃から大きな失敗はしなくなった ◦ 後出しで「リリース済の新規機能の効果測定して」と 言われる悲しい事象が減った テスト実行
15
• 特に初期は DS が伴走する必要あり • 👎 事前の意思決定ルールの詰めが甘い部分で反省・失敗も ◦ 例:複数のドライバーメトリクスのうち一部だけが 有意に改善した時の
OK / NG の判断が曖昧だった → テンプレートに項目追加 実行フェーズで得られた教訓 16 ビジネス上の損失との トレードオフ →小さな案件の成功から そもそも指標が測定できるか 損失 効果
(参考) 事例: 記事推薦メールの文面変更 17 目的:記事推薦メールの CTR 向上 内容:メールのタイトル・本文の冒頭それぞれにおいて 記事タイトルを見せるなど複数の変更候補を一度に A/B
テスト 効果:最も良い組み合わせにおいては CTR が 20% 向上 Before After
A/B テスト布教活動の流れ 18 影響範囲 A/B テスト輪読会 社内ミートアップ 実験設計テンプレート制定 テスト実行 社外発信・PR
社外 自チーム +他部署有志 社内全体の DS + ユニット長・専務 Web プロダクトを扱う 全ての部署
• ベイジアン A/B テスト(発表後半)の 内容でブログ執筆 • 技術部門の紹介動画に出演 • 結果 ◦
👍 採用に好影響:カジュアル面談 等で「ブログ読みました!」と 声をかけていただく場面が増えた ◦ 👎 連合大会など統計系のコミュニ ティではまだまだ知名度が低い, 今後もPRを続けたい 社外発信・PR 19 We are hiring!
• 経験値ゼロから A/B テストを全社的に布教した事例を紹介 • 月並みだがエッセンスは協力的な他者を巻き込むこと ◦ 輪読会やミートアップで部署間の連携を高める • 大失敗を回避するための設計テンプレートの布教が有効
◦ プロダクト側と伴走して記入 ↔ テンプレ改定 のループ • まだ道半ばですが,A/B テストに限らず, 社内で布教活動をしたい全ての皆様の参考に 少しでもなっていたら嬉しいです. まとめ 20
意思決定に活かしやすい A/B テスト設計の一案
• データサイエンティスト 3 年目 • モデリングなどを通じてデータから示唆を与えるお仕事 • 学部は経済で企業財務のゼミ • 修士は工学で、確率シミュレーション
• 働き始めてからは、ベイズ統計に主な興味 自己紹介: 西川 凌 (にしかわ りょう) 22
• 「利益の期待値の最大化(損失の最小化)」という 一貫したフレームワークで意思決定を行うことができる方 法を紹介 • 今回は、このフレームワークで以下を行う ◦ A 案,B 案どちらを採用するかという意思決定
◦ そもそもの実験計画の策定 A/B テストを「意思決定」に活かす 23
• 利益の期待値を比較したい • 以下のステップに従って意思決定を行う (ベイズ推論) ① 利益/損失を定める ② 尤度関数を決める ③ 事前分布を決める ④ データから事後分布を計算、意思決定! A
群, B 群の「利益」の比較方法 24
• どちらの広告を出した方が より利益が取れるか? 問題設定の例 25
①利益を定める ②尤度を 決める ③事前分布を 決める ④事後分布で 意思決定 A/B テストを「意思決定」に活かす 26
①利益を定める ②尤度を 決める ③事前分布を 決める ④事後分布で 意思決定 A/B テストを「意思決定」に活かす 27
広告の場合 • 広告 A:8 円/ 1 クリック • 広告 B:10 円/ 1 クリック
①利益を定める ②尤度を 決める ③事前分布を 決める ④事後分布で 意思決定 A/B テストを「意思決定」に活かす 28
尤度(クリック数が従う分布)の例 • 二項分布 ◦ n: 広告表示回数 ◦ p: クリック率
①利益を定める ②尤度を 決める ③事前分布を 決める ④事後分布で 意思決定 A/B テストを「意思決定」に活かす 29
事前分布(データを見る前のクリック率の分布)の例 • ベータ分布 ◦ ベータ分布の例として、広告 A, B 共に
①利益を定める ②尤度を 決める ③事前分布を 決める ④事後分布で 意思決定 A/B テストを「意思決定」に活かす 30
事後分布(クリック率が従う分布)の例 • ベータ分布 ◦ 広告 A: 100 回クリック/300 回表示 ◦ 広告 B: 50 回クリック/250 回表示 n: クリックされた数 m: クリックされなかった数 a, b: 事前分布のパラメータ
①利益を定める ②尤度を 決める ③事前分布を 決める ④事後分布で 意思決定 A/B テストを「意思決定」に活かす 31
広告 A (8 円/1 クリック) 利益の期待値 約 53,000 円 広告 B (10 円/1 クリック) 利益の期待値 約 20,000 円 1 万回広告を表示すると 広告 A に 決定! クリック率
• 実験の途中までで集まったデータを使って中間的な分析を 行うとする • そのとき、以下の判断が必要になる ◦ このまま実験を継続するかどうかの判断 ◦ 継続するとしたらいつまで続けるか •
これも、「利益の期待値の最大化(コストの最小化)」と いう一貫したフレームワークで意思決定することができる 実験計画の設計 32
• サンプルサイズは大きすぎても小さすぎてもデメリット ◦ 大きすぎるとデータ取得のコストがかかる ▪ 例)A/B テストを実施している日数分、実施コスト ◦ 小さすぎると推定を誤るリスクがある ▪
例)間違えてクリック率の低い方の広告を採用してし まうと、損失がある • 上記の両方を考慮した損失関数を設計する ◦ 損失 = (-1) × 利益 実験継続の決定のトレードオフ 33
• 以下のようにコストを定める(あくまで一例) ◦ : サンプルサイズ (各群) ◦ : 群を選ぶ意思決定 ◦
: A 群、B 群のそれぞれのクリック率 ◦ : A 群を選ぶ、B 群を選ぶ行動 ◦ : 1 個体の取得コスト, : 間違えて A/B 群を選んだ損失 損失関数の設定 34 1 個体を 取得するコスト 群の選択を 間違えたコスト
• 続けるかどうかは、 「続けた後最適行動をした時のコスト」と、 「現時点で止めた時の最適行動をした時のコスト」を 現時点のデータから予測し、比較することで判断する。 • 詳細については、参考文献を参照 どのように判断 35
• A/B 各群 n 個まで取ってこれた。各群もう n 個ずつ取るか決めたい。 ◦ 上のコストの方が小さかったら追加で取る (参考)「コストの比較」を式で書くと
36 今までの A/B 各群 n 個で 追加のサンプルを 予測 追加で各群 n 個取った時の 損失 追加サンプルの予想で 期待値を取る クリック率の予測事後分布で 期待値を取る 群をうまく 決める 追加で 取る場合 止める 場合
実際のシミュレーション例 37 追加サンプルサイズ(各群) コ ス ト の 大 き さ
コストの合計 群を間違える コスト サンプル取得コスト 最適値 今実験途中で、あと何サンプル 取るのが最適か? A 群: 5回/10回 B 群: 5回/10回
実際のシミュレーション例 38 追加サンプルサイズ(各群) コ ス ト の 大 き さ
コストの合計 群を間違える コスト サンプル取得コスト これ以上続けても あまり変わらず、 しばらく経つと上昇傾向 A 群:95回/200回 B 群:100回/200回 他は前と同じ設定
• 「利益の期待値の最大化(損失の最小化)」という 一貫したフレームワークで意思決定を行う方法を紹介 • 今回は、このフレームワークで以下を説明した ◦ A 案,B 案どちらを採用するかという意思決定 ◦
そもそもの実験計画の策定 まとめ 39
• 赤平 昌文, 小池 健一. 統計的逐次推定論. 共立出版 (2022) ◦ ベイズを使わず頻度論で
A/B テストをやる場合に ついても実験計画についての意思決定が記してあり、 おすすめ ◦ 今回の発表のように、検出力の観点だけでなく サンプル取得コストについて記載 参考文献 40