コマンド条件付け×関係ベースで「真の異常」を見分ける ― 多変量時系列異常検知を原論文で読む

宇宙機のモーターが、いつもより大きな電流を引いている。これは故障だろうか。答えは「指令による」。「強く動かせ」というコマンドを送ったなら電流が増えるのは当たり前で、異常ではない。だが、何の指令も出していないのに電流が増えているなら、それは機構の固着を疑うべき本物の異常だ。同じ「電流の増加」でも、送ったコマンドで説明がつくか否かで意味が正反対になる

多変量時系列の異常検知が実運用で難しいのは、まさにこの一点に尽きる。値そのものを見て「珍しい値だから異常」と判定する素朴なやり方は、入力や状況で正常な振る舞いが変わる現実の前で簡単に破綻する。コマンドに対する正常な応答を、片っ端から異常と誤報してしまうからだ。

この問題に対して、研究コミュニティは大きく2つの軸で答えを出してきました。ひとつは コマンド(外生入力)を条件として与え、入力で説明できる変動を引き算する 軸。もうひとつは、値ではなく 変量間の関係の崩れを見る 軸です。本記事は、この2軸を Telemanom・DC-VAE・ESA-ADB・TICC・Time-CAD・SARAD・OracleAD といった代表的な論文の原典に当たりながら、アーキテクチャ・損失関数・異常スコアの計算レベルまで掘り下げて整理するサーベイです。

なぜこれを学ぶのか。応用先は広い。ひとつは宇宙機テレメトリや産業プラントの故障検知で、運転条件が動き続けても誤報を出さない枠組みを設計すること。もうひとつは、再構成や予測といった個々のテクニックの背後にある「何を正常とみなすか」という設計思想を、横串で理解することです。

コマンド条件付けと関係ベースの2軸マップ

上のマップが本記事の全体像です。横軸は「コマンド(入力 $u$)で応答 $y$ を説明する度合い」、縦軸は「値でなく変量間の関係を見る度合い」。素のAEや予測器は左下(無条件・値ベース)にいます。右へ行くほどコマンド条件付けが強く(Telemanom・DC-VAE)、上へ行くほど関係ベースが強い(SARAD・OracleAD)。そして右上 ―― コマンド条件付けと関係ベースを融合した領域 ―― はまだ空白です。ここが最後に論じる未踏領域になります。

前提知識

この記事は異常検知の基礎と、本ブログの文脈考慮型シリーズを前提にすると理解が深まります。

核心 ― 無条件の $p(y)$ ではなく条件付きの $p(y\,|\,u)$ を学ぶ

ふつうの異常検知は、観測データ $y$ そのものの分布 $p(y)$ を学び、確率の低い点を異常とします。しかしこの考え方は、入力や状況によって正常な振る舞いが変わる場面で破綻します。冒頭の電流の例がまさにそうです。電流の値だけを見れば、大きな電流は「ふつうに起こりうる値」なので、そのままでは異常と区別できません。

そこで発想を変えます。データを2種類に分けるのです。ひとつは 入力(コマンド・条件・状況)を表す変数 $u$、もうひとつは その応答として観測される変数 $y$。そして周辺分布 $p(y)$ でも結合分布 $p(u, y)$ でもなく、条件付き分布 $p(y\,|\,u)$ をモデル化します。「この入力 $u$ のもとで応答 $y$ はどのあたりに出るはずか」を学び、そこから外れた点を異常とする。残差で言えば、

$$ \begin{equation} r_t = \big\| y_t – \hat{y}(u_{\le t}) \big\|, \qquad \hat{y}(u_{\le t}) = \mathbb{E}[y_t \mid u_{\le t}] \end{equation} $$

を異常スコアにする。$u$ で説明できる変動は $\hat{y}$ に吸収され、残差 $r_t$ には「コマンドでは説明がつかない逸脱」だけが残ります。これがコマンド条件付け(軸A)の核心です。

しかし条件付けだけでは取りこぼす異常があります。「値はコマンド通りに動いているのに、本来連動するはずの別の変量が連動していない」というタイプです。これを拾うには、変量間の関係そのものを見る必要がある。これが軸Bです。本記事は軸A→軸B→評価→融合、の順に進みます。

それでは軸Aから、原論文のアーキテクチャに踏み込んでいきましょう。

軸A-1:Telemanom ― コマンドを one-hot で入力に入れる

コマンドを外生入力として最初に明確に実装したのが、NASA JPL の Telemanom(Hundman et al., KDD 2018)です。宇宙機テレメトリは数千チャネルに及び、従来の上限/下限(Out-of-Limits)アラームには本質的な限界がありました。値が正常範囲内でも文脈的に異常な「文脈異常」を取れず、設定・維持に専門知識のコストがかかる。そこで著者らは LSTM による1ステップ先予測+ノンパラメトリック動的閾値 を提案しました。

