Slide 1

Slide 1 text

DSOps #8. 可視化 (前編)

Slide 2

Slide 2 text

自己紹介 名前 : 暮石 航大 所属 : AI事業本部 Dynalyst データサイエンスチーム 入社年度 : 2020年

Slide 3

Slide 3 text

なぜDSOpsの内容に可視化があるか?

Slide 4

Slide 4 text

プロダクトでのDSの仕事は ● 改善すべき点を明らかにして,改善方法を創出する ○ 改善できる点を見つける必要がある ○ データから面白い情報を得るために直感的な理解を助ける可視化を行う ● 明らかになった改善すべき点と改善方法を誤りなく伝え,アクションをしてもらう ○ 意思決定がしやすいように改善点と改善方法,改善幅を伝える必要がある ○ 意思決定の判断をサポートするために可視化を行う

Slide 5

Slide 5 text

プロダクトでのDSの仕事は ● 改善すべき点を明らかにして,改善方法を創出する ○ 改善できる点を見つける必要がある ○ データから面白い情報を得るために直感的な理解を助ける可視化は効果的 ● 明らかになった改善すべき点と改善方法を誤りなく伝え,アクションをしてもらう ○ 意思決定がしやすいように改善点と改善方法,改善幅を伝える必要がある ○ 意思決定の判断をサポートするために可視化は効果的

Slide 6

Slide 6 text

プロダクトでのDSの仕事は ● 改善すべき点を明らかにして,改善方法を創出する ○ 改善できる点を見つける必要がある ○ データから面白い情報を得るために直感的な理解を助ける可視化は効果的 ● 明らかになった改善すべき点と改善方法を誤りなく伝え,アクションをしてもらう ○ 意思決定がしやすいように改善点と改善方法,改善幅を伝える必要がある ○ 意思決定の判断をサポートするために可視化は効果的 DSの仕事をスムーズに進めるためにはうまく可視化していく必要がある

Slide 7

Slide 7 text

DS研修の内容 実際に可視化を利用する二つのケースについて,可視化を行う時のポイントと事例に ついて紹介する 1. データ分析のための可視化(前半) 見せる対象 : 自分自身 2. 意思決定の判断をサポートするための可視化(後半) 見せる対象 : 事業責任者,開発責任者

Slide 8

Slide 8 text

1 データ分析のための可視化 2 意思決定をサポートするための可視化

Slide 9

Slide 9 text

可視化する利点って何だっけ?

Slide 10

Slide 10 text

可視化する利点は傾向を掴めることである 数値データの羅列からデータの傾向を理解するのは困難である 左の例から右の図を思い描くのは無理がある

Slide 11

Slide 11 text

可視化する利点は傾向を掴めることである 統計量だけでは,把握できないデータの傾向が存在する 統計量が全て同じになる4つの例 統計量 値 xの平均 9 xの標本平均 11 yの平均 7.5 yの標本平均 4.122 xとyの相関係数 0.816 回帰直線 y=3.0 + 5.0x

Slide 12

Slide 12 text

可視化する利点は傾向を掴めることである 数値データの羅列からデータの傾向を理解するのは困難である 統計量だけでは,把握できないデータの傾向が存在する

Slide 13

Slide 13 text

データ分析で可視化するときのポイント

Slide 14

Slide 14 text

データ分析の中で可視化の使い所は2パターンある ドメイン知識がない 問題発見や問題解決に繋がるアイディアを出す データから事業について理解するために,可視化を使う ● 時系列にみたら,売り上げはどうなっているんだろうか?(問題発見に繋げるための可視化) ● サイズ別にみたら,CTRはどうなってるんだろうか?(問題解決に繋げるための可視化) ドメイン知識がある(問題発見や解決に対するアイディアがある) ドメイン知識を使って,立てた仮説を検証する 立てた仮説を検証するために,可視化を使う ● 動画広告のCPAが低い -> 広告主ごとに静止画と動画でCPAを比較する ● imp数が多いユーザはCTRが低い -> 広告の表示頻度別にCTRを可視化する

Slide 15

Slide 15 text

データ分析の中で可視化の使い所は2パターンある ドメイン知識がない 問題発見や問題解決に繋がるアイディアを出す データから事業について理解するために,可視化を使う ● 時系列にみたら,売り上げはどうなっているんだろうか?(問題発見に繋げるための可視化) ● サイズ別にみたら,CTRはどうなってるんだろうか?(問題解決に繋げるための可視化) ドメイン知識がある(問題発見や解決に対するアイディアがある) ドメイン知識を使って,立てた仮説を検証する 立てた仮説を検証するために,可視化を使う ● 動画広告のCPAが低い -> 広告主ごとに静止画と動画でCPAを比較する ● imp数が多いユーザはCTRが低い -> 広告の表示頻度別にCTRを可視化する

