【レポート】AWS Summit Tokyo 2019:Amazon SageMaker で好みのプロファイリングを爆速でつくった話 #AWSSummit

当エントリでは2019年06月13日に行われた『Amazon SageMaker で好みのプロファイリングを爆速でつくった話』に関する内容をレポートしたいと思います。

セッション概要

当セッションの登壇者及び概要は以下の通りです。

スピーカー:
株式会社エアークローゼット
プロダクトグループ
執⾏役員CTO兼プロダクトグループ⻑
辻 亮佑
ユーザーサイドアーキテクトチームリーダー
松本 裕太

セッション概要:
エアークローゼットは洋服のレンタルを通じてお客様に新しいお洋服とのワクワクする出会いを届けている。 その中でもお客様の好みの理解は難易度が⾼く時間を要する。 そこで今回 Amazon SageMaker を利⽤することで、爆速でお客様の好みのをプロファイリングをすることによってスタイリング精度、速度向上に貢献した。

セッションレポート

以下、セッションレポートです。

会社およびサービス紹介

(辻様より)

airClosetにおける機械学習に関する取り組み

(松本様より)

  • 自己紹介
    • エンジニアチーム(兼任)
      • フロントメインでインフラ、サーバサイドも扱う
    • データサイエンスチーム(兼任)
      • 経営層と意思疎通を行う為に社長室所属に
    • React Native、統計学が得意
  • 既に機械学習を取り入れているサービス
    • 退会検知
      • 退会しそうなお客様を通知
      • 行動→モデル→警告
      • Doc2Vecを利用
      • precision、recallの塩梅が難しい
      • 70%程度の精度
    • 返却数推定
      • 7日後の返却数を推定し、倉庫内の人員配置を行う
      • アイテム返却→倉庫対応
      • 負の二項回帰、stepwise法
      • 誤差12%以内に収まった
      • GWや大雨など突発的な増減があった場合は外れる
      • LSTM、状態空間モデルも試す予定
  • airClosetにおける機械学習の取り組み
    • スタイリングの将来的な課題
      • お客様の増加に対してスタイリストの確保が難しい
    • ユーザープロファイリング
      • スタイリングの効率化
      • スタイリングの質の担保
      • お客様理解→スタイリング
      • AIによってお客様プロファイリングを効率化したい
    • スタイリストによるスタイリング
      • お客様にとって似合う服
      • お客様の現在の趣向
      • お客様がなりたい自分
      • →パーソナルスタイリング
    • お客様に似合う服をAIでレコメンドしたい
      • 似合うとは?
        • ドメイン知識の習得
          • パーソナルスタイリストの作田麻衣子さん
            • イメージコンサルタント(米国大統領選でも使われている)
            • 心理セラピスト
            • airClosetスーパーバイザー
              • 4年間で1万件のスタイリング
          • ヒアリングの結果
            • 服には様々なベクトルがある
            • お客様にも同様のベクトルがある
            • これらによって似合うが決まる
            • 顔、目、骨格など
      • やりたいこと
        • ユーザ情報+写真
        • スタイリングが決まる
          • 甘辛
          • モダ・トラ
          • 色味
      • アノテーションで苦戦
        • 作業できる人が限られる(実質2人)
        • アノテーション作業専用のの独自UIを作成(改修3回ほど)
        • とにかく時間がかかる(1日でも50件)
        • ようやく700件のデータが集まった
      • 機械学習
        • 開発
          • PyCharmで開発
          • data scientific mode
          • 5 epochで回す
        • 学習
          • SageMaker便利
          • gpuインスタンスを使って高速学習
        • 検証→開発→学習
        • 100回
      • SageMaker
        • 結果としてはかなり助けられた
        • jupyterノートブック→学習インスタンス→S3
        • entry_pointのデバッグがなかなかつらい(やり直しに時間がかかる)
        • AWSサポート便利
          • PyTorchのサポートバージョンなどでハマったところ助けられた
        • 移行ハンズオンとかも良さそう
      • モデルの推移
        • v1
          • OpenCVをつかって、顔認識させ、顔面期のパスを取得
          • 損失関数が全然下がらない、推定位置だいたい0近辺
        • v2
          • 顔パーツの比率に着目し、新たな指標を試す
          • ほとんど学習が進まなかった
          • 指標を作るのはあきらめた
        • v3
          • Resnet18を組み込んだモデル
          • Fine Tuning
          • 過学習になって落ちてるだけ
          • 教師データに対してMSEが高すぎる
        • v4
          • Resnet152
          • バッチ正則化も挟んだ
          • MSEが1以下まで低下
          • 実測値とのズレ、大きくハズレてしまうパターンがある
      • 実測値とのズレの原因
        • 写真の質
        • 複数人写っている
        • 照明
        • 顔の向き
        • 画素数
        • →統一されたフォーマットである必要がある
      • 課題
        • データ不足
          • テストデータと教師データ
          • データ数が足りない
        • 写真のフォーマットを固定したい
          • アプリの中でフォーマットする
          • 動的に顔認識させて正面かつ顔認識できる状態
      • 展望
        • お客様のプロファイル分析だけでなく、似合うコーディネートの提案までをAIでできるところまでやっていく予定

まとめ

サービス改善の為に機械学習がどのように活用されているのか、AWS SageMakerの利用ポイントがよくわかるセッションでした。まだまだ課題もある中で、エンジニアがそれを楽しみ、改善していることが何よりも素晴らしいと感じました。引き続き、現場からのレポートを続けたいと思います。