Telemanom のシステム構成(予測と残差蓄積)

出典: Hundman et al., KDD 2018, Fig.1

上図のように、長さ $l_s$ のウィンドウをスライドさせながら LSTM に入力し、現在ステップから次ステップの値を1スカラーだけ予測します(予測次元 $d=1$、予測長 $l_p=1$)。予測誤差 $e^{(t)} = |\hat{y}^{(t)} – y^{(t)}|$ を逐次蓄積して誤差ベクトルを作り、後段の閾値処理に渡す。チャネルごとに独立した LSTM を立てるのは、高次元出力だと予測精度が落ちることと、「どのチャネル=どのサブシステムが異常か」という追跡可能性を保つためです。

ここで本記事の主題に直結するのがコマンドのエンコード方法です。LSTM への入力ベクトル $x^{(t)} \in \mathbb{R}^m$ は、テレメトリ値だけでなく コマンド情報を one-hot エンコードしたものを含みます。

コマンドの one-hot エンコードと文脈異常の検出

出典: Hundman et al., KDD 2018, Fig.3

上図の上部行列を見てください。「モジュールAへコマンド送信(0/1)」「モジュールAがコマンド受信(0/1)」「モジュールBへコマンド送信(0/1)」…といったビット列が各タイムステップにスロットされ、テレメトリ値と結合されて LSTM に渡されます。入力次元は NASA の公開データセットで SMAP=25、MSL=55 と異なりますが、これは両ミッションでコマンドモジュールの集合が違うためです。つまりコマンドは抽象的な補足ではなく、モデルの具体的な入力特徴になっている。下段の時系列を見ると、実測(青)と予測(橙)はほぼ一致しており、文脈異常はこの微小な乖離の蓄積としてのみ現れる ―― 単純な閾値では絶対に取れないことが視覚的にわかります。

ノンパラメトリック動的閾値

残差をどう閾値にかけるか。著者らは残差の分布が正規分布に従わないことを正規性検定で確認し、パラメトリックな閾値を捨てました。代わりに、EWMA で平滑化した誤差 $\mathbf{e}_s$ に対して、閾値候補

$$ \begin{equation} \epsilon = \mu(\mathbf{e}_s) + z\,\sigma(\mathbf{e}_s), \qquad z \in [2.0, 10.0] \end{equation} $$

を走査します。最適な $\epsilon$ は、閾値を超える値を取り除いたときに、平均と分散がどれだけ減るかの比率を最大化するように選びます。記号で書くと、

$$ \begin{equation} \epsilon^* = \arg\max_{\epsilon} \;\frac{\Delta\mu(\mathbf{e}_s)/\mu(\mathbf{e}_s) + \Delta\sigma(\mathbf{e}_s)/\sigma(\mathbf{e}_s)}{|e_a| + |E_{\text{seq}}|^2} \end{equation} $$

分子は「閾値を超える点を外すと、誤差分布がどれだけスッキリ正常側に寄るか」、分母 $|e_a| + |E_{\text{seq}}|^2$ は「異常と判定する点の数・連続区間の数が増えすぎることへのペナルティ」です。これで「ごく少数の点を異常とするだけで分布が劇的に綺麗になる」閾値が自動で選ばれる。最後に各異常区間のスコアを

$$ \begin{equation} s^{(i)} = \frac{\max(e^{(i)}_{\text{seq}}) – \epsilon^*}{\mu(\mathbf{e}_s) + \sigma(\mathbf{e}_s)} \end{equation} $$

で測り、隣接区間との減少率が小さいものを正常に戻す pruning($p=0.13$)で誤報を削ります。論文の結果では、pruning により再現率は 84.8%→80.0% とわずかに落ちる一方、適合率が 48.9%→87.5% と劇的に改善しました。コマンド条件付けと残差ベース検知、そして閾値の自動化 ―― このパターンが以降の手法すべての出発点になります。

予測残差を確率の言葉に置き換えると、過渡応答の扱いがもっと自然になります。次はその確率版を見ましょう。

軸A-2:DC-VAE ― 過渡のゆらぎを「分散」で許容する

Telemanom の残差は等分散を暗に仮定しています。しかしコマンド直後はテレメトリが暴れるのが正常で、平常時は静かなのも正常です。同じ閾値で測ると、過渡応答を異常と誤報してしまう。そこで再構成の平均と分散の両方を出力する確率モデルが効いてきます。その代表が DC-VAE(García González et al., EuroS&PW 2022 / IEEE TNSM 2023)で、ESA-ADB のベースラインにもなっています。