Slide 16

Slide 16 text

データ分析の中で可視化の使い所は2パターンある ドメイン知識がない 問題発見や問題解決に繋がるアイディアを出す データから事業について理解するために,可視化を使う ● 時系列にみたら,売り上げはどうなっているんだろうか?(問題発見に繋げるための可視化) ● サイズ別にみたら,CTRはどうなってるんだろうか?(問題解決に繋げるための可視化) ドメイン知識がある(問題発見や解決に対するアイディアがある) ドメイン知識を使って,立てた仮説を検証する 立てた仮説を検証するために,可視化を使う ● 動画広告のCPAが低い -> 広告主ごとに静止画と動画でCPAを比較する ● imp数が多いユーザはCTRが低い -> 広告の表示頻度別にCTRを可視化する

Slide 17

Slide 17 text

データ分析の中で可視化の使い所は2パターンある ドメイン知識がない 問題発見や問題解決に繋がるアイディアを出す データから事業について理解するために,可視化を使う ● 時系列にみたら,売り上げはどうなっているんだろうか? ● サイズ別にみたら,CTRはどうなってるんだろうか? ドメイン知識がある(問題発見や解決に対するアイディアがある) ドメイン知識を使って,立てた仮説を検証する 立てた仮説を検証するために,可視化を使う ● 動画広告のCPAが低い -> 広告主ごとに静止画と動画でCPAを比較する ● imp数が多いユーザはCTRが低い -> 広告の表示頻度別にCTRを可視化する

Slide 18

Slide 18 text

データ分析の中で可視化の使い所は2パターンある ドメイン知識がない 問題発見や問題解決に繋がるアイディアを出す データから事業について理解するために,可視化を使う ● 売り上げが大きく増えた時期がありそう -> 時系列にみたら,売り上げはどうなっているんだろうか? ● サイズによってCTRは変わりそう -> サイズ別にみたら,CTRはどうなってるんだろうか? ドメイン知識がある(問題発見や解決に対するアイディアがある) ドメイン知識を使って,立てた仮説を検証する 立てた仮説を検証するために,可視化を使う ● 動画広告のCPAが低い -> 広告主ごとに静止画と動画でCPAを比較する ● imp数が多いユーザはCTRが低い -> 広告の表示頻度別にCTRを可視化する

Slide 19

Slide 19 text

データ分析の中で可視化の使い所は2パターンある ドメイン知識がない 問題発見や問題解決に繋がるアイディアを出す データから事業について理解するために,可視化を使う ● 売り上げが大きく増えた時期がありそう -> 時系列にみたら,売り上げはどうなっているんだろうか? ● サイズによってCTRは変わりそう -> サイズ別にみたら,CTRはどうなってるんだろうか? ドメイン知識がある(問題発見や解決に対するアイディアがある) ドメイン知識を使って,立てた仮説を検証する 立てた仮説を検証するために,可視化を使う ● 動画広告のCPAが低い -> 広告主ごとに静止画と動画でCPAを比較する ● imp数が多いユーザはCTRが低い -> 広告の表示頻度別にCTRを可視化する 共通しているのは ● 可視化する目的や仮説がある ● 仮説を検証するために,可視化の強みである直感的に解 釈しやすいことを使っている

Slide 20

Slide 20 text

事例:可視化をデータ分析で利用する CVR予測モデルで起きている現象を可視化で明らかにして改善に繋げる

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

ある特徴を除くと性能は改善するが効果がないわけではない? ユーザのidを特徴量から除くことによって,性能を改善することができた ● 学習データにバイアスがのっていた(推論時に出現するユーザが学習データに存在しない ことが原因だった) “ユーザのid”なんで入れるの?気になったので調べてみるとユーザのidを入れたモデルは ● ユーザのidが学習データに含まれていないデータに対しては悪化していた ● ユーザのidが学習データに含まれているデータに対しては改善していた ユーザのid除くだけでいいのかな... もう少し調べてみる...

Slide 23

Slide 23 text

ユーザのidがどんな特徴か確認する ユーザのidが学習データに含まれているかで,性能の優劣が変わっていた ● ユーザのidが学習データに含まれていないデータに対しては悪化していた ● ユーザのidが学習データに含まれているデータに対しては改善していた ユーザのidを加えることで学習されるのは過去のcvの傾向ではないか? 過去のcvの傾向を学習しているか調べる方法はないか loglossやaucを比較してみたが...値が小さいのもあってよくわからなかった

Slide 24

Slide 24 text

