THOC:多スケールの超球面で時系列を囲い込む階層One-Class異常検知

異常検知には、再構成や予測とは別の、もっと直截な発想がある。One-Class分類 ―― 正常データだけを使って「正常はこの領域に収まる」という境界を学習し、その外に出たものを異常とする考え方だ。画像分野では Deep-SVDD(Support Vector Data Description)が、正常データを潜在空間のひとつの超球面の中に押し込め、球の中心から遠い点を異常とする手法として広く使われてきた。

だが、時系列にこれをそのまま当てはめると無理が出る。時系列の「正常」は単一のパターンではない ―― 日中と夜間、稼働モードA とモードB、短い周期と長い周期 …… 複数のモードと複数の時間スケール が混ざり合う。これを単一の超球面で囲おうとすると、球が大きくなりすぎて異常まで飲み込んでしまう。

ここに正面から答えたのが THOC(Shen, Li, Kwok, “Timeseries Anomaly Detection using Temporal Hierarchical One-Class Network,” NeurIPS 2020)である。THOC は Deep-SVDD の単一超球面を、dilated RNN の多スケール特徴階層クラスタリングによる複数の超球面 へ拡張する。本記事は論文(NeurIPS 2020)を一次情報から読み込み、アーキテクチャ・MVDD目的・直交損失・時間的自己教師を数式と図で深掘りする。なぜこれを学ぶのか ―― 「正常を囲い込む」というOne-Class分類の発想を、時系列の豊かな構造にどう適合させるかを掴むためだ。本シリーズで何度もベースラインに登場する手法でもある。

THOCの概念:複数の時間スケール×複数の超球面で正常を多面的に囲い込む

全体像はこうだ。時系列を L層の dilated RNN に通して多スケールの時間特徴を抽出し、微分可能な階層クラスタリングで各スケールの特徴を融合しながら複数の超球面(クラスタ中心) へ割り当てる。最終層で各中心への重み付き距離を異常スコアとする。まず、その出発点である Deep-SVDD の単一超球面の限界から見ていく。

出発点:Deep-SVDDの単一超球面とその限界

Deep-SVDD の目的はシンプルだ。深いネットワーク $NN(\cdot; W)$ で各サンプルを潜在空間に写し、その点をひとつの中心 $c$ に近づけるように学習する。

$$ \begin{equation} \min_W \frac{1}{N} \sum_{i=1}^{N} \lVert NN(x_i; W) – c \rVert^2 + \lambda \Omega(W) \end{equation} $$

$\Omega(W)$ は $\ell_2$ 正則化だ。正常データだけで学習すれば、正常サンプルは中心の近くに集まり、異常は中心から遠くなる ―― だから中心からの距離を異常スコアにする。だが、この「ひとつの球」という前提が時系列では足かせになる。

Deep-SVDDは単一超球面では多峰の正常を囲えず取りこぼすが、THOCは複数の超球面で各モードを囲い込む

左は Deep-SVDD だ。正常データが3つのモード(クラスタ)に分かれているのに、単一の超球面で囲おうとすると球が大きく膨らみ、モードとモードの隙間にある異常(×印)まで球の内側に入ってしまう。実際にこのデモでは異常検出率が 74% にとどまる。一方、右の THOC は各モードごとに超球面を用意するため、どの中心からも遠い異常を取りこぼさず、検出率は 100% に達する。「正常は単一」という暗黙の前提を捨て、複数の超球面で多モードを囲う ―― これが THOC の核心的アイデアだ。では、時系列から「複数のモード」をどう取り出すのか。まずは多スケールの時間特徴の抽出から始まる。

多スケール時間特徴:dilated RNN

時系列の「複数の時間スケール」を捉えるため、THOC は L層の dilated RNN(膨張再帰ネットワーク)をスキップ接続つきで使う。層 $l$ の時刻 $t$ における隠れ状態 $f^l_t$ は、

$$ \begin{equation} f^l_t = \begin{cases} F_{RNN}(x_t, f^l_{t-s(l)}) & l = 1 \\ F_{RNN}(f^{l-1}_t, f^l_{t-s(l)}) & \text{それ以外} \end{cases} \end{equation} $$

