時系列の異常検知でくり返し立ちはだかる壁がある。「同じ値でも、状況によって正常か異常かが変わる」という壁だ。エンジン回転数が高いのは、高速巡航中なら正常で、停車中なら異常だ。値そのものを見ても判定できず、いまどんな状況(モード)にあるのかという文脈を知らなければならない。
ところが現実のデータには「いまは巡航モード」というラベルはほとんど付いていない。ならば、文脈そのものをデータから教師なしで掘り起こせないか。これに正面から答えたのが TICC(Toeplitz Inverse Covariance-based Clustering、Hallac・Vare・Boyd・Leskovec、KDD 2017、Stanford)である。本記事では、TICC が「値」ではなく「変量間の相関構造」を手がかりにレジーム(潜在的な動作モード)を発見する仕組みを、目的関数と最適化アルゴリズムのレベルまで掘り下げて解説する。そして最後に、それが文脈付き異常検知の 前段 としてどう効くのかを見る。
なぜこれを学ぶのか。応用先は2つある。ひとつは、OmniAnomaly や Time-CAD のような「文脈付き異常検知」が暗黙に前提にしている “レジーム” という概念の数理的な土台を理解すること。もうひとつは、ラベルのない多変量センサーデータから、人が見ても納得できる動作モードの分節を取り出す実用的な道具を手に入れることだ。

上の図が TICC の出発点である。同じセンサー群を観測していても、始動中・定常運転・高負荷といったモードごとに「どの変量とどの変量が連動するか」が変わる。始動中は温度と振動が一緒に立ち上がり、定常運転では相関が薄れ、高負荷では圧力と温度が連動する。TICC は値の水準ではなく、この 連動パターンの違い を指紋としてモードを見分ける。以下ではまず、この「相関で見る」という発想を具体的に確かめる。
論文の Fig. 1 も同じ直感を示している。

出典: Hallac et al., KDD 2017, Fig. 1
クラスタ A・B・C それぞれで、センサー間の結びつきパターン(MRF のエッジ構造)が異なる。同一の窓幅 $w$ の部分系列を取り、どのクラスタの MRF に「最もよく当てはまるか」でその時刻を割り当てる。値の近さを問わず、構造の近さで分類する点が従来法との根本的な違いだ。
値ではなく「相関構造」を見る
多くのクラスタリングは、各時刻の値ベクトルがどの代表点に近いか(ユークリッド距離)で分ける。しかしモードの違いは、値の平均よりも 変量どうしの結びつき方 に表れることが多い。下の図は、3つの区間で値の振れ幅はほぼ同じなのに、背後の相関構造だけが切り替わる合成データである。

5本の変量を重ねて描いている。目で見ると、どの区間も似たようなノイズの塊にしか見えない。平均や分散だけを特徴にすれば、3つの区間はほとんど区別がつかない。ところが、ウィンドウごとに変量間の相関行列を取って特徴量にすると、区間の違いがくっきり現れる。実際にこのデータでウィンドウ相関を特徴に k-means を回すと、レジームの復元精度は 0.976 に達した(後述する時間的平滑化を入れると 0.994 まで上がる)。値では見えない構造が、相関には刻まれているのである。
その相関構造を「依存グラフ」として描いたのが次の図だ。

