DyCAST:因果グラフの時間発展をNeural ODEで学ぶ ― 動的因果構造という基盤技術

これまで本シリーズで見てきた関係ベースの異常検知 ―― SARAD・OracleAD・GCAD ―― はいずれも「正常時の関係構造を覚え、そこからの逸脱を異常とする」発想だった。だが、ひとつ素朴な疑問が残る。正常時の関係構造そのものが時間とともに変わる としたら? 昼と夜、稼働モードの切り替わり ―― 多くのシステムで、変量間の因果関係は静的ではなく、時間とともに移ろう。「正常な構造」が1つに固定できないとき、何を基準にすればいいのか。

この問いに、因果構造の 変化そのものをモデル化する という形で答えるのが DyCAST(Cheng et al., “DyCAST: Learning Dynamic Causal Structure from Time Series,” ICLR 2025)である。DyCAST は因果グラフを DAG多様体上の点 として表し、その時間発展を Neural ODE(神経常微分方程式) で連続的に記述する。離散的な窓ごとに別々のグラフを推定するのではなく、グラフがどう変化していくかを滑らかな流れとして学ぶ。

なお、DyCAST は因果発見の論文であり、異常検知ベンチマークでの直接評価はまだ行われていない。本記事では、まず動的因果構造を学ぶアーキテクチャを理解し、その上で「因果構造の予測軌道からの逸脱」という形で異常検知の前段になりうる位置づけを、誠実に整理する。なぜこれを学ぶのか ―― 関係ベース異常検知が暗黙に前提する「正常な関係構造」が動的でありうるという、一段深い土台を押さえるためだ。

DyCASTの概念:因果グラフは時刻ごとに変わり、その変化をNeural ODEでモデル化

まず直感だ。従来の因果発見は「ある時間窓のデータから1つの固定した因果グラフを推定」する。しかし上の図のように、因果関係は時刻 $t_1, t_2, t_3$ で別の形になりうる。DyCAST はこの グラフの変化自体を微分方程式でモデル化 し、連続的に追跡・予測する。その出発点は、時系列の因果を記述する標準的な枠組み ―― 構造方程式モデルだ。

構造方程式モデル ― 同時点因果と異時点因果

時系列の因果関係は、構造方程式モデル(SEM)で表せる。

$$ \begin{equation} X_t = X_t W_t + Y A + Z_t \end{equation} $$

時系列の因果は構造方程式モデル:同時点因果Wtと異時点因果Aとノイズ

ここで $X_t W_t$ が 同時点因果(intra-slice) ―― 同じ時刻の変量間の依存で、行列 $W_t$ の非ゼロ要素が因果エッジを表す。$Y A$ が 異時点因果(inter-slice) ―― 過去 $p$ ステップ $Y = [X_{t-1} | \cdots | X_{t-p}]$ からのラグ依存。$Z_t$ はノイズだ。

従来手法(DYNOTEARS など)は $W_t$ を時間不変と仮定していた。DyCAST の核心は、この同時点因果行列 $W_t$ が時間とともに変化する と認め、その変化を学習することにある。問題は「$W_t$ の時間発展をどう記述するか」だ。ここで Neural ODE が登場する。

Neural ODE で因果グラフの時間発展を記述する

DyCAST は $W_t$ の時間発展を、Neural ODE の解軌道として定式化する。

$$ \begin{equation} W_t = W_0 + \int_0^t f_\theta(W_s, s)\, ds \end{equation} $$

因果グラフの時間発展をNeural ODEで記述:変化の速度fθを学習しODE solverで任意時刻のWtを生成

$W_0$ は時刻0での因果行列(学習対象)、$f_\theta$ は 因果構造の「変化の速度」を表すニューラルネット だ。これを学べば、ODE solver(Runge-Kutta など)で任意時刻の因果グラフ $W_t$ を生成できる。離散的な窓に区切らず、グラフの変化を 連続的な流れ として扱えるのが Neural ODE の強みだ。