DC-VAE の因果拡張畳み込みVAEアーキテクチャ

出典: García González et al., MiLeTS @ KDD 2024 (arXiv:2507.01875), Fig.1(DC-VAEのアーキを継承した後継FAEの図)

エンコーダは拡張率を $1, 2, 4, \dots$ と指数的に増やす因果拡張畳み込みのスタックです。これで浅い層でも時刻 $t$ が過去の広い範囲を受容野に収められる。最上層から潜在分布のパラメータ $\bm{\mu}_z, \bm{\sigma}_z$ を出し、再パラメータ化 $\bm{z} = \bm{\mu}_z + \bm{\epsilon}\odot\bm{\sigma}_z$ で潜在変数をサンプリングします。デコーダは対称な構造で、各時刻・各チャネルの再構成の平均 $\hat{\mu}_x$ と標準偏差 $\hat{\sigma}_x$ を独立に出力します(heteroscedastic)。学習は ELBO の最大化で、再構成項はガウス仮定のもと

$$ \begin{equation} \log p(\bm{X}\mid\bm{z}) = -\frac{1}{2}\sum_{i,t}\left[\frac{(X_{i,t}-\hat{\mu}_{x,i,t})^2}{\hat{\sigma}_{x,i,t}^2} + \log\hat{\sigma}_{x,i,t}^2\right] \end{equation} $$

となります。第1項は「分散で割った残差」、第2項は「分散を大きくしすぎることへの罰」。この形が肝心です。異常スコアは残差を学習済み標準偏差で正規化した

$$ \begin{equation} s_{i,t} = \frac{|X_{i,t} – \hat{\mu}_{x,i,t}|}{\hat{\sigma}_{x,i,t}} \end{equation} $$

で、$s_{i,t} > N$($N$ は STD3/STD5 など)を異常とします。正常時に揺らぎが大きいチャネルは自動的に許容度が広がり、静かなチャネルは鋭く検知される ―― コマンド直後の過渡を誤報しないための、最もシンプルで強力な仕掛けです。本ブログの OmniAnomaly で見た「$\sigma_x$ を学習して揺らぎを許容する」発想と同じ筋です。

では、こうした手法を「実運用でフェアに比べる」にはどんなデータと指標が要るのか。それを正面から作ったのが ESA-ADB です。

軸A-3:ESA-ADB ― コマンドを外生入力にした実運用ベンチマーク

ESA-ADB(Kotowski et al., 2024, arXiv:2406.17826)は、ESA の宇宙運用エンジニアと機械学習研究者が共同で作った、実運用を模した異常検知ベンチマークです。9つの要件(R1〜R9)と5つの評価側面を定義し、データセット・評価パイプライン・ベースライン結果を一体で提供します。

ESA-ADB のイベント分布タイムライン

出典: Kotowski et al., 2024 (arXiv:2406.17826), Fig.1

データセットは2つのミッションから成り、合計 176チャネル(うち異常監視対象=ターゲット 105)、821のテレコマンド、約15.5億点・17.5年分の実テレメトリを含みます。アノテーションは 844イベントで、その内訳は 異常 148・稀な正常イベント(rare nominal events)690・通信ギャップ 4。注目すべきは、正常だが珍しいイベント(計画的なコマンド操作などで起こる正常な変化)が、真の異常の数倍も多いことです。上のタイムラインを見ると、異常(赤)はごく散発的で、青の稀正常イベントが支配的なのがわかります。「コマンドで説明できる正常 vs 真の異常」を見分ける問題が、データの構造そのものに刻まれているわけです。

ここで本記事の主題が直接現れます。ESA-ADB では、テレコマンドを優先度0〜3に格付けし、優先度3のテレコマンドを DC-VAE-ESA と Telemanom-ESA の外生入力として供給します。コマンドは単一サンプル長のバイナリインパルスとして符号化され、モデルはターゲットチャネルの異常スコアを出しつつ、非ターゲットチャネルとコマンドを「補助情報」として参照する(要件R6)。つまり ESA-ADB は、コマンド条件付けをベンチマークの標準作法として組み込んでいます。

ESA-ADB ベンチマークの全体構成

出典: Kotowski et al., 2024 (arXiv:2406.17826), Supplementary Fig.1

