【レポート】AWSの機械学習サービスで広がる世界 #reinvent #aim251-g

機械学習に興味はあるけど、自分の業務でどう役にたつのかわからないという方必見のセッションです

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

こんにちは、おおはしりきたけです。

本記事は、AWS re:Invent 2020のセッションレポートとなります。 対象セッションは、12/1(火)の14:00-14:20(JST)配信の「AWSの機械学習サービスで広がる世界」をレポートします。 セッションのサマリーをまとめましたので御覧ください。

AWS re:Invent 2020の公式サイト

AWS re:Invent 2020の公式サイトはこちら↓です。

セッション概要

スピーカー

  • AWS 機械学習ソリューションアーキテクト 大渕 麻莉 氏

概要

AWSが提供する、画像分析やテキスト分析をはじめとした機械学習サービスをご紹介します。API をたたくだけで簡単に使えるものから、ご自分で機械学習モデルを開発する際に便利にご利用いただけるサービスまで取りそろえています。「これ使ってみたい!」というサービスがいくつ見つかるでしょうか?

セッションレポート

AWSのMLスタック

AWSは多くの機械学習サービスを提供している、以下の3つのレイヤーに分けている。本セッションはAIサービスとMLサービスを中心に紹介

AWSのAIサービスとMLサービスの特徴

  • AIサービス
    • すぐに使えるモデルをAPIから呼び出して利用
    • ユーザーのデータで独自のモデルを作成して利用
  • MLサービス
    • ユーザーのデータとビルトインアルゴリズムで独自のモデルを作成して利用
    • ユーザーのデータとユーザーのソースコードで独自のモデルを作成して利用
  • MLサービスに近くなるほど機械学習の知識が必要になり、カスタマイズ性も高くなる

機械学習導入目的の主要なタイプ

  • 機械学習の主な導入目的は主に以下の2点
    • 手作業の自動化
    • 蓄積されたデータの活用して新しい価値を生む

機械学習と人間の役割分担

  • 機械学習は、手作業の自動化やデータの活用に役立つが、必ずしも機械学習が出力した結果が最終出力として使えるわけではないという注意点がある
  • 後処理が必要になる
    • 機械学習が出力した確信度をしきい値でフィルタする
    • 複数の機械学習の結果を統合する
    • 人間が機械学習の結果をレビューする

小売店舗のユースケース

手作業の自動化:Amazon Rekognition

  • ユースケースとしては以下
    • 来店顧客のデモグラフィック(性別、年齢など)
    • 来店顧客数のカウント
    • 顧客の識別(VIP対応とか)
    • 顧客の動線の抽出
  • Amazon Rekognitionでできること
    • 画像や動画に対して物体認識や顔の分析を行うためのサービス
    • 顔の検索と認証、動線の検出を利用すると良い
    • 顔の位置だけではなく、表情や年齢層なども分析することができる
    • 顔の検索と認証の機能を使うと、予め機能をつかって顔情報のデータベースを作成し、来店した顧客の画像を合わせることで来店した顧客が誰なのか?ということがわかるので、その顧客に対して最適な対応が可能になる

データの活用:Amazon QuickSight & Amazon Forcast

  • ユースケースとしては以下
    • どんな属性の顧客が、いつ、どこに、どのくらい来たかを把握して商品レイアウトに反映する
    • 特定の顧客来店パターンを把握して、タイムリーにコンタクト
    • 混雑エリアを特定して店舗レイアウトに反映する
    • 店舗の混雑状況を予測してスタッフ配置に反映する
  • Amazon QuickSightでできること
    • 取得したデータの可視化を行う
    • 少人数から開始可能、自動でスケール、使った分だけの利用料
    • GUIで操作でき、コスト効率のよい活用ができる
  • Amazon Forcastでできること
    • Amazon.comで利用されている技術を利用して、時系列データを予測することができる
    • 予測したいデータだけではなく、予測精度に関するデータ(例えば天気やイベントのデータなど)を組み合わせ高度な予測が可能
    • 機械学習モデルの予測はAmazon Forcastが行ってくれる

ECサイト手作業の自動化のユースケース

  • ユースケースとしては以下
    • 商品画像検索のための画像へのタグ付け
    • 商品レビューに不適切な画像、内容がないかチェック
  • ユースケースに対するサービス
    • 画像への自動タグ付け:Amazon SageMaker Ground Truth/Amazon Rekognition/Amazon Rekognition Custom Labels
    • レビューの文章チェック:Amazon Comprehend
    • レビューに投稿された画像チェック:Amazon Rekognition

画像への自動タグ付け:Amazon SageMaker Ground Truth

  • ラベリング(教師データを作るための作業)を行う
  • 画像分類や物体検出などのテンプレートが用意されているので、すぐにアノテーションツールを立ち上げることができる
  • 精度の良いモデルを作ろうとすると沢山の教師データが必要になるので、Mechanical Turkなどのワーカーに連携することができる

画像への自動タグ付け:Amazon Rekognition Custom Labels

  • プログラミングなしで独自の物体検知やシーン認識モデルを構築できる
  • Amazon SageMaker Ground Truthで作成した教師データを使用してモデルを構築できる
  • Rekognitionの学習済みモデルがベースなので、画像を大量に追加する必要がない

