Slide 1

Slide 1 text

時系列予測サービス Amazon Forecast の 初学レポート JAWS-UG名古屋 2019-10-28 AKIHIRO HORIKAWA 1

Slide 2

Slide 2 text

自己紹介 名前: Akihiro Horikawa 所属: 総合エネルギー企業の技術研究所 仕事: データ分析(主にアセスメントとマネジメント) 資格: 日本ディープラーニング協会G検定、他 コミュニティ: 機械学習名古屋、JAWS-UG名古屋、 JUASビジネスデータ研究会(仕事)、他 趣味: 子供、データサイエンス勉強、ゲーム SNS: まだやってない(今後の課題) 好きなAWS: ATHENA、Forecast 2

Slide 3

Slide 3 text

最初にお詫び ⚫ LT2回目です! 暖かい目で見守ってください ⚫ 基本的に「使ってみた」です。調査・理解が追い付いて ないところはご容赦ください ⚫ 本資料は、2019年10月27日時点の forecast およ び開発者ガイドの情報に基づきます 3

Slide 4

Slide 4 text

目次 1.前置き 2.概念的な話 3.操作的な話 4.まとめ 4

Slide 5

Slide 5 text

1.前置き 5

Slide 6

Slide 6 text

Forecastについて Amazon Forecast は、時系列予測のためのフルマネー ジド型サービスです。 おそらく、AWS初のオートMLです。 6 Amazon Forecast

Slide 7

Slide 7 text

オートMLについて 最近流行っていて、AIベンチャー・IT大手などいろんな会 社が出してきています。 ⚫DataRobot 〔DataRobot〕 ⚫DriverlessAI 〔H2O.ai〕 ⚫Impluse 〔ブレインズテクノロジー〕 ⚫Google AutoML 〔Google〕 ⚫PredictionOne 〔SONY〕 ・・・etc 7 GCPにあるので、AWSも何かないと見劣りしちゃうなーと 思っていたら、Forecastが出ました!

Slide 8

Slide 8 text

時系列予測について データ分析の種類を、以下のように捉えてます(私見) 8 扱うデータの種類 お題 構造化データ 表データ 分類、回帰、クラスタリング、etc 時系列データ 分類、回帰、クラスタリング、etc 非構造化データ 画像 分類、物体検出、etc 音響 分類、etc テキスト文章 テキストマイニング、etc 音声 音声認識、etc ・・・ ・・・ ・・・ Forecastの守備範囲は、ココだけです。 こう書くと「しょぼい」と思われるかもしれませんが・・・

Slide 9

Slide 9 text

時系列予測について 時系列データの分析はめんどくさいです。 ⚫長期トレンドや季節性、周期性 ⚫カレンダー要素(月次イベント、休祝日、曜日) ⚫時間窓、ラグ ⚫予測のための予測 ⚫時間軸を考慮したバリデーション ⚫AR、ARIMA、SARIMAXとかHMMとか謎の呪文 ・・・etc 9 なので、自動でやってくれるのは、非常にありがたいです。

Slide 10

Slide 10 text

時系列予測について 実務では、時系列回帰は多いです。 ⚫売上予測、在庫予測 ⚫来客数予測、コール数予測 ⚫エネルギー需要予測 ⚫変動相場の価格予測 ・・・etc 10 amazon自身が、「大規模小売業」かつ「大規模データ センター事業者」かつ「グローバル企業」なわけで、 その彼らが自分のために作った道具をサービスとして提供し てくれるんなら、これはもうきっとものすごいに違いない!! と期待せずにはいられません。

Slide 11

Slide 11 text

2.概念的な話 11

Slide 12

Slide 12 text

Retail Custom Inventory plannning Ec2 capacity Work force Web traffic Metrics データセットグループ 12 Forecastの俯瞰図 (公式なものではありません!) 学習 train 予測生成 generate Forecast S3 ルックアップ lookup TARGET_TIME_SERIES データセット ドメイン RELATED_TIME_SERIES データセット ITEM_METADATA データセット CSV 予測結果 forcast エクスポート export CSV ARIMA DeepAR+ ETS NPTS Prophet アルゴリズム 学習データ 予測結果データ ※ 2019/10/27時点 ルックアップ表示 forecast lookup 時系列 時系列 必須 予測器 predictor インポート import

Slide 13

Slide 13 text

データセットグループ dataset group 13

