[アップデート] Amazon Forecastに新たな予測アルゴリズム「CNN-QR」が追加されました

2020.08.21

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

データアナリティクス事業本部の貞松です。

Amazon Forecastのアップデートにより、新たな予測アルゴリズム「CNN-QR」が追加されました。

本記事では、CNN-QRの概要とコンソール上からCNN-QRを用いて時系列予測を作成する手順、結果の一例を示します。

記事要約

  • Amazon ForecastにCNN-QRという独自の時系列予測アルゴリズムが新たに追加された。
  • AWS公式によると、CNN-QRを使うと従来サポートされているアルゴリズムと比較して、精度を最大30%向上させ、モデルを最大2倍速くトレーニングできるようになった。
  • CNN-QRが有効なケースは主に大規模で複雑なデータセットに対する予測や履歴のデータがほとんどないコールドスタート予測。
  • 実際にサンプルデータに対してCNN-QRを使って時系列予測を作成した結果は、従来のDeepAR+と比較して期待通りの速度、精度は出なかったが、サンプルデータがCNN-QRが有効なケースに合致しない等が要因と考えられる。
  • 対象とするデータの特性やドメイン、ハイパーパラメータの設定によって結果は変わる(全てのデータで有効なアルゴリズム、パラメータ設定は存在しない)ので、可能であればAutoMLやHPOを利用するのが有効である。

CNN-QRとは

CNN-QRは、Convolutional Neural Network - Quantile Regression (畳み込みニューラルネットワーク - 分位回帰)の略であり、因果的たたみ込みニューラルネットワークを使用して一次元時系列を予測するための独自アルゴリズムです。
このアルゴリズムは、予測がデコードシーケンスをどれだけ適切に再構成するかをテストする、確率的予測のためのSeq2Seqモデルです。
また、エンコーダーで関連する時系列を使用して、デコーダーからは省略することができる為、その他のアルゴリズムとは異なり、履歴関連のみ(過去のデータポイントはあるが予測期間のデータポイントはない)の関連する時系列データ(RELATED_TIME_SERIES)を使用できます。

CNN-QRが有効な使用例には以下のようなケースがあります。

  • 大規模で複雑なデータセットを使用した予測
    • 特に関連する時系列データ(RELATED_TIME_SERIES)とアイテムメタデータ(ITEM_METADATA)が揃っている場合に有効です。
  • 現在の履歴データがほとんどないコールドスタート予測
    • 関連する時系列データ(RELATED_TIME_SERIES)とアイテムメタデータ(ITEM_METADATA)を使用してコールドスタート予測を生成します。

設定可能なハイパーパラメータ等の詳細は下記公式ドキュメントを参照してください。

CNN-QRを使って時系列予測を作成する

概要

AWSマネジメントコンソール上のForecastを使用して時系列予測を作成します。
CNN-QRによる時系列予測と比較の為にニューラルネットワークベースのアルゴリズムであるDeepAR+による時系列予測を作成します。

※結論としては、今回作成した時系列予測ではCNN-QRによる予測結果は芳しくありませんが、今回使用したデータセットが前述のCNN-QRが有効に働くケースに当てはまらないことなどが要因と考えられます。本記事ではあくまでForecastでCNN-QRを用いた時系列予測の作成手順と結果の一例を示すものとします。

使用データ

今回も毎度おなじみ、UCI Machine Learning リポジトリ(http://archive.ics.uci.edu/ml)で公開されている電力利用量データを用います。

以下のリンクからZIPファイルをダウンロードできます。

electricityusagedata.zip

電力利用量データは以下のような形式となっています。

  • データカラム
    • 利用時間(1時間毎)
    • 電力利用量
    • クライアントID
  • データ期間
    • 2014-01-01 01:00:00 〜 2015-01-01 00:00:00
  • データ件数
    • 3,241,200 レコード

以下はデータセットのサンプルです。

2014-01-01 01:00:00, 2.53807106598985, client_0
2014-01-01 01:00:00, 23.648648648648624, client_1
2014-01-01 02:00:00, 9.648648648612345, client_0

データセットグループからデータセットインポートまで

時系列予測のモデル学習に必要なデータセットインポートまでの手順については省略します。必要に応じて下記の記事を参照してください。

予測モデルの学習を実行する

コンソールのPredictors画面から、予測モデルの学習を実行します。

Algorithm selectionはManualを選択して、AlgotithmはCNN-QRを選択します。

ハイパーパラメータについては、HPO(ハイパーパラメータ最適化)を使用せず、デフォルトの設定で実行します。

比較対象のDeepAR+についても同様にデフォルトの設定でモデルの学習を実行しておきます。

学習済みモデルのメトリクスを確認する(モデルを評価する)

モデルの学習が完了したら、学習済みモデルの詳細画面を開いてモデルのメトリクスを確認します。

Predictorsの画面から、学習済みモデルの詳細画面を開きます。

確認可能なメトリクスについて、CNN-QRとDeepAR+による学習済みモデルを比較します。

まずはCNN-QRによる予測モデルのメトリクス

次にDeepAR+による予測モデルのメトリクス

結果的に精度に関する指標についてDeepAR+の方が良好な結果となっています。また、モデルの学習時間についてもCNN-QRの方がDeepAR+よりも数倍掛かりました。
要因として、今回使用したサンプルデータが小規模かつ単純であり、かつ関連する時系列データもアイテムのメタデータもない状態である為、CNN-QRの使用には適していない可能性が考えられます。

AWSの公式ブログに Amazonでは、すべてのタイプのデータに対して最も正確な予測を提供するアルゴリズムは1つもないことを長年にわたって学びました。 と記載されている通り、実際の問題にForecastを適用する場合は同じアルゴリズム、同じハイパーパラメータで全ての問題を解決することはできないので、可能であればAutoMLやHPOを使用して適切な設定を検討することが有効であると考えられます。

学習済みモデルを用いて予測を作成する

次に学習済みモデルを使って時系列予測を作成します。

Forecastsの画面からCreate forecastを選択し、Predictorとして学習済みのモデルを選択して実行します。

予測結果を確認する

予測の作成が完了したら、Forecast lookupの画面で予測結果を可視化して確認します。

まずはCNN-QRによる予測

次にDeepAR+による予測

DeepAR+は全体的に過去の履歴データの動きに沿った予測になっているのに対して、CNN-QRは履歴データの動きに加えて幾つか別の特徴を含めた予測になっているようです。

まとめ

Amazon Forecastのアップデートで追加されたCNN-QRアルゴリズムについて、その概要と利用手順および結果の一例を示しました。これにより実問題に対してForecastが適用可能なケースがさらに拡がったと言えそうです。
残念ながら本記事内で実際にCNN-QRが有効に働くユーズケースを示すことが出来なかったのですが、今後検証で利用可能な大量かつ複雑なデータと関連する時系列データ、アイテムメタデータが準備できた暁にはキチンとその有効性を確認したいと思います。