レビュー文章チェック:Amazon Comprehend

  • 投稿されたレビューの内容を分析できる
  • 入力された言語がどの言語で入力されたか判定することもできる
  • レビューの内容に対してセンチメント分析を行い、ネガポジ判定ができる
  • ポジティブなレビューとネガティブなレビューの内容を比較することもできる

文章翻訳:Amazon Translate

  • 翻訳を実行するにはソース言語とターゲット言語の指定が必要だが、Amazon Comprehendの言語認識機能を使うことでソース言語を自動的に特定してターゲット言語に翻訳することができる
  • Amazon Comprehendで日本語未対応の機能の入力にAmazon Translateを使って日本語を英語に翻訳したテキストを利用することができる

レビュー投稿された画像チェック:Amazon Rekognition

  • 不適切な画像のチェックをAmazon Rekognitionのモデレーション機能を利用することで問題ない画像のみを公開することができる
  • OK、NGの単純な判定だけではなく、ユースケースに応じた独自の判断をすることができる

ECサイト手作業のデータ活用のユースケース

  • ユースケースとしては以下
    • 顧客の購買履歴を元にした商品レコメンド
    • 商品の需要を予測して発注数を決定
    • 顧客離反を予測して事前に対策
    • 不正アカウント作成、不正購入などを検出して対応
  • ユースケースに対するサービス
    • 顧客ごとの商品レコメンド:Amazon Personalize
    • 商品の需要予測:Amazon Forcast
    • 顧客離反予測:Amazon SageMaker
    • オンライン不正検知:Amazon Fraud Detector

顧客ごとの商品レコメンド:Amazon Personalize

  • 機械学習に詳しくないお客様も、商品やサービスの購入・利用履歴に基づいて、個人に合わせたレコメンドができる
  • ユーザーの行動履歴をAmazon Personalizeに入力するとレコメンドのモデルが作成される
  • リアルタイムデータをリアルタイムでレコメンド結果に反映することもできる

顧客離反予測:Amazon SageMaker

  • 機械学習ワークフロー効率化のためのマネージドサービス
  • 豊富なサンプルノートブックと仕様が利用可能なビルトインアルゴリズム
  • 顧客離反予測では、以下のような方法を提供している
    • ビルトインアルゴリズムのXGBoost利用したサンプルノートブック
    • AutoGluonといったAutoMLのフレームワークを使う方法

オンライン不正検知:Amazon Fraud Detector

  • 機械学習によるオンライン不正検知のサービス
  • 入力データとその操作が不正だったかどうかの情報を入力として不正検知モデルを作成
  • 作成された機械学習モデルは0〜1000までの値を不正度合いとして出力する
  • 出力された不正度合いに対して判断を行う
    • 例としてこのようなイメージ
      • 200より小さい:正常
      • 200〜800:人間によるチェック
      • 800以上:不正として扱う

コールセンターのユースケース

  • ユースケースとしては以下
    • 顧客との会話内容の書き起こし
    • 顧客との会話内容の分析
    • 問い合わせ数を予測して、オペレータの数を調製
  • ユースケースに対するサービス
    • 音声の文字起こし:Amazon Transcribe
    • 文字起こしした会話の分析:Amazon Comprehend
    • 問い合わせ数の予測:Amazon Forcast

音声の文字起こし:Amazon Transcribe

  • 音声をテキストに変換する完全マネージドなサービス
  • APIから機能を使うことができるが、ちょっと試したい場合はAWSコンソールからGUIで利用もできる
  • 一つのマイクで複数人の声を集音するような場合は、誰が話したかを特性するための話者のIDをふって出力することもできる

エッジ(ローカル)デバイスでの機械学習

  • エッジデバイスでの推論が必要なケース
    • 推論結果を数ミリ秒など高速に取得する必要がある
    • 帯域幅が狭く、データ通信速度が遅い
    • エッジがネットワークに常時接続されてない
    • クラウドに上げたくないデータを扱っている
  • こういうユースケースの場合には、AWS IoT Greengrass ML Inferenceを利用

AWS IoT Greengrassとは?

  • AWSのサービスをお客様のローカルデバイスに拡張するサービス
  • エッジデバイスに組み込むことで、コードの開発やアップデートはクラウドで行い、コードをデバイスにデプロイしてエッジデバイス側で実行することができる

AWS IoT Greengrass ML Inference

  • Amazon SageMakerで機械学習モデルと推論するためのLambda関数を作成しエッジデバイスに組み込むことでエッジ側の推論を行うことができる

機械学習のレビュー

Amazon Augmented AI

  • 機械学習の出力を人間が修正するワークフローを構築するためのサービス
  • GUIをもつレビュー環境を構築して、確信度が低い結果は人間が機械学習の出力を確認して必要に応じて修正する仕組みをシステムに組み込むことができる
  • 人間によるレビュー結果を教師データとして最新のデータセットとして作成し、モデルの再学習をすることで機械学習の精度を保つことができる

所感

機械学習は、手作業の自動化とデータの活用で利用することができ、AWSのAIサービスには上述したとおり様々なユースケースで利用できるサービスがあることが理解できました。また、機械学習の知識がなくても始められるサービスが揃っているのも導入障壁が低くすぐチャレンジできるものも沢山あるのではないかと感じました