OracleAD:正常時の『安定潜在構造(SLS)』からの逸脱で異常を捉え、原因変量まで名指しする

楽団のリハーサルを思い浮かべてほしい。「バイオリンがメロディ、チェロがハーモニー、ティンパニがリズム」という楽器間の役割の構造が安定している間は正常だ。ある日、チェロがメロディを弾き始めたら ―― 個々の音はどれも正常な範囲でも、楽器間の関係構造が崩れている のだから異常である。多変量時系列の異常検知で、この「関係構造の崩壊」を正面から扱うのが OracleAD(Cho et al., “Structured Temporal Causality for Interpretable Multivariate Time Series Anomaly Detection,” NeurIPS 2025)だ。

OracleAD の核心は、正常データから変量間の関係を Stable Latent Structure(SLS、安定潜在構造) という参照テンプレートとして学習し、推論時に現在の構造が SLS からどれだけ逸脱したかを監視することにある。しかも、値の予測誤差と構造の逸脱を組み合わせる デュアルスコア で検知精度と解釈性を両立し、どの変量が崩れたかという 根本原因 まで名指しできる。本記事では、因果埋め込み・SLS の構築・デュアルスコアの数式を追い、決定的なデモでその効きどころを確かめる。

なぜこれを学ぶのか。前回扱った SARAD と同じ「関係ベース」の系統だが、OracleAD は関係を 統計的に安定した参照構造(SLS) として明示的に定義し、構造逸脱と予測誤差を掛け合わせる点が異なる。関係ベース異常検知の設計の幅を押さえるのに格好の一本だ。

OracleADの概念:楽団の楽器間の構造が安定なら正常、崩れたら異常

まず直感だ。OracleAD は各変量の値そのものではなく、変量間の関係構造 を監視する。正常運転時の関係構造を「あるべき姿(SLS)」として覚えておき、そこから構造が逸脱したら異常とみなす。この SLS をどう作るかが第一の山場だ。だがその前に、なぜ OracleAD が「予測誤差」と「構造逸脱」という2つの信号を組み合わせる設計に至ったのか ―― 手法の骨格を決めた 問題意識 を押さえておきたい。

問題意識 ― 異常は「2つの信号」として現れる

OracleAD の新規性は、複雑なアーキテクチャを積み上げることではなく、「多変量時系列の異常とは何か」を明示的に定義し直した ことにある。論文は、近年の手法が「正常と異常の分離をブラックボックスな順伝播の出力に委ねるだけで、異常がどう発生し広がるかを明示的にモデル化していない」と批判する。とりわけ Transformer 系は大きな時間文脈と双方向注意を使うが、これは 時間の不可逆な一方向性を無視 しており、リアルタイム運用にも不向きだと指摘する。

そこで論文は、多変量時系列の異常を 互いに連鎖する2つの信号 として捉える(下図)。

OracleADの問題意識:異常は時間因果の崩壊と構造逸脱という2つの信号として現れる

  • ① 時間因果の崩壊(temporal causality の breakdown): ある変量の現在値が、その変量自身の過去から導かれる期待を外れる。これは その変量内部の時間的因果が壊れた ことの現れで、予測誤差 として顕在化する。
  • ② 構造逸脱への伝播: 時間的な乱れは、正常時に保たれていた 変量間の安定な関係 を壊す方向に伝播する。崩れた変量が他の変量との関係を乱し、関係構造の逸脱 として現れる。

論文はこの見立てから、異常を「特定変量における時間因果の喪失に端を発し、それが変量間の関係構造を変質させる過程」と明示的に定義する。この定義こそが OracleAD の設計図そのものだ。①を捉えるのが予測スコア $\mathcal{P}$、②を捉えるのが構造逸脱スコア $\mathcal{D}$ で、両者の積が後述のデュアルスコアになる。ブラックボックスに分類を任せるのではなく「異常の発生と伝播の物語」をアーキテクチャに焼き付ける、というのが新規性の核心である。

この問題意識は、もう一つの設計判断 ―― 変量ごとに独立したエンコーダ・デコーダ を持つこと ―― にも直結する。論文は、SWaT・SMAP・MSL のような「全変量が連動する」とされるベンチマークでも、実際には異常が一部の変量にしか影響しないことが多く、単変量化しても検出性能がほとんど変わらないという先行研究を引く。つまり多変量の絡みを一括処理する共有モデルは、無関係な変量の動態を混線させて検知感度と解釈性を損なう。OracleAD が各変量を独立に符号化するのは、この「異常は一部の変量から始まる」という観察を素直に反映した結果だ。だからこそ後段で、崩れた変量を 名指し できる。

では、この問題意識をどう具体的なネットワークに落とし込むのか。まず全体像から見ていこう。

アーキテクチャ全体像

