著者: 禅とコンピュータープログラミングの芸術
1 はじめに
情報技術の継続的な発展、オートメーション産業の急成長、大規模なデータセットの生成により、あらゆる階層がビッグデータによる多くの課題に直面しています。データ収集から保管、分析、意思決定に至るまで、人々はこれらの大量のデータを迅速かつ正確に処理するための新しい技術的手段を開発する必要があります。中でも時系列分析は、電気自動車、ネットワークトラフィック、センサーデータなどにおいて重要な役割を果たしています。時系列データ分析の主なタスクは、時系列データを分析し、貴重な情報とパターンを抽出し、それらをビジネス上の意思決定に適用することです。データの急激な増加により、時系列データ分析技術も急速に発展しました。
時系列データ分析は、数学、統計、コンピューター サイエンス、データベース システム、情報理論などの複数の分野が関与する独立した分野です。この記事では、Microsoft Research Asia が主導する新時代の時系列データ分析テクノロジ、つまり Autoformer と呼ばれる機械学習に基づく時系列予測手法を紹介します。Autoformer は、高次元および高緯度の時系列データを同時に処理できる、スケーラブルで効率的な時系列予測モデルです。軽量で使いやすく、モデルサイズが小さく、計算速度が速く、予測精度が高いことが特徴です。
Autoformer は、Google、Facebook、その他の企業が自社開発した DeepAR モデルを利用し、Transformer Residual Network を使用して長期的な依存関係を学習します。この構造により、計算の複雑さを維持しながら効率的なトレーニングが可能になります。その全体的なアーキテクチャを次の図に示します。
- オートフォーマーモデル
(1) 時系列予測の基礎知識
まず、時系列予測とは何かを理解する必要があります。一連の観測値 (シーケンス) を入力として指定すると、私たちの目標は、将来の観測値から次に可能性の高い値を予測することです。一般に、時系列予測は、教師ありと教師なしの 2 つのカテゴリに分類できます。
1.1 時系列予測の監視方法
大量のラベル付きデータがある場合は、教師ありメソッドを使用してモデルをトレーニングできます。監視方法は、回帰予測と分類予測の 2 つのカテゴリに分類できます。
1.1.1 回帰予測回帰予測とは、入力シーケンスと出力の間のマッピング関係がわかっており、このマッピング関係を使用して将来の出力を予測できることを意味します。たとえば、電気料金を予測するとします。入力として多くの期間の電気使用量データがあり、電気料金が出力となります。この場合、線形回帰モデルを構築して、既知のデータに適合させることで将来のデータを予測できます。
1.1.2 分類予測もう 1 つの方法は、さまざまなカテゴリに属するイベントまたは状態を予測することです。たとえば、株式市場が下落するか上昇するかを予測できます。この場合、ロジスティック回帰や SVM などの分類モデルをトレーニングに使用できます。
1.2 時系列予測の評価基準
時系列予測モデルの品質を評価する場合、通常は次の 3 つの基準を使用します。
1.2.1 平均二乗誤差 (MSE) MSE はモデルの予測値の偏差の度合いを測定し、MSE が低いほどモデルが真の値に近いことを意味します。ただし、MSE はモデルのパフォーマンスを説明することしかできず、モデルが優れた汎化能力を備えているかどうかを判断することはできません。
1.2.2 平均絶対パーセント誤差 (MAPE) MAPE は、真の値に対する予測値の誤差のパーセントを測定します。これにより、モデルの予測パフォーマンスをより直観的に表すことができます。MAPE が低いほど、予測がより正確であることを意味します。ただし、MAPE を直接使用して、異なるモデル間の利点と欠点を比較することはできません。
**1.2.3 R 二乗 R 二乗は、従属変数と独立変数の間の相関を測定します。R 二乗の合計が大きいほど、従属変数に影響を与える独立変数の変化が大きくなります。ただし、R 平方和はモデルの適合度を説明するだけであり、モデルの妥当性を判断することはできません。
要約すると、時系列予測モデルを評価する基本的な方法は、テスト セット上の予測結果と実際の状況との差を使用することです。ただし、より正確な評価結果を得るために、テスト セットのデータはトレーニング セットのデータにできるだけ近い必要があることに注意する必要があります。さらに、問題ごとに異なる評価基準が適用されることもよくあります。したがって、最適なモデルを選択する前に、実際の状況に応じて異なる基準を採用する必要があります。
(2) DeepARモデル
2.1 DeepAR の概要
現在、最も高度な時系列予測モデルは、一般にニューラル ネットワーク (ニューラル ネットワーク) に基づいています。ただし、ディープラーニング技術はまだ初期段階にあり、いくつかの基本技術はまだ成熟していません。たとえば、ダイナミック リカレント ニューラル ネットワーク (DRNN) や畳み込みリカレント ニューラル ネットワーク (CRNN) です。
DeepAR モデルは、DRNN に基づく時系列予測モデルです。基本的なアイデアは、時間次元でサイクル メカニズムを使用して履歴情報を取得することです。具体的には、DeepAR モデルは入力シーケンスを動的に生成されたものとして扱い、各瞬間の出力はその瞬間以前のいくつかの固定長の履歴入力にのみ依存します。したがって、DeepAR モデルは入力シーケンスの前処理を必要とせず、生データを直接受け入れることができます。
DeepAR モデルのアーキテクチャを次の図に示します。
2.2 トランスベースのモデル
履歴情報の長期的な依存関係を取得できるようにするために、DeepAR モデルは Transformer 構造を採用しています。ただし、Transformer は並列計算のオーバーヘッドが大きすぎ、並列計算能力は RNN に比べてあまり優れていません。したがって、DeepAR モデルは残余接続 (Residual Connection) を使用して、並列計算のコストを削減します。
DeepAR モデルのトランスフォーマー層は次の構造に従います。
このうち、アテンションは、現在のタイムステップ入力シーケンスのどの位置が重要な特徴であるかに注意を払うために使用されるメカニズムです。セルフ アテンション層は、シーケンス内の情報を学習および組み合わせることによって入力シーケンスの特徴を計算します。一方、フィードフォワード層は隠れ層の制御に使用されます。残留接続は、前の層の出力を後の層の入力に追加して、勾配が消える問題を軽減するために使用されます。
2.3 オートフォーマー
Autoformer モデルは、Transformer ベースのモデルに基づく時系列予測モデルです。その主な貢献は、履歴情報の長期依存関係を同時に取得するための Transformer 構造の導入です。Autoformer モデルの主な改善点は次のとおりです。
- AutoRegressive 構造を使用する: Autoformer モデルは、各タイム ステップでの前のステップの出力のみを考慮します。この構造は、履歴シーケンスの長期的な依存関係をキャプチャできます。
- マルチスケール エンコーディングを使用する: Autoformer モデルは、さまざまなスケールで時系列特徴をキャプチャできます。
- スプリット ポイント コーディングによる異なるスケールの特徴の融合: スプリット ポイント コーディングを通じて、Autoformer モデルは異なるスケールの時系列特徴をより適切に融合できます。
Autoformer モデルの全体的な構造を次の図に示します。
(3)オートフォーマーモデル
3.1 モデルのトレーニングとハイパーパラメーターの設定
Autoformer モデルは、将来のタイム ステップの条件付き確率分布を予測することにより、時系列予測を実装します。モデルのトレーニングは主に負の対数尤度関数 (NLL) に依存します。トレーニング プロセス中、モデルは真の値からの距離を最小化する、つまり尤度関数の確率値を最大化する必要があります。オートフォーマー モデルは、各タイム ステップで条件付き確率分布を学習することでこれを実現します。
Autoformer モデルのトレーニング プロセスは、次の 3 つのステップで構成されます。
- データ前処理: 正規化や欠損値の補充など、入力データの前処理。
- モデル トレーニング: トレーニング セット上でモデルをトレーニングします。これには、主にモデル構造の構築、オプティマイザーの定義、モデルのトレーニングが含まれます。
- モデルのテスト: テスト セットでモデルをテストし、予測値と真の値の間の誤差を計算します。
さらに、Autoformer モデルは、モデル構造のパラメーターを調整することで予測精度を向上させることもできます。Autoformer モデルのハイパーパラメータ設定には次のものが含まれます。
- バッチ サイズ:各バッチ内のトレーニング サンプルの数。
- シーケンスの長さ:入力シーケンスの長さ。
- ヘッドの数:アテンション メカニズムのヘッドの数。
- 各ヘッドのサイズ:アテンション メカニズムの各ヘッドのサイズ。
- Drop Out Rate:ドロップアウトの割合。
- 学習率: Adam Optimizer の初期学習率。
- エポック:トレーニング ラウンドの数。
3.2 モデル構造
Autoformer モデルの主な構造を次の図に示します。
3.2.1 入力層
入力層は、観測シーケンスや特徴などの入力データを受け取り、それらを処理します。
3.2.2 特徴抽出層
特徴抽出層は、時系列に特徴を埋め込んで特徴ベクトルを取得します。
3.2.3 位置エンコーディング層
位置エンコーディング層はタイムステップを位置ベクトルにエンコードし、モデルがさまざまな位置で入力シーケンスの特性をキャプチャできるようにします。
3.2.4 スケーリングされたドット積アテンション
スケーリングされたドット積アテンション レイヤーは、位置合わせされたコンテキスト ベクトルを学習することにより、時系列で重要な情報を取得します。
3.2.5 マルチヘッドアテンション
マルチヘッド アテンション レイヤーにより、モデルはさまざまな種類の時系列特徴を学習できます。
3.2.6 連結層と出力層
接続層はマルチヘッド アテンションの最終出力をつなぎ合わせ、完全接続層を通じて予測値を出力します。
3.2.7 予測分布
予測分布は、正規分布、二項分布、クロスエントロピー損失関数を含む活性化関数を通じてタイム ステップの条件付き確率分布を出力します。
3.3 スプリットポイントコーディング
ディープラーニング時系列予測タスクでは、多くの場合、異なるスケールの時系列特徴は異なるデータ頻度を持ちます。異なるスケールの時系列特徴の場合、Autoformer モデルは異なるスケールの特徴の融合を試みることができます。したがって、Autoformer モデルには、異なるスケールの機能の融合を実現するために、スプリット ポイント コーディングが導入されています。
スプリット ポイント エンコーディングは、異なるスケールの特徴を融合し、モデルのパフォーマンスを向上させることができます。特に、セグメンテーション ポイント コーディングは、異なるスケールでの時系列特徴の融合を実現できます。Autoformer モデルは、セグメンテーション ポイント エンコーディングを通じて、異なるスケールの特徴の融合を実現します。
3.3.1 スプリットポイントエンコーディングの概要
スプリット ポイント エンコーディングは、エンコーディング ベクトルが異なるタイム ステップでの特徴情報を表す固定長のエンコーディング行列と考えることができます。
セグメンテーション ポイントのエンコードの具体的な手順は次のとおりです。
- スプリットポイントコーディングの初期化: スプリットポイントコーディング行列をランダムに初期化します。
- モデルの予測結果に従って、分割点エンコード行列が更新されます。
- コーディング行列と時系列データを組み合わせて予測を計算します。
3.3.2 マルチレベルの注意メカニズム
さまざまなスケールで時系列特徴をキャプチャするために、Autoformer モデルにはマルチレベル アテンション メカニズム (マルチレベル アテンション メカニズム) が導入されています。マルチレベルのアテンション メカニズムにより、さまざまなスケールで時系列特徴をキャプチャできます。
3.3.3 レベル集約メカニズム
セグメンテーションポイントエンコーディングはカスケード構造を採用し、異なるスケールの特徴の融合を実現します。具体的には、スプリットポイントエンコーディングは、まずグローバルエンコーディングベクトルを生成し、次にエンコーディング行列の各列を正規化および平滑化して、異なるスケールのエンコーディングベクトルを形成します。最後に、モデルは予測にグローバル エンコード ベクトルとさまざまなスケールのエンコード ベクトルを使用します。
3.3.4 サンプル出力
Autoformer モデルのプロセス全体を示すサンプル出力を次に示します。
入力シーケンスが与えられると、観測シーケンスは (t1, t2,..., tn) となり、特徴シーケンスは (x1, x2,..., xn) となります。t 番目の瞬間におけるモデルの出力は、π(xt|t) = Θ(θ)(x̂t-1, xt; ckt)、k=1,...,K、ckt として表されます。ckt は符号化行列を表します。 k番目のレベルの。
- 特徴抽出層は、時系列に特徴を埋め込んで特徴ベクトルを取得します。
- 位置エンコード層は、時間ステップを位置ベクトルにエンコードして、ct1、ct2、...、ctk を取得します。
- スケーリングされたドット積アテンション層とマルチヘッド アテンション層は、符号化行列 ckt を生成します。ここで、各列は、対応する特徴ベクトル ct1、ct2、...、ctk を表します。
- 各列のコンテキスト ベクトルから αt を計算します。
- 次に、αt とタイムステップの埋め込み ctt によりパラメータ Θt が計算されます。
- Θt と次のタイム ステップの予測値 π(xt+1|t) をモデルに入力して、次のタイム ステップの条件付き確率分布を予測します。
- グローバル エンコーディング ベクトル cg を生成します。
- スプリットポイントエンコーディング行列を更新し、スプリットポイントエンコーディング行列と時系列データを結合して予測値を計算します。