DeepAds Advertising

アイデア

消費者が新しいデジタルチャネルの普及を歓迎する一方、今日のブランドは効果的なマーケティングキャンペーンを打つことがますます困難になっています。適切なオーディエンスに適切な時間と場所でリーチするには、豊富なデータをリアルタイムで活用して、その人との関連性が高い、効果的で測定可能な広告を配信する必要があります。私たちは、スマート広告時代の真っただ中に生きているといえるでしょう。マーケティング担当者が利用できる顧客データが増えたことを受けて、機械学習が応用される場面も各種業界で驚くほど増加しています。DeepLens は、こうした 2 つの傾向を重ね合わせる絶好の機会を提供してくれるデバイスです。マーケティング担当者は、動画から得られるリアルタイムのデータに基づき、より効果的な広告のターゲティングが可能になります。ターゲティングされた広告の効果を追跡していけば、ブランドは自社のバリューチェーンを構成する多くの部分でメリットを生み出すことができるでしょう。

この機会を活用すべく作成されたプラットフォームが DeepAds です。

機能

DeepAds は、判別した特徴と学習した特徴のセットに基づく、リアルタイムの消費者ターゲティングを可能にする広告プラットフォームです。DeepLens の視野内にいる人物、そして、その人物から見て取れる特徴に応じて、DeepAds が最も関連性の高い広告を表示します。

現在実装している DeepAds では、性別に基づいて消費者を区別しているため、女性と男性で異なる商品広告のバリエーションが表示されます。性別の固定観念化をどのように防いでいるかについては、セクション 7 で詳しく触れています。

手法

DeepLens を受け取った後、私たちは DeepLens の基本機能を理解するために、簡単な製品テストを実施しました。いくつかの簡単なステップのみで、DeepLens で深層学習モデルをローカルで実行し、カメラが何をとらえるかを把握することができました。次に、DeepLens の深層学習機能を使えばどのような問題を解決できるかについて、チーム内で意見を交換しました。さまざまな用途が考えられますが、私たちが最も惹き付けられたアイデアは、顔認識技術を利用して、広告のエンゲージメントとカスタマーエクスペリエンスを改善することでした。そして、このアイデアを DeepAds と名付けました。

DeepLens を広告板やスクリーンの前に設置し、顔の特徴を抽出するために顔検出機能とカスタム深層学習モデルを実行します。それにより、マーケティング担当者は、自社のオーディエンスをより深く理解し、自社の広告が特定のオーディエンスグループに対してどのように作用しているかを把握できるようになります。消費者の特徴を識別するのに役立つ、深層学習モデルにフィード可能な膨大な特徴のリストが存在しています。限られた時間の中でプロジェクトを達成し、DeepAds の効果を実証できるように、出力する分類方式として性別を選択しました。

DeepAds には、主要なコンポーネントとして以下が含まれます。

  1. Greengrass を使用した開発フレームワーク
  2. Amazon SageMaker を使用した深層学習モジュール
  3. AWS Lambda を使用した広告コントローラー

各コンポーネントについて、詳しく説明します。

1.開発フレームワーク: AWS DeepLens ドキュメントの指示に従い、AWS Greengrass サービスを使用して Lambda 関数とモデルをデバイスにデプロイしました。その後、開発プロセスを加速させるために、Lambda 関数のローカルな開発環境をセットアップしました。

2.深層学習モジュール: はじめに、性別をラベル付けした 2,000 枚の写真を含むトレーニングデータを準備し、AWS S3 にアップロードしました。それから、MXNet RecordIO を使用してフォーマット化を行い、SageMaker で性別分類モデルのトレーニングを実施しました。性別認識のトレーニング時間を短縮するために小規模なデータセットを使用しましたが、それにより認識精度が低下している可能性もあります。研究によると、より大規模なデータセットとよく調整されたモデルを使用すれば、性別認識の精度は 90%* に届くはずです。DeepLens へのモデルのロードには、Python モジュール "awscam" を使用しました。Intel DeepLearning Deployment Toolkit の最新バージョンが DeepLens デバイスにインストールされており、MXNet 性別モデルを最適化するために使用されています。