まず全体像を論文の Fig.1 で把握しておこう。入力窓 $\mathcal{X} \in \mathbb{R}^{N \times L}$ の各変量を 変量ごとに独立した LSTM エンコーダ で処理し、注意プーリングで因果埋め込み $c_i$ に凝縮する。これらを 多頭自己注意(MHSA) で変量間の相互作用を取り込み、LSTM デコーダ で次ステップ予測と窓再構成を同時に生成する。さらに、埋め込みから 非類似度行列 $D$ を計算し、正常時の安定テンプレート SLS と比較して逸脱を測る。

記号を整理しておく。$N$ は変量数、$L$ は窓長、$d$ は LSTM の隠れ次元、$H$ は注意ヘッド数、$d_h = d/H$ はヘッドごとの次元数だ。入力窓は

$$ \begin{equation} \mathcal{X} = \{x_1, x_2, \ldots, x_L\}, \quad x_\ell \in \mathbb{R}^N, \quad 1 \leq \ell \leq L \end{equation} $$

と定義され、$x_\ell = (x_\ell^1, x_\ell^2, \ldots, x_\ell^N)^\top$ は第 $\ell$ タイムステップの $N$ 変量の観測ベクトルだ。最新タイムステップ $x^L$ の異常性を判定するのが推論時の目標になる。

OracleAD Fig.1 パイプライン全体像:変量ごとLSTMエンコーダ+注意プーリング→MHSA→LSTMデコーダ+非類似度行列D

出典: Cho et al., NeurIPS 2025 (arXiv:2510.16511), Fig.1

Fig.1 の右側に LSTM エンコーダ・デコーダの内部構造が示されている。エンコーダは各変量の過去 $L-1$ ステップを LSTM で処理して隠れ状態列を生成し、注意プーリングで1ベクトルに集約する。デコーダは「ゼロベクトル $\bm{z}$」を初期入力として持ち、埋め込み $c_i^*$ から窓全体と次ステップ予測を生成するオートレグレッシブな構造をとる。先行手法が多変量を共有モデルで一括処理するのに対し、OracleAD は各変量に独立したエンコーダ・デコーダを持つことで、異なる動的特性を持つ変量の絡み合いを防ぎ、検知感度と解釈性を同時に高めている。

因果埋め込み ― 各変量の振る舞いを1点に凝縮する

OracleAD はまず、各変量の過去系列を1つのベクトル(因果埋め込み $c_i$)に圧縮する。各変量 $i$ の過去 $L-1$ ステップの系列 $x_i = (x_i^1, x_i^2, \ldots, x_i^{L-1})^\top \in \mathbb{R}^{L-1}$ を LSTM エンコーダ $\mathrm{Enc}_i$ に通して隠れ状態列を得る。

$$ \begin{equation} \{h_i^1, h_i^2, \ldots, h_i^{L-1}\}, \quad h_i^l \in \mathbb{R}^d \end{equation} $$

この隠れ状態列を 注意プーリング で1ベクトルに集約する。まず各タイムステップにスカラースコアを与える線形写像

$$ \begin{equation} f(h_i^l) = w^\top h_i^l + b, \quad w \in \mathbb{R}^d,\; b \in \mathbb{R} \end{equation} $$

を定義し、時間軸 $l = 1, \ldots, L-1$ でソフトマックス正規化して注意重みと因果埋め込みを得る。

因果埋め込み:LSTM隠れ状態を注意プーリングで1ベクトルに集約

$$ \begin{equation} \alpha_i^l = \mathrm{softmax}(f(h_i^l)), \qquad c_i = \sum_{l=1}^{L-1} \alpha_i^l\, h_i^l \end{equation} $$

注意の重み $\alpha_i^l$ が「どの時刻の状態を重視するか」を学習し、変量 $i$ の振る舞いを1点に凝縮する。これが「因果埋め込み(causal embedding)」と呼ばれる所以で、変量 $i$ の過去 $L-1$ ステップの 時間的因果関係を1ベクトル $c_i \in \mathbb{R}^d$ に圧縮したものだ。

次に、各変量の因果埋め込みを行に並べた行列

$$ \begin{equation} \mathbf{C} = [c_1, \ldots, c_N]^\top \in \mathbb{R}^{N \times d} \end{equation} $$

に対して MHSA を適用し、変量間の相互作用を取り込む。出力を

$$ \begin{equation} \mathbf{C}^* = [c_1^*, \ldots, c_N^*] \in \mathbb{R}^{N \times d} \end{equation} $$

とおき、各変量のコンテキスト対応埋め込みは

$$ \begin{equation} c_i^* = \sum_{h=1}^{H} W_h^O \,\mathrm{softmax}\!\left(\frac{(W_h^Q c_i)(W_h^K \mathbf{C})^\top}{\sqrt{d_h}}\right) W_h^V \mathbf{C} \end{equation} $$

で計算される。$W_h^Q, W_h^K, W_h^V \in \mathbb{R}^{d_h \times d}$ はヘッド $h$ のクエリ・キー・バリュー射影行列、$W_h^O \in \mathbb{R}^{d \times d_h}$ は出力射影行列だ。各変量の埋め込みをヘッドごとの線形変換で共有潜在空間に射影し、多頭自己注意で他の全変量のコンテキストを取り込む。この コンテキスト対応埋め込み $c_i^*$ がデコーダに渡され、変量 $i$ の次ステップ予測 $\hat{x}_i^L$ と窓再構成 $\hat{x}_i^{1:L-1}$ を生成する。