レジームA は変量1–2–3 が鎖のように連動し、レジームB は変量4–5 だけが結びつき、レジームC はほぼ無相関である。各レジームを一枚のグラフ(ネットワーク)として表せる点が重要だ。TICC はこのグラフを、後で述べる「逆共分散行列」という形で推定する。次節では、なぜ普通の共分散ではなく 逆 共分散なのかを掘り下げる。
各レジーム = Toeplitz 逆共分散行列(ガウス MRF)
TICC では、ひとつのレジーム $k$ を スパースな逆共分散行列(精度行列) $\Theta_k$ で表す。なぜ逆共分散か。多変量ガウス分布で逆共分散の $(a,b)$ 成分がゼロであることは、他の全変量を条件づけたときに変量 $a$ と $b$ が独立(条件付き独立)であることと厳密に同値だからだ。つまり $\Theta_k$ の非ゼロパターンが、そのまま「直接結びついている変量のペア」を表すグラフ(ガウス・マルコフ確率場、MRF)になる。共分散だと間接的な相関まで拾ってしまうが、逆共分散なら 直接の依存だけ を残せる。
さらに TICC は各時刻の値そのものではなく、連続する $w$ ステップ分を縦に積んだ 短い部分系列 を1つの観測とみなす。変量が $n$ 本なら、観測は $nw$ 次元のベクトルになり、$\Theta_k$ は $nw \times nw$ の行列になる。この行列に ブロック Toeplitz 構造 を課すのがもう一つの鍵だ。
具体的には、時刻 $t$ の観測 $x_t \in \mathbb{R}^n$ を起点に、直前 $w$ ステップの観測を縦に連結した
$$ X_t = \bigl(x_{t-w+1}^\top,\; x_{t-w+2}^\top,\; \ldots,\; x_t^\top\bigr)^\top \in \mathbb{R}^{nw} $$
を 部分系列 と呼ぶ(論文では “subsequence”)。こうすることで1時刻の観測 $x_t$ と対応する部分系列 $X_t$ の間に全単射が成り立ち、時刻のクラスタリングと部分系列のクラスタリングが等価になる。時系列の全長が $T$、クラスタ数が $K$ のとき、TICC は $K$ 個の逆共分散 $\Theta = \{\Theta_1, \ldots, \Theta_K\}$ と、各時刻の割り当て集合 $\mathbf{P} = \{P_1, \ldots, P_K\}$($P_i \subset \{1, 2, \ldots, T\}$ で各時刻はひとつの $P_i$ にのみ属する)を同時に求める。

ブロック Toeplitz とは、対角に沿って同じブロックがくり返し並ぶ構造だ($n\times n$ の小ブロックが、時間ラグが等しいところでは同一になる)。対角ブロックは「同時刻の変量間の依存」、1つ隣のブロックは「1ステップずれた変量間の依存」を表す。同じラグのブロックを共有させることは、依存構造が時間方向に平行移動しても変わらない(時間不変である) という仮定を意味する。これにより推定すべきパラメータが大幅に減り、短い部分系列からでも安定して構造を推定できる。
論文では、この $\Theta_i$ の具体的な行列形式が次のように示されている。

