【レポート】AWSの機械学習をGoogle DoubleClickキャンペーンマネージャのデータの解析/最適化に活用する方法 #reinvent #ATC302

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Las Vegas, NVで絶賛開催中のre:Invent 2017にて、セッション番号ATC302「How to leverage AWS Machine Learning Services to Analyze and Optimize your Google DoubleClick Campaign Manager Data at Scale」を聴講してきたのでレポートします。

登壇者

  • Vijay Sathish - Solution Architect
  • Shashi Prabhakar - Solutions Architect, Amazon Web Services
  • Abraham Bagherjeiran - Manager, Advertising Science

概要

このセッションでは、とあるアドテック企業が、Google DoubleClickキャンペーンマネージャのデータを、スケールさせながら、Glue, Athena, Quicksight, EMR等のAWSのサービスを利用して、解析する方法を解説します。収益を最大化させることに機械学習がどのようにして役立つことがわかるよう、ライブデモを行いました。

内容

  • 機械学習はデジタル広告のコア。しかし下記の課題が。
    • データ処理は時間がかかる
    • スケールするインフラを構築するのは挑戦
    • 機械学習の専門家は不足している
  • AWSはこのすべてのプロセスを可能にする
  • 主な内容
    • AWSによる機械学習ワークフローの解説
    • サンプル機械学習ワークフローのデモ
    • 顧客事例: Amazon A9チームによるlookalikeモデリングの概観
  • データセットとワークフロー
    • Google DoubleClickキャンペーンマネージャのデータ
      • アクティビティとインプレッション
    • データ変換
      • csv.gz→parquetフォーマットへ
  • 機械学習のワークフロー
    • フィーチャーデータの作成
    • ユーザコンバージョンを予測するよう訓練する
    • モデルの評価と試行
  • SQLクエリによるデータの探索と可視化
    • S3 → Glue → Athena → Quicksight

デモ

  • GlueにCrawlerを追加
    • データソースはS3
    • スケジュールを設定
  • ジョブを追加
    • コラムの対応を設定
    • pysparkによるコード
  • Athenaによるクエリ
  • Quicksightによるグラフ化

以上をライブでデモしていました。

Data Feature Engineering

今度は同じデータを機械学習に適用する、EMRとSparkを使ったフロー構築の解説です。こちらの構築例では機械学習のところで、Jupyter notebookを使用していました。

  • CloudFormationで環境構築
  • 機械学習のプロセスのコードを乗せたノートブック(ipynbファイル)を開く
  • 以下のプロセスを順次実行
    • 訓練データのロード
    • 特徴の抽出
    • 訓練データとテストの分割
    • ラベル分布の分析
      • グラフ化にはmatplotlibを使用
    • モデルの訓練
    • 機械学習パイプラインのセットアップ
    • 予測
    • モデル性能の見積もり
    • プロット
      • Receiver Operating Characteristic (ROC)
      • Precision-Recall (PR) curve

話者が代わって、どの広告をユーザに提示するかという問題とは、どのようなものかについての解説です。概念を説明するための数式が出てきました。

  • 広告ターゲティングの種別
    • ステート
    • 振る舞い
    • コンテキスト
    • 予測
  • ターゲット予測
    • リーチするユーザとターゲットユーザ
    • これが重なるように
  • Lookalikeモデリング=ターゲット予測
    • 類似度(Similarity)
    • 分類(Classification)
  •  分類ベースのlookalike
    • ユーザ
    • 期間
    • 確率
    • 閾値
  • アーキテクチャ

  • 観測期間(Attribution Window)
    • 訓練期間
    • イベント期間
    • イベントと訓練の間のデータ処理中のブラインド
  • 分類モデル:分類ラベルの付与
    • Positive:ユーザにアクティビティが一度でもあった
    • Negative: 無かった
  • コード例
    • ラベル付与+訓練モデル
  • 評価
    • ユーザへのリーチ vs ユーザがアクティビティのある確率
  • 作業を始める前に
    • 十分なデータがあるか
    • ブラウザやOSが何種類あるか
    • サイトや広告が何種類あるか
    • 普遍的メディアならびに広いカバレッジのイベント属性を用いること
  • AWSはlookalikeモデリングに役立つ
    • Amazon S3
    • Amazon EMR
    • AWS Data Pipeline
  • より良い結果をもたらす
    • Amazon EC2
    • Amazon Kinesis
    • Amazon SNS
    • Amazon DynamoDB
  • 始めるにあたってのガイド

感想

アドテックにはあまり馴染みがないのですが、どのようにデータが取り扱われているかをうかがい知ることができて興味深かったです。個人的にもJupyter notebook推しなので、これが出てきてやはり、と意を強くしました。

参考

  • (スライドが公開されたら追記します)