ここで $F_{RNN}$ は任意のRNNセル(LSTM やGRU など)、$s(l)$ は層 $l$ のスキップ長だ。

dilated RNN:スキップ接続で多スケールの時間特徴を抽出する

スキップ長を指数的に増やすのがポイントだ。$s(l) = M_0 \prod_{i=1}^{l-1} M$(図では $M_0=1, M=2$ なので 1, 2, 4, …)とすることで、下層は短期の依存、上層は長期の依存を捉える。スキップ接続は長期依存のモデル化を助け、勾配消失も緩和する。こうして1つの時系列から、短期から長期までの多スケール特徴 $\{f^l_t\}$ が一度に得られる。次は、これらのスケールをどう束ねるかだ。

微分可能な階層クラスタリング:スケールを融合する

dilated RNN の最終層だけでなく、中間層の特徴にも有用な情報がある。THOC はこれらを束ねるため、微分可能な階層クラスタリング を提案する。各スケール $l$ に $K_l$ 個のクラスタ中心 $\{c^l_1, \dots, c^l_{K_l}\}$ を持つクラスタ層を対応させ、割り当てと更新の2ステップを繰り返す。

微分可能な階層クラスタリング:割り当てと融合を層ごとに繰り返す

ステップ1(割り当て):下層の特徴 $\bar f^{l-1}_{t,i}$ を、各中心 $c^l_j$ への類似度に基づいて確率的に割り当てる。

$$ \begin{equation} P^l_{t,i\to j} = \frac{\exp(\mathrm{score}(\bar f^{l-1}_{t,i}, c^l_j) / \tau)}{\sum_{k=1}^{K_l} \exp(\mathrm{score}(\bar f^{l-1}_{t,i}, c^l_k) / \tau)}, \qquad \mathrm{score}(\bar f, c) = \frac{\bar f^\top c}{\lVert \bar f \rVert \cdot \lVert c \rVert} \end{equation} $$

$\tau$ は温度パラメータで、$\tau \to 0$ で硬い割り当て(最近傍だけ)、$\tau \to \infty$ で均等割り当てになる。類似度にはコサイン類似度を使う。ステップ2(更新):割り当て確率で下層の特徴を各クラスタへ融合・変換する。

$$ \begin{equation} \hat f^l_{t,j} = \sum_{i=1}^{K_{l-1}} P^l_{t,i\to j} \mathrm{ReLU}(W_l \bar f^{l-1}_{t,i} + b_l), \quad j = 1, \dots, K_l \end{equation} $$

さらに、融合した特徴を次のスケールの特徴 $f^{l+1}_t$ と連結し、全結合層 $F_{MLP}$ で変換する。

$$ \begin{equation} \bar f^l_{t,j} = \begin{cases} f^1_t & l = 0 \\ F_{MLP}([\hat f^l_{t,j}; f^{l+1}_t]) & 1 \le l \le L-1 \\ \hat f^L_{t,j} & l = L \end{cases} \end{equation} $$

これにより、下層の細かい特徴が上層のクラスタへ集約されつつ、各スケールの dilated RNN 特徴が随時注入される ―― 多解像度の情報が階層的に束ねられていく。この階層の頂点で、いよいよOne-Class目的が定義される。

MVDD:複数の超球面で正常を測る

最終層では、Deep-SVDD と同じく特徴 $\bar f^L_{t,j}$ と中心 $c^L_j$ の距離を測る。ただし複数の中心があるのが違いだ。コサイン類似度を使うので、距離はコサイン距離 $d(\bar f, c) = 1 – \cos(\bar f, c)$ とする。目的関数は、

$$ \begin{equation} L_{THOC} = \frac{1}{N K_L} \sum_{s=1}^{N} \frac{1}{T_s} \sum_{t=1}^{T_s} \sum_{j=1}^{K_L} R^L_{t,j,s} \, d(\bar f^L_{t,j,s}, c^L_j) + \lambda \Omega(W) \end{equation} $$

MVDD:最終層の各中心への重み付きコサイン距離を最小化する