$$ \begin{equation} \hat{x}_i^{1:L-1},\; \hat{x}_i^L = \mathrm{Dec}_i(c_i^*) \end{equation} $$

デコーダはオールゼロベクトル $\bm{z}$ を初期入力として受け取り、$c_i^*$ を条件として窓全体と次ステップをオートレグレッシブに生成する(論文 Fig.1 右側の構造)。全変量の予測値を並べた多変量予測ベクトル

$$ \begin{equation} \hat{x}^L = [\hat{x}_1^L, \hat{x}_2^L, \ldots, \hat{x}_N^L] \in \mathbb{R}^N \end{equation} $$

が損失計算と推論スコアで使われる。こうして得た各変量の因果埋め込み $c_i^*$ のペアごとの距離が、変量間の「関係」を測る物差しになる。それを安定テンプレートにまとめたのが SLS だ。

SLS ― 正常な関係構造を安定テンプレートにする

変量 $i, j$ の因果埋め込みのユークリッド距離を並べた 非類似度行列 $D$ を作る。

$$ \begin{equation} D_{ij}^{(k)} = \lVert c_i^{*(k)} – c_j^{*(k)} \rVert_2, \qquad D^{(k)} \in \mathbb{R}^{N \times N} \end{equation} $$

L2 距離を採用する理由は、方向の不一致と潜在エネルギーの差の両方を捉えられるからだ。論文の比較実験(付録 E.4)でも、コサイン類似度や L1 距離より安定かつ識別性が高いことが確認されている。

1つの窓から得た $D^{(k)}$ はノイズで揺れる。そこで訓練を通じて1エポック内の $M$ 窓の $D^{(k)}$ を平均し、安定した参照構造 SLS を得る。

SLSの構築:正常時の非類似度行列を訓練を通じて平均し安定テンプレートを得る

$$ \begin{equation} \mathbf{SLS} = \frac{1}{M} \sum_{k=1}^{M} D^{(k)} \end{equation} $$

SLS の更新タイミングも重要だ。第1エポックは SLS の初期値がないため更新をスキップし、第1エポック末に SLS を初めて構築する。第2エポック以降は、このSLSを構造整列の正則化に使いながら訓練が進む。SLS は「正常状態のもとで変量間がどう関係しているか」の標準テンプレートだ。値そのものではなく、変量間の距離の型を覚える点がミソである。

なお論文付録 E.5 では、訓練エポックを通じた非類似度行列の分散の推移を追跡している。前半エポックでは分散が急増し、モデルが潜在的な関係幾何を探索していることを示す。後半では分散が徐々に減少して収束し、潜在表現が一貫した変量間テンプレートに安定していく。この収束こそ、SLS が頑健な正常状態の基準として機能する証拠だ。

推論時は、時刻 $t$ の非類似度行列 $D^t$ と SLS の要素ごとの差を 逸脱行列 として計算する。

$$ \begin{equation} \mathcal{D}^t_{\mathrm{matrix}} = \lvert D^t – \mathbf{SLS} \rvert \end{equation} $$

この逸脱行列の高い行・列が、関係の安定性を最も大きく崩した変量を示す。

損失関数 ― 3項の同時最適化

学習は3項の損失を最小化する。

$$ \begin{equation} \mathcal{L} = \underbrace{\lVert x^L – \hat{x}^L \rVert^2}_{\text{予測損失}} + \lambda_{\mathrm{recon}} \underbrace{\lVert x^{1:L-1} – \hat{x}^{1:L-1} \rVert^2}_{\text{再構成損失}} + \lambda_{\mathrm{dev}} \underbrace{\frac{1}{N^2}\sum_{i=1}^{N}\sum_{j=1}^{N}(D_{ij} – \mathbf{SLS}_{ij})^2}_{\text{構造整列損失}} \end{equation} $$

ここで $x^\ell \in \mathbb{R}^N$ は窓の第 $\ell$ 要素、$D$ は式(11)で定義した現在の非類似度行列 $D_{ij} = \lVert c_i^* – c_j^* \rVert_2$ だ。構造整列損失は $D$ が SLS から外れていれば大きくなる 正則化項として機能し、エンコーダが正常時の関係構造を保つよう学習を誘導する。

第1項 予測損失 は、デコーダが直前の $L-1$ ステップのみを使って最新観測 $x^L$ を予測するよう強制し、時間的因果関係を埋め込みに押し込む。第2項 再構成損失(重み $\lambda_{\mathrm{recon}}=0.1$)は過去窓全体の再構成を補助し、エンコーダが正常パターンのフルスペクトラムを捉えるのを助ける。第3項 構造整列損失(重み $\lambda_{\mathrm{dev}}=3$)は現在の非類似度行列を SLS に近づけ、正常時に変量間の安定した関係構造を保持する。構造整列の重みが最大であることから、OracleAD が関係構造を最も重視していることがわかる。

