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.

Yahoo! JAPANにおけるオンライン機械学習実例 #streamctjp

3,141 views

Published on

Stream Processing Casual Talks #1 at Yahoo! JAPAN の発表資料です
http://connpass.com/event/35264/

Published in: Technology
  • Be the first to comment

Yahoo! JAPANにおけるオンライン機械学習実例 #streamctjp

  1. 1. Yahoo! JAPANにおける オンライン機械学習実例 http://www.yahoo.co.jp/ ヤフー株式会社 野村 拓也 2016年07月22日
  2. 2. 自己紹介 Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 2
  3. 3. 自己紹介 野村 拓也 • 業務 • 社内向けストリーム分散処理基盤の開発 • 機械学習を用いたシステム改善 • Hadoop/Stormなどの分散処理アプリの開発 • 趣味 • 苔 • ボルダリング Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 3
  4. 4. 目次 • 今日話すこと • 背景・動機・問題設定 • ストリーム処理 • ログ処理 • 機械学習 • 結果 • まとめ Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 4
  5. 5. 目次 • 今日話すこと • 背景・動機・問題設定 • ストリーム処理 • ログ処理 • 機械学習 • 結果 • まとめ Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 5
  6. 6. 今日話すこと • 広告配信にオンライン機械学習を試験的に採用 • KPIが数%向上 • 構築したシステムについて • ストリーム基盤でのログの処理 • ストリーム機械学習 Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 6
  7. 7. 目次 • 今日話すこと • 背景・動機・問題設定 • ストリーム処理 • ログ処理 • 機械学習 • 結果 • まとめ Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 7
  8. 8. 背景・動機 RecSys 2013 Tencent hourlyバッチ処理を リアルタイムに変更 → 34%のCTR改善 (資料が見つからなかったので 聴講者の写真で代用) Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 8 https://twitter.com/torbenbrodt/status/390284591266668544
  9. 9. 背景・動機 • Yahoo! JAPANのシステムに適用を検討したい • 特にリアルタイム性 • → 広告配信(YDN)のCTR予測 Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 9
  10. 10. 問題設定 - YDNについて 10 http://promotionalads.yahoo.co.jp/service/ydn/ Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  11. 11. 問題設定 - CTR予測 11 • YDNは「クリック課金」の課金モデル • 期待収益の高い広告を配信したい • 期待収益 = 広告クリック確率 × クリック単価 • クリック率(CTR: Click Through Rate)予測 • 現状バッチ処理で予測モデルを構築 Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 広告主が設定未知・状況で変化
  12. 12. 目次 • 今日話すこと • 背景・動機・問題設定 • ストリーム処理 • ログ処理 • 機械学習 • 結果 • まとめ Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 12
  13. 13. 再掲: 一般的なストリーム処理システム構成 Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 13 キューサーバ ストリーム処理 サービス ログ回収
  14. 14. 今回のシステム構成 Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 14 Kafka Storm 内製ログ回収基盤 配信サーバ クリック サーバ KVS モデル配布サーバ ログ転送経路 モデル転送経路 〜 〜 scpscp Web ページ 広告配信 リクエスト 広告 クリック
  15. 15. Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 15 Spout(クリックログ) Spout(配信ログ) Bolt(ログ結合) Bolt(学習) モデル Topology Stormクラスタ ディスクに書き出し ストリーム処理
  16. 16. ログ処理 - ログ結合 Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 16 • ログ結合 • オンラインでログ結合 • JavaのLinkedHashMapを利用 • クリックログと紐付いたものは正例とする • そうでないログはサンプリングした上で負例とする Bolt(ログ結合) Bolt(ログ結合) Spout(クリックログ) Spout(配信ログ) Bolt(ログ結合) ユニークIDでシャッフル
  17. 17. ログ処理 - 正例・負例の排出 - 課題 Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 17 1. 広告配信の有効期間=24時間のログ保持 – 有効ログを保持するとTBオーダーのメモリが必要 2. 負例の生成タイミング – クリックされないと確定するまで24時間かかる
  18. 18. ログ処理 - 正例を排出するための調査 Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 18 • 累積クリック数の遷移 • 配信後10分待てば95%を捕捉でき十分
  19. 19. 学習データの生成 - 正例・負例の排出 - 課題への対応 Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 19 1. 広告配信の有効期間=24時間のログ保持 – 有効ログを保持するとTBオーダーのメモリが必要 – → 10分程度の配信ログを保持すれば十分 2. 負例の生成タイミング – クリックされないと確定するまで24時間かかる – → 上記の保持期間を過ぎたものを負例候補とする
  20. 20. 目次 • 今日話すこと • 背景・動機・問題設定 • ストリーム処理 • ログ処理 • 機械学習 • 結果 • まとめ Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 20
  21. 21. 機械学習 - バッチとの比較 バッチ学習 ストリーム モデル Logistic Regression 学習手法 Linear SVM SGD ハイパーパラメータ調整 Grid Search AdaDelta等 Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 21 • ストリーム処理は逐次処理 • → 精度検証に課題
  22. 22. 目次 • 今日話すこと • 背景・動機・問題設定 • ストリーム処理 • ログ処理 • 機械学習 • 結果 • まとめ Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 22
  23. 23. 試験結果: KPI変化 Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 23 • 一部配信面・一部トラフィックでA/Bテスト • iCTR向上 = ユーザに合った広告の配信ができた • CPC低下 = 広告主視点ではコスト削減 • RPR向上 = 売上向上 KPI 意味 KPIリフト iCTR ≒クリック率 4.1% CPC クリック単価 -2.5% RPR 1リクエストの売上 1.5%
  24. 24. • 配布直後のKPIが増加傾向 Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 24 試験結果: モデル配布後のKPI変化 RPR 配布後の経過時間
  25. 25. 目次 • 今日話すこと • 背景・動機・問題設定 • ストリーム処理 • ログ処理 • 機械学習 • 結果 • まとめ Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 25
  26. 26. まとめ • CTR予測モデルの更新をリアルタイムに • ストリーム処理ならではの課題 • ログ結合、ハイパーパラメータ調整 • 試験結果としてはCTRが4%向上 • 更新間隔を短くすることでさらなる向上の可能性 Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 26
  27. 27. 質疑応答 Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 27
  28. 28. Appendix Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 28
  29. 29. 機械学習 - 素性とモデル • Logistic Regression Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 29 Web ページ ユーザ 配信 サーバ 広告配信 リクエスト • 性別: 男性 • 年代: 30代 • 興味カテゴリ: 車、料理 • ドメイン: yahoo.co.jp • 配信面ID: 12345 AD1 • 広告主ID: 123 • 広告ID: 1234567 • 過去実績: 0.1 𝑓 男性, 30代, 車, 料理, … = 𝑠𝑖𝑔𝑚𝑜𝑖𝑑 𝑤 𝑎 ∙ 男性 + 𝑤 𝑏 ∙ 30代 + 𝑤𝑐 ∙ 車 + ⋯
  30. 30. 機械学習 - 学習手法 Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 30 • SGD(確率的勾配降下法) • オンライン機会学習の学習手法 While(! 収束条件): 𝑓𝑜𝑟 𝑦𝑖, 𝑥𝑖 𝑖𝑛 𝑑𝑎𝑡𝑎: 𝑤𝑡+1 = 𝑤𝑡 − 𝜂 𝑡 𝛻𝑙 𝑦𝑖, 𝑤𝑡, 𝑥𝑖 学習率: 1回の勾配移動量を調整 基本は順次小さくする 例) 𝜂 𝑡+1 = 0.9 ∗ 𝜂 𝑡 勾配: wnの修正値
  31. 31. 機械学習 - ハイパーパラメータの調整 Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 31 While(! 収束条件): 𝑓𝑜𝑟 𝑦𝑖, 𝑥𝑖 𝑖𝑛 𝑑𝑎𝑡𝑎: 𝑤𝑡+1 = 𝑤𝑡 − 𝜂 𝑡 𝛻𝑙 𝑦𝑖, 𝑤𝑡, 𝑥𝑖 学習率: 1回の勾配移動量を調整 基本は順次小さくする 例) 𝜂 𝑡+1 = 0.9 ∗ 𝜂 𝑡 勾配: wnの修正値 終わらない • not オンライン、but ストリーム 学習率の自動調整 → AdaDelta等

×