ここで $R^L_{t,j,s}$ は「観測 $x_{t,s}$ が中心 $c^L_j$ にどれだけ関連するか」の度合いだ。これは下層からの関連度を再帰的に伝播して計算する。

$$ \begin{equation} R^l_{t,j} = \frac{\exp(\tilde R^l_{t,j})}{\sum_{i=1}^{K_l} \exp(\tilde R^l_{t,i})}, \qquad \tilde R^l_{t,j} = \begin{cases} P^1_{t,i\to j} & l = 1 \\ \sum_{i=1}^{K_{l-1}} P^l_{t,i\to j} R^{l-1}_{t,i} & 1 < l \le L \end{cases} \end{equation} $$

$\tilde R^l_{t,j}$ は、前層 $(l-1)$ で各中心 $c^{l-1}_i$ に関連していた度合い $R^{l-1}_{t,i}$ と、その出力が上層 $c^l_j$ へ割り当てられる確率 $P^l_{t,i\to j}$ の両方に依存する。つまり、ある観測が「どの超球面に属するか」を階層全体を通じて重み付けて決める。これが Deep-SVDD の単一球面を、層×中心の複数球面 へ自然に一般化した形 ―― Multiscale Vector Data Description(MVDD) だ。だが、複数の中心を置くだけでは、中心同士が似通って冗長になる危険がある。

直交損失と時間的自己教師

複数の中心が同じ向きに偏ると、せっかくの多球面が意味をなさない。THOC は中心を互いに直交させる損失を加える。

$$ \begin{equation} L_{orth} = \frac{1}{L} \sum_{l=1}^{L} \lVert (C^l)^\top C^l – I \rVert_F^2 \end{equation} $$

$C^l = [c^l_1 \cdots c^l_{K_l}]$ は層 $l$ の中心を並べた行列、$I$ は単位行列、$\lVert \cdot \rVert_F$ はフロベニウスノルムだ。$(C^l)^\top C^l$ が単位行列に近づくよう促すことで、中心同士が直交し、多様な向きを向くようになる。

直交正則化:中心を互いに直交させ多様性を促す

左のように直交損失がないと中心が偏って冗長になるが、右のように直交損失を入れると中心が多様な向きに広がり、正常空間を効率よくカバーできる。もうひとつ、表現学習を助けるのが時間的自己教師(TSS) だ。

時間的自己教師:各層の隠れ状態から先の値を予測する補助タスク

時系列にとって自然な自己教師タスクは多段先予測だ。各層 $l$ の隠れ状態 $f^l_{t-s(l),s}$ から、線形モデル $W^l_{pred}$ で先の値 $x_{t,s}$ を予測させる。

$$ \begin{equation} L_{TSS} = \frac{1}{NL} \sum_{s=1}^{N} \sum_{l=1}^{L} \left( \frac{1}{T_s – s(l)} \sum_{t=s(l)+1}^{T_s} \lVert W^l_{pred} f^l_{t-s(l),s} – x_{t,s} \rVert^2 \right) \end{equation} $$

これにより、dilated RNN の全層に有用な特徴の学習が促され、表現の崩壊(すべてが1点に潰れる自明解)を防ぐ。3つの損失を合わせると、最終的なMVDD目的が得られる。

$$ \begin{equation} L_{total} = L_{THOC} + \lambda_{orth} L_{orth} + \lambda_{TSS} L_{TSS} \end{equation} $$

$\lambda_{orth}, \lambda_{TSS}$ はトレードオフのハイパーパラメータで、全体をエンドツーエンドで学習する。学習が済んだら、異常をどう測るかだ。

異常スコアと評価

学習済みモデルで、未知の観測 $x_t$ の異常スコアは MVDD目的と同じ形 ―― 各超球面中心への関連度で重み付けた距離の和として定義する。

$$ \begin{equation} \mathrm{AnomalyScore}(x_t) = \sum_{j=1}^{K_L} R^L_{t,j} \, d(\bar f^L_t, c^L_j) \end{equation} $$

