Upgrade to Pro — share decks privately, control downloads, hide ads and more …

研究開発組織のエンジニアによる画像系プロダクトサポート

 研究開発組織のエンジニアによる画像系プロダクトサポート

2021年10月8日のこちらのイベントでの発表資料です

Discovery DataScience Meet up (DsDS) #2
https://scramble.connpass.com/event/201414/

4f43f9f4dc4cc2897841877e8f7b032f?s=128

Kazuhiro Ota

October 08, 2021
Tweet

Transcript

  1. 研究開発組織のエンジニアによる 画像系プロダクトサポート 株式会社サイバーエージェント AI Lab 大田 和寛 Discovery DataScience Meet

    up (DsDS) #2 2021/10/08 1
  2. 自己紹介 大田 和寛 @ciela • 医療画像処理で修士取得 ◦ 動的計画法に基づく画素マッチングを用いた心臓三尖弁3Dモデルの半自動構築 ◦ 機械学習は名前は聞いたことあったものの、OpenCVのAdaBoost顔検出で遊ぶ程度

    • 2011年 サイバーエージェント入社 ◦ 約6年間サーバサイドエンジニアとしてウェブサービス開発・ミドルウェア運用 • 2017年 AI Lab異動 ◦ 機械学習およびそれを用いたコンピュータビジョンについて勉強開始 ◦ 研究したりエンジニアリングで研究者をサポートしたり 2
  3. 所属組織と自分自身の役割 3

  4. サイバーエージェント AI Lab デジタルマーケティングに関わるAI技術の研究開発組織 • 機械学習 • 計量経済学 • コンピュータビジョン

    • コンピュータグラフィックス • 自然言語処理 • 音声合成・音声認識 • HCI • etc. 2021年10月現在34名所属 https://cyberagent.ai/ailab/ 4
  5. サイバーエージェント AI Lab プロダクトへの研究成果還元 リサーチサイエンティストが研究に集中でき る環境の構築 デジタルマーケティング領域における課題解決 のための研究、論文執筆、国際会議への投稿 5 リサーチサイエンティスト

    リサーチエンジニア ※あくまで役割に名前を付けている程度で、リサーチサイエンティストがプロダクト向けエンジニア リングまで行ったり、リサーチエンジニアが論文書いて投稿するケースもたくさんあります
  6. AI Lab リサーチエンジニア 研究成果最大化のための各種エンジニアリングを担当 • 提案手法の実装・比較手法のベンチマーク • 研究用データセット整備 • 実験コードの清書・公開・デモサービス作成

    • AMTなどでのプログラマブルなクラウドソーシング • 社内プロダクトサポート • etc. 6
  7. AI Lab リサーチエンジニア 研究成果最大化のための各種エンジニアリングを担当 • 提案手法の実装・比較手法のベンチマーク • 研究用データセット整備 • 実験コードの清書・公開・デモサービス作成

    • AMTなどでのプログラマブルなクラウドソーシング • 社内プロダクトサポート • etc. 今日のお話 7
  8. 社内プロダクトサポート業 学術研究とプロダクト開発それぞれの営みについて理解している人間による、 AI Labリサーチサイエンティストとプロダクトメンバーの橋渡し 社内プロダクト 8 • ML技術導入サポート • MLOps環境構築

    • モデルプロトタイプ実装提供
  9. プロダクト所属かラボ所属か 9 プロダクトに所属していても同じような働きはできるはず ラボから関わる理由は? プロダクト所有のシステム・採 用技術に縛られない働き方 研究者と協力しやすい環境 様々なプロダクトに接すること で技術応用の知見を広げられる プロダクトの状況が把握しづら

    い… サポート終了後、モデル運用に ついて心配になったり… ただ、裏を返せば… 後ほど詳しくお話します
  10. 画像関連のプロダクトサポート事例 10

  11. 社内プロダクトにて取り扱われている画像 ウェブサービス画像 広告クリエイティブ画像 予め决められた広告枠に配信される、広告主の商 品やサービスの訴求のためのキャンペーン画像 ユーザからアップロードされた画像やイン フォグラフィックなど、ウェブサイトに表示 されるコンテンツ画像 11

  12. 画像変換CDN 社内基盤システム 画質・圧縮率トレードオフ 推定手法の導入 12

  13. 画像変換機能付きContent Delivery Network(CDN) • インターネットにおける画像や動画などメディアデータの効率的な配信とキャッシュ • 画像変換機能を有した CDN (Cloudinaryなど) が多数提供されており、弊社も社内基盤と

    して各ウェブサービス向けの画像変換CDNを運用中 ◦ オンラインで画像編集を行いつつファイル配信可能 ◦ 解像度変更 ◦ ファイルサイズ圧縮 ◦ ファイルフォーマットの変換 1920x1272 245 KB JPG 1920x1272, 272 KB, JPG 1280x848 189 KB JPG 1280x848 145 KB WebP ファイルサイズ圧縮 (画質クオリティ低下を行う) 解像度変更 解像度・フォーマット変更 13
  14. 画像変換CDNの利用者(サービス提供者など)からすると • 画像の表示先に適した変換を施して配信することが求められる ◦ 配信先はウェブサイト・インターネット広告・モバイルデバイスなど多岐に渡る ◦ パラメータによって画像がどう変換されるか確認し配信先にとって最適な変換を決めたいが、 手元の画像変換ツールなどで実際に変換を試すまでわからない ◦ CDNにアップされる大量の画像に対して様々な変換を試すのは現実的ではない

    1920x1272, 272 KB, JPG ? 14 ファイルサイズを 150KB以下に抑える 変換パラメータは? 実際に変換をかけずともエンコーダパラメータ による変換後画像への影響を予測したい 最低画質を保証する 変換パラメータは? 画像変換
  15. 既存研究: 生画像の画像圧縮予測 Hand-craftedな画像特徴量およびJPEG・WebP エンコー ダの圧縮クオリティ値を入力とした画質・ファイルサイズ 予測モデルを提案 未処理の生画像に特化したアプローチのため、 CDNのよ うに大量で様々な圧縮済みデジタル画像を入力として取り 扱う仕組みで使うのは難しい…

    他にもDCT係数テーブルを用いたアプローチなども提案さ れているが、対応フォーマットはもちろんJPEGのみ… Predicting and Optimizing Image Compression [Murashko et al, MM2016] 15
  16. 画質・圧縮率トレードオフ関係の推定モデル CDNで利用されている画像変換ツールによる画像圧縮時の画質と圧縮率のトレードオフ曲線を直 接推定する手法を考案、プロトタイプを実装し社内の画像変換CDN基盤へ提供 実際の画像変化を目視することはできないものの、CDNにおいて画像圧縮パラメータ決定補助に なり得る トレードオフ関係推定CNN 16 変換ツールでクオリティパラメータを動かしつつ 圧縮した際の変換先フォーマットごとの画質・圧 縮率のトレードオフ

    JPEG/PNG/WebPなど様々なフォー マットのデジタル画像
  17. CDNにおける利用例 各フォーマットごとに利用者側で定める最低許容画 質を下回らない圧縮パラメータを求めることができ る(ここでは画質をSSIMとしたがNIMAや独自画質 指標値など値域のある連続値で画質が取れれば何で もOK) WebP is better than

    JPEG 圧縮率 90% JPEG is slightly better than WebP 指定された圧縮率(ファイルサイズ)を保ったう えでより画質の良いフォーマットを選択して配信 することができる 圧縮率 30% 17 最低画質 0.8 WebP Q=2 JPEG Q=34
  18. 論文化と評価 調べた限り画像変換による画質・圧縮率の トレードオフを直接推定する研究は見当た らなかったため、論文化して国内会議の MIRU 2019に投稿 査読コメント・現地での反応 • トレードオフをCNNで直接推定するというのは 新しい取り組みで興味深い

    • 現実に即した問題を扱っているのが評価できる • 圧縮のみ?リサイズは? • 直接変換かけちゃったほうが正確だし、早い ケースもあるのでは? 18
  19. クリエイティブ 製作支援システム Photoshopデータからの素材 画像の抽出と広告効果の疑似 ラベル付きデータセット構築 環境の整備 19

  20. 20 https://www.cyberagent.co.jp/news/detail/id=24647

  21. 素材画像の効果予測モデルとその精度評価 極予測AIでは広告バナーの製作を担っているクリエイターに対して、製作支援としてストックフォトサービスか ら購入した素材画像をサジェストしている(サジェストの基準はその素材画像を使って製作した際に想定される 広告効果の高さ)     素材画像の効果予測モデルも広告バナー画像で学習してあり、学習データと実際に予測する画像データのドメイ ンの不一致が出力に影響を与えていないか調べることになったが… 21 広告効果GT:

    ? 素材画像効果予測モデル 広告効果: Y 素材画像 精度が測れない… まずは素材画像に対する予測精度を確かめたいが、購入した素 材画像には広告効果に関するラベルなんて存在しない… 配信設定
  22. 広告バナーの製作フローに目を向けてみると 弊社のクリエイティブ製作陣はPhotoshopでバナー画像を製作し(PSD)そこから静止画と して広告バナーを書き出している 22 広告バナー製作中のPhotoshop画面

  23. PSDには素材画像が埋め込まれているケースが多い PSDをパースして含まれているレイヤをツリー構造に可視化してみると… 23

  24. PSDには素材画像が埋め込まれているケースが多い 製作に利用された写真などの素材画像が含まれていることがわかる 24

  25. PSDには素材画像が埋め込まれているケースが多い 製作に利用された写真などの素材画像が含まれていることがわかる 25 これら素材画像はJPEGやPNGの画像 ファイルとして再レンダリング可能 これをバナー広告配信後に得られる広 告効果と紐付けることが出来れば…

  26. PSDを介して広告効果の実績値を素材画像に付与 バナー画像の配信によって得られる広告効果の実績値を、PSDから抽出した素材画像 に紐付けることで広告効果の擬似ラベルを有する素材画像データセットを構築 26 書き出し元の PSDを参照 広告として配信 広告効果GT: Y 素材画像抽出

    広告効果の擬似ラベル付き 素材画像データセット 各素材画像に対して 擬似ラベリング Y Y
  27. データセット整備用のDataflowを極予測AIに実装 この擬似ラベル付きデータセットを構築する下記フローを極予測AIのGCP上にDataflowパイプラインとし て実装し、素材画像に対するモデルの予測精度評価を行うためのデータ環境を整備 1. バナー画像に対応するPSDをロード 2. PSDをパースして素材画像を抽出、GCSに保存 3. バナー画像の広告効果実績値を各素材画像に対応付けてBigQueryに格納 27

    広告バナーID 素材画像ファイル 広告効果実績値 img0001 img0001_a.jpg 3.512 img0001 img0001_b.png 3.512 img0001 img0001_c.jpg 3.512 img0002 img0002_a.jpg 5.468 img0002 img0002_b.png 5.468 データセットのBigQueryテーブルサンプル(値はダミーです) 課題・懸念 • PSDからの素材抽出方法 ◦ 木構造となっているレイヤ構造を探索する際の最大深度 ◦ 非可視レイヤを含めるか否か ◦ 素材として抽出するレイヤの種類(テキストやレイヤ効 果も含めるかどうか) • 広告効果の紐付け方 ◦ 全ての素材画像にそのままの実績値を等しく付与するの は少し安直では? ◦ バナーにおける素材画像の可視面積の割合などで重み付 けするとか…
  28. プロダクトサポートで感じる難点 28

  29. システムに最適化されているモデル実装 29

  30. システムに最適化されているモデル実装 例えば、バナー広告クリック率予測の ためのクリエイティブ画像と広告配信 設定を入力としたマルチモーダルな ニューラルネットワーク 研究者が実験用に実装した場合、ロー カルマシン上のデータセットに対する 学習・推論コードをPyTorchなどで記 述して終わりだが… 30

    クリエイティブ 画像 CNN MLP 配信設定 クリック率
  31. クリエイティブ 画像 CNN MLP 配信設定 クリック率 システムに最適化されているモデル実装 システムに組み込まれていると… 31 画像特徴は事前に計算してお

    きキャッシュ! 各カラムに対するエンコーダ の実行はパイプラインで! TFRecordで書き出してね! 画像データは全てGCS・S3 上に保存! BigQueryからフェッチ! その他、学習ワークフローの整備、推論APIの更新 判断など、MLOps意識の高いプロダクトほどモデ ルの構成要素が各所に分散していることが多い
  32. システムに最適化されているモデル実装 システムに組み込まれているモデルの出力の分布分析や追加実験についてサポートすることに なったものの、プロダクトがローカル実験用の実装を保持していない場合… A. ローカルにデータを落としモデル部分のみ抽出実装して調査する ◦ 調査・分析はしやすいが、モデルの複雑度によっては実装の手間がかかる上にバグ混入の恐れ ◦ 前処理やモデル全体に関わる設定など細かいところに手を入れやすい ◦

    データ取得タイミングによっては最新データとの分布乖離の懸念 B. Dev環境などの学習ワークフローを叩かせてもらいシステム実装のまま調査する ◦ 常にプロダクトによる最新実装および最新データを利用可能だが、まずシステム全体について把握する必要 ◦ 特徴量キャッシュ部分の処理に手を入れる度にキャッシュ全体更新 ◦ プロダクト外の人間が色々いじることになるので何となく気を使う MLOpsが裏目に出てしまうが、かといってプロダクトでMLOpsを諦めるわけにはいかない プロダクトにモデルの実験用実装も一緒にメンテしてもらえたらありがたいが、研究を行わない メンバーにとっては負担が大きそう 32
  33. プロトタイプのままリリースされたモデル 33

  34. プロトタイプのままリリースされたモデル サポート内容がモデル提案とそのプロトタイプ実装を提供することだった場合のお話 (プロトタイプ=推論用コード+実行環境Dockerfile+モデルの重みファイル) 34 プロダクト + 学習済み重みファイル あくまでプロトタイプでして 運用に適した形になっている かはわかりません、別FWや各

    MLOpsサービスの検討もして みてください 了解です!
  35. プロトタイプのままリリースされたモデル 日は流れ、以前提供したプロトタイプがその後どうシステムに導入されたのか尋ねると… 35 プロダクト + 学習済み重みファイル そういえばあれって今ど うなりました?AWSです しSageMakerとか使って る感じですか?

    頂いたDockerコンテナその ままAPIとしてEC2で動かし ちゃいました…リリース早 めにしちゃいたくて… なるほど…(問題ないな らいいけど、今後の運用 大丈夫なんだろうか…) • モデルのServing方式 ◦ リアルタイムエンドポイント? ◦ バッチ推論? • フレームワーク ◦ PyTorchのままでOK? ◦ JIT化は試してみた? • 再学習のタイミングは?
  36. プロトタイプのままリリースされたモデル MLOpsする人が誰も居ないがリリース目標も迫っているというプロダクト状況… サポートしたのはいいが、プロトタイプの想定外の利用でその後のことが不安になることも とはいえ、ラボの役割がプロトタイプの提供までというのは互いの立場の線引きがしやすいサ ポート形態ということもあり悩ましい… 36 プロダクト プロダクトのインフラ事情などに関わらず、ドキュ メントやテストコードが充実した必要最低限の機能 の実装を提供できればOK

    外部の人間の手を入れることなく、プロダクトに責 任を持つメンバーのみでシステムを運用できる   プロトタイプのリファレンス実装をどの言語・FW でどうシステム化していくかも自由
  37. より良いプロダクトサポートのために 特にカッコいい解決策は思いついていません…これまで行ってきたサポートのレポートやノウハ ウの蓄積・共有を泥臭く頑張っていこうと考えています 様々なプロダクトに関わる我々だからこそサポートで得た知見を他プロダクトへのサポートでも 活かしていけるはず 37 プロダクトA プロダクトB プロダクトC プロダクトD

  38. 広告クリエイティブやウェブへ の応用として参考にしていきた い最近の研究紹介 38

  39. 39 A Hybrid Bandit Model with Visual Priors for Creative

    Ranking in Display Advertising [Wang et al, WWW21] 表示クリエイティブ選定のためのBanditに加えて画像特 徴を活用するDeepとのハイブリッドモデル VisualTextRank: Unsupervised Graph-based Content Extraction for Automating Ad Text to Image Search [Mishra et al, KDD21] 広告テキストをもとに明示的な検索ワードの入力を省き つつ素材画像を検索 Adapting User Interfaces with Model-based Reinforcement Learning [Todi et al, CHI21] 急激なデザイン変化でユーザを戸惑わせないように強化 学習を用いて適応的にユーザインターフェイスを更新
  40. おしまい AI Labリサーチエンジニアの採用ルートはまだありませんが、もし下記のような働き方について興 味ある方いればお気軽に情報交換させてください • アカデミック・プロダクト両方に関わりたい • 研究成果の最大化に貢献したい ちなみにリサーチサイエンティストや研究インターン、プロダクト配属のAI/MLエンジニア・デー タサイエンティストは鋭意採用中です

    プロダクトではなく研究者に対するサポート事例もどこかで話せるといいな 40 https://cyberagent.ai/ailab/careers/