損失の適用タイミング: 第1エポックは SLS がまだ存在しないため構造整列損失をスキップし、予測損失と再構成損失だけで訓練する。第1エポック末に全訓練窓の $D^{(k)}$ を平均して SLS を初めて構築し、第2エポック以降は全3項の損失で訓練する。

アーキテクチャ全体 ― 学習フローのまとめ

OracleADのアーキテクチャ:LSTM+注意プーリング、MHSA、予測・再構成デコーダ、SLS整列

全体の流れはこうだ。各変量の過去系列を LSTM エンコーダ+注意プーリングで因果埋め込み $c_i$ にし、MHSA で変量間の相互作用を取り込んでコンテキスト対応埋め込み $c_i^*$ を生成する。そこから LSTM デコーダが次ステップ予測と窓再構成を出す一方、$c_i^*$ から非類似度行列 $D$ を作って SLS と整列させる。第2エポック以降は SLS が正則化として機能し、正常運転時の変量間関係が埋め込みに「焼き付けられていく」ことで、推論時の逸脱検出が鋭くなる仕組みだ。

論文(arXiv:2510.16511)の式番号と本記事の式の対応を整理しておく。再実装時の参照に使ってほしい。

論文式番号 内容 本記事の式
(1)(2) 入力窓定義 $\mathcal{X} \in \mathbb{R}^{N \times L}$、$x_\ell \in \mathbb{R}^N$ アーキテクチャ全体像セクション
(3) LSTM 隠れ状態 $h_i^l \in \mathbb{R}^d$ 因果埋め込みセクション第1式
(4) 線形スコア $f(h_i^l) = w^\top h_i^l + b$ 因果埋め込みセクション第2式
(5) 注意重み $\alpha_i^l$、因果埋め込み $c_i$ 因果埋め込みセクション第3式
(6)(7) 埋め込み行列 $\mathbf{C} \in \mathbb{R}^{N \times d}$、出力 $\mathbf{C}^* \in \mathbb{R}^{N \times d}$ 因果埋め込みセクション第4・5式
(8) MHSA による $c_i^*$ 因果埋め込みセクション第6式
(9) LSTM デコーダ出力 $\hat{x}_i^{1:L-1}, \hat{x}_i^L$ 因果埋め込みセクション第7式
(10) 多変量予測アセンブリ $\hat{x}^L \in \mathbb{R}^N$ 因果埋め込みセクション第8式
(11) 非類似度行列 $D_{ij}^{(k)} = \lVert c_i^{*(k)} – c_j^{*(k)} \rVert_2$ SLS セクション第1式
(12) SLS 定義 $\mathbf{SLS} = (1/M)\sum_k D^{(k)}$ SLS セクション第2式
(13) 逸脱行列 $\mathcal{D}^t_{\mathrm{matrix}} = \lvert D^t – \mathbf{SLS} \rvert$ SLS セクション第3式
(14) 総損失 $\mathcal{L}$(予測+再構成+構造整列) 損失関数セクション
(15) 予測スコア $\mathcal{P}^t = (1/N)\sum_i \lvert x_i^t – \hat{x}_i^t \rvert$ デュアルスコアセクション
(16) 構造逸脱スコア $\mathcal{D}^t = \lVert D^t – \mathbf{SLS} \rVert_F$ デュアルスコアセクション
(17) 異常スコア $\mathcal{A}^t = \mathcal{P}^t \cdot \mathcal{D}^t$ デュアルスコアセクション

デュアルスコア ― 予測誤差 × 構造逸脱

デュアル異常スコア:予測スコアと構造逸脱スコアを乗算融合する

ここで冒頭の問題意識が回収される。異常の「2つの信号」―― 時間因果の崩壊(①)と構造逸脱(②)―― にそれぞれ対応する2つのスコアを用意するのだ。ひとつは①を捉える 予測スコア $\mathcal{P}$ で、観測と予測の平均絶対誤差。

$$ \begin{equation} \mathcal{P}^t = \frac{1}{N} \sum_{i=1}^{N} \lvert x_i^t – \hat{x}_i^t \rvert \end{equation} $$

もうひとつは 構造逸脱スコア $\mathcal{D}$ で、現在の非類似度行列と SLS のフロベニウスノルム差。

$$ \begin{equation} \mathcal{D}^t = \lVert D^t – \mathbf{SLS} \rVert_F \end{equation} $$

最終的な異常スコアは、この2つの で融合する。

$$ \begin{equation} \mathcal{A}^t = \mathcal{P}^t \cdot \mathcal{D}^t \end{equation} $$

足し算ではなく掛け算にする意図は、「値の異常」も「構造の異常」もどちらも拾いつつ、正常時(構造逸脱がほぼゼロ)のスコアを低く保つことにある。論文付録 E.6 で加算との比較も行われており、積の方が A-PR と V-PR(精度・再現率の曲線下面積)で加算を上回り、偽陽性を減らす効果が確認されている。