ユーザのidがどんな特徴か確認する ユーザのidが学習データに含まれているかで,性能の優劣が変わっていた ● ユーザのidが学習データに含まれていないデータに対しては悪化していた ● ユーザのidが学習データに含まれているデータに対しては改善していた ユーザのidを加えることで学習されるのは過去のcvの傾向ではないか? 過去のcvの傾向を学習しているか調べる方法はないか loglossやaucを比較してみたが...値が小さいのもあってよくわからなかった 過去のCVの有無によって,全体的に予測値がどう変化するのを確認したい

Slide 25

Slide 25 text

Calibration Curveを描いてみる 横軸に予測値,縦軸に実測値 をとる図を描いてみた 平均的に y = x に近いのが理想 上振れ -> 予測値が低い 下振れ -> 予測値が高い

Slide 26

Slide 26 text

細かい粒度でCalibration Curveを可視化してみる ユーザのidを加えることで学習されるのは過去のcvの傾向ではないか? 学習データ中でのCVの有無で分けてCalibration Curveを描画する 学習データ中でCVがあるユーザのデータだけを使って,Calibration Curveを描く ユーザのidを特徴量として加えている ユーザのidを特徴量として加えていない Calibration Curveが y = xに近づいている

Slide 27

Slide 27 text

細かい粒度でCalibration Curveを可視化してみる uidが学習しているのは過去のcvの傾向ではないか? 学習データ中でのCVの有無で分けてCalibration Curveを描画する 学習データ中でCVがあるユーザのデータだけを使って,Calibration Curveを描く 過去にcvしているユーザのデータに対して, ● ユーザのidがない場合 : 全体的に上振れしている (予測値が低い) ● ユーザのがある場合 : 予測値と実測値が近い ユーザのidがない場合は過去のユーザごとの cvしやすさを考慮できていない => ユーザのidはユーザのcvしやすさを表す特徴量に違いない => uidをユーザのcvの傾向を考慮した特徴に置き換えることができれば,いいとこ取りができそう ユーザのidを特徴量として加えている ユーザのidを特徴量として加えていない Calibration Curveが y = xに近づいている

Slide 28

Slide 28 text

細かい粒度でCalibration Curveを可視化してみる uidが学習しているのは過去のcvの傾向ではないか? 学習データ中でのCVの有無で分けてCalibration Curveを描画する 学習データ中でCVがあるユーザのデータだけを使って,Calibration Curveを描く 過去にcvしているユーザのデータに対して, ● ユーザのidがない場合 : 全体的に上振れしている (予測値が低い) ● ユーザのidがある場合 : 予測値と実測値が近い ユーザのidがない場合は過去のユーザごとの cvしやすさを考慮できていない => ユーザのidはユーザのcvしやすさを表す特徴量に違いない => ユーザのidをユーザのcvの傾向を考慮した特徴に置き換えることができれば,いいとこ取りができそう ユーザのidを特徴量として加えている ユーザのidを特徴量として加えていない Calibration Curveが y = xに近づいている

Slide 29

Slide 29 text

可視化して得た知見を利用して,予測モデルを修正したところ性能を 改善することができた ユーザのidをユーザのcvの傾向を考慮した特徴に置き換えて,いいとこ取りする ● セレクションバイアスの除去 ● ユーザのidを加えることで学習されていた過去のユーザごとのcvのしやすさの考慮 結果的に変更した予測モデルを本番に導入してみたところ CPAを改善することに貢献できた

Slide 30

Slide 30 text

可視化して得た知見を利用して,予測モデルを修正したところ性能を 改善することができた ユーザのidをユーザのcvの傾向を考慮した特徴に置き換えれば,いいとこ取りする ● セレクションバイアスの除去 ● ユーザのidが学習していた過去のユーザごとのcvのしやすさの考慮 結果的に変更した予測モデルを本番に導入してみたところ CPAを改善することに貢献できた この改善に繋がるアイディアは可視化してみたことで,思いついたアイディアだった 可視化してみたことで,ユーザのidを加えることで学習されていたものが何かについて理解すること ができた

Slide 31

Slide 31 text

まとめ

Slide 32

Slide 32 text

まとめ データ分析の中で可視化するケースは2パターンある ● 問題発見や問題解決に繋がるアイディアを出す ○ データから事業について理解するために,可視化を使う ● ドメイン知識を使って,立てた仮説を検証する ○ 立てた仮説を検証するために,可視化を使う 大事なのは ● 目的や仮説に対して,可視化をする ● 可視化の強みである「直感的に解釈できる」という点に注意する ● 可視化することで出てくるアイディアもある

Slide 33

Slide 33 text

おしまい