Slide 14

Slide 14 text

データセットグループ dataset group 学習に使う一群のデータセットを入れる箱。 ⚫Forecastは、学習データを3つに分解して管理する (普通は、1つのデータセットにまとめる) ➢ 目的変数(時系列)のデータセット(TARGET_TIME_SIRIES) ➢ 時系列の説明変数のデータセット(RELATED_TIME_SIRIES) ➢ 時系列でない説明変数のデータセット(ITEM_METADATA) ⚫その1~3個をまとめる箱が、データセットグループ ⚫属性として「ドメイン」を1個だけ持つ 14

Slide 15

Slide 15 text

ドメイン domain 15

Slide 16

Slide 16 text

ドメイン domain どんな分野を予測するか。 選んだドメインで、データセットに制約かかる。 ➢ データセット3種のどれが必須か ➢ 各データセットの、必須フィールドやオプションフィールド 16 ドメイン名 予測対象 Retail 小売組織によって販売された品目・製品の販売数の予測 Custom 分野指定なし Inventory planning 特定の商品をどれだけ在庫するかの予測 Ec2 capacity Amazon EC2 キャパシティの予測 Work force 労働力需要の予測 Web traffic ウェブプロパティへのウェブトラフィックの予測 Metrics 収益、売上、キャッシュフローなどの予測

Slide 17

Slide 17 text

データセット 17

Slide 18

Slide 18 text

データセット(共通事項) Forecastが使う学習データ。 ⚫ドメインにより既定される「必須フィールド」と「オプションフィールド」 がある ⚫ユーザによるフィールド追加も可能だが、以下に注意 ➢ AWSが予約済のフィールド名は使えない ➢ データセット毎にフィールド数上限がある ⚫追加するフィールドは、以下の2種類のいずれか ➢ 予測ディメンション ➢ ただの説明変数 18 ←詳細未把握

Slide 19

Slide 19 text

TARGET_TIME_SERIESデータセット 目的変数用のデータセット。必ず作成。 ⚫必須フィールドは基本3個 ⚫追加フィールドは「予測ディメンション」のみで、最大10個 ⚫timestampの時間粒度(数&単位)を定義する ➢ 1日、2時間、30分、・・・etc ➢ Forecastはアップロード時に、データを時間粒度にまとめる 19 フィールド名 型 必須 説明 item_id 文字列 必須 商品の固有 ID timestamp タイムスタンプ 必須 時間粒度に従った時刻 demand 小数 必須 【予測ターゲット】 timestamp時の販売数 location 文字列 オプション 商品を販売した店舗 参考: RetailドメインのTARGET_TIME_SERIES

Slide 20

Slide 20 text

RELATED_TIME_SERIESデータセット 時系列の説明変数用のデータセット。 ⚫必須フィールドは基本2個 ⚫追加フィールドは「予測ディメンション」(最大10個)と、「ただの 特徴量」(最大13個) 20 フィールド名 型 必須 説明 item_id 文字列 必須 商品の固有 ID timestamp タイムスタンプ 必須 時間粒度単位の時刻 price 少数 オプション 商品の価格 webpage_hits 少数 オプション ウェブページのヒット数。ECのみ適用 Promotion _applied 0/1 オプション その商品のマーケティングプロモー ションがあったかどうか (他4つ) オプション 参考: RetailドメインのRELATED_TIME_SERIES

Slide 21

Slide 21 text

ITEM_METADATAデータセット itemに関する時系列でない説明変数 ⚫必須フィールドが基本1個 ⚫追加フィールドは「予測ディメンション」らしい(最大9個) ⚫DeepAR+(後述)で使うらしい 21 フィールド名 型 必須 説明 item_id 文字列 必須 商品の固有 ID category 文字列 オプション カテゴリー(?) brand 文字列 オプション ブランド color 文字列 オプション 色 genre 文字列 オプション ジャンル(?) 参考: RetailドメインのITEM_METADATA

Slide 22

Slide 22 text

アルゴリズム algorithm 22

Slide 23

Slide 23 text

