ウェビナー「AWSではじめる機械学習 Amazon Forecastで時系列予測!」を開催しました

2020.07.01

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

データアナリティクス事業本部の貞松です。 本日(2020/7/1)より、クラスメソッドも17期目に突入ということで今期も飛ばしていきましょう。

本日は機械学習系ウェビナーという位置付けで「AWSではじめる機械学習 Amazon Forecastで時系列予測!」というタイトルのウェビナーに登壇致しました。 先週末にDevelopers.IO 2020 Connectで登壇してから、中一週間以内での連投ということで強肩ぶりをアピールしていきます。

本記事では、都合によりセッションスライドの添付はありませんが、代わりにセッションの概要と所感、QAのまとめを記載致します。

セッション概要

AWSではじめる機械学習と銘打って、まずはスコープを絞り込んで小さく簡単に始められるようにという思いを込めてAmazon Forecastを題材にしました。
発表の流れとしては以下の通りです。

  • そもそもの時系列予測とはなんぞや
  • 時系列予測に機械学習を使う意味合い
  • Amazon Forecastの概要説明
  • Amazon Forecastの利用方法を手順ベースで解説
  • Amazon Forecastに関するFAQ(料金体系やセキュリティ)

できるだけ機械学習初学者の方がイメージしやすいように前提から入る形にしました。うまく伝わっていれば幸いです。

セッション後の所感

セッション中およびセッション後に質問をたくさんいただき、非常にライブ感のあるセッションになりました。参加者の皆様につきましては、ご多忙の折にご参加いただきありがとうございました。
QAの内容については、アンケートの方でいただいた質問も含め、改めて次節にまとめます。

QA

ウェビナー中にいただいた質問およびアンケートでいただいた質問に対する回答を以下にまとめます。

Q1: 素人質問ですみません。関連データセットやメタ情報のデータセットを使用するときは、目的変数の時系列データと時間の粒度は同じでないとだめなのでしょうか。

予測するデータを含むターゲットの時系列データ(TARGET_TIME_SERIES)と関連する時系列のデータセット(RELATED_TUME_SERIES)の時間粒度は合わせていただく必要があります。

Q2: 初歩的な質問で申し訳ありません。時系列の日付について、例えば土日を分析対象から外したい場合に対応できるような機能はあったりするでしょうか。

Forecastに与えるデータから対象外とするものをあらかじめ外していただくただく必要があります。ただし、対象から外した期間の影響を受けているような場合、正確に予測できなくなる可能性もありますのでご注意ください。

Q3: 予測精度を向上させるポイントは何でしょうか。

Forecastの機能に注目するならば、本セッションではあまり触れなかった関連する時系列データセット(RELATED_TUME_SERIES)と予測対象のメタデータ(ITEM_METADATA)をデータセットにインポートして予測に利用することが第一歩かと思います。

Q4: 関連データを与えることで、逆に精度が落ちる場合はありますでしょうか。そのような場合、どのようにすれば、精度向上につながる関連データを見つけることができますでしょうか。

関連データを与えることで精度が落ちる可能性もあります。データエンジニアリング的な観点で言えば、用意する関連データ、メタデータについて、例えばターゲットの時系列データと相関が強すぎたり弱すぎたりしないか十分に分析した上で利用することが考えられます。

Q5: 同じデータでも選択したドメイン(需要予測、カスタム)が異なれば予測も異なるのでしょうか。

異なります。基本的には使用する時系列データに適したドメインを選択することをおすすめします。

Q6: 時系列予測においても交差検証は必要でしょうか。

時系列データに対する交差検証も統計・機械学習の界隈で言及されており、実施するとよりベターではあるのですが、Forecastとしては交差検証の機能を持っていないので厳密にやるならばSageMakerの方でモデル実装することになるかと思います。ちなみにForecastでの予測精度の評価・検証にはBackTestingが用いられています。下記URLのページをご参照ください。

Amazon Forecast 開発者ガイド - 予測精度の評価

Q7: DeepAR+とはAmazon独自の学習アルゴリズムなのでしょうか?また学習済みモデルを取り出して、EC2等の他のインスタンスで動作させることは可能なのでしょうか?

ウェビナー中の回答として、元となるDeepARアルゴリズムがあって、Amazonによる改良版としてDeepAR+があるとお答えしたのですが、こちら誤りでした。大変失礼致しました(Facebook製の時系列予測アルゴリズムはProphetでした)
DeepAR自体もAmazonの独自アルゴリズムであり、DeepAR+はForecast用(時系列予測用)に改良されたアルゴリズムとなっています。下記URLのAmazon Researchによる論文も併せてご参照ください。

DeepAR: Probabilistic Forecasting with Autoregressive Recurrent Networks

Forecastの学習済みモデルをエクスポートすることはできないので、そういった用途が必要な場合はSageMakerの方でモデル実装していただくことになるかと思います。

Q8: 予測では信頼区間なども出力できますか?

Forecastでは信頼区間の出力はありません。

Q9: いくつかの実装は、forecastよりもSagemakerの方が向いているとのお話でしたが、どのような基準で使い方のすみ分けをすればよろしいのでしょうか?forecastの使い道を知りたく。

まずForecastはあくまで時系列予測のサービスなので、それ以外の問題に対してはSageMakerもしくはその他AWSサービスをご利用いただくことになるかと思います。
また、Forecastは時系列予測について、素早く、簡単に作成したいというニーズにマッチするものであり、細かい要件に合わせたカスタマイズが必要なケースには向かない想定です。 例えば、以下のようなケースが考えられます。

  • 既存の独自アルゴリズムを利用したい
  • ビルトインアルゴリズムをカスタマイズして使用したい
  • 学習モデルを取り出して別環境で実行したい
  • Forecast標準で使われているのとは別の評価指標を使ってモデルを検証したりチューニングしたりしたい

まとめ

AWSではじめる機械学習の第一歩として、Amazon Forecastで簡単に時系列予測が作成できるというイメージを掴んでいただけていれば今回のウェビナーは成功です。
何はともあれ、参加者の皆様には改めて感謝申し上げます。ありがとうございました!