このページでは、予測モデルのトレーニングで使用されるパラメータについて詳しく説明します。予測モデルをトレーニングする方法については、予測モデルをトレーニングすると予測用の表形式ワークフローを使用してモデルをトレーニングするをご覧ください。
モデルのトレーニング方法
モデルのトレーニングには、次の方法を選択できます。
時系列高密度エンコーダ(TiDE): 最適化された DNN ベースの高密度 Encoder-Decoder モデル。高速なトレーニングと推論により、優れたモデル品質を維持できます(特に、長いコンテキストや長期目線の場合)。詳細はこちら。
Temporal Fusion Transformer(TFT): 一般的なマルチホライズン予測タスクに対応することで、高い精度と解釈可能性を実現するように設計されたアテンション ベースの DNN モデル。詳細はこちら。
AutoML(L2L): 幅広いユースケースに適しています。詳細はこちら。
Seq2Seq+: テストに適しています。このアーキテクチャはシンプルで、検索スペースが小さいため、AutoML よりも速く収束する可能性が高くなります。Google でのテストによると、Seq2Seq+ は少ない時間予算で十分に機能し、サイズが 1 GB 未満のデータセットで高いパフォーマンスを発揮します。
特徴タイプと予測での利用
予測モデルのトレーニングに使用するすべての列のタイプは属性か、共変量でなければなりません。さらに、共変量は、予測時に利用可能または利用不可になります。
系列のタイプ | 予測時での利用可否 | 説明 | 例 | API フィールド |
---|---|---|---|---|
属性 | 利用可能 | 属性は、時間とともに変化しない静的な特徴です。 | 商品の色、商品の説明。 | time_series_attribute_columns |
共変量 | 利用可能 |
時間の経過とともに変化することが見込まれる外生変数。予測時に利用できる共変量が先行指標です。 予測ホライズンの各ポイントに対して、この列の予測データを指定する必要があります。 |
祝日、予定されているプロモーション、イベント | available_at_forecast_columns |
共変量 | 利用不可 | 予測時に利用できない共変量。この特徴値は、予測の作成時に指定する必要がありません。 | 実際の天気 | unavailable_at_forecast_columns |
利用できる特徴、予測ホライズン、コンテキスト ウィンドウ、予測ウィンドウの関係については、こちらをご覧ください。
予測ホライズン、コンテキスト ウィンドウ、予測ウィンドウ
予測の特徴は、静的属性と時変系共変量に分けられます。
予測モデルをトレーニングするときは、取得の重要度が最も高い共変量トレーニング データを指定する必要があります。これは、予測ウィンドウの形式で表されます。予測ウィンドウは、以下で構成される一連の行です。
- 予測時までのコンテキストまたは過去のデータ。
- 予測に使用されるホライズンまたは行。
ウィンドウ内の行は、モデル入力として機能する時系列インスタンスを定義します。これは、Vertex AI によるトレーニングと評価の対象となり、予測に使用されます。ウィンドウの生成に使用される行はホライズンの最初の行であり、時系列でウィンドウを一意に識別します。
予測ホライズンでは、予測データの各行のターゲット値について、モデルがどの程度の未来の期間を予測するかが決まります。
コンテキスト ウィンドウでは、トレーニング時(および予測用)にモデルのルックバック期間を設定します。つまり、各トレーニング データポイントにおいて、コンテキスト ウィンドウの設定によってモデルが予測パターンをどの程度の期間さかのぼるかが決まります。コンテキスト ウィンドウの適切な値を見つけるためのおすすめの方法をご覧ください。
たとえば、コンテキスト ウィンドウ が 14
、予測ホライズン が 7
の場合、各ウィンドウの例には 14 + 7 = 21
行が設定されます。
予測での利用
予測の共変量は、予測時に利用できるものと利用できないものに分けることができます。
予測時に利用できる共変量を処理する場合、Vertex AI はトレーニング、評価、予測でコンテキスト ウィンドウと予測ホライズンの両方からの共変量値を考慮します。予測時に利用できない共変量を処理する場合、Vertex AI はコンテキスト ウィンドウの共変量値を考慮しますが、予測ホライズンから共変量値を明示的に除外します。
ローリング ウィンドウ戦略
Vertex AI は、ローリング ウィンドウ戦略を使用して入力データから予測ウィンドウを生成します。デフォルトの戦略は [カウント] です。
- カウント: Vertex AI によって生成されるウィンドウの数は、ユーザーが指定した最大値を超えないようにしてください。入力データセットの行数がウィンドウの最大数より小さい場合、すべての行を使用してウィンドウが生成されます。それ以外の場合、Vertex AI は行を選択するためにランダム サンプリングを実行します。ウィンドウの最大数のデフォルト値は
100,000,000
です。ウィンドウの最大数は100,000,000
以下にしてください。 - ストライド: Vertex AI は、X 入力行ごとに 1 つを使用して、最大 100,000,000 個のウィンドウを生成します。このオプションは、季節的な予測や定期的な予測に役立ちます。たとえば、ストライドの長さの値を
7
に設定すると、予測を 1 つの曜日に制限できます。1
~1000
の値を指定できます。 - 列: 値が
True
またはFalse
である列を入力データに追加できます。Vertex AI は、列の値がTrue
のすべての入力行に対してウィンドウを生成します。True
とFalse
の値は、True
行の合計数が100,000,000
未満である限り、任意の順序で設定できます。ブール値が推奨されますが、文字列値も使用できます。文字列値の大文字と小文字は区別されません。
生成されるウィンドウをデフォルトの 100,000,000
ウィンドウより少なくすることで、前処理とモデル評価に必要な時間を短縮できます。さらに、ウィンドウのダウンサンプリングにより、トレーニング中に観測されるウィンドウの分布をより詳細に制御できます。適切に使用すれば、結果の改善と一貫性の向上につながる可能性があります。
トレーニング時と予測時のコンテキスト ウィンドウと予測ホライズンの使用方法
コンテキスト ウィンドウに 5 か月と予測ホライズンに 5 か月を指定して、月単位で収集されたデータがあるとします。12 か月のデータでモデルをトレーニングすると、次の入力と予測のセットになります。
[1-5]:[6-10]
[2-6]:[7-11]
[3-7]:[8-12]
トレーニング後、モデルを使用して 13~17 か月目を予測できます。
[8-12]:[13-17]
このモデルでは、予測を行うコンテキスト ウィンドウに該当するデータのみを使用します。コンテキスト ウィンドウの範囲外のデータはすべて無視されます。
13 か月目のデータが収集された後、18 か月目までの予測に使用できます。
[9-13]:[14-18]
良好な結果が得られる限り、その後もこの設定のまま継続できます。いずれは、新しいデータでモデルを再トレーニングすることも可能です。たとえば、6 か月分のデータを追加した後にモデルを再トレーニングすると、トレーニング データは次のように使用されます。
[2-6]:[7-11]
[3-7]:[8-12]
[4-8]:[9-13]
[5-9]:[10-14]
[6-10]:[11-15]
[7-11]:[12-16]
[8-12]:[13-17]
[9-13]:[14-18]
このモデルを使用して、19~23 か月目を予測できます。
[14-18]:[19-23]
予測モデルの最適化目標
モデルをトレーニングするときに、Vertex AI はモデルタイプとターゲット列に使用されるデータタイプに基づいて、デフォルトの最適化目標を選択します。次の表に、予測モデルが最も適している問題の詳細を示します。
最適化の目標 | API 値 | この目標が適している問題 |
---|---|---|
RMSE | minimize-rmse |
二乗平均平方根誤差(RMSE)を最小化する。極端な値を正確に取得する。予測の集約時にバイアスが少なくなる。デフォルト値。 |
MAE | minimize-mae |
平均絶対誤差(MAE)を最小化する。モデルへの影響を抑えて、極端な値を外れ値として表示する。 |
RMSLE | minimize-rmsle |
二乗平均平方根対数誤差(RMSLE)を最小化する。絶対値ではなく、相対サイズに基づいてエラーにペナルティを適用する。予測値と実際の値の両方が大きくなる可能性がある場合に有用。 |
RMSPE | minimize-rmspe |
二乗平均平方根率誤差率(RMSPE)を最小化する。広範な値を正確に取り込む。RMSE と似ていますが、ターゲットの大きさに比例する。値の範囲が大きい場合に有用。 |
WAPE | minimize-wape-mae |
加重絶対パーセント誤差(WAPE)と平均絶対誤差(MAE)の組み合わせを最小化する。実際の値が低い場合に有用。 |
分位点損失 | minimize-quantile-loss |
推定の不確実性を定量化するために、定義された分位値のスケールされたピンボールロスを最小限に抑える。分位予測は、予測の不確実性を定量化します。予測が範囲内に収まる確率を測定します。 |
地域の休日
特定のユースケースでは、地域の休日に対応する日に関して予測データが異常な挙動を示すことがあります。モデルでこの影響を考慮する場合は、入力データに対応する地理的なリージョンを 1 つ以上選択します。トレーニング中に、Vertex AI は時間列の日付と指定された地理的リージョンに基づいて、モデル内で休日のカテゴリ特徴を作成します。
次に、米国の日付と休日のカテゴリ特徴の抜粋を示します。カテゴリ特徴は、主要日、休日前の日 1 日以上、休日後の日 1 日以上に割り当てられます。たとえば、2013 年の米国における母の日の主要日は 5 月 12 日でした。母の日の特徴は、主要日、休日前の日 6 日、休日後の日 1 日に割り当てられます。
日付 | 休日のカテゴリ特徴 |
---|---|
2013-05-06 | 母の日 |
2013-05-07 | 母の日 |
2013-05-08 | 母の日 |
2013-05-09 | 母の日 |
2013-05-10 | 母の日 |
2013-05-11 | 母の日 |
2013-05-12 | 母の日 |
2013-05-13 | 母の日 |
2013-05-26 | 米国記念日 |
2013-05-27 | 米国記念日 |
2013-05-28 | 米国記念日 |
休日地域に指定できる値は次のとおりです。
GLOBAL
: 全世界の地域の休日を検出します。NA
: 北米の休日を検出します。JAPAC
: 日本とアジア太平洋の休日を検出します。EMEA
: ヨーロッパ、中東、アフリカの休日を検出します。LAC
: ラテンアメリカとカリブ海の休日を検出します。- ISO 3166-1 国コード: 各国の休日を検出します。
各地理的リージョンにおける休日の一覧については、BigQuery の holidays_and_events_for_forecasting
テーブルを参照してください。このテーブルは、次の手順で Google Cloud コンソールから開くことができます。
-
Google Cloud コンソールの [BigQuery] セクションで、[BigQuery Studio] ページに移動します。
- [エクスプローラ] パネルで
bigquery-public-data
プロジェクトを開きます。このプロジェクトが見つからない場合、または詳細については、一般公開データセットを開くをご覧ください。 ml_datasets
データセットを開きます。holidays_and_events_for_forecasting
テーブルを開きます。
以下は、holidays_and_events_for_forecasting
テーブルからの抜粋です。