データセンターで動く時系列異常検知器は、コートを羽織った三つの部品の集まりです。スライディングウィンドウがテンソルになり、そのテンソルがモデルを通って再構成か予測を出力し、二段目でその出力と実際の信号を比較して、大きく外れたものをフラグします。それぞれの段に固有の壊れ方があります。定常データで訓練された予測器はトレンドの変化に混乱し、ノイズの多い訓練データは再構成モデルの「正常」のイメージを汚染し、閾値の選択を誤るとダッシュボードが誤報で溢れます。
システム
核心にある問いは一つです。この時間の断片は、以前のものと同じように見えるか?答えは単純なイエスかノーではありません。代わりに、モデルは各ポイントまたはウィンドウに対して異常スコアを生成し、人間、あるいは上流のルールが線を引く場所を決めます。ほとんどの深層学習アプローチは二つの陣営に分かれます。予測ベースのモデルは次の数ステップを予測し、実際の値が予測から大きく外れたときに叫びます。再構成ベースのモデルはウィンドウを潜在表現に圧縮し、それを再展開して、往復を生き延びられなかったウィンドウにフラグを立てます。最近のサーベイはアーキテクチャをこのように分類し、予測と再構成のどちらを選ぶかが最初の分かれ道になることが多いと指摘しています。
各層
センサー:生の信号
モデルがデータを見る前に、何か物理的なもの——熱電対、ネットワークインターフェースカウンタ、販売データベースのクエリ——が数値を生み出します。その数値自体が固有の故障モードを持っています。固着したセンサーは何時間も同じ値を報告し、リサンプリングされたメトリックはコレクターがクラッシュした隙間を隠し、サマータイムのジャンプは突然のスパイクのように見えます。これらが前処理で処理されなければ、モデルはそれらを正常として学習します。ガベージイン・ガベージアウトはここでは決まり文句ではなく、最初の設計判断です。
モデル:学習の中核
信号がウィンドウ化され正規化されると、モデルに入ります。予測アーキテクチャはしばしばリカレントネットワーク、より最近ではトランスフォーマーを使います。トランスフォーマーは逐次処理のボトルネックを取り除き、すべての時間ステップが他のすべてに注意を向けられるようにします。これは異常が長いコンテキストにまたがる場合に役立ちます。ある論文は、多変量時系列の教師なし表現学習にエンコーダのみのトランスフォーマーを提案し、分類や回帰タスクで以前の手法を上回ることを示しました。再構成アーキテクチャはオートエンコーダに依存し、時に畳み込みブロックや残差ブロックを伴います。スキップ接続を持つResNetスタイルのエンコーダは、通常の畳み込みスタックでは洗い流されてしまうような細かいパターンを保存でき、異常が大きさのスパイクではなく微妙な形状変化である場合に重要になります。
より新しい設計である回帰付きオートエンコーダ(AER)は、両方の長所を取り込もうとします。再構成損失と将来の値を予測する回帰ヘッドを結合し、二つの異常スコアをブレンドします。著者らはまた、双方向スコアリング——ウィンドウに対してモデルを順方向と逆方向に走らせる——を導入し、シーケンス開始時の誤検出を除去します。これは、十分な数のダッシュボードを見つめて、すべてのアラームの最初の数ポイントを憎むようになった者にしか価値がわからない種類のトリックです。
アプリ:意思決定層
モデルは数値を出力し、アプリはその数値が何かを意味するかどうかを判断しなければなりません。静的閾値はワークロードが変わるまでは機能します。動的閾値——パーセンタイルベース、適応型——は、異常そのものに適応してしまうまでは機能します。マスキングは小さくても効果的な追加機能です。平滑化関数がシーケンスの端でスパイクを生成した場合、システムはそれを抑制できます。エッジアーティファクトはめったに実際のインシデントではないからです。AERの論文はすべてのベースラインにマスキングを適用し、一貫した改善を見ています。これは、多くの検知器がウィンドウ境界で狼少年になっていることを示唆します。
エッジケース
面白い問題は前提が崩れる場所に住んでいます。深夜0時から朝6時までのトラフィックで訓練された予測モデルは、昼間のバッチジョブが走ると正気を失います。正常な機械振動だけを見た再構成モデルは、亀裂の入ったベアリングを正常であるかのように再構成します。亀裂も訓練データに入っているからです。多変量系列は組み合わせのひねりを加えます。異常は二つの信号の関係にのみ見え、どちらか単独では見えないかもしれません。時系列を変換空間のベクトルとして扱う距離ベースの手法はこれらを捉えられますが、時間順序を尊重する類似度尺度が必要です。これは、偽陰性のレポートが机に届くまで見逃しやすい詳細です。
壊れるもの
シーケンス開始時の誤検出は最も厄介な故障モードです。システムが起動するたび、またはウィンドウがスライドするたびにトリガーされるからです。マスキングは助けになりますが、根本原因は多くの場合、モデルに左側のコンテキストがなく、ノイズから外挿することにあります。別の壊れ方はコンセプトドリフトです。世界は変わり、訓練データは変わらず、異常検知器はゆっくりと変化検知器に変わります。スケジュールに基づく再訓練が一般的な修正策ですが、そのスケジュール自体が間違えうるハイパーパラメータです。最後に、敵対的沈黙——攻撃者やバグが信号を正常範囲内に保ちながら害をなす——は、大きさだけを見るモデルをすべて打ち負かします。変化率の特徴や周波数領域の変換はこれらを表面化させられますが、より多くの複雑さと調整すべきつまみを代償とします。
これは魔法ではありません。それぞれに故障モードがある選択のパイプラインであり、最良の結果は誤検出ゼロではなく、故障モードを十分に理解して回避できるシステムです。
参考文献
- Auto-Encoder with Regression for Time Series Anomaly Detection — dai.lids.mit.edu
- Reward Once, Penalize Once: Rectifying Time Series Anomaly Detection — ar5iv.labs.arxiv.org
- MSAD: A Deep Dive into Model Selection for Time series Anomaly Detection — arxiv.org
- Dive into Time-Series Anomaly Detection: A Decade Review — arxiv.org
- Deep Learning for Time Series Anomaly Detection: A Survey — arxiv.org