ただし、ここに大きな難所がある。因果グラフは常に 非巡回(DAG) でなければならない ―― A→B→C→A のような循環があってはならない。ODE の解軌道 $W_s$ が、すべての時刻でこの非巡回性を保つ保証をどう与えるか。

DAG多様体制約 ― 軌道を非巡回に保つ

非巡回性は、NOTEARS で知られる trace-exponential 関数で特徴づけられる。

$$ \begin{equation} h(W) = \mathrm{tr}(e^{W \circ W}) – d = 0 \iff W \text{ は非巡回} \end{equation} $$

($\circ$ はアダマール積)。$h(W) = 0$ となる行列の集合は、ひとつの 多様体 $\mathcal{M} = \{W : h(W) = 0\}$ をなす。DyCAST は、ODE の軌道がこの多様体上に留まるよう、安定化項 を加えた制約付き Neural ODE を解く。

$$ \begin{equation} W_t = W_0 + \int_0^t \big[ f_\theta(W_s, s) – \gamma\, S(W_s)\, h(W_s) \big]\, ds \end{equation} $$

DAG多様体制約:軌道が非巡回多様体から外れたら安定化項が引き戻す

安定化項 $-\gamma S(W_s) h(W_s)$ が、軌道が多様体 $\mathcal{M}$ から外れそうになると 引き戻す 働きをする($S$ は安定化行列で、$h$ のヤコビアンの擬似逆行列を使う)。これにより、軌道は漸近的に DAG 制約を満たし続ける。重要なのは、この仕掛けによって 拡張ラグランジュ法のような重い制約強制が不要 になることだ。制約を「解くべき難しい最適化」ではなく「軌道が自然に従う流れ」に変えている。とはいえ、$d \times d$ の因果行列を直接 ODE で扱うのは高次元すぎる。そこで潜在空間に移す。

潜在ODE ― 高次元への拡張

変量数 $d$ が大きいと、$d \times d$ の因果行列 $W_t$ は非常に高次元になる。DyCAST は Encoder-Processor-Decoder の構成で、潜在空間で ODE を解く ことでこれに対処する。

潜在ODE:因果行列を低次元潜在に圧縮しODEを解きデコーダでDAG制約を保つ

まず Encoder $\phi_\theta$ が初期因果行列 $W_0$ を低次元($r < d$)の潜在ベクトル $z_0$ に圧縮する。次に Processor が潜在空間で Neural ODE を解き、$z_t = z_0 + \int_0^t \xi_\theta(z_s, s)\, ds$ として潜在状態を時間発展させる。最後に Decoder $\psi_\theta$ が潜在状態 $z_t$ を因果行列 $W_t$ に戻す。デコーダ側でも DAG 制約 $h(\psi_\theta(z_t)) = 0$ を課すので、復元された $W_t$ は非巡回性を保つ。周期的な因果変化が予想される場合は、デコーダの活性化に SIREN(周期表現に強い)を、そうでなければ SiLU を使い分ける。学習はどう行うのか。

学習 ― 再構成とスパース化

DyCAST は、SEM の再構成誤差にスパース化の正則化を加えた目的関数を最小化する。

学習:SEM再構成誤差+WtとAのℓ1スパース化

$$ \begin{equation} \mathcal{L} = \frac{1}{2NT} \sum_{t=0}^{T} \lVert X_t – X_t W_t – Y A \rVert_2^2 + \lambda_1 \sum_{t=0}^{T} \lVert W_t \rVert_1 + \lambda_2 \lVert A \rVert_1 \end{equation} $$

第1項が SEM の再構成、第2項が同時点グラフ $W_t$ のスパース化、第3項が異時点グラフ $A$ のスパース化だ。DAG 制約は前述の ODE 軌道が担保するので、損失関数に明示的な制約項を入れる必要がない ―― ここが設計の美点だ。では、これで因果構造をどれだけ追えるのか。

因果構造の連続追跡 ― デモ