予測スコアと構造逸脱スコアの補完性

予測スコアは 瞬時の値の乱れ に敏感だが、回復期に前回の異常の残響で偽陽性を出しやすい。構造逸脱スコアは 長時間持続する関係の乱れ に敏感で、異常が始まってから窓に入るまでの時間遅延がある代わり、値が収まった後も異常区間全体を高い状態に保つ。乗算融合はこの 死角を互いに補い合う 設計になっている。

デュアルスコアの効きどころ ― デモ

6変量2グループの正常データに、性質の異なる2つの異常を仕込む。事象1 は値が大きく乱れる異常(全変量に共通の大きなノイズ)、事象2 は変量2だけが周囲との連動を失う構造のみの異常だ。予測スコア・構造逸脱スコア・その積を並べる。

予測スコアと構造逸脱スコアの補完性:乗算融合で両タイプの異常を検出

上段の 予測スコア は、値が大きく動く事象1には強く反応するが、値の範囲が正常なまま関係だけ壊れる事象2はほとんど捉えられない(正常時と変わらない)。中段の 構造逸脱スコア は、予測が見逃した事象2を ―― SLS からの構造のズレとして ―― しっかり捉える。下段の 乗算融合 $\mathcal{A} = \mathcal{P} \cdot \mathcal{D}$ は、正常時は構造逸脱がほぼゼロなので低く保たれ、値の異常(事象1)も構造の異常(事象2)もどちらも浮かび上がらせる。予測と構造が互いの死角を埋める ―― これがデュアルスコアの狙いだ。

そして OracleAD のもう一つの強みが、構造逸脱を分解すると 原因変量を名指しできる ことだ。

根本原因の特定 ― 逸脱行列で原因変量を名指す

構造逸脱スコアはスカラー値だが、その中身である 逸脱行列 $\lvert D^t – \mathbf{SLS} \rvert$ を見れば、どの変量ペアの関係が崩れたかがわかる。

逸脱行列:SLSと現在構造の差で根本原因変量を名指しする

左が SLS(正常の安定構造)、中央が事象2中の非類似度行列 $D^t$、右がその差 $\lvert D^t – \mathbf{SLS} \rvert$ だ。変量2の行と列が際立って赤く光る ―― これは変量2が他の変量との関係を最も大きく崩したことを意味し、異常の根本原因が変量2だと名指しできる。行・列で持続的に高い逸脱を示す変量ほど、原因の可能性が高い。この解釈性こそ、論文タイトルにある “Interpretable” が指すものだ。

論文のケーススタディ ― 実データでの動作確認

論文 Fig.2 では SMD データセット(サーバ監視データ、38変量)の4種類の異常区間でのスコア時系列を示している。

OracleAD Fig.2 SMDデータセットでの異常区間の予測スコア・逸脱スコア・異常スコアの可視化

出典: Cho et al., NeurIPS 2025 (arXiv:2510.16511), Fig.2

4つのパネルの異常区間(ピンクの網掛け領域)を見ると、予測スコアが急激なスパイクで反応する事例と、逸脱スコアが区間全体を持続的に高い状態に保つ事例が混在している。特に Fig.2(d)(異常区間 [18640, 18944])では、逸脱スコアが異常区間の全期間に渡って高い水準を維持しており、短点的な予測エラーよりも構造的な乱れの継続性をよく捉えている。乗算融合した異常スコア(赤線)は双方の特性を取り込み、区間全体をカバーしている。

続く Fig.3 は、同4つの異常時点の逸脱行列のヒートマップだ。

OracleAD Fig.3 SMDデータセット異常時点の非類似度行列(逸脱行列)の可視化

出典: Cho et al., NeurIPS 2025 (arXiv:2510.16511), Fig.3

各ヒートマップで特定の行・列が明るく際立っているのがわかる。列方向の輝きが最も高い変量が、その時点の関係的安定性を最も大きく崩した根本原因変量の候補だ。論文付録 G の定量分析 Table S10 では、逸脱行列の行集約スコアで予測した Top-3 変量が、グラウンドトゥルース因果変量とほぼ一致することが多数の異常時刻で確認されている。

PSM データセットでのケーススタディ ― 複合多変量異常

PSM データセット(eBay のサーバ指標、25変量)での複合異常のケーススタディが論文付録 F.1 に示されている。

OracleAD Fig.S6 PSMデータセットの複合多変量異常のケーススタディ

出典: Cho et al., NeurIPS 2025 (arXiv:2510.16511), Fig.S6

複数の変量(Var 1, 3, 15, 24)が異常区間中に複雑なパターンを示す。予測スコアは区間後半の局所的な急変を捉えるが、区間前半の段階的な変化は低めだ。一方、逸脱スコアは区間全体を通じて一貫して高く、変量間の構造的乱れが早期から続いていることを示している。乗算融合した異常スコア(赤線)は両者の強みを活かし、この長い複合異常区間を安定して検出する。

対応する逸脱行列ヒートマップ(Fig.S7)も示されており、ピンクの網掛けで根本原因変量の行・列が強調されている。

