広告配信の予測におけるデータの反映速度
by
tirvine
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
広告配信の予測における データの反映速度 Tristan Irvine 2020/08/05
Slide 2
Slide 2 text
自己紹介 名前: Tristan 所属: 株式会社サイバーエージェント 秋葉原ラボ AmebaDSP 学士: 物理学 最近の病気: 脳震盪 格好いい〜
Slide 3
Slide 3 text
SSP DSPはどういうこと? 広告 AmebaDSP オークション クリック 入稿・配信設定 広告配信 課金! 広告主 入札額 広告集めて、あるリクエストに理想な広告を決めて、SSPに入札するシステムです。
Slide 4
Slide 4 text
入札額 入札額を決めるために、CPMを知る必要です! = 売上 / インプレッション ~ 広告の価値 CTR, CVRは広告を配信しないと分からない! 過去データから推定する必要です。 機械学習使おう! CPM = CTR x CVR x 目標CPA x 1,000 予測 予測 CTR = クリック率 CVR = CV率
Slide 5
Slide 5 text
AD サーバー メディア 学習 予測 imp, click, cv 予測CTR, 予測CVR 広告配信 学習結果 機械学習による予測 フィードバックループ 1. 配信 2. 学習 3. 予測値に反映する 4. 予測精度が上がる 5. もっと配信できる
Slide 6
Slide 6 text
精度悪ければどうなる? 予測CTR高すぎる -> 赤字!! 予測CVR高すぎる -> 広告主離脱!! 予測CTR, CVR低すぎる -> 勝率低い :( 精度高く予測しましょう
Slide 7
Slide 7 text
どの頻度で予測フィードバックしよう? 高い頻度! ● 精度悪くなったら早くモデ ルが調整される ● 新しい広告・枠を早く予測 結果に反映できる 低い頻度! ● 学習時間が長ければもっ と複雑・精度高いモデル を使える ● 運用・実装しやすい 弊社の場合はできるだけ高い頻度でモデルを更新している - CTR予測: 15分間隔 - CVR予測: 1時間間隔
Slide 8
Slide 8 text
更新頻度が遅すぎる例1:広告主AのCTR
Slide 9
Slide 9 text
CTR予測失敗で赤字になった! 粗利 軸見ないで、 情報漏洩だよ 赤字!! ある朝、急に大きく赤字になっちゃった。CTR予測急に精度悪化した?
Slide 10
Slide 10 text
赤字の調査の結果 ある広告主は全部の赤字を起こした 広告主Aの粗利 0円 闇 全部の赤字はある広 告主である15分期間で 発生した(11:30 - 11:45) 興味深い。。
Slide 11
Slide 11 text
更新頻度遅すぎる!! 広告主Aの粗利 0円 赤字 X - モデル更新時 ● 11:30にモデルが更新さ れた ● 広告主Aはある枠に配 信したらCTR非常に高 いって思われた ● 11:30 - 11:45にその条 件で配信した ● CTRは高くなかった。赤 字になった。 ● 11:45にこの新規情報は モデルに反映されて、赤 字が抑えれた
Slide 12
Slide 12 text
更新頻度が遅すぎる例2:広告主BのCVR
Slide 13
Slide 13 text
CVR予測失敗で広告主怒った! ある朝、広告主Bはのんびりに朝ごはんを食いながら 急に大きく課金された! 広告主Bの課 金額
Slide 14
Slide 14 text
どうなった?なぜCVR予測のせい? 8時前に合計この広告主3個クリックしかなかった。07:09にCVが発生した。それ上に CVRが33%だって思われて、予測CVR / 入札額大きく上がりました。 実にその後一個もCV出なかった。最初の一個は非常に運良かっただけです。8:15は全 部予測CVR >> CVRの暴発だった。 予測CVR CVが発 生した
Slide 15
Slide 15 text
どうする? ● 更新頻度を上げる ○ 15分よりも短い間隔で更新する ○ でも限界はある。あるリクエストがクリックされるかどうかの判断するた めに5分間が必要です ● 組成に直近の傾向データを考慮する ○ 広告の直近5分間のCTRなどを組成として追加 ○ モデル自体が更新されなくても、直近CTRの組成が変わるので予測 値も変わる
Slide 16
Slide 16 text
移動平均システム 計算したい:直近5分間のCTRの移動平均 あるいは:click数の移動平均 / imp数の移動平均 移動窓
Slide 17
Slide 17 text
計算方法 普段の移動窓の移動平均の計算が重い。 - 過去impデータとtimestampを保存しないと - いつでも計算すると各timestampは5分期間に入っている かを確認する -> ストリーミングで移動平均をしよう
Slide 18
Slide 18 text
ストリーミング移動平均 ~10秒ごとにデータを更新する 既存の移動平均値をみて、直近10秒間で発生したimp数で更新する imp5m - 5分間のimpression数移動平均 30 - 5分間に入る10秒間隔数
Slide 19
Slide 19 text
アーキテクチャー impressionログ redis 移動平均更新機 10秒間ごとの カウンター API 機械学習 技術: golang Apache Flink kinesis stream
Slide 20
Slide 20 text
成果 この発表までにリリース間に合わなかった :( 今度聞いてください!
Slide 21
Slide 21 text
まとめ ● 広告配信に予測精度が大事です! ● 予測モデル更新の間に赤字・暴発の可能性がある ● できるだけ速く配信データを予測結果に反映すべき ● モデル自体を十分速く更新するのは難しい。代わりに 組成に直近の情報を入れるのを考えられる