上図は、データセット(緑)と評価パイプライン・ベンチマーク結果(青)の関係を示します。評価指標の設計思想がこのベンチマークの白眉です。詳しくは後半の評価セクションで扱いますが、ここで押さえておきたいのは、ESA-ADB は point-adjust も sample-wise も「過大評価」として使わないこと。代わりに、補正イベントワイズ F0.5・サブシステム/チャネルアウェア F0.5・検出タイミングを測る ADTQC・補正アフィリエーション F0.5 を、優先度をつけて階層的に比較します。論文の結果では、深層学習の Telemanom-ESA-Pruned が軽量サブセットで補正イベントワイズ F0.5=0.786 と最良ですが、全チャネルでは 0.050 まで落ち、単純な手法に負ける場面も多い。「高い再現率は簡単、誤報を抑えた高精度こそ難しい」という実運用の現実が、指標を通して可視化されます。

ここまでが軸A(コマンド条件付け)です。しかし、コマンドで値の変化が説明できても見逃す異常がある ―― それを拾うのが軸B、関係ベースの世界です。

軸B:文脈・関係をどう扱うか ― 4つの流儀

軸Bに入る前に、「文脈(コマンド・状況・レジーム)」の扱い方を整理しておきましょう。本ブログのシリーズも含めると、大きく4つの流儀があります。

文脈を扱う4つの流儀

与える(Time-CAD:外部から文脈を注入)、分離する(TAAD:条件と応答をデータ内で分ける)、発見する(TICC:相関構造からレジームを教師なしで見つける)、関係で見る(SARAD/OracleAD:変量間の構造の崩れを異常にする)。軸Aがコマンドという「与えられた入力」を条件にしたのに対し、軸Bはより一般に「文脈」と「変量間の関係」を扱います。発見する流儀=TICC から見ていきましょう。

軸B-1:TICC ― 相関構造でレジームを発見する

コマンドが手に入らなくても、データ自身が「いまどの動作モードにいるか」を語っていることがあります。TICC(Hallac, Vare, Boyd, Leskovec, KDD 2017, Stanford)は、多変量時系列を値の距離ではなく変量間の相関構造でクラスタリングし、レジーム(動作モード)を教師なしで発見します。

TICC のセグメンテーションと MRF クラスタ定義

出典: Hallac et al., KDD 2017, Fig.1

連続する $w$ ステップを連結した部分系列 $X_t \in \mathbb{R}^{nw}$ をクラスタリングの単位とし、各クラスタ $i$ をブロックToeplitz逆共分散行列 $\Theta_i$ で表します。$\Theta_i$ の非ゼロ成分はマルコフ確率場(MRF)のエッジ=変量間の条件付き依存を表す。Toeplitz 制約は「構造がウィンドウの開始位置に依存しない」という時間不変性の仮定です。目的関数は3項から成ります。

$$ \begin{equation} \arg\min_{\Theta\in\mathcal{T},\,P}\sum_{i=1}^{K}\Big[\underbrace{\|\lambda\circ\Theta_i\|_1}_{\text{スパース}} + \sum_{X_t\in P_i}\big(\underbrace{-\ell\ell(X_t,\Theta_i)}_{\text{当てはまり}} + \underbrace{\beta\,\mathbf{1}\{X_{t-1}\notin P_i\}}_{\text{時間的一貫性}}\big)\Big] \end{equation} $$

第1項はグラフィカルラッソ型のL1スパース正則化(依存グラフを疎に保つ)、第2項は各クラスタのガウス対数尤度(当てはまり)、第3項はクラスタが切り替わるたびにコスト $\beta$ を課すペナルティ(隣接点を同じレジームに留め、ぶつ切りを防ぐ)。これを交互最適化で解きます。割り当てステップは $\beta$ 込みの最小コスト系列を動的計画法(Viterbi 型)で大域最適に求め、パラメータ更新ステップは Toeplitz 制約付きグラフィカルラッソを ADMM で解く。ADMM の $\Theta$ 更新は固有値分解による閉形式、$Z$ 更新はソフト閾値+対角平均による Toeplitz 射影、$U$ 更新は双対上昇です。

TICC による左折・右折のクラスタリング

出典: Hallac et al., KDD 2017, Fig.5

論文の自動車走行データの例が直感的です。左折(a)と右折(b)は横加速度やステアリング角の符号が真逆ですが、TICC はどちらも「直線→減速→旋回→加速→直線」という同じレジーム遷移として認識します。値の距離ではなく相関構造の類似性で見るからです。異常検知への接続は明快で、TICC のレジームを文脈とみなし、レジーム別の正常モデル $p(y\mid C)$ を持てば、「レジームが変わったのに値が正常に見える」ケースや「同じ値でもレジームが違えば異常」なケースを構造の逸脱として検出できます。逆共分散のスパースパターンは「どの変量間の関係が崩れたか」という根本原因の手がかりにもなり、この後の SARAD・OracleAD と地続きです。

レジームを内部で発見するのではなく、外から明示的に与えるのが次の Time-CAD です。

