複数のセンサが同時に動くシステムでは、異常は「1本のチャネルの異常な値」ではなく「普段は連動しているチャネル同士の関係が崩れること」として現れることが多い。温度が上がれば圧力も上がるはずなのに、温度だけ上がって圧力が動かない ―― こうした関係の崩れを捉えるには、チャネル同士の依存関係をモデルが理解している必要がある。これを正面から扱ったのが MTAD-GAT(Multivariate Time-series Anomaly Detection via Graph Attention Network; Zhao et al., ICDM 2020) だ。
本記事は、CPS多変量異常検知の俯瞰記事の個別深掘りとして、MTAD-GAT を原論文の図を全て引用しながら技術的に掘り下げる。なぜこれを学ぶのか。ひとつは、グラフ注意(GAT)を時系列異常検知にどう使うかの代表例を理解するため。もうひとつは、予測と再構成という2つの異常スコアを組み合わせる設計の利点を押さえるためだ。

出典: Zhao et al., “Multivariate Time-series Anomaly Detection via Graph Attention Network”, ICDM 2020, Fig.1。
論文の Fig.1 は、複数チャネルが連動して動く時系列に異常が混じる様子だ。緑や赤で示された区間では、あるチャネルだけが普段の連動から外れている。値の絶対値だけを見ると見逃しやすいが、チャネル間の関係を見れば異常として浮かび上がる ―― これが MTAD-GAT の問題意識である。
前提知識
アーキテクチャ全体 ― 2つのGATとGRU
MTAD-GAT の核心は、入力の窓を 2つのグラフ注意層に分岐させて、2方向の依存を同時に学ぶ点にある。

出典: Zhao et al., ICDM 2020, Fig.2。
Fig.2 の流れを追う。まず長さ $n$・$k$ チャネルの入力窓を 1次元畳み込みで前処理し、局所的なパターンを抽出する。そこから2方向に分岐する。
- feature-oriented GAT(特徴方向):$k$ 個のチャネルをグラフのノードとみなし、チャネル同士の相関を注意で学ぶ。「どのセンサがどのセンサと連動しているか」を捉える。
- time-oriented GAT(時間方向):窓内の各時刻をノードとみなし、時刻間の依存を学ぶ。短期的な時間パターンを捉える。
2つの GAT 出力を、前処理済みの特徴と連結して GRU に渡す。GRU が時間発展をまとめ、その表現から2つの出力を作る ―― ひとつは次時刻を当てる予測、もうひとつは入力窓を復元する再構成(VAEベース)だ。この「予測と再構成の同時最適化」が MTAD-GAT のもう一つの肝になる。まず特徴方向 GAT の中身を見よう。
特徴方向のグラフ注意 ― チャネル同士の依存を学ぶ

出典: Zhao et al., ICDM 2020, Fig.3。
Fig.3 は特徴方向 GAT の模式図だ。各チャネルを完全グラフのノードとして、ノード $i$ の新しい表現を、隣接ノード $j$ からの重み付き集約で作る。注意係数 $\alpha_{ij}$ は、2つのノードの特徴を連結して活性化に通したスコアを softmax で正規化して得る。
$$ \begin{equation} e_{ij} = \mathrm{LeakyReLU}\!\left(\bm{w}^{\top}(\bm{v}_i \oplus \bm{v}_j)\right), \qquad \alpha_{ij} = \frac{\exp(e_{ij})}{\sum_{l}\exp(e_{il})} \end{equation} $$
ここで $\bm{v}_i$ はチャネル $i$ の特徴ベクトル、$\oplus$ は連結、$\bm{w}$ は学習パラメータだ。得られた注意係数で隣接ノードを重み付き集約し、ノード $i$ の新しい表現を作る。
$$ \begin{equation} \bm{z}_i = \mathrm{ReLU}\!\left(\sum_{j} \alpha_{ij}\,\bm{W}\bm{x}_j\right) \end{equation} $$

図のように、注目ノード $i$ は隣接ノード $j_1,j_2,\dots$ から、それぞれの注意係数 $\alpha_{ij}$ の重みで情報を集める。$e_{ij}$ が「$i$ と $j$ の関係の強さ」のスコア、$\alpha_{ij}$ がそれを足して1になるよう正規化した重みだ。これにより「どのチャネルから情報を引くべきか」をデータから学習する。グラフ構造を事前に与えなくても、注意係数が動的に依存関係を表す。
同じ仕組みを時刻ノードに適用したものが時間方向 GAT で、こちらは窓内の時刻間の依存を捉える。