出典: Hallac et al., KDD 2017, Section 3.1
行列の読み方は次のとおりだ。対角ブロック $A^{(0)} \in \mathbb{R}^{n \times n}$ は「同じ時刻の変量間の偏相関」を表す MRF の隣接行列で、対称行列として推定される($A^{(0)}_{ij} = A^{(0)}_{ji}$)。オフ対角ブロック $A^{(l)} \in \mathbb{R}^{n \times n}$ は「時間ラグ $l$ でのクロスタイム依存」を担い、例えば $A^{(1)}_{ij}$ はセンサー $i$ が時刻 $t$ のときセンサー $j$ が時刻 $t+1$ でどう関係するかを表す。$A^{(l)}$ は一般には非対称で、$w-1$ 種類のラグに対応して $A^{(0)}, A^{(1)}, \ldots, A^{(w-1)}$ の合計 $w$ 種のブロックが存在する。同じラグで行列が共有されている(=ブロック Toeplitz)ことで、「どの時刻から見ても依存構造は同じ」という時間不変性が数学的に保証される。ブロック Toeplitz 行列の集合を $\mathcal{T}$ と書くとき、TICC は $\Theta_k \in \mathcal{T}$ という制約のもとで最適化する。なお $\Theta_k$ は $nw \times nw$ 行列だが、実際に学習すべきパラメータは $A^{(0)}, \ldots, A^{(w-1)}$ の $w$ 個の $n \times n$ ブロックのみであり、パラメータ数を大幅に削減できる。
このガウス MRF のもとで、部分系列 $X_t \in \mathbb{R}^{nw}$(積み上げた $nw$ 次元ベクトル)がレジーム $i$ にどれだけ当てはまるかは、対数尤度(式2)
$$ \begin{equation} \ell\!\ell\!\left(X_t,\, \Theta_i\right) = -\tfrac{1}{2}\,(X_t-\mu_i)^{\top}\Theta_i (X_t-\mu_i) + \tfrac{1}{2}\log\det\Theta_i – \tfrac{n}{2}\log(2\pi) \end{equation} $$
で測る。ここで $\mu_i \in \mathbb{R}^{nw}$ はレジーム $i$ の経験平均ベクトルだ。第1項は「精度行列で測ったマハラノビス的乖離」で、構造に合わない観測ほど大きなペナルティを受ける。第2項 $\tfrac{1}{2}\log\det\Theta_i$ は確率分布が正しく規格化されるための正規化定数由来の項だ。第3項 $-\tfrac{n}{2}\log(2\pi)$ はモデル間の比較に影響しない定数項(論文式2の n/2 は観測次元数 $n$ であり、部分系列次元 $nw$ ではないことに注意)。TICC はこの尤度を最大化する($-\ell\ell$ を最小化する)ようにレジームを割り当てる。次節では、この尤度に「スパース性」と「時間的一貫性」を加えた完全な目的関数を組み立てる。
目的関数 ― 尤度・スパース性・切替ペナルティの3項
TICC が解く最適化問題は、レジーム割り当て $\mathbf{P}=\{P_1,\dots,P_K\}$(各時刻をどのレジームに属させるか)と、各レジームの逆共分散 $\{\Theta_k\}$ を同時に求めるものだ。目的関数は次の3項からなる(論文 式1)。
$$ \begin{equation} \operatorname*{argmin}_{\substack{\Theta \in \mathcal{T},\; \mathbf{P}}}\ \sum_{i=1}^{K}\left[\underbrace{\lVert \lambda \circ \Theta_i \rVert_1}_{\text{スパース性}} + \sum_{X_t \in P_i}\Bigl(\underbrace{-\,\ell\ell(X_t,\Theta_i)}_{\text{当てはまり}} + \underbrace{\beta\,\mathbb{1}\{X_{t-1}\notin P_i\}}_{\text{時間的一貫性}}\Bigr)\right] \end{equation} $$
ここで記号の定義を確認する。$\mathcal{T}$ はブロック Toeplitz 行列の集合、$\circ$ はアダマール積(要素積)、$\lambda \in \mathbb{R}^{nw \times nw}$ は正則化パラメータの行列(各ブロックで別の強さを設定できるが、実用上は全要素を単一定数にすることが多い)、$\beta > 0$ は切替ペナルティ係数、$\mathbb{1}\{\cdot\}$ は指示関数(隣の時刻が同じレジームにないとき1を返す)だ。図にすると3つの力のせめぎ合いとして見える。

第1項 $-\ell(X_i,\Theta_k)$ は 当てはまり だ。各観測を、最も尤度の高い(構造によく合う)レジームに割り当てたい。
第2項 $\lambda \lVert \Theta_k \rVert_1$ は スパース性 の正則化だ。$\Theta_k$ の非ゼロ要素に $\ell_1$ ペナルティをかけ、依存グラフを疎に保つ。これは統計学でいう グラフィカルラッソ そのもので、本当に意味のある依存だけを残し、ノイズ由来の偽の繋がりを消す。$\lambda$ を大きくするほどグラフは疎で解釈しやすくなる。
第3項 $\beta\,\mathbb{1}\{X_{i-1}\notin P_k\}$ が TICC の肝、時間的一貫性(切替ペナルティ) だ。隣り合う時刻でレジームが切り替わるたびに定数 $\beta$ の罰金を課す。これにより「1点だけ別レジームにピョコッと飛ぶ」ような不自然な割り当てが抑えられ、レジームは時間的にまとまった区間として現れる。$\beta$ を大きくするほど切替が起きにくくなり、長く滑らかな区間になる。この $\beta$ の効果は後で実験的に確かめる。
問題は、この目的関数が割り当て $\mathbf{P}$(離散)と逆共分散 $\Theta_k$(連続)の両方について同時に非凸である点だ。そこで TICC は2つのステップを交互にくり返して解く。
交互最適化 ― 割り当ては動的計画法、更新は ADMM

