Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

嘘つくメトリクス

3,780 views

Published on

機械学習メトリクスに騙される時いくつか紹介する

Published in: Data & Analytics
  • Be the first to comment

嘘つくメトリクス

  1. 1. 嘘つくメトリクス Tristan Irvine 2018-02-23
  2. 2. Tristan Irvine 所属: 秋葉原ラボ 経歴: <2015: スーパカミオカンデ大型素粒子観測器・博士生 2015: サイバーエージェント入社・データサイエンティスト 得意なこと:  早起き・漢方 下手なこと: スクワット・速く食べる
  3. 3. AmebaInfeed サイバーエージェント媒体の運用型の自社広告。デマンドサイドとサプライサイドの両方 の役割が存在。 チームと一緒に管理してる機械学習タスクは主に二つ: ● CTR予測 - 候補広告をCPC (クリックごと単価) x CTRでランキングする。 ○ ストーリミング学習、 Adagrad Factorization Machine + Thompson Sampling ● CVR予測 - 広告ごとのCPCを自動的に決める。(目標CPA x CVR) ○ オンライン学習、Gaussian Density Filter Factorization Machine + ウエートサンプリング CTR - Click Through Rate - クリック / インプ CPC - Cost Per Click - 1クリックの単価 CVR - Conversion Rate - CV / クリック CPA - Cost Per Action - 1 CVを得るためのコスト = CPC / CVR
  4. 4. 基礎機械学習指標の一つ:AUROC クリックされてないデータ として分類 クリックデータと して分類 カット値 どのアルゴリズムが良いかを判断するために上記の図をまとめないといけない。 AUROCはそのまとめの一つ。 ランダムな正例データがランダムな不例データより予測値が高いとして解釈できる。 AUROC = 0.5は最悪の状態 == ランダム予測 AUROC = 1.0の場合は完璧に予測してる 時間ないので詳細 をスキップするんで ごめん。。
  5. 5. 実際の例1 2016-10のニューズ推薦のCTR予測モデルにページURL素性を追加した。AUROC は0.7 -> 0.99に大分改善してきた。 ページの情報を考慮してほぼ完全にクリックとクリックなしのデータを区別できる! 完璧な予測モデル? CTR予測だとなんの AUROCぐらいになる はず? CTR予測値 AUROC 0.99!! スゲー
  6. 6. 配信してみた成果 そう見て、すごいな〜って思って配信して見た。急に 平均CTR 12% -> 6%!! なぜAUROCに騙された? 実に配信せずに気づくべきでした。。0.99 AUROC = ほぼ完全にクリックとクリックなしの 広告を区別できるってことで、現代の技術でありえない(なはず)。 URL データの不具合で、クリックログとインプログに入っていた URLが異 なっていた場合もあった。 imp: https://ameblo.jp/ebizo-ichikawa/entry-12353247379.html click: https://ameblo.jp/tsuji-nozomi/entry-12353142064.html との風に、非常にクリックデータを区別できてた。
  7. 7. URLなし + 解決 URL以外でもimp / clickログが異なってい ることが少しあった。それでまたこの「完璧 な予測」現象が続いた いずれにオンラインデータジョイナーを 作って、いつもimpログのデータを使うよう にして、直した。それでAUROCが下がっ たが、日販+5% 入力データ綺麗にし てからAUROC下 がった ジョイナーな し ジョイナーあ り 自分の予測アルゴリズム は良さすぎでしょうか?気 をつけてください! 完璧予測? 通常予測
  8. 8. 新規予測モデル 2017-12に新規モデルを試してた。 全く同じ特徴量で、入力データが綺麗です。変わったことは予測アルゴリズムだ け。 AUROC結構上がって、~0.75 -> 0.77 日販改善するはずですかね? 新モデル 古モデル
  9. 9. AUROC信頼できない? 配信したら、日販下がった :( AUROCが高いのに? どいうこと もっと調べとこう 秘 密 軸 5-10%差 前のスライドから色 関係が逆だ。ごめ ん。。 古モデル 新モデル
  10. 10. 詳しくなんの新規アルゴリズムでしょうか? ファクトライゼーションマシンはファクトライゼーションで素性の相互作用項を計算するア ルゴリズム。 属性データ X 属性データの相互作用項が追加された。 例:15時に女子のCTRが高い iPhone使っていたらある広告枠はもっとクリックされる 古い(AUROC低い・日販高い)アル ゴリズム 予測値 = 広告データ X 属性データ 新規(AUROC高い・日販低い)アル ゴリズム 予測値 = 広告データ X 属性データ + 広告データ X 広告データ + 属性データ X 属性データ
  11. 11. アルゴリズムとKPIの相性 実は、これと全く同じ変更をCVR予測でやったら、広告主の達成率が改善した! 何が違う? CVR予測:ビッドプライス予測。 絶対的な正確性が必要 CTR予測:広告ランキング。 相対的な正確性の方が大事 -> CTR予測の場合は15時の女子のCTR が高くなってもどうでもいい。全部 の広告候補に同じ影響あるから! 1 - 達成率の対数損失の加重平均(二日間) データ少なく申し訳ない!
  12. 12. 嘘つくメトリクス:ボーナス 赤か青、どっちのAUROCが高い?
  13. 13. 嘘つくメトリクス:ボーナス(回答) AUROCを判断するためにもAUROCを使えない!! この原因は計算仕方です。AUROCを計算するためにデータのヒストグラムを作らないと いけない。ビンサイズを自動的に選択しているんで、もっと雑なビンになったらAUROC が下がった。
  14. 14. どうすればいい?まとめ 一つの万能な指標なんかない できるだけ多くメトリクスを集計し、全部を考慮すべき データサインティストとして~40%の時間はメトリクスの パターンをみて、把握しようとしてる。。 一番日販があがるモデルを見つけるために、ABテスト して日販を計らないと。(嘘つく日販の例もいくつかあ るんですが。。) 12時間ごとに集計している機械学習 メトリクス ● AUROC ● AUPRC ● AUROC (no fit) ● LogLoss ● Normalized Entropy ● NNZ frac ● Count ● Avg Data Value ● Avg Predicted Value ● Min/Max Predicted Value ● Positive Histogram ● Negative Histogram ● Total True Positive ● Total True Negative
  15. 15. 追加
  16. 16. 基礎機械学習指標の一つ:AUROC あるカット値で正しく予測された( True Positive TP)と間違って予測された( False Positive FP)データがある。(不例サーンプ ルだと True Negative TN と False Negative FN) 全部のありえるカット値で TP率とFP率を計 算して、ROCを作れる。 クリックされてないデータ として分類 クリックデータと して分類 カット値 ROC = Receiver Operating Characteristic そのしたの領域はAUROCという指標です。 正例データが不例データより高く予測される確率として解釈で きる。予測の正確性との関係ない。 ROC x = y, AUROC = 0.5 の場合はランダム予測です(最悪 の状態) AUROC = 1.0の場合は完璧に予測してる
  17. 17. アルゴリズムの概要 CTR予測 ● ストリーミング学習 ● リアルタイム予測 ● 予測モデル15分ごと更新される ● ファクトライゼーションマシン + Adagradオプティマイザ ● Thompson Samplingで新規広告 を探求する ● CTRは0-2%の範囲 ● 弊社の売り上げを上げるために広 告をランキングする。 CVR予測 ● バッチ学習(1時ごとに) ● リアルタイム予測 ● ファクトライゼーションマシン+GDF オプティマイザ(ベイズ) ● モデルのウエートサーンプリングで新 規広告を探求する ● CVRは0-90%の範囲 ● 広告主のCPC + ROIを最適化する ために。 詳しくは後で声かけてください。

×