左が特徴方向(チャネルをノードとし、チャネル間の依存を学ぶ)、右が時間方向(窓内の各時刻をノードとし、時刻間の依存を学ぶ)だ。2方向を分けることで、空間的(チャネル間)と時間的(時刻間)の関係を別々に、しかし同時に学べるわけだ。次に、学習の目的関数を見よう。
予測と再構成を同時に最適化する
MTAD-GAT は2つの目的を同時に最適化する。ひとつは次時刻の値を当てる予測損失、もうひとつは入力窓を確率的に復元する VAE ベースの再構成損失だ。最終的な異常スコアは、各時刻について
$$ \begin{equation} \mathrm{score} = \frac{(\hat{x}-x)^2 + \gamma\,(1 – p_{\mathrm{recon}})}{1+\gamma} \end{equation} $$
のように、予測誤差と再構成(確率)スコアを重み $\gamma$ で混ぜて作る。

図の左が予測損失 $(\hat{x}-x)^2$、右が VAE による再構成スコア $1-p_{\mathrm{recon}}$ だ。予測は「次に来るはずの値」を当てるので急激な変化に強く、再構成は窓全体の確率的な復元なので全体パターンの崩れに強い。性質の異なる2つを $\gamma$ で混ぜることで、片方が苦手な異常をもう片方が拾う。予測は急激な変化に、再構成は全体パターンの崩れに強く、両者は相補的だ。実際、再構成だけに頼ると失敗する場面がある。

出典: Zhao et al., ICDM 2020, Fig.6。
Fig.6 は、再構成ベースの手法が異常を見逃す失敗例だ。緩やかに変化する異常は再構成でうまく復元できてしまい、誤差が小さく出る。こうした場面では予測誤差が効く。2つのスコアを混ぜることで、互いの弱点を補い合うのが MTAD-GAT の設計思想だ。では実際の性能を見ていく。
評価 ― SMAP/MSL と遅延に対する頑健性
MTAD-GAT は宇宙機由来の SMAP(25次元)・MSL(55次元)、および水処理の SWaT 系データで評価された。比較の観点のひとつが「検出の遅れ(delay)」に対する頑健性だ。

出典: Zhao et al., ICDM 2020, Fig.4。
Fig.4 は、許容する検出遅延(横軸 Delay)を変えたときの F1 を、MTAD-GAT(紫)と OmniAnomaly(OMNI, オレンジ)で比べたものだ。3つのデータセットいずれでも、MTAD-GAT が短い遅延から高い F1 を保っている。早く検出できるほど実用上は望ましいので、左側(小さい遅延)で差がつくのは重要だ。注意機構が学んだチャネル間の依存も可視化できる。

出典: Zhao et al., ICDM 2020, Fig.5。
Fig.5 は、あるチャネルに対する特徴方向 GAT の注意スコアをヒートマップにしたものだ。色が濃いほど強く注目していることを示し、そのチャネルがどの他チャネルと関係づけられているかが読み取れる。これは検出だけでなく、異常の原因を解釈する手がかりになる。最後に、具体的なケースを見よう。

出典: Zhao et al., ICDM 2020, Fig.7。
Fig.7 は実データでのケーススタディで、複数チャネルの時系列と検出結果を重ねている。真の異常を捉える一方、緩やかな正常変化を誤検知してしまう難しい例も率直に示されている。完璧ではないが、2方向の関係モデリングと2種のスコア併用によって、単純な再構成ベースより頑健になっていることがわかる。
まとめ
本記事では、MTAD-GAT を原論文の全図とともに深掘りしました。
- 2つのGAT:特徴方向(チャネル間)と時間方向(時刻間)のグラフ注意を分けて、空間的・時間的依存を同時に学ぶ。
- 予測+再構成の同時最適化:予測誤差は急変に、再構成(VAE)は全体パターンの崩れに強く、混合スコアで弱点を補い合う。
- 解釈性:注意スコアから「どのチャネルが関係づけられているか」を可視化でき、原因分析に役立つ。
- 評価:SMAP/MSL などで、検出遅延が小さい領域から高い F1 を保つ。
グラフで変量間の関係を陽に扱う発想は、次に紹介する GDN(グラフ偏差ネットワーク)でさらに前面に出てきます。