TICC の最適化は EM(期待値最大化)に似た 交互最適化 だ。$\Theta_k$ を固定して割り当て $\mathbf{P}$ を更新し、次に $\mathbf{P}$ を固定して $\Theta_k$ を更新する。これを収束まで反復する。
割り当てステップ(E ステップ) ― 最小コスト経路と動的計画法
各 $\Theta_k$ を固定すると、割り当てサブ問題は以下の純粋な組み合わせ最適化になる(論文 式3)。
$$ \begin{equation} \min_{\mathbf{P}}\ \sum_{i=1}^{K}\sum_{X_t \in P_i}\Bigl(-\ell\ell(X_t,\Theta_i) + \beta\,\mathbb{1}\{X_{t-1}\notin P_i\}\Bigr) \end{equation} $$
各時刻 $t$ をレジーム $j$ に割り当てたときのノードコストは $-\ell\ell(t, j)$(負対数尤度)で、隣接する時刻で割り当てが変わるたびにエッジコスト $\beta$ が加わる。全体は「各時刻でレジームを選び、切替で $\beta$ を払う最小コスト経路」を求める問題になる。
論文の Fig. 2 はこれを鮮明に図示している。

出典: Hallac et al., KDD 2017, Fig. 2
$K$ 行 $T$ 列のグリッドグラフで、行がレジーム、列が時刻を表す。各ノード $(-\ell(i,j))$ が「時刻 $i$ をレジーム $j$ に割り当てたときのコスト」で、異なる行へ遷移するエッジにはコスト $\beta$ がかかる。このグラフで左端(時刻1)から右端(時刻 $T$)への最小コスト経路を求めることが、目的関数の割り当てステップと厳密に等価だ。
これは隠れマルコフモデルの Viterbi 復号 と同型で、動的計画法によって $O(KT)$ で厳密に解ける(論文では $O(KT)$ と明記。各時刻で $K$ 個のレジーム候補を評価し、直前コストとの比較で切替を判定するため、$K^2$ でなく $K$ で済む)。アルゴリズムの要点は以下の3ステップだ。
- 前向きパス: 時刻 $t=1$ から $T$ へ順に、各レジーム $j$ について「時刻 $t$ でレジーム $j$ を選んだときの最小累積コスト」
CurrCost[j]を計算する。遷移コストは「前時刻の最小コストに $\beta$ を加えたもの」と「前時刻でも同じ $j$ を選び続けたコスト」の小さい方を取る(論文 Algorithm 1 の行 9–14)。 - パス追跡: 各時刻の選択を
CurrPathに蓄積する。 - 最終パス取得: 時刻 $T$ でコスト最小のレジームから
FinalPathを読み出す。
貪欲に各点を独立に最尤レジームへ割り当てるのではなく、$\beta$ を含めた系列全体のコストを最小化する点がポイントだ。
パラメータ更新ステップ(M ステップ) ― Toeplitz グラフィカルラッソと ADMM
割り当てを固定すると、各レジーム $i$ について次の最適化に分解される(論文 式4)。
$$ \begin{equation} \min_{\Theta_i \in \mathcal{T}}\ -\log\det\Theta_i + \mathrm{tr}(S_i\,\Theta_i) + \frac{1}{|P_i|}\lVert \lambda \circ \Theta_i \rVert_1 \end{equation} $$
ここで $S_i \in \mathbb{R}^{nw \times nw}$ はレジーム $i$ に割り当てられた $|P_i|$ 個の部分系列の 経験共分散行列(中心化後の $X_t$ の標本共分散)だ。第1項($-\log\det\Theta_i$)が尤度を担い、$S_i$ が可逆なとき $\Theta_i \approx S_i^{-1}$ へ引き寄せる。第2項はスパース正則化で、実用上は $\frac{1}{|P_i|}$ を $\lambda$ に吸収させて省略できる。これは凸問題だが、$\log\det$ 項・$\ell_1$ 項・Toeplitz 制約が混ざって直接は解きにくい。TICC は ADMM(交互方向乗数法) でこれを3つのサブ問題に分割して解く。
ADMM による分解: 補助変数 $Z \in \mathcal{T}$ を導入し、元問題を $\Theta = Z,\; Z \in \mathcal{T}$ という等式制約つき問題に書き直す。拡張ラグランジアン(論文 式5)は
$$ \begin{equation} \mathcal{L}_\rho(\Theta, Z, U) := -\log\det\Theta + \mathrm{tr}(S\Theta) + \lVert \lambda \circ Z \rVert_1 + \frac{\rho}{2}\lVert \Theta – Z + U \rVert_F^2 \end{equation} $$
となる。ここで $\rho > 0$ は ADMM ペナルティパラメータ、$U \in \mathbb{R}^{nw \times nw}$ はスケール双対変数(プライマル残差 $\Theta – Z$ の加重和を蓄積する)だ。3つの更新を収束まで反復する。
$\Theta$ 更新(論文 式6)
$-\log\det\Theta + \mathrm{tr}(S\Theta) + \frac{\rho}{2}\lVert\Theta – Z^k + U^k\rVert_F^2$ を $\Theta$ について最小化する。行列
$$ A = \frac{Z^k – U^k}{\rho} – S $$
の固有値分解 $A = QDQ^\top$ を取ると($D$ は対角固有値行列)、閉形式解が得られる。
$$ \begin{equation} \Theta^{k+1} = \frac{\rho}{2}\, Q\!\left(D + \sqrt{D^2 + \frac{4}{\rho}I}\right)Q^\top \end{equation} $$
ここで平方根は行列の要素ごとではなく固有値に対してのスカラー平方根を取る操作を指す($D$ が対角行列なので各対角要素 $d_{ii}$ に対し $\sqrt{d_{ii}^2 + 4/\rho}$ を計算する)。計算コストは固有値分解の $O((nw)^3)$ だが、ADMM の反復内で毎回解析解が得られる点が重要だ。
$Z$ 更新(論文 式7〜9)
$Z$ サブ問題は次のとおりだ。
$$ \begin{equation} Z^{k+1} = \operatorname*{argmin}_{Z \in \mathcal{T}}\ \lVert \lambda \circ Z \rVert_1 + \frac{\rho}{2}\lVert Z – \Theta^{k+1} – U^k \rVert_F^2 \end{equation} $$
これはソフト閾値 + Toeplitz 射影 の2段操作で閉形式に解ける。ブロック Toeplitz 行列の各ブロック $A^{(m)}$($m=0,1,\ldots,w-1$)は独立に処理でき、さらに各ブロックの $(i,j)$ 要素も独立に解ける。合計で $(w-1)n^2 + \frac{n(n+1)}{2}$ 個の独立サブ問題が生じ、全て並列に解ける。
ブロック $A^{(m)}$ の $(i,j)$ 成分は $nw \times nw$ 行列内に $R$ 回現れる($A^{(m)}$ の重複度は $R = 2(w-m)$、ただし $A^{(0)}$ の対角成分は $R=w$)。その $R$ 個の位置を $B^{(m)}_{ij,1}, \ldots, B^{(m)}_{ij,R}$ と表し、共通値 $z$ を求める問題は
$$ \operatorname*{argmin}_{z}\ Q|z| + \frac{\rho}{2}\sum_{l=1}^{R}(z – S_l)^2 $$
となる。ここで $Q = \sum_{l=1}^R \lambda_{B^{(m)}_{ij,l}}$、$S_l = (\Theta^{k+1} + U^k)_{B^{(m)}_{ij,l}}$ だ。これは1次元ソフト閾値問題であり、閉形式解は
$$ \begin{equation} Z^{k+1}_{B^{(m)}_{ij}} = \begin{cases} \dfrac{\rho\sum_l S_l – Q}{\rho R} & \text{if } \rho\sum_l S_l – Q > 0 \\[6pt] \dfrac{\rho\sum_l S_l + Q}{\rho R} & \text{if } \rho\sum_l S_l + Q < 0 \\[6pt] 0 & \text{otherwise} \end{cases} \end{equation} $$
この値を $nw \times nw$ 行列の対応する $R$ 個の位置すべてに書き込むことで、ソフト閾値(スパース化)と Toeplitz 射影(同ラグブロックを同一値に揃えること)が同時に達成される。
$U$ 更新(双対上昇)
$$ U^{k+1} = U^k + (\Theta^{k+1} – Z^{k+1}) $$
プライマル残差を双対変数に加算する標準的な ADMM の双対上昇ステップだ。収束判定は Boyd et al.(2011) に倣い、プライマル残差 $\lVert \Theta^{k+1} – Z^{k+1} \rVert_F$ と双対残差 $\rho \lVert Z^{k+1} – Z^k \rVert_F$ がともに小さくなったときとする。
割り当てと更新を交互に回すと、レジームの形(逆共分散グラフ)と区間(割り当て)が同時に研ぎ澄まされていく。全体アルゴリズムは論文 Algorithm 2 としてまとめられており、初期クラスタパラメータ $\Theta$ とランダムな初期割り当て $\mathbf{P}$ から始め、割り当てが変化しなくなる(定常状態)まで E・M ステップを交互に実行する。ADMM のペナルティパラメータ $\rho$ は固定値(論文実装では $\rho = 1$ 程度)でよく、外側のEM反復は通常数十回以内で収束する。なお、TICC は非凸問題への交互最適化なので大域最適は保証されないが、初期化を変えた複数回の試行で安定した局所解に収束することが実験的に確認されている。ハイパーパラメータは $\lambda$(スパース性強度)・$\beta$(切替ペナルティ)・$w$(ウィンドウサイズ)・$K$(クラスタ数)の4つで、事前知識があれば手動設定、なければ BIC やシルエットスコアで選択する。論文では実験上、$w$ の選択に対して比較的頑健(4〜15の広い範囲で精度 0.95〜0.98)であることが確認されている。次節では、3項のうち $\beta$ がどれほど効くかを実際に確かめる。
切替ペナルティ β の効き目
理屈のうえでは「$\beta$ がレジームを時間的にまとめる」と述べた。これを冒頭の合成データで確かめたのが次の図だ。$\beta$ に相当する時間平滑化を弱めた場合と強めた場合で、レジーム割り当てを並べている。

