Amazon Web Services ブログ
Amazon SageMaker DeepAR は欠損値、カテゴリ機能と時系列機能、および一般化した頻度をサポートします。
本日私たちは Amazon SageMaker の DeepAR について、いくつかの新機能をリリースしています。DeepAR は再帰型ニューラルネットワーク (RNN) を使用して確率的予測を生成する、時系列予知または予測のための教師付き機械学習アルゴリズムです。発表以来、このアルゴリズムはさまざまなユースケースにおいて使用されてきました。今回のリリースにより開発者は、欠損値のサポート、ユーザー提供による時系列機能、複数のカテゴリー機能、頻度の一般化などの新しい機能にアクセスできるようになりました。
予測はあらゆる分野へ
予測は、多くの業界に渡りビジネスプロセスを改善することができます。これにより、機械学習 (ML) と人工知能 (AI) を使用して自動化と最適化の世界への理想的なエントリーポイントを予測することができるようになるのです。より良い製品需要予測を通じてサプライチェーンを最適化するかどうか、Web サーバーのトラフィックを予測することによってコンピューティングリソースをより効果的に割り当てるかどうか、患者のニーズを満たすために病院にスタッフを派遣して人命を救うかどうかなど、ほとんどの分野において予測は素早く投資に対する効果を見せてくれるでしょう。
Amazon では、予測を使用しさまざまな分野におけるビジネス意思決定の自動化を推進しています。これらの中にはフルフィルメントセンターでの製品や労働需要の予測や、AWS サービスのキャパシティ予測などが含まれます。
DeepAR アルゴリズムの新機能
このブログ記事では、今回利用可能となった DeepAR アルゴリズムの新機能の概要を簡単に紹介させていただきます。
欠損値のサポート
予測アルゴリズム (またはそれらの実装) においてはデータが完全であると仮定している場合が多いのですが、現実は一致しない傾向にあります。実際には、時系列データはたびたび部分的にしか観察されない場合があります。たとえば、時系列にセンサーデータが含まれていて、そしてそのセンサが一定時間に渡って故障していたりオフラインであったりする可能性があります。需要予測時に製品の在庫がなくなったり、サーバーのトラフィック時系列情報がダウンタイムや設定ミスのために数日間利用できなくなる可能性があるのです。このような場合、予測アルゴリズムを使用する前に不足している値を埋め (置き換え) なければならないという負担がユーザーにかかる場合が頻繁に発生します。しかしながら、誤って置き換えられたデータは予測に悪影響を及ぼす可能性があります。たとえば、在庫切れ状況により観測されていない値をゼロに置き換えた場合、予測はゼロに向かって偏っていきます。確かにこれは、特に長い在庫切れ段階の後に将来の製品需要を予測したい場合には望ましくありません。
DeepAR の最新リリースにおいては、モデル内で欠損値が直接処理されるようになりました。これにより、欠損値を含む時系列の予測が容易に (前処理時の置き換えは不要)、かつより正確に (粗い外部置き換え手法に頼るのではなく、RNN モデルを利用することにより) なります。
欠損値を持つ時系列の予測をモデルが生成する方法の例は、以下の通りです。
カスタム時系列機能
DeepAR に対してお客様から最も多く頂いた要望の 1 つは、カスタムの時間変動機能をモデルへと供給することでした。時系列を予測する場合、ユーザはしばしばターゲットとなる時系列について有用な情報を提供することができる他の説明的な時系列を有しています。たとえば製品の需要を予測する場合には、一定期間内にプロモーションが実施されたかどうかや製品の価格がどの程度であったかなど、時間に依存する情報へとアクセスをするかもしれません。(DeepAR が内部的に提供するデフォルトの季節性機能に加えて) カスタムの季節性パターン、因果効果などをモデル化する独自の機能時系列を提供できるようになりました。この時間変動性を持った情報の使用は、そうでなければノイズに起因する効果を「説明する」ことにより、最終的に精度を向上させる可能性があります。さらには、「what if」シナリオをシミュレートすることもできます。たとえば、「今後この商品を 1 週間プロモーションするとどうなるか?」などです。
ここでは、短期需要の増加と相関する時間変動機能 (青色の線) を使用する例を示します。実際には、これはプロモーションイベントまたは特別なカレンダーイベントです。この例において、DeepAR はこの機能によって需要の増加した期間とそれ以外の期間を区別することができます。
時系列ごとの複数カテゴリ
特定の時系列を予測する場合、グループ情報は非常に役立ちます。特に、利用可能な履歴データがあまりない場合に便利です。以前の DeepAR は単一のカテゴリ分類属性によって時系列をグループ化することをサポートしており、ユーザーは時系列のグループの可能な 1 つをエンコードすることができました。実際には、時系列はしばしば季節性パターンなどのきめ細かなグループレベルの効果を抽出するために活用できる単一のグループとだけではなく、複数のグループと関連付けられます。たとえば、製品の需要を予測する場合、製品は複数のグループに属している可能性があります。(「エレクトロニクス」に代わって)「衣類」などの上位グループと、(「Tシャツ」に代わって)「シューズ」、または (「スニーカー」に代わって)「フリップフロップ」などといった下位グループと関連させることができるでしょう。また、製品ブランドに関連付けられているグループがあるかもしれません。または、製品が販売されている店舗に関連付けられたグループなどの場合もあるでしょう。 複数グルーピングのサポートはお客様による要望が最も多かった機能の 1 つであり、DeepAR の新リリースではこれがサポートされています。グルーピング情報はグループごとに 1 つずつ複数のカテゴリ機能にエンコードされ、時系列ごとに整数のベクトルとして DeepAR に供給されるようになりました。このグルーピング情報を利用することで DeepAR は季節性パターンなどのグループ固有の動作を学習し、最終的に予測精度を向上させることができます。
頻度の一般化
これまで DeepAR は、時系列データ (分、時、日、週、または月) の中で最も一般的な一定の時間頻度をサポートしていました。もちろん、これらの基本頻度以外の分解度で時系列データをサンプリングすることもできます。たとえば、センサーが 15 分ごとにデータ点を取得することが可能になります。または、製品販売が隔週でのみ記録される場合もあるでしょう。新しいリリースでは任意の基本頻度の整数倍をサポートし、それ以上の前処理なしでそういったデータを処理することが可能となりました。
現実世界のデータセットに関するノートブック
最後に、DeepAR を用い Amazon SageMaker にて現実世界のデータセットを処理する方法を示すノートブックをリリースします。このデータセットは、370 人のお客様の時間当たり電力消費量で構成されています。これは、この DeepAR paper を含むいくつかの学術論文で使用されています。このノートブックでは、このリリースの新機能を実際のユースケースにおいて使用する方法を紹介します。
私たちのノートブックでは、Amazon SageMaker にデプロイされたモデルを呼び出し、臨機応変に予測を生成する方法も紹介しています。
詳細
詳細については、DeepAR ドキュメントを参照してください。DeepAR に用いられている数学についての詳細については、Amazon に所属する機械学習の科学者達によって執筆された学術論文をご参照ください。
その他の参考資料
私たちは最近、Foresight 誌の 2018 年夏号に「予測のためのディープラーニング」と呼ばれるニューラル予測に関する入門記事を発表しました。著者は Tim Januschowski、Jan Gasthaus、Yuyang Wang、Syama Rangapuram、そして Laurent Callot です。
ブログ投稿者について
Valentin Flunkert は、AWS AI Labs のシニアマシンラーニングサイエンティストです。彼はビジネスにおける問題を解決するための機械学習システムの構築に情熱を持っています。彼は Amazon で様々な機械学習および予測の問題に取り組んできました。
Syama Sundar Rangapuram は、AWS AI Labs のマシンラーニングサイエンティストです。彼の研究分野は機械学習および最適化です。予測の分野では、特にコールドスタート問題の確率モデルやデータ駆動型モデルに取り組んできました。
Alexander Alexandrov は、AWS AI Labs チームおよび TU-Berlin に所属する博士研究員です。彼はスケーラブルなデータ管理、データ分析アプリケーション、DSL の最適化について熱心に取り組んでいます。
Jan Gasthaus は、AWS AI Labs のシニアマシンラーニングサイエンティストで、機械学習モデル、アルゴリズム、システムをデザインし、それらを大規模に展開することに情熱を持っています。
Michael Bohlke-Schneider は、AWS AI Labs / Fulfillment Technology のデータサイエンティストであり、SageMaker の予測アルゴリズムについて研究および開発を進め、ビジネスにおける問題に予測を適用します。
Ramesh Nallapati は、AWS AI Lab チームのシニアアプライドサイエンティストです。彼は予測や NLP などのさまざまなアプリケーションへのディープラーニングの応用に取り組んでいます。
Lorenzo Stella は、AWS AI Labs チームのアプライドサイエンティストです。彼の研究分野は機械学習および最適化です。彼は予測のための確率論的かつ深層モデルについて取り組んできました。
Tim Januschowski は、AWS AI Labs のマシンラーニングサイエンスマネージャーです。彼は予測に取り組んでおり、Amazon 在職期間中の需要予測からサーバー能力予測まで、幅広い分野に対し予測問題のエンドツーエンドソリューションを提供してきました。