OracleAD Fig.S7 PSMデータセット異常時点の逸脱行列ヒートマップ

出典: Cho et al., NeurIPS 2025 (arXiv:2510.16511), Fig.S7

各タイムスタンプで際立つ行・列が異なるのは、複数変量が異なるタイミングで異常の中心になっていることを意味する。これは複合異常での根本原因が時間的に連鎖する様子を視覚化しており、OracleAD の解釈性の強みがよく現れている。

評価 ― 12手法中トップ

論文 Table 1 は PSM・SMD・SWaT の3データセットで7指標(F1/R-F1/Aff-F1/AUC-ROC/AUC-PR/VUS-ROC/VUS-PR)を報告し、深層学習12手法(AutoEncoder, OmniAnomaly, AnomalyTransformer, PatchTST, TimesNet, DLinear, NLinear, DCdetector, iTransformer, ModernTCN, SARAD, CATCH)と比較している。付録 Table S5 ではさらに古典手法(PCA/HBOS/IF)を加えた全16手法との比較も示されている。

OracleAD Table 1 PSM/SMD/SWaTの7指標で12手法と性能比較

出典: Cho et al., NeurIPS 2025 (arXiv:2510.16511), Table 1

OracleAD の主な結果をまとめると次の通り。

データセット F1 VUS-ROC VUS-PR
PSM 65.85(次点 A.E 47.55) 84.24(次点 A.E 68.20) 68.17(次点 Omni 52.49)
SMD 43.03(次点 Omni 32.16) 83.56(次点 A-ROC A.E系)
SWaT 76.50(次点 Omni 75.40) 82.42(次点 82.71 AUC-ROC) 74.16(次点 Omni 72.73)

特に PSM では F1 が +20pt 近い大差をつけており、変量間関係が異常の本質を反映するデータで OracleAD の優位が際立つ。関係構造を参照テンプレートとして明示し、予測と構造を掛け合わせるという設計が、PSM・SMD のような変量間の相関が豊富なデータに効く。

Affiliation F1 は複数手法が同スコアになりやすい傾向があり、これは「異常区間の一部を検出するだけで加点される」という affiliation 指標の特性による。OracleAD はこの指標でも高い水準(PSM 78.07)を示しつつ、より厳密な VUS-PR で大きな優位を実現している。

アブレーション ― 3構成要素の効果を切り分ける

各構成要素の貢献を確認するため、SMD の複数サブセットでアブレーション実験が行われている(Table S6)。

OracleAD Table S6 アブレーション実験:再構成損失なし・予測スコアなし・逸脱スコアなしで性能比較

出典: Cho et al., NeurIPS 2025 (arXiv:2510.16511), Table S6

Table 2 は3データセット × 5 seedの平均値、Table S6 は SMD の4サブセット(machine 1-5, 2-3, 2-7, 3-6)の詳細結果だ。3バリアントの結果をまとめると:

  • 再構成損失なし: PSM では F1 が 58.03 → 65.85(フルモデル)へ大幅改善(Table 2)。SMD サブセットでは machine 1-5 の F1 が 59.61 → 62.03、machine 3-6 の VUS-PR が 35.37 → 43.11 と改善する。再構成損失がラテント空間を安定させ、特にノイズや複雑な正常変動のあるサブセットで頑健性を高める。
  • 予測スコアなし($\mathcal{A}^t = \mathcal{D}^t$): SMD の machine 1-5 で F1 が 23.31 まで大幅低下。急峻な値の乱れを捉えられず、点異常への感度が落ちる。SWaT ではほぼ維持されており(76.92)、SWaT の異常が局所的な変量変化より構造的乱れで現れやすいことを裏付ける。
  • 逸脱スコアなし($\mathcal{A}^t = \mathcal{P}^t$): PSM で F1 55.33 / V-PR 60.99、SWaT で F1 70.49 と低下。構造変化が緩やかに進む異常を見逃しやすい。
  • フルモデル($\mathcal{A}^t = \mathcal{P}^t \cdot \mathcal{D}^t$): 全データセットで F1・V-ROC・V-PR のバランスが最も良く、多様な異常タイプに一貫して対応できる。

この結果は「値の異常を捉える予測スコア」と「構造の異常を捉える逸脱スコア」の両方が欠かせないことを定量的に裏付けている。どちらか単独では得意な異常タイプに偏り、フル融合が汎化力を高める。

ハイパラメータ感度 ― 窓長の影響

OracleAD の主要ハイパラメータのうち、入力窓長(Window Length)の影響を Fig.S1 で確認できる。

OracleAD Fig.S1 入力窓長(Window Length)がF1/V-ROC/V-PRに与える影響

出典: Cho et al., NeurIPS 2025 (arXiv:2510.16511), Fig.S1