上段($\beta$ 小)では、本来ひとつのレジームであるべき区間の中で割り当てがチラチラと飛び、復元精度は 0.976 にとどまる。各時刻を独立に最尤レジームへ割り当てると、ノイズで尤度が僅かに揺れただけで別レジームに切り替わってしまうからだ。下段($\beta$ 大)では切替に罰金がかかるため割り当てが安定し、精度は 0.994 に向上する。境界も実際のレジーム境界にぴたりと揃う。
論文 Table 1 では、TICC($\beta > 0$) と TICC($\beta = 0$) の比較が多数の手法とともに示されており、$\beta$ の時間的一貫性がもたらす効果を定量的に確認できる。

出典: Hallac et al., KDD 2017, Table 1
TICC はすべての系列パターンで最高精度を達成している(0.92–0.98)。モデルベースの競合手法 GMM(0.55–0.83)や EEV(0.37–0.88)を大きく上回るだけでなく、距離ベースの DTW 系や k-means は 0.17–0.64 にとどまる。特に注目したいのは「TICC, $\beta=0$」との差だ。切替ペナルティを外すだけで F1 が 0.03–0.12 落ちており、Viterbi 型の系列最適化が単純な点ごと割り当てより本質的に優れていることが分かる。
「この「時間的にまとまった区間としてモードを取り出せる」ことが、後段の異常検知にとって決定的に重要だ。チラつくレジームの上に正常モデルを建てても、文脈そのものが信用できないからである。次節で、その橋渡しを見る。
ネットワーク構造の回復精度 ― MRF エッジの再現
TICC の大きな強みのひとつは、クラスタリングと同時に各レジームの 変量間依存グラフ(MRF のエッジ構造) を推定できる点だ。逆共分散行列 $\Theta_k$ の非ゼロパターンが、そのままグラフのエッジを意味するため、「どの変量とどの変量が直接結びついているか」が数値として出てくる。
この構造推定の精度を論文の Table 2 で確かめよう。