軸B-2:Time-CAD ― 文脈を分解プロセスに注入する

Time-CAD(Nam et al., ECML PKDD 2023, KAIST/Samsung)は、休日・イベント・プロモーションのような外部コンテキストで正常パターンが変わるビジネス時系列を対象に、コンテキストを分解プロセスに直接注入します。

Time-CAD のフレームワーク(2フェーズ)

出典: Nam et al., ECML PKDD 2023, Fig.2

第1フェーズはコンテキスト考慮型の深層分解です。STL でトレンド $\tau_t$・季節 $s_t$・残差に初期分解し、正常パターン $\tau_t+s_t$ を GRU オートエンコーダ $f_\theta$ で再構成する。ここにコンテキスト情報ベクトル $\eta_t$(時刻の季節情報と休日フラグ)を強度 $\lambda_t$ で注入して最終残差を作ります。

$$ \begin{equation} r_t = \Psi\big(x_t – f_\theta(\tau_t + s_t) + \lambda_t\cdot\eta_t\big) \end{equation} $$

$\Psi$ はウェーブレットによる微細ノイズ除去。コンテキストを「後処理」ではなく分解の内側で効かせるのが核心です。第2フェーズは残差 $r_t$ を双方向 GRU オートエンコーダ $g_\phi$ で再構成し、その誤差 $A_t = \|\hat{r}_t – \hat{r}_t’\|^2$ を異常スコアとします。

Time-CAD の残差比較(フェスティバル期間)

出典: Nam et al., ECML PKDD 2023, Fig.6

上図が効果を端的に示します。STL 残差(2段目)はフェスティバル期間に振幅が膨らみ、正常な変動が残差に残って偽陽性の原因になっています。コンテキスト注入と深層分解を組み合わせた Time-CAD(4段目)では、フェスティバル期間の残差がほぼフラットに抑えられている。「何が正常か」がコンテキストで変わることを、モデルに直接教えているわけです。これは軸Aのコマンド条件付けと同じ思想を、外部イベントという別種の入力に適用したものと言えます。

ここまでは「文脈で値を説明する」話でした。次は視点を変え、変量間の関係そのものを異常検知の主役に据える系譜に入ります。その出発点が、注意機構で「関連」を測る Anomaly Transformer と DCdetector です。

軸B-3:関連注意の系譜 ― Anomaly Transformer と DCdetector

関係ベースの直接の源流が Anomaly Transformer(Xu et al., ICLR 2022)です。各時刻に対して2つの注意を並べます。系列注意(self-attention のソフトマックス $S$)と、学習可能なガウス核による事前注意(prior $P$)。

Anomaly Transformer のアーキテクチャ(Anomaly-Attention 二枝)

出典: Xu et al., ICLR 2022, Fig.1

両者の対称KLを Association Discrepancy(関連乖離) と呼びます。

$$ \begin{equation} \mathrm{AssDis}(P,S) = \frac{1}{L}\sum_{l=1}^{L}\big(\mathrm{KL}(P^l\|S^l) + \mathrm{KL}(S^l\|P^l)\big) \end{equation} $$

これは正常点で大きく、異常点で小さくなります(異常点は近傍以外にも注意が散り、ガウス核との乖離が縮む)。

Anomaly Transformer の minimax 戦略

出典: Xu et al., ICLR 2022, Fig.2

学習は minimax です。Minimize フェーズで prior をガウス核族の中で series に近づけ、Maximize フェーズで series を再構成損失の制約下で prior から遠ざける(stop-grad つき)。異常スコアは $\mathrm{softmax}(-\text{AssDis})\odot\|\hat X – X\|$ で、関連の弱さと再構成誤差を掛け合わせます。

DCdetector(Yang et al., KDD 2023)は、同じ窓を patch-wise(パッチ間・大局)と in-patch(パッチ内・局所)の2つの視点で見て対照学習します。

DCdetector の全体ワークフロー(4モジュール)

出典: Yang et al., KDD 2023, Fig.2

再構成を使わず、2視点の表現が正常では一致し異常では食い違うことを利用します。純粋な対照損失 $L=(L_N-L_P)/\text{len}$ のみで学習し、非対称な2経路構造で表現崩壊を防ぐ(負例もガウス事前も不要)。

DCdetector のチャネル独立パッチ注意

出典: Yang et al., KDD 2023, Fig.3

上図のように、多変量入力をチャネル独立に処理し、パッチに分割して同一の self-attention 重みを共有します。「チャネル独立+パッチ化+共有重み」がパラメータ効率と過学習抑制を両立する核心です。Anomaly Transformer も DCdetector も「値の大小」ではなく「関連・整合の崩れ」を見ている点で、次の SARAD・OracleAD への橋渡しになります。