スコアがしきい値 $\delta$ を超えれば異常とラベルづけする。どの超球面中心からも遠い点ほどスコアが高くなる ―― 正常のどのモードにも当てはまらない点が異常、という直感がそのまま式になっている。

異常スコア:どの超球面中心からも遠い点で上昇する

正常な周期パターンが続く区間ではスコアはほぼゼロ(正常区間平均 0.003)に張り付くが、周期の形が崩れる異常区間ではスコアが跳ね上がる(異常区間平均 0.578)。正常の動態を超球面に蓄えているため、そこから外れる挙動が明確に距離として現れる。この設計が実データで効くことを、論文の結果が裏づける。

MSL/SMAP F1:THOCが全ベースラインを上回る

論文は MSL・SMAP をはじめ複数のベンチマークで評価している。F1スコアで THOC は MSL 93.67%、SMAP 95.18% を達成し、OmniAnomaly(90.14 / 85.35)・Deep-SVDD(88.12 / 71.71)・MSCRED・CVDD など全ベースラインを上回った。さらに 2D-gesture・power-demand・KDD-Cup99・SWaT の4データセットでもすべて1位(平均ランク 1.0)という圧巻の結果だ。特に、フラットなDeep-SVDD(SMAP 71.71)に対する大幅な改善が、階層化と多球面の効果を物語る。最後に、各構成要素の寄与を整理しよう。

THOCの構成要素:階層構造×多球面×直交×自己教師の積み上げ

論文のアブレーションは、THOC の各要素が積み上げで効くことを示す。フラットなDeep-SVDD(単一球面)を出発点に、dilated RNN の多スケール特徴、階層クラスタリングによる多球面、直交損失 $L_{orth}$、自己教師 $L_{TSS}$ を加えるごとに性能が向上する。とりわけ、フラット構造から階層構造への移行が大きな改善をもたらし、「複数の超球面で多モード・多解像度を囲う」という設計思想の正しさを裏づけている。

まとめ

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

  • 発想:再構成でも予測でもなく、One-Class分類 ―― 正常を潜在空間に囲い込み、その外を異常とする。Deep-SVDD の単一超球面が出発点。
  • 限界の克服:時系列の正常は多モード・多スケール。単一球面では囲えない(デモで検出率74%)→複数の超球面で各モードを囲う(検出率100%)。
  • 多スケール特徴:L層 dilated RNN とスキップ接続($s(l)=M_0 M^{l-1}$)で短期〜長期の依存を同時に抽出。
  • 階層クラスタリング:割り当て(コサイン類似度のsoftmax)→融合→次スケール特徴と連結、を層ごとに繰り返し多解像度情報を束ねる(式5-8)。
  • MVDD目的:最終層の各中心への関連度 $R^L_{t,j}$ で重み付けたコサイン距離を最小化(式9-10)。Deep-SVDDの多球面一般化。
  • 直交損失 + 自己教師:$L_{orth}$ で中心を直交させ多様性を確保、$L_{TSS}$ の多段先予測で全層に有用な特徴を学習し崩壊を防ぐ。
  • 結果:MSL 93.67・SMAP 95.18 ほか全データセットで1位(平均ランク1.0)。異常スコアは各超球面中心への重み付き距離。

THOC は「正常を囲い込む」というOne-Class分類の古典的発想を、dilated RNN の多スケール性と階層的な多球面で時系列に最適化した一手だ。再構成ベース(USAD・MEMTO)や関連ベース(Anomaly Transformer)とは異なる「距離ベース」の系譜として、異常検知の設計地図に独自の位置を占めている。

画像なし
MEMTO:正常パターンを記憶するメモリ誘導Transformer
同じく正常プロトタイプを蓄える発想だが、再構成誤差で測る点が距離ベースのTHOCと対照的。読み比べたい。
Anomaly Transformer:関連の乖離で異常を測る
距離でも再構成でもなく注意の関連で測る手法。異常をどの基準で捉えるかの設計の幅を比較したい。
OmniAnomaly:確率的RNNで正常をモデル化する
THOCがベンチで上回った先行手法。確率モデルと距離ベースのOne-Classを比較したい。