出典: Hallac et al., KDD 2017, Table 2
ネットワーク回復 F1 は 0.79–0.90 で、TICCが各レジームの MRF エッジを高精度に再現できていることが分かる。これは「クラスタの形を当てる」だけでなく、依存構造そのものを復元している証拠だ。この能力が、後述する異常の「説明」に直結する。
サンプル効率と学習曲線 ― 少ないデータでも安定
クラスタリングが実用になるには、手元のデータ量が十分でなければならない。論文の Fig. 3 は、サンプル数(セグメントあたり)を変えたときの各手法の精度推移を示す。

出典: Hallac et al., KDD 2017, Fig. 3
TICC(青)は 100–200 サンプル程度からすでに高い F1(0.78–0.91)を示し、200–500 の範囲ではほぼ飽和に近い 0.98 に達する。GMM(赤)は同じモデルベース手法でも 300 サンプル付近で大きく改善するが、TICC ほどの精度には届かない。距離ベースの DTW/k-means 系は最後まで 0.2–0.6 程度にとどまる。この差が示すのは、「値の近さ」では時系列の構造的違いを捉えられないという根本的な限界だ。TICC の Toeplitz 逆共分散モデルが、構造的な類似性を効率よく捉えているからこそ、少ないデータでも安定した分類が得られる。
スケーラビリティ ― 観測数に対する線形スケール
実用システムへの適用を考えると、アルゴリズムの計算量は無視できない。論文の Fig. 4 は、観測数 $10^4$〜$10^7$ の範囲で TICC の1反復あたりの実行時間を測定した結果だ。