3.広告コントローラー: DeepAds のコンセプトを証明し、広告のターゲティング機能を実証するために、2 種類のプロジェクト動画出力ストリームを定義しました。1 つは "広告スクリーン"、もう 1 つはライブストリームの "分析スクリーン" です。分析スクリーンでは、検出した情報が入力動画ストリームのトップに描画されます。現時点では、検出した顔を示す境界ボックス、オーディエンスの人数、潜在的な特徴のリストが描画されます。将来的には、リアルタイムの分析レポートを生成することも可能になります。広告スクリーンには、オーディエンスに基づいてターゲティングされた広告が表示されます。オーディエンスが女性、男性、そしてグループである場合を対象に、それぞれ異なる 3 つの広告画像を作成しました。DeepLens の前にいるオーディエンスが変わると、広告スクリーンには関連性の高い画像が表示されます。現在はプロジェクト動画出力ストリームを再利用していますが、AWS IoT で接続された別のデバイスまたはスクリーンにすることも可能です。

課題

  1. 複雑なタスクの処理に関する解説。 DeepLens と SageMaker の両方がまだ初期段階にあることを考えると、主な課題の 1 つとしてドキュメントとチュートリアルの不足が挙げられます。デバイスをセットアップし、デフォルトのテンプレートモデルを使用することは比較的簡単でした。しかし、カスタムモデルを使い、動画ストリームを修正しようとしたところ、そのための詳しい情報がなかなか手に入らないことがわかりました。
  2. 問題の修正方法の発見。 DeepLens フォーラムが役立つこともあります。しかし、十分に確立された QA は存在しておらず、トラブルシューティングに役立つフォーラムのコミュニティは非常に小規模にすぎません。結果として、このプロジェクト中、トラブルシューティングに予想外の長い時間を費やすことになりました。
  3. Intel DeepLearning デプロイメントツールキットでの独自モデルの構築。 SageMaker でトレーニングされたモデルを Intel DeepLearning デプロイメントツールキットでモデル変換すると必ず失敗します。そのため、独自モデルをテストすることは困難です。
  4. 独自プログラムのデバッグとデプロイ。 "awscam" と呼ばれる重要なライブラリは DeepLens 上でしか利用できないため、Lambda 関数のデバッグが困難です。デバッグを可能にするには、デバイス上でローカルに開発環境をセットアップするか、長い開発プロセスが完了するまで待つ必要があります。
    DeepLens デバイスのハードウェア容量の問題。DeepLens では、プロジェクトストリームへの画像の重ね合わせ処理が困難でした。そのため、動画ストリームのトップに広告画像をどのように表示するかについて、当初のコンセプトの再検討を迫られました。

成果

  • 業界で役立つ実現可能なすばらしいアイデアを形にできたこと
  • カスタムの深層学習モデルを SageMaker でトレーニングできたこと
  • OpenCV を使用してプロジェクト動画出力ストリームを修正できたこと

学んだこと

  • DeepLens の機能
  • SageMaker を使用してカスタムモデルをトレーニングする方法、および DeepLens 上でトレーニングしたモデルを使用する方法
  • DeepLens プラットフォームでのソフトウェアの開発方法 

次のステップ

まったく新しい広告システム
機械学習は、今後のマーケティング戦略を推進する基本的な原動力になっていくものと確信しています。この潮流の中で、ブランドが遅れを取らないためには、ますます複雑化するデータセットからインサイトを引き出す必要があります。DeepAds には、ここから先に進むための 2 つの主要な開発領域があります。

1.分類機能の発展: DeepAds の現在の実装形態では、消費者の性別を区別しています。しかし、今後に向け検討している消費者の分類手法はまだまだあります。また、性別についても、以下の点で分類機能を強化できるでしょう。

  • ロケーション
  • 服装
  • 顔の特徴 (髭、髪形、肌の色など)
  • 雰囲気
  • 身長
  • 動作
  • 年齢
  • 活発さ


2.固定観念化の防止: DeepAds の次の開発フェーズで重要な部分は、長く続いてきた固定観念に対するセーフガードの実装です。このことは、安全かつ適切な方法で消費者に価値をもたらすプラットフォームを構築するための基本です。

この目的のためには、以下のような機能を実装することができます。

  • モデルが高精度で分類できなかった場合の中立的な広告の表示について、より堅牢なルールを作成する
  • 分類に関係なく、スケジュールされた時点において必須で実施される広告の A/B テストを実装する
  • モデルが測定可能な特徴として、雰囲気に関する重み付けを重視する。表示中の広告に対してどのような反応が取られたかを評価し、その評価を基に今後の広告内容を調整する。

使用したもの

Python
アマゾン ウェブ サービス
DeepLens
SageMaker
MXNet
OpenCV
SageMaker の活用法
機械学習
Lambda

試してみる