2変量の因果係数 $W_{01}(t)$ が時間とともに滑らかに変化する(A→B の因果が 0.8 から −0.8 へ移ろう)状況を作り、窓ごとの離散推定と、連続的な軌道追跡を比べる。

因果構造の連続追跡:離散推定はばらつくがODEは滑らかな時間発展として軌道を捉える

黒線が真の因果係数の時間変化だ。グレーの点は 窓ごとの離散推定 で、各窓を独立に推定するため大きくばらつく。青線が 連続軌道(Neural ODE に相当) で、ノイズに振り回されず、因果係数の滑らかな時間発展を捉えている。離散的な窓分割では「ある瞬間のグラフ」しか得られず、しかもばらつくが、連続モデルなら 変化の軌跡そのもの を一貫して追える。この「軌道を持つ」性質が、異常検知にとって示唆的だ。

異常検知への接続 ― 予測軌道からの逸脱

異常検知への接続:DyCASTは因果構造の予測軌道を持ち予測からの逸脱を異常とできる

OracleAD や GCAD は「正常な構造 vs 現在の構造」という 静的な基準 との比較で異常を測った。これに対し DyCAST は、因果構造の 予測軌道 $\hat{W}_t$ を持つ。すると、異常検知の論理が一段リッチになる ―― 現在の因果構造が 予測通りに変化していれば、正常な文脈変化(モード切替など) とみなし、予測から逸脱していれば異常の兆候 とみなせる。正常な構造変化と異常な構造変化を区別できる可能性が開ける。

ただし、これはあくまで 今後の応用の方向性 だ。DyCAST 論文自体は因果発見(Lorenz-96・Dream4・Netsim などのベンチマークで既存の因果発見手法と同等以上の精度)を主目的としており、異常検知への直接適用と評価はまだ行われていない。DyCAST は「動的因果構造をモデル化する基盤技術」であり、関係ベース異常検知の土台を拡張するピースとして読むのが正確だ。

まとめ

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

  • 問題意識:因果関係は時間とともに変わりうる。従来手法が固定と仮定した 同時点因果行列 $W_t$ を時間変化させる
  • Neural ODE:$W_t = W_0 + \int_0^t f_\theta(W_s, s)\,ds$ として因果グラフの時間発展を連続的に記述。離散窓分割が不要。
  • DAG多様体制約:NOTEARS 制約 $h(W) = \mathrm{tr}(e^{W \circ W}) – d = 0$ の多様体上に軌道を留める 安定化項 を ODE に組み込み、非巡回性を漸近的に保つ。重い制約強制が不要。
  • 潜在ODE:高次元の因果行列を Encoder で低次元に圧縮し、潜在空間で ODE を解き、Decoder で DAG 制約を保ちつつ復元。
  • 異常検知への接続(展望):因果構造の 予測軌道からの逸脱 で、正常な構造変化と異常を区別できる可能性。ただし論文は因果発見が主目的で、異常検知への直接適用は今後の課題。

「正常な関係構造は動的でありうる」という DyCAST の視点は、関係ベース異常検知(SARAD・OracleAD・GCAD)が暗黙に前提していた「静的な正常構造」を一段拡張する。関係を測る(SARAD)・構造逸脱を見る(OracleAD)・因果の崩壊を捉える(GCAD)、そして 因果構造の変化そのものをモデル化する(DyCAST) ―― 関係ベース異常検知の地平が、ここで動的構造へとつながっていく。

GCAD:Granger因果の崩壊で異常を捉える
Granger因果グラフの変化を異常とする手法。DyCASTが因果構造の連続的な時間発展をモデル化するのと、因果の扱い方を比較したい。
OracleAD:安定潜在構造からの逸脱で異常を捉える
正常な関係構造をSLSとして静的に覚える手法。DyCASTの『正常構造が動的に変わる』視点と対比したい。
SARAD:変量間の関係の崩壊を異常として捉える
関連の減少を異常とする関係ベース手法。関係ベース異常検知の系譜の起点として。