データ資産を活用しビジネスを加速させるAI -Amazon Forecast-

はじめに

こんにちは、中村です。
re:Invent 2018にて発表がありましたAmazon Forecastがこの度一般公開いたしました。

発表時の記事はこちら

[速報] 時系列予測サービスAmazon Forecastが発表されました #reinvent

今回は、Amazon Forecastがどのようなことができるのかを触れたのちにチュートリアルを行ってみます。

ビジネスを加速させるAI -Amazon Forecast-

Amazon Forecastは、機械学習経験不要で利用できる時系列予測サービスです。

時系列予測を行う

通常、時系列予測を行う場合は、

  • データの収集
  • モデル作成
  • アプリケーションから利用するためのAPI作成

などがあると思っています。そのため、データサイエンティスト、AIエンジニア、インフラエンジニア、アプリケーションエンジニアなど多岐に渡るロールのリソースが必要になります。

Amazon Forecastの場合は、時系列データ・関連データの作成のみでサービス統合ができます。Forecastには、1000件以上のデータポイントと時系列データがあることで最も有効に利用できます。

メリット

  • Amazon.comでも利用しており典型的なモデルよりも50%以上正確な予測が可能
  • 事前定義されたドメイン・レシピを活用して様々なユースケースに対応
  • 簡単な操作、自動化により高速なリリースに寄与
  • AWSのデータ暗号化によるデータセキュリティ

価格

  • 予測1000回あたり$0.60
  • トレーニングデータ1GBあたり$0.088
  • トレーニング時間1時間あたり$0.238

ドメイン

ドメイン名 説明
RETAIL 各品目または製品の履歴
INVENTORY_PLANNING 原材料の需要
EC2_CAPACITY Amazon EC2 キャパシティ
WORK_FORCE 労働力需要
WEB_TRAFFIC ウェブトラフィック
METRICS 収益、売上、キャッシュフローなど
CUSTOM カスタム要素(上記以外のドメイン)

データセットタイプ

各ドメインごとにデータセットタイプが異なります。データは3種類があります。

データタイプ名 説明
TARGET_TIME_SERIES 必須のデータ、予測値、タイムスタンプ、IDが含まれる
RELATED_TIME_SERIES ターゲットデータに関連するデータ
ITEM_METADATA ターゲットデータに適用可能なメタデータ

レシピ(アルゴリズム)

Amazon Forecastでは下記のアルゴリズムがサポートされています。自身で選択することも可能ですがAmazon Forecastが自動的に適切なレシピを選択する機能もあります。

  • 自己回帰和分移動平均(ARIMA)
  • DeepAR+
  • 指数平滑法(ETS)
  • ノンパラメトリック時系列 (NPTS)
  • Prophet

チュートリアル

実際にサンプルを利用して時系列予測をしてみます。まずはデータセットをダウンロードして、Amazon S3へアップロードをします。データセットは、こちらからダウンロードできます

アップロードが完了したら、Amazon ForecastのサービスページよりCreate dataset groupでデータセットグループを作成します。グループ名およびドメインを指定します。

続いて、Target time seriesのデータセットを作成します。Frequency of your dataは、データセット内のデータがどの時間で計測されているかを定義します。Data schemaでデータセットの構造を定義します。ここには先ほども書きましたがタイムスタンプ・予測に使う値・IDが必須になります。

次にS3からデータをインポートします。ForecastにS3(データセット)へのアクセス権限を与える必要があるためIAM Roleの箇所でCreate a new roleをクリックしてロールを作成します。

ロールが作成できたらS3バケットの指定を行って、Start Importでインポートを開始します。

インポートが終わったら予測子をトレーニングします。DashboardのPredictor trainingのstartをクリックしてください。Forecast horizonは予測を実行する期間になります。Forecast frequecyは、予測時間の幅になります。これはデータセットの計測時間と同じである必要があります。アルゴリズムはAutomaticを選択することでForecastが最適なレシピを選択します。Train predictorをクリックしてトレーニングを開始します。

トレーニングが完了したら予測子を作成します。作業は作成した予測子に予測名を紐付けます。 ここまで完了したらコンソールからForecastの予測を確認できます。予測子、予測したいIDと日付を指定してGet forecastをクリックしてみてください。

といった形で実行結果を確認することができました。P90などのラベルは、指定された日時に実際の値が記載された値を下回る信頼レベルになります。

まとめ

Amazon Forecastは、安く・早く・美味い(精度が出る)時系列予測サービスです。またチュートリアルで示した通り簡単にAPIエンドポイントを構築できますので、まずはお手持ちのデータでトライアルしてみることでパワーを実感できると思います。