出典: Hallac et al., KDD 2017, Fig. 4
両対数軸でほぼ直線、すなわち観測数 $T$ に対して 線形スケール ($O(T)$) であることが分かる。$10^4$ 観測で約 20 秒、$10^7$ 観測では約 1,500 秒(25分)という推移だ。この線形性は、Viterbi DP が $O(KT)$(各時刻に $K$ 個のレジームを評価するため)、ADMM の Toeplitz グラフィカルラッソが観測数 $T$ に対してデータを独立に処理できるためだ。論文のスケーラビリティ実験は $n=50$、$w=3$($nw=150$)、$K=5$ で行われており、ADMM は $150 \times 150$ 逆共分散を4秒以内に推定するが、この時間は $T$ に依存しない定数項として働く。変量次元 $n$ やウィンドウサイズ $w$ の増加は $(nw)^3$ の固有値分解コストを引き上げるが、時系列長 $T$ に関しては線形に保たれるため、長い時系列データへのスケールアップが可能だ。
ケーススタディ ― 走行データでのレジーム発見
TICC が教師なしでどれほど意味のある分節を取り出せるかを、論文の実データ実験で確認しよう。7次元の走行センサーデータ(ブレーキ踏量・前後加速度・横加速度・ハンドル角度・速度・エンジン回転数・アクセル踏量)に TICC を適用し、5クラスタを発見した。
各クラスタの 中心性スコア(Betweenness Centrality) は、Table 3 で次のように報告されている。

出典: Hallac et al., KDD 2017, Table 3
クラスタ #1(Slowing Down)ではブレーキが突出したスコア(25.64)で他は0に近い。クラスタ #2(Turning)では横加速度(66.01)とハンドル角度(17.56)が主役だ。クラスタ #3(Speeding Up)はアクセルと速度が主役、#4(Driving Straight)は速度とアクセルが均等に効き、#5(Curvy Road)は横加速度がカーブ走行を示す。ラベルを一切与えていないにもかかわらず、発見されたクラスタが人間の感覚的な運転モードと一致している点が、TICC の構造ベースアプローチの説得力を裏づけている。
これを地図上で可視化したのが論文の Fig. 5 だ。