PSM(橙)・SMD(青)・SWaT(緑)の3データセットで、窓長 5/10/20/40 を試した結果が示されている。デフォルト設定は窓長 10 で、F1 と V-ROC で 3 データセット全体として安定したパフォーマンスを示す。PSM は窓長を長くするほど F1 が下がる傾向があり、短い異常区間が多い PSM では短い窓が適している。一方 SWaT は窓長の影響が緩やかで、長期的な構造変化が主要な異常であることを示唆している。窓長・バッチサイズ・$\lambda_{\mathrm{dev}}$・層数のすべてにおいて、OracleAD はデフォルト設定(窓長 10、バッチ 1024、$\lambda_{\mathrm{dev}} = 3$、エンコーダ・デコーダ 2層)で概ね安定した結果を示す頑健さを持つ。3層にすると PSM/SMD で F1 が下がる傾向があり、過剰な深さはノイズの多いデータで最適化が不安定になりうることを示している。

根本原因の定量分析

論文付録 G では、逸脱行列の行集約スコアで予測した Top-3 変量と、グラウンドトゥルース因果変量の対応を定量的に分析している。

OracleAD Fig.S10 SMDデータセット異常時刻の逸脱行列(根本原因変量の定量分析)

出典: Cho et al., NeurIPS 2025 (arXiv:2510.16511), Fig.S10

SMD データセットの代表的な8つの異常時刻の逸脱行列ヒートマップと Table S10 を見ると、多くの時刻で Top-3 予測にグラウンドトゥルース因果変量が含まれている。具体例を示す。

時刻 OracleAD Top-3 変量(スコア順) グラウンドトゥルース
t=14936 Var33 (12.84), Var32 (6.11), Var35 (3.42) Var32, Var33
t=15065 Var13 (9.39), Var8 (7.50), Var12 (5.57) Var8, Var12, Var13, Var14
t=18641 Var15 (55.97), Var10 (49.98), Var18 (45.22) Var10, Var15, Var18

根本原因変量の特定には 逸脱行列の行集約スコア(各変量 $j$ の行を合計: $s_j = \sum_i \lvert D_{ij}^t – \mathbf{SLS}_{ij} \rvert$)を使い、このスコアが高い変量 Top-3 を原因候補とする。赤い枠でマークされた行・列が根本原因変量に対応しており、逸脱行列の行・列の輝きがその変量の「システム全体との関係的乖離度」を表している。複数の根本原因変量が絡む複合異常でも、Top-3 のいずれかにグラウンドトゥルースが入ることが多く、定量的な根本原因診断として実用的だ。

実装の詳細

最適化: AdamW オプティマイザ(デフォルトハイパラメータ)。PSM は学習率 $5 \times 10^{-5}$、SMD と SWaT は $5 \times 10^{-4}$。入力は StandardScaler で標準化。

計算量: 変量ごとに独立した LSTM を持つため、窓あたりの時間計算量は $\mathcal{O}(N \cdot L)$(LSTM) + $\mathcal{O}(N^2)$(MHSA)。N が大きいと二乗的にスケールするが、変量ごとの LSTM を並列実行できるためバッチ処理での高速化が可能だ。論文付録 D.5 では最大 $N=400$ 変量での実測も行われており、数百変量規模でもリアルタイム監視が可能なスループットを示している。実測の推論スループットを参考に示す。

データセット (N) 推論スループット(タイムステップ/秒)
PSM (N=25) 54.0
SMD (N=38) 37.0
SWaT (N=51) 28.0
合成 (N=100) 13.5
合成 (N=400) 3.2

ベンチマーク情報:

データセット 変量数 訓練サイズ テストサイズ 異常比率 サンプリング間隔
PSM 25 132,481 87,841 27.73% 1 分
SMD 38(28 サブセット) 25,300 25,301 4.16% 1 分
SWaT 51 496,800 449,919 12.02% 1 秒

SMD は 28 台のサーバそれぞれを独立サブセットとして扱い、平均で評価する。PSM は高い異常比率(27.73%)で OracleAD の優位が最も顕著に現れたデータだ。

閾値選択の方法: F1 などの閾値依存指標の評価には、異常スコアのスコアレンジを均等に200分割した候補集合から最適閾値を選ぶ方法(論文付録 D.3、式 S12-S13)を用いる。これにより各手法の異常スコアの「最大識別能力」を公平に比較している。VUS-ROC/VUS-PR は定義上閾値非依存で、複数の閾値と複数の時間バッファ幅 $\omega$ にわたる AUC を平均した体積指標だ。

なぜ「掛け算」なのか ― 融合戦略の設計思想

論文付録 E.6 では、積と和の融合を比較している(Table S9)。PSM での詳細な比較結果を示す。

指標 $\mathcal{P}^t \cdot \mathcal{D}^t$(積) $\mathcal{P}^t + \mathcal{D}^t$(和)
F1 (PSM) 65.85 68.36
A-PR (PSM) 68.11 67.19
V-PR (PSM) 68.17 67.43
F1 (SWaT) 76.50 76.91
V-PR (SWaT) 74.16 71.07

和の方が F1 でやや高いケースもあるが、A-PR と V-PR では積が優る ―― 精度・再現率の曲線下面積と閾値非依存な体積指標で積が有利で、偽陽性を減らす効果が確認されている。その理由は 正常時のスコアを低く保つ 効果にある。

