論文を読んでいると、時系列異常検知の新手法が「SWaTデータセットでF1=0.969を達成」「全ベースラインを上回る最高性能」と主張するのを何度も目にします。ところが、2022年にAAIAで発表されたKim et al.の研究は、この数字がほぼ全て評価プロトコルの欠陥によって水増しされていることを証明しました。驚くべきことに、ランダムに生成した異常スコア(何も学習していない!)でも、同じプロトコルを使えばSOTAを超えるF1スコアが出てしまいます。
評価が壊れていると、比較もランキングも意味を失います。優れた手法が過小評価され、見かけ上高いF1を出すだけの手法が高く評価されてしまうのです。この問題を解決するために、KDD 2022でHuet et al.はaffiliationメトリクスという新しい評価軸を提案しました。これは数学的に厳密で、パラメータフリーで、adversary予測に対しても頑健な指標です。
本記事ではこの2本の論文を柱にして、以下の内容を解説します。
- なぜ既存のF1スコアが評価として機能しないのか(閾値依存性の問題)
- point-adjust(PA)プロトコルの仕組みと、理論的・実験的な水増しの証明
- PA%Kによる緩和策とその限界
- affiliationメトリクスの直感・数式・頑健性の証明
- VUSを含む実務での評価指標の選び方
前提知識
この記事を読む前に、以下の記事を読んでおくと理解が深まります。
なぜ評価が難しいのか:F1スコアの本質的な問題
時系列異常検知の評価がこれほど難しい理由を理解するために、まず通常の分類問題でF1スコアがどう機能するかを振り返りましょう。
二値分類では、予測ラベル $\hat{y}_t \in \{0, 1\}$ と真のラベル $y_t \in \{0, 1\}$ に対して以下が定義されます。
$$ P = \frac{TP}{TP + FP}, \quad R = \frac{TP}{TP + FN}, \quad F_1 = \frac{2 \cdot P \cdot R}{P + R} $$
ここで $TP$, $FP$, $FN$ はそれぞれ真陽性・偽陽性・偽陰性の数です。
問題1: 閾値依存性。 時系列異常検知では、モデルが出力するのはラベルではなく異常スコア $\mathcal{A}(w_t)$ です($w_t$ は時刻 $t$ の入力窓)。例えば再構成ベースの手法ではMSEを使います。
$$ \mathcal{A}(w_t) = \mathrm{MSE}(w_t, \hat{w}_t) = \frac{1}{\tau} \| w_t – \hat{w}_t \|_2 $$
スコアを二値化するには閾値 $\delta$ が必要です:
$$ \hat{y}_t = \begin{cases} 1 & \text{if } \mathcal{A}(w_t) > \delta \\ 0 & \text{otherwise} \end{cases} $$
この閾値の選び方によって、F1スコアは大きく変わります。テストデータで最適な $\delta$ を探してF1を報告するのは、テストデータへの過適合です。しかし多くの論文が「最大F1を与える閾値で評価した」と報告しており、これは公正な比較ではありません。
問題2: 時系列特有の難しさ。 画像分類と違い、時系列の異常は単一の時刻ではなく区間(セグメント)として現れます。「この区間の中で1点でも検知できたか?」という問いと「区間全体を正確に特定できたか?」という問いは全く別物ですが、サンプルレベルのF1はこの区別を自然には扱えません。
これら2つの問題に対処しようとして、多くの研究者がpoint-adjustと呼ばれるプロトコルを使ってきました。しかし後述するように、このプロトコルには深刻な欠陥があります。次に、そのpoint-adjustの仕組みを正確に理解しましょう。
point-adjust(PA)とは何か:手順と直感
point-adjustは、「異常区間の中で1点でも検知できたなら、その区間全体を検知できたとみなす」という評価の緩和です。もともとはXu et al.(2021)のOmniAnomalyで導入されました。
PAの定義
テストデータに $M$ 個の異常区間があるとします:$\mathbf{S} = \{S_1, \ldots, S_M\}$。各区間 $S_m = \{t_s^m, \ldots, t_e^m\}$ は開始時刻 $t_s^m$ から終了時刻 $t_e^m$ までです。
PAは予測ラベルを次のように修正します(元の式1から修正):
$$ \hat{y}_t = \begin{cases} 1 & \text{if } \mathcal{A}(w_t) > \delta \\ 1 & \text{if } t \in S_m \text{ かつ } \exists t’ \in S_m, \; \mathcal{A}(w_{t’}) > \delta \\ 0 & \text{otherwise} \end{cases} \tag{PA} $$
直感的に言うと:異常区間 $S_m$ のどこか1点でスコアが閾値を超えたら、その区間全体の時刻に $\hat{y}_t = 1$ を設定します。この調整後のラベルでF1を計算したものを $F1_{PA}$ と呼びます。
出典: Kim et al., “Towards a Rigorous Evaluation of Time-series Anomaly Detection”, AAAI 2022, Fig. 1
この図の(a)を見ると、PAの問題が一目でわかります。上段の「情報的異常スコア」は、正解異常区間(グレー塗り)では高く、正常区間では低いという理想的なスコアです。下段の「ランダム異常スコア」はただのノイズです。両者をPAで処理すると、異常区間内で1点でも閾値を超えれば区間全体がTPになるため、どちらも「異常区間を完全に検知した」と判定されてしまいます。(b)の棒グラフは、このランダムスコアがGDNやOmniAnomalyを上回る $F1_{PA}$ を示すことを実験で確認しています。
PAがTPとFNに与える影響
PAのメカニズムを数式で追うと、なぜ必然的に $F1_{PA}$ が高くなるのかが見えてきます。
PAは予測ラベルの調整であり、次のことが保証されています: – TPは増加する:元は検知できていなかった異常時刻が、区間内の他の時刻が閾値を超えたことでTPに変換される – FNは減少する:同じ理由で、見逃していた異常時刻が補完される – FPは変化しない:正常区間の予測は変更されない
$P = TP/(TP+FP)$ でFPが変わらずTPが増えるのでPが上がり、$R = TP/(TP+FN)$ でFNが減るのでRも上がります。したがってF1は必ず上がります。問題は「どれだけ上がるか」です。
ランダムスコアでF1_PAが1に近づく理論
Kim et al.の貢献の核心は、ランダムに生成した異常スコアであっても$F1_{PA}$が1に近づくことを数学的に証明した点です。
異常スコアを一様分布から引いたとします:$\mathcal{A}(w_t) \sim U(0, 1)$。閾値を $\delta’$ とします($0 \le \delta’ \le 1$)。簡単のため異常区間が1つのみ、$\mathbf{S} = \{\{t_s, \ldots, t_e\}\}$ とします。
再現率Rを条件付き確率で言い換えます(論文Eq.5)。
$$ R = \Pr(\hat{y}_t = 1 \mid y_t = 1) = \Pr(\hat{y}_t = 1 \mid t \in S) = 1 – \Pr(\hat{y}_t = 0 \mid t \in S) \tag{5} $$
$\Pr(\hat{y}_t = 0 \mid t \in S)$ を展開します。 PA後に $\hat{y}_t = 0$ となるのは「区間 $S$ 内の全時刻で閾値を超えない」場合です:
$$ \Pr(\hat{y}_t = 0 \mid t \in S) = \frac{\Pr(\hat{y}_t = 0,\; t \in S)}{\Pr(t \in S)} = \frac{\displaystyle\prod_{t’ \in S} \Pr\!\bigl(\mathcal{A}(w_{t’}) < \delta'\bigr)}{\gamma} $$
ここで分子の積は、各時刻のスコアが独立に引かれることを仮定しています($\mathcal{A}(w_{t’}) \sim U(0,1)$ の i.i.d. 仮定)。分母の $\gamma = \Pr(t \in S)$ はこの条件付き確率の分母です。$\Pr(\mathcal{A}(w_{t’}) < \delta') = \delta'$(一様分布のCDF)なので、積は $\delta'^{(t_e - t_s)}$ となります。これをEq.5に代入すると:
$$ R = 1 – \frac{1}{\gamma} \cdot \delta’^{(t_e – t_s)} \tag{6} $$
ここで $\gamma = \Pr(t \in S)$ はテストデータの異常割合です。$1/\gamma$ が現れるのは条件付き確率の分母から来ます($\gamma$ で正規化する形)。
次に 適合率Pを計算します。 $P = \Pr(y_t = 1 \mid \hat{y}_t = 1)$ をベイズの定理で展開します:
$$ P = R \cdot \frac{\Pr(y_t = 1)}{\Pr(\hat{y}_t = 1)} = \frac{\gamma – \delta’^{(t_e – t_s)}}{\bigl(\gamma – \delta’^{(t_e – t_s)}\bigr) + (1 – \delta’)} \tag{7} $$
分母の第1項は $\Pr(\hat{y}_t = 1,\; t \in S) = \gamma \cdot R = \gamma – \delta’^{(t_e-t_s)}$(PA後のTPと異常区間内FNの寄与)、第2項は $\Pr(\hat{y}_t = 1,\; t \notin S) = 1 – \delta’$(正常区間でスコアが $\delta’$ を超える確率=FPの寄与)です。
$F1_{PA}$ はこのP, Rから計算されます。
複数異常区間への一般化(Appendix Eq.9)。 上の導出は1区間 $S = \{S_1\}$ を仮定しました。SWaT(41区間)などの実際のデータセットへの一般化では、各区間 $S_m$ の長さ $t_e^m – t_s^m$ に比例した重み付き和になります:
$$ R = 1 – \sum_{m=1}^{M} \delta’^{(t_e^m – t_s^m)} \cdot \frac{t_e^m – t_s^m}{\displaystyle\sum_{m’=1}^{M}(t_{e}^{m’} – t_{s}^{m’})} \tag{9} $$
この式は「各区間がその長さに比例して再現率に貢献する」という直感と一致します。長い区間でほんの1点でも検知されれば、その区間の寄与分がほぼ丸ごとRに加算されるため、区間が長いほどFが上がりやすくなります。
出典: Kim et al., AAAI 2022, Fig. 2
この図は、異常区間の長さ $t_e – t_s$ ごとに $\delta’$ を変化させたときの $F1_{PA}$ を示します。異常区間が長い(500以上)と、$\delta’$ をわずかに動かすだけで $F1_{PA}$ が1に近づきます。SWaTやWADIといった実際のベンチマークデータセットでは異常区間が数百から数千ステップにわたることが多く、これがランダムスコアでも高い $F1_{PA}$ を出せる根本原因です。
このことをまとめると次のように言えます:異常区間が長ければ、ランダムな$\mathcal{A}(w_t)$でも最適な$\delta’$を選ぶだけでF1_PA≈1を達成できる。
実験で見る衝撃の事実:ランダムスコアがSOTA超え
理論だけでなく、実際の5つのベンチマークデータセット(SWaT, WADI, MSL, SMAP, SMD)で実験した結果が以下の表です。
出典: Kim et al., AAAI 2022, Table 2。↑は既存手法よりも良い結果を示す
表の下3行が最も重要です:
- Case 1(ランダム異常スコア):SWaTで $F1_{PA} = 0.969$、WADIで $F1_{PA} = 0.965$。GDN(0.935)やOmniAnomaly(0.866)を軽く上回ります。これは何も学習していない純粋なランダムスコアです。
- Case 2(入力をそのまま異常スコアに使用):学習なしでCase 1と同等の $F1_{PA}$ を達成。
- Case 3(ランダム初期化モデル、学習なし):これもSOTA水準の $F1_{PA}$ を出します。
一方で、PAを使わない $F1$(隣の列)を見ると:Case 1のSWaTでは $F1 = 0.216$、WADIでは $F1 = 0.109$ と、実際の検知性能が全く低いことがわかります。既存手法のGDN(SWaT: $F1_{PA}=0.935$)も、PAなしでは $F1=0.81$ 程度で、ランダムスコアとは雲泥の差があります。
F1_PAは既存手法の相対的な性能すら正しく反映していません。
出典: Kim et al., AAAI 2022, Fig. 4
この散布図は決定的です。SWaTでのKendall順位相関係数(KRC)はわずか 0.07、つまりほぼ無相関です。$F1_{PA}$ の順位は $F1$ の順位をほとんど反映していません。ピアソン相関(PCC)に至っては -0.59 と負の相関を示しています(WADIではKRC=0.43とやや相関あり)。
これが意味するのは、F1_PAを基準に「最先端」を謳う論文の序列は、真の性能序列をほぼ反映していないということです。
なぜこれが見逃されてきたのか:データセットの特性との相互作用
ランダムスコアで高い $F1_{PA}$ が出る根本的な理由は、PAの設計だけでなくベンチマークデータセットの特性にもあります。
SWaTの具体的な数字を見ると、テストデータ449,919点のうち12.33%(約55,463点)が異常で、これが41個の区間に分かれています。つまり平均的な異常区間長は $\approx 55,463 / 41 \approx 1,352$ ステップです。これが式(6)の $(t_e – t_s)$ に入ります。
1,352という数値を式(6)に代入して $\gamma = 0.1233$、$\delta’ = 0.99$ とすると:
$$ R = 1 – \frac{0.99^{1352}}{0.1233} \approx 1 – \frac{\approx 10^{-6}}{0.1233} \approx 1 $$
ほぼ1です。異常区間が長いと、ランダムスコアが一度も閾値を超えない確率が指数的に小さくなります。その結果、閾値を少し上げると区間内のどこか1点で閾値を超え、PAによって区間全体が検知されたと判定されます。
SMDだけは状況が異なります。SMDの異常区間は平均90ステップ程度と短く、$F1_{PA}$ でもCase 1が最高値を示さず、既存手法との差も小さめです。PAの水増し効果は異常区間の長さに依存するという理論予測と一致しています。
これらの事実は、既存のベンチマーク研究が「良い評価指標」と「良いデータセット設計」の両面で改善が必要であることを示しています。
PA%K:水増しを和らげる修正プロトコル
Kim et al.はPAの問題を認識しつつも、現実的な改善策としてPA%Kプロトコルを提案します。
完全なPAは「1点でも超えたら区間全体をTP」でした。PA%Kでは、「区間内の少なくとも $K$% の点が閾値を超えた場合にのみ区間をTP」とします:
$$ \hat{y}_t = \begin{cases} 1 & \text{if } \mathcal{A}(w_t) > \delta \quad \text{または} \\ 1 & \text{if } t \in S_m \text{ かつ } \dfrac{|\{t’ \mid t’ \in S_m, \mathcal{A}(w_{t’}) > \delta\}|}{|S_m|} > K \\ 0 & \text{otherwise} \end{cases} $$
- $K=0$: 通常のPA(1点で十分)と同じ
- $K=100$: PAなしの通常F1と同じ(全点で超える必要)
$K$ をその中間に設定することで、PA特有の極端な水増しを抑えつつ、区間検知に一定の寛容度を持たせます。
出典: Kim et al., AAAI 2022, Fig. 6
この図は、学習済みエンコーダ-デコーダ(オレンジ)とCase 1ランダムスコア(青)の $F1_{PA\%K}$ を $K$ の関数として示しています。$K=0$(通常PA)では両者が同水準ですが、$K$ が増えるにつれて学習済みモデル(AUC: 0.88)とランダムスコア(AUC: 0.41)の差が開きます。
PA%Kは一定の改善をもたらします。ただし課題もあります。$K$ をどう選ぶかという新たなパラメータ問題が生まれるのです。$K$ をテストデータで調整すれば、それはそれで評価の過適合になりえます。論文では、$K=0$ から $100$ まで変化させたときの $F1_{PA\%K}$ 曲線の面積(AUC)を使うことで、$K$ への依存を除去することを提案しています。
PA%Kの判定式の詳細。 論文Eq.4の変形として、PA%Kは次のように $\hat{y}_t$ を決定します:
$$ \hat{y}_t = \begin{cases} 1 & \text{if } \mathcal{A}(w_t) > \delta \\[4pt] 1 & \text{if } t \in S_m \text{ かつ } \dfrac{\left|\left\{t’ \mid t’ \in S_m,\; \mathcal{A}(w_{t’}) > \delta\right\}\right|}{|S_m|} > K \\[4pt] 0 & \text{otherwise} \end{cases} \tag{PA\%K} $$
ここで $|S_m| = t_e^m – t_s^m$ は区間の長さ、$K$ は $[0, 1]$ の実数値です($K=0$ が通常PA、$K=1$ がPA無しのF1に対応)。論文では $K$ を「0から100」の間と記述していますが、比率 $|\cdot|/|S_m|$ が分数 $[0,1]$ であることから $K$ も $[0,1]$ で与えます(表現としては「$K\%$ の点が超える」という意味)。PA%Kは既存のF1、AUC-ROC、AUC-PRなど任意の指標に適用できるプロトコルです。
PA%Kは過渡的な改善策です。より根本的な解決策は、PAという発想自体を捨てて、時系列の特性を真に考慮した評価指標を新たに設計することです。それが次に紹介するaffiliationメトリクスです。
古典的P/Rの2つの欠点
Huet et al.(KDD 2022)はPAの問題とは別のアプローチから出発しています。彼らはまず、PAよりも前の問題として古典的な適合率・再現率が時系列には向かない理由を明確にします。
出典: Huet et al., “Local Evaluation of Time Series Anomaly Detection Algorithms”, KDD 2022, Fig. 1, Table 1
表と図が示す2つの限界は以下の通りです:
(A) 時間隣接性の無視(inter-events): 正解異常から1タイムステップだけずれた予測は、FPとFNを同時に生む。予測がほぼ正しくても全く評価されません。例えば正解が時刻10-20にある異常で、予測が11-21にある場合、精度・再現率の計算上は全くの外れとして扱われます。
(B) イベント長の無視(intra-event): 長い異常区間を1点だけ検知しても、短い区間を完全に検知するのと同様に評価されます(どちらも再現率 $1/|S|$)。逆に、長い異常区間を完全に検知すると短い区間の場合より圧倒的に再現率への貢献が大きい——つまり長い区間が評価を支配します。
これら2つの欠点を同時に解決しながら、かつパラメータフリーで頑健な指標を設計するのがaffiliationメトリクスの目標です。
affiliation指標の3ステップ
affiliationメトリクスの構築は3つのステップで行われます。この節では直感と数式を並べながら各ステップを追います。
ステップ1:有向距離(Directed Distance)
まず、「予測から正解へ」と「正解から予測へ」という2方向の距離を定義します。これがそれぞれ適合率と再現率に対応します。
点 $x$ から集合 $Y$ への距離は通常通り $\mathrm{dist}(x, Y) := \min_{y \in Y} |x – y|$ と定義します。集合 $A$ から集合 $B$ への有向平均距離は:
$$ d(A, B) = \frac{1}{|A|} \int_{x \in A} \mathrm{dist}(x, B) \, dx = \frac{1}{|A|} \int_{x \in A} \min_{y \in B} |x – y| \, dx $$
$d(A, B)$ は集合 $A$ の各点から集合 $B$ への最小距離の平均(修正Hausdorff距離の片方向版)です。対称性も三角不等式も満たさないため数学的な距離ではありませんが、$A \neq \emptyset$ のとき $d(A, B) = 0 \Leftrightarrow A \subset B$ が成り立ちます。
コーナーケース:$d(A, \emptyset) = +\infty$(空集合への距離は発散)、$d(\emptyset, B)$ は未定義です。後の平均化で「ゾーン内に予測がないとき個別精度確率は未定義」となるのはここから来ます。
- 適合率距離 $D_{\text{precision}}$:予測集合から正解集合への有向距離。距離が小さい=予測が正解に近い=高適合率
- 再現率距離 $D_{\text{recall}}$:正解集合から予測集合への有向距離。距離が小さい=正解に近い予測がある=高再現率
この設計により、時間的に近い予測が評価に反映される(欠点Aの解消)。隣接する予測は距離が小さくなり、遠い予測は距離が大きくなる連続的な評価ができます。
ステップ2:affiliationゾーンによる局所化
単純に全予測 vs 全正解で距離を計算すると、予測を大量に詰め込むことでどんな指標も操作できてしまいます(adversary問題)。そこでHuet et al.はタイムラインを正解イベントごとに分割するアイデアを導入します。
出典: Huet et al., KDD 2022, Fig. 2
図の(b)が示すように、各時刻 $t$ を最も近い正解イベント $gt_j$ に割り当てます(Voronoi分割のイメージ)。正解イベントが $n$ 個あれば $n$ 個のゾーンに分割され、第 $j$ ゾーンを affiliationゾーン $I_j = [A_j, B_j)$ と呼びます($A_j$, $B_j$ は隣接する正解イベントとの中点で決まります):
$$ I_j = \{t : gt_j = \arg\min_{k} d(t, gt_k)\} $$
各ゾーン $j$ における適合率距離と再現率距離を独立に計算します(論文Eq.1, 2):
$$ D_{\text{precision}_j} := d\!\left(\text{pred} \cap I_j, \; gt_j\right) \tag{1} $$
$$ D_{\text{recall}_j} := d\!\left(gt_j, \; \text{pred} \cap I_j\right) \tag{2} $$
ここで $\text{pred} = \bigcup_{i=1}^{m} \text{pred}_i$ は全予測イベントの和集合です。$\text{pred} \cap I_j$ はゾーン $j$ 内に収まる予測部分のみを取り出したものです。
この局所化によって、予測の大量投入(adversary戦略)を無効化できます。ゾーン $j$ の評価はゾーン内の予測だけに基づくので、ゾーン外に予測を増やしても他のゾーンには影響しません。
図の(a)はステップ1の有向距離の直感を示しています。「予測→正解」の方向で距離を計算すると、予測面積の80%が正解と重なっていて18秒という短い距離が得られます(高適合率)。「正解→予測」では76.5秒の距離(中程度の再現率)です。
ステップ3:生存関数による確率化
距離をそのまま使っても解釈が難しいため、ランダム予測との比較によって $[0, 1]$ の確率値に変換します。
各affiliation ゾーン $j$ で、ランダムな予測点 $X$(ゾーン内一様分布)を考えます。観測された距離 $d$ がランダム予測より良い確率を生存関数(Survival Function)で定義します(論文Eq.3):
$$ \bar{F}_{\text{precision}_j}(d) := 1 – F_{\text{precision}_j}(d^-) \tag{3} $$
ここで $d^-$ は左極限です(CDFの右連続性への対処)。これをゾーン内の全予測点に適用して積分すると、個別適合率確率が得られます(論文Eq.4):
$$ P_{\text{precision}_j} := \frac{1}{|\text{pred} \cap I_j|} \int_{x \in \text{pred} \cap I_j} \bar{F}_{\text{precision}_j}(\mathrm{dist}(x, gt_j)) \, dx \tag{4} $$
再現率では、各正解点 $y \in gt_j$ ごとに参照する分布が異なる点に注意します。点 $y$ を固定したとき、ランダム予測との距離の生存関数を $\bar{F}_{y, \text{recall}_j}$ と書くと、個別再現率確率は(論文Eq.5):
$$ P_{\text{recall}_j} := \frac{1}{|gt_j|} \int_{y \in gt_j} \bar{F}_{y, \text{recall}_j}(\mathrm{dist}(y, \text{pred} \cap I_j)) \, dy \tag{5} $$
この確率化の意味は非常に明快です:
- $P_{\text{precision}_j} = 1$:予測が正解の中に完全に含まれる(完全適合)
- $P_{\text{precision}_j} = 0.5$:ランダム予測と同等の適合率
- $P_{\text{precision}_j} < 0.5$:ランダム予測より悪い
ランダム予測と比べて「どれくらい良いか」が数値として直接読み取れます。
全ゾーンの個別確率を平均して最終スコアを得ます(論文Eq.6)。$S := \{j \in [1,n] : \text{pred} \cap I_j \neq \emptyset\}$ を「予測が存在するゾーンの集合」とすると:
$$ P_{\text{precision}} = \frac{1}{|S|} \sum_{j \in S} P_{\text{precision}_j}, \qquad P_{\text{recall}} = \frac{1}{n} \sum_{j=1}^{n} P_{\text{recall}_j} \tag{6} $$
重要な非対称性:適合率は「予測が存在するゾーン $S$ のみの平均」ですが、再現率は「全 $n$ ゾーンの平均」です。検知されなかった正解イベント($\text{pred} \cap I_j = \emptyset$ のゾーン)は個別再現率が $P_{\text{recall}_j} = 0$ となり再現率に影響しますが、適合率には影響しません(定義上、予測なし=評価なし)。
図(c)は生存関数の計算を具体的な例で示しています。予測時刻3:40は正解の近くにあり、生存関数値0.556が得られます(ランダムより良い)。正解時刻4:10は予測の近くにあり0.778が得られます。
出典: Huet et al., KDD 2022, Fig. 4
この図は、あるaffiliationゾーン内で正解(黒帯)と予測(青帯)が位置する様子を示しています。ゾーンの境界(破線)によって評価が局所化され、ゾーン外の予測の影響を受けないことがわかります。
生存関数の閉形式(Appendix A)
論文は実際に実装可能な閉形式を導いています。正解イベントを $gt_j = [a, b)$、affiliationゾーンを $I_j = [A, B)$ と書き、ゾーン境界からイベントまでの短い方・長い方の距離を:
$$ m := \min(a – A,\; B – b), \quad M := \max(a – A,\; B – b) $$
と定めます。適合率の生存関数(論文Eq.10)は、$d = 0$ で $\bar{F}_{\text{precision}_j}(0) = 1$、$d \in (0, M]$ で:
$$ \bar{F}_{\text{precision}_j}(d) = 1 – \frac{|gt_j| + \min(d, m) + d}{|I_j|} \tag{10} $$
直感:ゾーン内から一様にランダムに点を選ぶとき、正解内(確率 $|gt_j|/|I_j|$)の点は距離0、正解外では距離が線形に増加します。$m$ 以下の距離には両側(左右)から来る点が寄与するため分母の $d$ 項が2倍になっており、$m$ を超えると片側のみになります($2d \to d$ の切り替え点が $m$)。
再現率の生存関数(論文Eq.11)は、正解点 $y \in gt_j$ ごとに $m_y := \min(y-A,\; B-y)$, $M_y := \max(y-A,\; B-y)$ を定め、$d \in [0, M_y]$ で:
$$ \bar{F}_{y, \text{recall}_j}(d) = 1 – \frac{\min(d, m_y) + d}{|I_j|} \tag{11} $$
これらはいずれも区分線形関数の積分として閉形式で計算でき、計算量は $O(n \cdot m)$($n$ = 正解イベント数、$m$ = 予測イベント数)に収まります。
実装上のデータ入力形式(Sec.3.4)。 実際のデータはバイナリベクトル(1=異常、0=正常)で与えられます。連続する1の塊を1つのイベントに変換するとき、インデックス $i$ の正のサンプルは区間 $[t(i),\; t(i+1))$ にマッピングします。これにより離散時系列を連続区間表現に変換してからEq.10, 11を適用します。
affiliationメトリクスの理論的保証:ランダム基準 0.5 の証明
「0.5がランダム基準」という主張には閉形式の理論的証明があります(論文Sec.4.4, Appendix C)。$p := |gt_j| / |I_j|$ をゾーン内での正解の割合とします(稀少異常なので $p \ll 1$)。
(i) 全区間を異常と予測した場合(論文Eq.7):
$$ P_{\text{precision}} = \frac{1}{2} + \frac{p^2}{2}, \quad P_{\text{recall}} = 1 \tag{7} $$
$p \ll 1$ のとき $P_{\text{precision}} \approx 1/2$。大量に予測しても精度はランダム水準(0.5)にしかならない——これが「adversaryが精度0.5程度に留まる」理由です。
(ii) ランダム予測(ゾーン内1点を一様ランダム)の期待値(論文Eq.8):
$$ \mathbb{E}[P_{\text{precision}}] = \frac{1}{2} + \frac{p^2}{2}, \quad \mathbb{E}[P_{\text{recall}}] = \frac{1}{2} \tag{8} $$
$p \ll 1$ で両者がほぼ 0.5 に収束することが厳密に証明されており、「0.5 =ランダム基準点」が理論的に確立されています。
(iii) ゾーン中央への最良1点予測(論文Eq.9): $(x)_+ := \max(0, x)$ として:
$$ P_{\text{precision}} = 1, \quad P_{\text{recall}} = 1 – \frac{p}{2} + \frac{1}{2p}\left(p – \frac{1}{2}\right)^2_+ \tag{9} $$
$p \le 1/2$ のとき $P_{\text{recall}} = 1 – p/2$。正解が小さい($p \to 0$)ほど1点予測でも再現率はほぼ1に近づき、正解が大きい($p \to 1$)ほど1点では全体をカバーできないため再現率が落ちます。
affiliationメトリクスの頑健性:adversary予測でも騙せない
affiliationメトリクスの重要な性質は、意図的に指標を欺こうとするadversary予測に対しても頑健なことです。
Huet et al.は「どんな指標でも高スコアを出すように設計された」adversaryアルゴリズムを構築します。手順は次の通りです:
- データセット内の trivial event(例: 単一点の異常)を選ぶ
- そのイベントを含むすべてのサンプルに最大可能な予測を割り当てる(0埋め→1埋め)
- trivial eventがない場合: 全サンプルを異常と予測する
出典: Huet et al., KDD 2022, Fig. 3
図はNYC-Taxiデータセットでのadversary予測を示します。上段が正解ラベル、中段がadversaryアルゴリズムの予測(赤帯で広範囲をカバー)、下段が評価される予測です。このadversaryが達成したスコアが重要です。
出典: Huet et al., KDD 2022, Table 5
表の重要な読み方はadversary行を見ることです。
古典的P/R(Classical)では、adversary予測が NYC-Taxi で適合率0.27/再現率0.98/F1=0.42 を達成しています。対して Greenhouse アルゴリズム(良い検出器)は 0.33/0.42/0.37。adversaryが完全に実用的な検出器を上回っています。
RP/RRとTaP/TaR指標でもadversaryは高いF1を出します(NYC-Taxiでは複数指標でadversary F1 ≈ 0.85〜0.96)。
Affiliationメトリクスでは、adversaryがNYC-Taxiで 適合率0.54/再現率1.00/F1=0.70 と確かに高い値を出しています。ただしここで重要なのは「0.5を基準に解釈できる」という点です。affiliationの定義上、0.5はランダム予測と同等(前節Eq.8で理論的に証明済み)。adversaryの適合率0.54はランダムよりわずかにマシというだけで、実際の検出能力はほぼゼロです。
SWaTデータセットでも、論文Table 5によるとaffiliationのadversary値は適合率0.53/再現率1.00/F1=0.69です。NYC-Taxiとほぼ同水準で、SWaTの長い異常区間があっても精度は0.53止まりです。これはEq.7の理論(全区間予測 → 精度≈$1/2 + p^2/2$、$p$ は小さい)と一致します。一方、seq2seqはSWaTで適合率0.86を達成しており(同じTable 5)、adversaryとの差が明確です。
理論的な保証も確立されています。 論文のAppendixでは、ランダム予測に対するaffiliationメトリクスの期待値が閉形式で導けることを証明しています。これにより「0.5という基準点がランダム予測に対応する」という主張が理論的に裏付けられています。
2つの指標の比較:何が問題で何が解決されたか
ここまでの内容を整理して、PAとaffiliationの比較を明確にしましょう。
| 観点 | point-adjust (PA) | affiliation |
|---|---|---|
| 設計の根拠 | 実用的な緩和策(区間の1点でも検知できれば評価) | 時間的近接性と局所性を数学的に定式化 |
| ランダム検出器への対応 | F1_PA≈1を出す(水増し) | ≈0.5(ランダム基準点が明確) |
| adversary耐性 | 低い(広範囲予測で高スコア) | 比較的高い(ゾーン局所化) |
| パラメータ数 | 0(ただし閾値依存) | 0(閉形式の計算) |
| 欠点(A) 時間隣接性 | 無視 | 考慮(有向距離) |
| 欠点(B) イベント長 | 無視(区間全体TPで長さ不問) | 考慮(ゾーン内で均等評価) |
| 解釈 | F1は高いほど良いが絶対値は信用できない | 0.5=ランダム基準、直感的に解釈可能 |
| 普及 | 2021年以前の論文の大半で使用 | 2022年以降の評価研究で採用増加 |
affiliationには注意点もあります。単一の数値(F1相当)を得るには適合率と再現率を組み合わせる必要があります。また、adversaryに対して完璧ではなく(特に長い異常区間のデータセット)、データセットの設計品質にも依存します。
VUSとの橋渡し:評価指標の全体像
PAの問題(閾値選択依存)とaffiliationの設計(時間的局所性)の次に登場する重要な指標がVUS(Volume Under the Surface)です。VUSについては専用記事で詳しく解説しているので、ここでは位置づけだけ整理します。
VUSはRange-AUCを閾値パラメータ(buffer長 $\ell$)で積分して得られる指標で、次の2つの問題を解決します: 1. 閾値依存性:AUCによって全閾値にわたるスコアを積分(PAの根本問題を回避) 2. パラメータフリー:buffer長を0から最大値まで平均することで、この超パラメータへの依存を除去
PA、affiliation、VUSは、それぞれ異なる観点から時系列異常検知評価の欠陥に取り組んでいます。VUSの詳細(Range-AUC、buffer連続ラベル、存在報酬)はVUS記事を参照してください。
TSB-AD(NeurIPS 2024)はこれら改善指標を踏まえて「Elephant in the Room」問題(ベンチマークの根本的欠陥)を取り上げ、VUS-PRを推奨評価指標としています。評価指標の統合的な議論は時系列異常検知サーベイの評価の落とし穴セクションも参考になります。
range-based指標との関係
affiliationメトリクスとPoint Adjustの間には、他にも「range-based」指標群が存在します。代表的なものにRP/RR(Tatbul et al. NeurIPS 2018)とTaP/TaR(Hwang et al. 2019)があります。
Table 5(前掲)を見ると、これらの指標もadversary予測に対して脆弱です。NYC-Taxiでは、RP/RRのF1がadversaryで1.00(完全スコア)に達しており、単純に全区間を予測と宣言するだけで最高点が出てしまいます。TaP/TaRも同様にadversaryで0.97〜1.00に達しています。
これらの指標には共通の弱点があります。局所性の欠如です。予測を特定の局所領域に集中させることで、広いエリアのスコアを操作できます。affiliationメトリクスのzoneによる局所化は、この問題への直接的な回答です。
また、RP/RRは4個、TaP/TaRは3個のパラメータを持ちます(Table 2を参照)。これらのパラメータ設定がスコアに大きく影響し、「最良の設定を報告する」という過適合のリスクがあります。affiliationのパラメータフリーという性質は、この意味でも優れています。
実務での評価指針:PA単独使用は禁止
論文の知見をもとに、時系列異常検知システムの評価を行うときの具体的な指針をまとめます。
何を使うべきか
F1_PA単独使用は厳禁です。閾値を最適化してF1_PAを報告するだけでは、ランダム検出器との差を測っているだけかもしれません。
推奨する評価セット(2-3指標の組み合わせ):
- VUS-PR(最優先): 閾値非依存・パラメータフリー・range-baseの信頼性。TSB-AD推奨。VUS記事参照
- Affiliation P/R: 時間的局所性・adversary耐性・interpretable。ランダム基準0.5が直感的
- AUC-ROC / AUC-PR(PAなし): 単純な閾値非依存指標。baseline比較に有用
これらを組み合わせることで、特定の評価指標の弱点を補い合えます。
ベースライン比較を忘れずに
Kim et al.が強調するもう一つのポイントは、ランダム検出器と未学習モデルをベースラインに含めることです。もし提案手法がCase 1(ランダムスコア)とCase 2(入力そのまま)を上回れないなら、学習の意味を疑うべきです。PAなしのF1でも、ランダムベースラインとの比較は必要です。
新しいデータセットの設計にも注意
SWaTやWADIの長い異常区間は、PAの水増し効果を特に大きくします。新たなベンチマークを設計する際は: – 短い異常区間と長い異常区間を適切に混在させる – 異常割合(anomaly ratio)を文脈の中で設定する – point-adjustなしの評価でも手法の優劣が測れるか確認する
SARADやOracleADのような最新手法が閾値非依存のAUC-ROC/PRやVUSを主要指標に採用しているのは、これらの知見を踏まえた判断です。
既存論文の読み方
2021年以前の論文で「SWaT F1=0.9x」を主張するものは、ほぼ全てPA評価です。これは「PAプロトコル下での性能」と読み替えるべきです。比較を行うには、同じPAプロトコルで揃えるか(同一条件の比較)、再現実験でPAなしの数値を確認するか、どちらかが必要です。
AnomalyTransformer(ICLR 2022)、USAD(KDD 2020)、OmniAnomaly(KDD 2019)などの代表的手法のF1スコアも、全て PA + 最適閾値の数字です。これらの手法のアーキテクチャの優れた点はそのまま評価できますが、F1の絶対値は参考程度にとどめ、再現率や適合率の挙動、PAなしF1、AUCなどを補足情報として必ず確認しましょう。
まとめ
本記事では、時系列異常検知評価の2つの重要な問題とその解決策を解説しました。
point-adjust(PA)の問題: – PAは「区間内1点超で全区間TP」という楽観的な緩和で、ランダムスコアでも $F1_{PA} \approx 1$ を達成できる – 理論的には異常区間が長いほどこの効果が指数的に大きくなる(式6) – 実験的にはSWaTで $F1_{PA}(\text{random}) = 0.969 > F1_{PA}(\text{GDN}) = 0.935$ という衝撃の結果 – F1_PAのKendall順位相関(SWaT: KRC=0.07)は実際の性能序列をほぼ反映しない – 改善策PA%Kは $K$ パラメータ問題と曲線AUCで対処可能だが根本解決ではない
affiliationメトリクスの貢献: – 有向距離 $d(A,B)$:時間的な近さを連続的にスコア化し、欠点(A)(時間隣接性の無視)を解消 – affiliationゾーン:タイムラインをVoronoi的に分割し、予測の大量投入を無効化(adversary耐性) – 生存関数による確率化:0.5=ランダム基準という明確な解釈と欠点(B)(イベント長の無視)の解消 – パラメータフリー・閉形式の計算・局所解釈可能性
実務指針: – PA単独報告は避け、VUS-PR + affiliation + AUC-ROC/PR の組み合わせで評価する – ランダムベースラインと未学習モデルを必ず比較対象に含める – 既存論文のF1値はPA文脈で読み替え、アーキテクチャの優劣と指標の数値を分けて評価する
評価指標の問題は地味に見えますが、機械学習研究の「再現性の危機」や「誤った進歩の幻想」に直接つながります。時系列異常検知が実世界の信頼性問題に答えるためには、評価基盤の整備が不可欠です。
関連記事