出典: Hallac et al., KDD 2017, Fig. 5
左右2つのターンいずれも、直進(緑)→スローダウン(白)→ターン(赤/青)という遷移がくっきり現れている。センサー値の「水準」ではなく「センサー間の連動パターン」がモードを切り分けているため、曲がり始めと直進を自然に分節できる。このような可視化は、TICC が学習した逆共分散グラフが 実際の動作モードの物理的な意味を反映していることの証拠でもある。
文脈付き異常検知の前段としての TICC
TICC 自体はクラスタリング手法であって、異常検知器ではない。しかし、本シリーズで扱ってきた文脈付き異常検知が暗黙に欲しがっていた 「いまどのモードか」という潜在文脈 を、ラベルなしで供給できる。

流れはこうだ。多変量時系列 $Y$ に TICC をかけてレジーム列 $C$ を発見し、レジームごとに別々の正常モデル $P(Y\mid C)$ を学習する。すると「巡航モードでは正常な高回転」と「停車モードでは異常な高回転」を切り分けられる。値だけを見る大域的な正常モデルでは見逃す 文脈依存の異常(contextual anomaly) が、レジームで条件づけることで初めて検出可能になる。
さらに TICC が出す逆共分散グラフ自体が、異常の 説明 にも使える。「いま観測されたデータは、本来このレジームで成り立つはずの変量1–2–3 の連動が崩れている」といった形で、どの依存関係が壊れたかを名指しできる。これは、変量間の関係の崩壊を異常の根拠とする近年の関係ベース異常検知(SARAD など)の発想とも地続きである。
TICC が「暗黙のコンテキスト = レジーム」という考え方の原典として価値を持つのはこの点だ。OmniAnomaly が確率的な潜在変数で文脈を吸収し、Time-CAD が外部のカレンダー文脈を明示的に与えるのに対し、TICC は 相関構造そのものから文脈を発掘する。系統の根っこを押さえておくと、後続手法が何を自動化・洗練しようとしているのかが見通しよくなる。
まとめ
TICC のエッセンスを整理する。
- 発想の転換:多変量時系列を「値」ではなく 変量間の相関構造 でクラスタリングし、潜在的な動作モード(レジーム)を教師なしで発見する。
- レジームの表現:各レジームを ブロック Toeplitz 制約付きのスパース逆共分散行列(ガウス MRF)で表す。非ゼロパターンが条件付き依存グラフになり、Toeplitz 構造が時間不変性を担保する。具体的には $\Theta_i$ は $A^{(0)}, A^{(1)}, \ldots, A^{(w-1)} \in \mathbb{R}^{n \times n}$ の $w$ 種のブロックで構成され、ラグ $l$ のブロック $A^{(l)}$ がクロスタイム依存を担う。
- 目的関数:①当てはまり(尤度)+②スパース性($\ell_1$ グラフィカルラッソ)+③時間的一貫性(切替ペナルティ $\beta$)の3項を同時に最小化する。
- 最適化:割り当ては 動的計画法(Viterbi 型)で系列全体のコストを厳密に最小化し、パラメータ更新は ADMM による Toeplitz グラフィカルラッソ(閉形式 $\Theta$ 更新+ソフト閾値+Toeplitz射影 $Z$ 更新+双対上昇 $U$ 更新)で解く、という交互最適化。計算量は $T$ に線形でスケール。
- 実験結果:合成データで Macro-F1 0.92–0.98(GMM 0.55–0.83 を大幅に上回る)。ネットワーク回復 F1 0.79–0.90。走行データで意味あるモード(直進/スローダウン/ターン等)を教師なし発見。
- 異常検知への接続:TICC が供給するレジームを文脈として、レジーム別の正常モデルを建てれば、値だけでは見抜けない文脈依存の異常を検出できる。逆共分散グラフは異常の説明にも使える。
「文脈をデータから掘り起こす」という TICC の問題設定は、その後の文脈付き・関係ベース異常検知に脈々と受け継がれている。続けて、潜在文脈を確率モデルに織り込む OmniAnomaly や、外部文脈を明示的に与える Time-CAD と読み比べると、それぞれが「文脈」をどう扱っているかの違いがくっきり見えてくるはずだ。