正常時 $\mathcal{D}^t \approx 0$ のとき、$\mathcal{P}^t$ がどれだけ高くても $\mathcal{A}^t = \mathcal{P}^t \cdot \mathcal{D}^t \approx 0$ になる。逆に加算 $\mathcal{A}^t = \mathcal{P}^t + \mathcal{D}^t$ では予測スコアのノイズが常に足し算され、偽陽性のベースラインが上がる。積は「両スコアが同時に高い場合だけ高くなる」AND 条件的な動作をするため、閾値非依存な精度が高くなる。ただし、加算は F1 でやや有利なケースもあり、データセット別のスケール調整を施せば同等に近い精度に達することができる。

SARAD との対比 ― 関係ベース手法の設計空間

前記事の SARAD と OracleAD はどちらも「変量間の関係」を中心に据えた手法だが、何を参照構造とし、どう使うか に大きな違いがある。

観点 SARAD OracleAD
参照構造 窓を時間で2分割し差分 $\mathrm{ReLU}(A_1 – A_2)$ 訓練全体の平均 SLS
異常の定義 関連の系統的な 減少(SAR) SLS からの 逸脱(増加・減少どちらも)
予測誤差 値の空間とのジョイント学習 予測スコア $\mathcal{P}^t$ との乗算
根本原因 列集約スコア $s_j$ 逸脱行列の行・列集約
stop-grad Sにstop-grad(データモジュール歪み防止) SLS は訓練後固定(エポック末更新)

SARAD は「窓内での関係の後退」という相対的な変化を捉えるのに対し、OracleAD は「正常期全体の平均構造からの絶対的な逸脱」を捉える。どちらが適切かはデータの性質次第で、緩やかに始まる構造変化には OracleAD の SLS 基準が、急激な関係の断絶には SARAD の差分基準が敏感に反応する。

まとめ

OracleAD のエッセンスを整理する。

  • 因果埋め込み:各変量の過去系列を LSTM + 注意プーリング で1ベクトル $c_i$ に凝縮し、MHSA で変量間の相互作用を取り込む。変量を独立に処理することで、動的特性の混在を防ぎ解釈性を高める。
  • SLS(安定潜在構造):因果埋め込みのペア距離 $D_{ij} = \lVert c_i^* – c_j^* \rVert_2$ を、訓練エポックを通じて多数の正常窓で平均し、正常な関係構造の 安定参照テンプレート にする。第2エポック以降の構造整列正則化($\lambda_{\mathrm{dev}}=3$)でエンコーダに焼き付けられる。
  • デュアルスコア:予測スコア $\mathcal{P}$(予測誤差)と構造逸脱スコア $\mathcal{D} = \lVert D^t – \mathbf{SLS} \rVert_F$ を 乗算融合 $\mathcal{A} = \mathcal{P}\cdot\mathcal{D}$。値の異常と構造の異常が互いの死角を埋め、正常時は低く保たれる。積によって偽陽性が減り V-PR が改善する。
  • 根本原因の名指し:逸脱行列 $\lvert D^t – \mathbf{SLS} \rvert$ の行・列で突出する変量が原因変量。SMD で Top-3 の精度が定量的に確認されている。
  • 評価:PSM・SMD・SWaT で深層学習12手法中トップ(PSM F1 65.85%, +20pt 近い大差)。閾値非依存の VUS-PR でも全データセットで最高(PSM +15.68pt、SMD +5.92pt、SWaT +8.27pt)。付録 Table S5 では古典手法(PCA/HBOS/IF)を含む16手法比較でも最高。

「正常な関係構造を覚え、そこからの逸脱を測る」という OracleAD の発想は、関係ベース異常検知の到達点のひとつだ。関連の減少を捉える SARAD、相関構造でレジームを発見する TICC、注意の乖離を測る Anomaly Transformer と読み比べれば、「変量間の関係」を異常検知にどう使うかという設計地図が一段とくっきりする。

SARAD:変量間の関係の崩壊を異常として捉える
関連の系統的な減少(SAR)を異常とする関係ベース手法。OracleADが安定参照構造SLSからの逸脱を測るのと好対照。OracleADのベースラインにも含まれる。
TICC:相関構造で時系列の『レジーム』を発見する
変量間の相関構造でモードを発見する手法。関係を『異常検知』でなく『レジーム分割』に使う対照例。
Anomaly Transformer:関連の乖離で異常を測る
注意機構のprior/seriesの乖離で異常を捉える手法。OracleADの構造逸脱と読み比べたい。
DCdetector:二重注意対照構造で非類似度を測る
patch-wiseとin-patchの二重視点で関連乖離を計算する手法。OracleADとの違いは純対照損失と非対称二経路にある。
VUS:Volume Under the Surface ― 閾値非依存な異常検知評価指標
VUS-PR/VUS-ROC の仕組みと、OracleAD が VUS 指標で大きな優位を示す理由。point-adjust の問題点と合わせて理解したい。