軸B-4:SARAD ― 異常は「関連を減らす」

SARAD(Dai et al., NeurIPS 2024)は、異常検知の対象を値から変量間の関連(spatial association)へ明確に移します。鍵となる発見が SAR(Spatial Association Reduction) ―― 異常は異常変量を周囲から引き剥がし、変量間の関連を系統的に減少させるという現象です。

SARAD:異常前後で変量間の関連が減少する(SAR現象)

出典: Dai et al., NeurIPS 2024, Fig.1

上図は実データでの SAR です。異常変量(赤枠の #12, #15)は、異常区間中の関連行列で他の変量からの注意を集めなくなり、列方向の値が明確に低下します。減少成分だけを取り出した $\mathrm{ReLU}(A_{\text{pre}}-A_{\text{in}})$ を見ると、変化が異常変量の列に集中しているのがわかる。列が顕著なのは、関連行列の $(j,k)$ 成分が「変量 $k$ の寄与で変量 $j$ を再構成する注意」であり、$k$ 列の合計が変量 $k$ の参加率に相当するからです。

アーキテクチャは2モジュールです。データ再構成では、入力窓を時間方向で $X_1, X_2$ に2分割し、各々を転置してから(時間でなく変量に注意をかける)MHSA エンコーダに通します。

$$ \begin{equation} Z_i^l = \mathrm{LN}\big(\mathrm{MHSA}(X_i^{l-1}) + X_i^{l-1}\big),\quad X_i^l = \mathrm{LN}\big(\mathrm{MLP}(Z_i^l)+Z_i^l\big) \end{equation} $$

各ヘッドが関連行列 $A_h^l \in \mathbb{R}^{N\times N}$ を生みます。空間プログレッション再構成では、サブ系列1→2の関連の非負後退差分 $S_h^l = \mathrm{ReLU}(A_{1,h}^l – A_{2,h}^l)$ で「減少」だけを取り出し、列方向に集約して $S$ を作り、MLP オートエンコーダで $\hat S$ に再構成します。損失とスコアは、

$$ \begin{equation} \mathcal{L} = \underbrace{\|\hat X – X\|_2^2}_{\mathcal{L}_R} + \lambda\,\underbrace{\|\hat S – S\|_2^2}_{\mathcal{L}_S},\qquad s = \frac{r-\mu_r}{\sigma_r} + \frac{p-\mu_p}{\sigma_p} \end{equation} $$

ここで $r$ はデータ空間誤差、$p$ は関連空間誤差です。$S$ には stop-grad をかけ、関連表現の崩壊とデータモジュールの歪みを防ぎます。

SARAD の異常検知可視化

出典: Dai et al., NeurIPS 2024, Fig.3

データ空間誤差 $r$ と関連空間誤差 $p$ は相補的です。上図のパネルを追うと、異常の立ち上がりで $r$ がまだ小さい段階から $p$ が上昇し、結合スコア $s$ が早期に異常を捉えています。診断スコア $s_j = \|\hat X_{(j,\cdot)} – X_{(j,\cdot)}\|_2^2$ で、どの変量が根本原因かも特定できる。VUS-ROC で SMD 79.67(2位 +15.5%)、HAI 96.17(2位 +9.9%)と、関係に着目した効果が数値に出ています。

SARAD が「関連の減少」という現象を捉えるのに対し、安定した参照テンプレートからの逸脱として定式化したのが OracleAD です。

軸B-5:OracleAD ― 安定潜在構造からの逸脱

OracleAD(Cho et al., NeurIPS 2025, arXiv:2510.16511)は、正常時の変量間関係を Stable Latent Structure(SLS) という安定参照として学習し、SLS からの構造逸脱で異常を検知します。

OracleAD のアーキテクチャ(因果埋め込み+SLS)

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

各変量の過去 $L-1$ ステップを LSTM エンコーダに通し、注意プーリングで1本の因果埋め込みに凝縮します。

$$ \begin{equation} \alpha_i^l = \mathrm{softmax}\big(w^\top h_i^l + b\big),\qquad c_i = \sum_{l=1}^{L-1}\alpha_i^l\,h_i^l \end{equation} $$

因果埋め込み $C=[c_1,\dots,c_N]^\top$ を MHSA に通して変量間の相互作用を取り込み($c_i^*$)、LSTM デコーダで次ステップ予測と窓再構成を同時に学習します。関係は変量ペアの非類似度行列 $D_{ij}=\|c_i^*-c_j^*\|_2$ で表し、訓練中の $M$ 窓平均を SLS とします。損失は3項です。

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

$\lambda_{\text{recon}}=0.1,\ \lambda_{\text{dev}}=3$ で、構造整列を重視します。異常スコアは予測スコアと構造逸脱スコアのです。

$$ \begin{equation} A^t_{\text{score}} = \underbrace{\frac{1}{N}\sum_i |x_i^t – \hat x_i^t|}_{P^t_{\text{score}}}\;\cdot\;\underbrace{\|D^t – \mathrm{SLS}\|_F}_{D^t_{\text{score}}} \end{equation} $$

積にする意味は大きい。正常な文脈で構造逸脱がたまたま大きくても、予測誤差が小さければ積は抑えられ、偽陽性を抑制する。逆に予測だけでは見逃す持続的な構造異常は、逸脱スコアが補完します。

OracleAD の逸脱行列(根本原因の特定)

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

逸脱行列 $|D^t-\mathrm{SLS}|$ の行・列で突出する変量が、構造を乱している根本原因です。上図のヒートマップでは、各異常時刻で特定の行/列が明るく突出し、原因変量を直接指している。「いつ異常か(スコア)」と「どの変量が原因か(行列)」が一体化しているのが OracleAD の解釈性です。論文では PSM の F1=65.85(次点 +18pt)、SWaT の VUS-PR=74.16(SARAD 比 +11.4pt)など、12手法中トップを報告しています。SARAD が「関連の減少」を見るのに対し、OracleAD は「安定参照からの逸脱 × 予測残差」を見る ―― 同じ関係ベースでも定式化が異なります。

ここまで多くの手法が「VUS-PR」「補正イベントワイズ F0.5」といった指標で性能を語ってきました。ではなぜ、よく使われる F1(point-adjust)ではダメなのか。最後に評価の話を避けて通れません。

評価 ― point-adjust を信じてはいけない

時系列異常検知の論文を読むとき、最も注意すべきは評価プロトコルです。多くの論文が使ってきた point-adjust(PA) は、異常区間内で1点でも閾値を超えればその区間全体を検知成功とみなす手続きです。一見もっともらしいですが、これが深刻な水増しを生みます。

point-adjust の水増し:ランダムでも高F1

出典: Kim et al., AAAI 2022, Fig.1

Kim et al.(AAAI 2022)は、スコアを一様乱数で出すだけのランダム検出器でも、区間が十分長ければ PA 適用後の F1 が 1 に近づくことを理論的に示しました。実際、SWaT で F1PA=0.969 と、学習済みの最高性能手法すら上回ってしまう。ランダムと学習済みモデルの F1PA はほぼ無相関(KRC=0.07)です。改善策として、区間内で K% 以上の点が閾値を超えた場合のみ検知とみなす PA%K を提案し、$K$ を動かすと学習済みモデルは安定(AUC=0.88)、ランダムは急落(AUC=0.41)して両者を区別できると示しました。

ではどんな指標を使うべきか。ひとつは時間的近さを評価する affiliation 指標(Huet et al., KDD 2022)です。

affiliation 指標:距離ベースの局所評価

出典: Huet et al., KDD 2022, Fig.2

affiliation は、各予測点から最近傍の真異常までの平均距離(精度方向)と、各真異常から予測への平均距離(再現率方向)を測り、それを「ランダム予測なら距離がどれくらいになるか」の生存関数で確率に変換します。値が 0.5 以下ならランダム以下=意味なし、1.0 で完全一致。全区間を異常と予測する自明な攻撃に対しても精度が 0.5 に抑えられ、パラメータも要りません。

もうひとつが、本ブログでも解説した VUS(Paparrizos et al., VLDB 2022)です。

VUS:閾値非依存・パラメータフリーの体積指標

出典: Paparrizos et al., VLDB 2022, Fig.4

VUS は異常境界にバッファを付けて2値ラベルを連続ラベルに変え(距離で $(1-|s-i|/\ell)^{1/2}$ に減衰)、Range-AUC を計算します。さらにバッファ長 $\ell$ を 0 から最大まで動かして ROC/PR 曲面の体積を取ることで、閾値にもパラメータにも依存しない指標になります。上図の右端の3D曲面がそれです。TSB-AD など近年のベンチマークは VUS-PR を推奨指標にしています。

そして ESA-ADB は、これらを実運用向けにさらに尖らせた 補正イベントワイズ F0.5 を主指標に据えます。

補正イベントワイズ F スコア:全区間異常の水増しを潰す

出典: Kotowski et al., 2024 (arXiv:2406.17826), Supplementary Fig.11

従来のイベントワイズ F1 は「全区間を異常」と出すだけで精度1.0になる欠陥がありました。ESA-ADB はイベントワイズ精度に真陰性率を乗算してこれを是正します($\Pr_{\text{corr}} = \frac{TP_e}{TP_e+FP_e}\times \mathrm{TNR}_t$)。上図の Algorithm 2 は4イベント全部を検出していますが、期間全体を異常と出しているため TNR=0、補正後スコア=0 に正しく降格される。一方、現実的な Algorithm 1 は補正後も 0.45 を得る。「精度より誤報抑制を重視する」設計哲学が、この一枚に凝縮されています。なお ESA-ADB は VUS を有用と認めつつ、計算量が大きく超大規模データでは非現実的として主指標からは外しています。

評価を正しく設定できて初めて、各手法の本当の優劣が見えます。最後に、ここまでの2軸を踏まえて、どこに空白があるかを考えましょう。

ギャップと未踏領域 ― コマンド条件付け × 関係ベースの融合

宇宙機テレメトリ異常検知の手法分類

出典: Farouk et al., Applied Sciences 2025, 15, 5653, Fig.2

宇宙機テレメトリ異常検知のサーベイ(Farouk et al., 2025)は、手法を閾値法とAI手法(ML/DL/ハイブリッド)に整理し、DL では GCN・TCN が精度94%級で最前線にいること、課題はラベル不足(→半教師・自己教師・生成による異常合成)であることを指摘します。NASA SMAP/MSL が依然として最頻のベンチマークで、公開ラベル付きデータの不足が公正比較を阻んでいる。ここに ESA-ADB のような実運用ベンチが効いてきます。

本記事の2軸で各手法を振り返ると、明確な空白が見えます。

  • 軸A(コマンド条件付け)の手法 ―― Telemanom・DC-VAE・ESA-ADB のベースライン ―― は、コマンドを入力に取って「コマンド→値」の残差を見ます。しかし変量間の関係はほとんど見ていません。
  • 軸B(関係ベース)の手法 ―― SARAD・OracleAD ―― は、変量間の関係の崩れを精緻に捉えますが、コマンドを入力に取りません。関係が崩れた原因が「打ったコマンド」なのか「本物の異常」なのかを、原理的に区別できない。

融合スコアの考え方:残差 × 関係逸脱

そこで自然に浮かぶのが、両者を掛け合わせた融合スコアです。

$$ \begin{equation} \text{score}_t = \underbrace{\big\| x_t – f(x\mid u) \big\|}_{\text{(A) コマンド条件付き残差}}\;\otimes\;\underbrace{\big\| D_t – \mathrm{SLS} \big\|}_{\text{(B) 関係の逸脱}} \end{equation} $$

(A) がコマンドで説明できる正常応答を打ち消し、(B) が関係の崩れを拾う。両方そろって初めて高スコアになるので、コマンド由来の片側スパイクは自然に抑制されます。さらに踏み込めば、SLS をコマンド文脈ごとに持つ(レジーム×コマンド条件付き安定構造)、コマンドの効果を時定数つきの指数減衰で埋め込む、不規則サンプリングに Neural CDE で対応する、といった方向が考えられます。これらはまだ体系的に探索されていない、有望な未踏領域です。

この融合の発想は、本記事で見た手法群が独立した点ではなく、ひとつの設計空間の座標であることを示しています。冒頭の2軸マップの右上の空白こそ、次に埋めるべき場所だというわけです。

まとめ

本記事では、多変量時系列の異常検知を「コマンド条件付け」と「関係ベース」の2軸で俯瞰し、原論文のアーキテクチャ・損失・異常スコアまで掘り下げました。

  • 軸A(コマンド条件付け):条件付き分布 $p(y\mid u)$ を学び、入力で説明できない残差を異常にする。Telemanom(コマンド one-hot 入力+動的閾値)、DC-VAE(分散で過渡を許容)、ESA-ADB(テレコマンドを外生入力にした実運用ベンチ)。
  • 軸B(関係ベース):値でなく変量間の関係を見る。TICC(相関構造でレジーム発見)、Time-CAD(文脈を分解に注入)、Anomaly Transformer/DCdetector(関連注意)、SARAD(関連の減少SAR)、OracleAD(安定構造SLSからの逸脱×予測残差)。
  • 評価:point-adjust は水増しを生む。affiliation・VUS・補正イベントワイズ F0.5 など、閾値非依存・誤報抑制を重視した指標を使う。
  • 未踏領域:コマンド条件付け × 関係ベースの融合 $r_t\otimes\|D_t-\mathrm{SLS}\|$ は空白で、最も有望。

次のステップとして、以下の記事も参考にしてください。

本記事で扱った各手法は、それぞれ独立した深掘り記事として原論文の図を引用しながら解説しています。

軸A:コマンド条件付け

軸B:文脈・関係ベース

評価とサーベイ