アルゴリズム algorithm 学習に使うアルゴリズムを、5手法から選択。 直接指定するか、AutoMLに任せて選んでもらうか。 23 アルゴリズム名 概要 ARIMA 自己回帰和分移動平均。古典的なやつ。 DeepAR+ 再帰型ニューラルネットワーク (RNN) 。AWS開発らしい。 ハイパーパラメータの最適化 (HPO)もサポートしてるらしい。 ETS 指数平滑法。古典的なやつ。 NPTS ノンパラメトリック時系列予測。詳細未把握。 Prophet 局所的なベイズ構造時系列予測。Facebook開発らしい。

Slide 24

Slide 24 text

予測器・予測結果・ルックアップ表示 24

Slide 25

Slide 25 text

予測器・予測結果・ルックアップ表示 説明できるところまで辿り着けませんでした・・・。 (また機会があれば・・・) 25

Slide 26

Slide 26 text

3.操作的な話 26

Slide 27

Slide 27 text

前準備 ◼ S3 ⚫インポートする学習データをS3に置き、パスを取得 s3://// ⚫エクスポートするS3フォルダを用意、パスを取得 s3://// ◼ IAM ⚫S3参照用のIAMロールを作成、ARNを取得 arn:aws:iam:::role/<ロール名> 27

Slide 28

Slide 28 text

実際の操作 以下の3つの方法で実行できます。 ⚫マネコン ⚫AWS CLI ⚫Pythonノートブック 今回は、マネコンでやってみました。 28 ですが、・・・

Slide 29

Slide 29 text

実際の操作 ・・・そろそろ時間押してるハズなので、操作は省略します。 29 やったのは開発者ガイドの「開始方法(コンソール)」です。 ① データセットグループを作成 ② TARGET_TIME_SERIESを定義して電力データをインポート ③ アルゴリズムETSを指定して学習 ④ できた予測器で予測結果を作成 ⑤ 予測結果のルックアップ ⑥ 予測結果のダウンロード

Slide 30

Slide 30 text

実際にやった証拠1: 終盤のダッシュボード 30

Slide 31

Slide 31 text

実際にやった証拠2: ルックアップの表示 31

Slide 32

Slide 32 text

実際にやった証拠3: S3エクスポートファイル 32

Slide 33

Slide 33 text

4.まとめ 33

Slide 34

Slide 34 text

忘れないうちに大事なこと AutoMLの一般的な注意点ですが、Forecastにも当ては まるかとと思います。 ⚫データや予測に対する、最低限の理解は必要 ➢ 手に入らない未来値の使用とか、因果の逆転とか ⚫精度が出ないときには、学習データの工夫が必要 ➢ 時間粒度変えるとか、特徴量加工・追加とか 34 ⇒ 結局、専門家の助けがいることになるかも・・・

Slide 35

Slide 35 text

今回できたこと ⚫開発者ガイドを読んだ ⚫実際にマネコンでの一通りの操作を体験した ⚫それを元にForecastの構成要素を整理してみた (実質これが成果) 35 ⚫開発者ガイドの日本語訳に変なところがあったので、初めて AWSにフィードバックを送ってみた

Slide 36

Slide 36 text

今回わからなかったこと ⚫予測ディメンションは、何にどう使うのか? ⚫スキーマjsonで、予測ディメンションとただの特徴量の区別は? ⚫インポート時の時間粒度調整って、「足せない値」は大丈夫? ⚫学習パラメータで指定する、「予測期間 horizon」と「予測頻 度 frequency」は何者? ⚫予測器や予測結果はどこに保持されているの? ⚫未来予測値を使った予測って、できるよね? ⚫顧客に提供するサービスで使っていいの? ・・・etc 36

Slide 37

Slide 37 text

今回できなかったこと ⚫「実際に意味のあるデータ」を使っての予測 ⚫RELATED_TIME_SERIES、ITEM_METADATAの使用 ⚫学習パラメータの理解と、使用 ⚫各アルゴリズムの理解と、使用、比較 ⚫各ドメインの理解と、使用 ⚫処理時間、課金の測定 ⚫APIの把握 ・・・etc 37

Slide 38

Slide 38 text

今後の抱負 ⚫実務で時系列データ回帰のお題がいくつかあるので、使ってみよ うと思う ⚫それを通じて、「わからなかったこと」、「できなかったこと」を解消し ていきたいと思う 38 ⚫実務事例を登壇で発表できるように、会社とうまく調整できたら いいなぁ(Forecastに限らず)

Slide 39

Slide 39 text

39 俺たちの戦いはこれからだ!!

Slide 40

Slide 40 text

40 ご清聴ありがとうございました。