Skip to content

Reward Once, Penalize Once: Rectifying Time Series Anomaly Detection

TLDR

Neste artigo os autores propõem uma métrica que mede a pontualidade e precisão para modelos de detecção de anomalias em sequências. Além disso também é proposta uma abordagem eficiente para detecção de anomalias em séries temporais baseada em transformers, que foi avaliada extensivamente em vários benchmarks.

Proposta

Avaliação de desempenho

Average detection delay

Considere uma série temporal \{X_1, X_2, \dots, X_t, \dots\} que pode incluir sequências anômalas começando e terminando em tempos desconhecidos. Denote um tempo desconhecido da i-ésima sequência anômala como \tau_i e T_i como o tempo do alarme. A média de atraso de detecção (average detection delay, ADD) pode ser calculado como

\begin{equation} ADD = \frac{1}{S} \sum_{i=1}^S \min \left( T_i - \tau_i, \delta_\max \right), \end{equation} em que S denota o número de eventos anômalos. Uma vez que a maioria das anomalias indica incidentes críticos, pode ser essencial detectar um evento anômalo em um determinado período de tempo. Dito isto, se um alarme não é ligado dentro de uma duração [ \tau_i, \tau_i + \delta_{\max} ] depois que a atividade anômala i ocorrer, em que \delta_{\max} é a máxima tolerância máxima de atraso.

Precisão do alarme de sequência

Número de eventos anômalos detectados com respeito ao número total de alarmes. Semelhante à métrica de precisão. No entanto, em contraste com a métrica de precisão baseada em instância, a precisão do alarme de sequência (Sequence Alarm Precision, SAD) se concentra na detecção de sequências anômalas verdadeiras e, portanto, se concentra apenas na detecção precisa do início do evento anômalo. Se um alarme é disparado antes mesmo de um evento começar, ou seja, T_j \leq \tau_i, então é considerado um alarme falso. A precisão do alarme de sequência pode ser calculado usando

\begin{equation} P = \frac{1}{\hat{S}} \sum_{j=1}^\hat{S} \mathbf{1}_{\{=\}} T_j \in \bigcup_{i=1}^{S} [ \tau_i, \tau_i + \delta_{\max} ], \end{equation}

em que \mathbf{1}_{\{\cdot\}} denota a função indicadora, \hat{S} = |\{T_j\}| é a quantidade total de alarmes e |\cdot| é a cardinalidade de um conjunto.

Atraso de precisão de sequência

Atraso de precisão de sequência (Sequence Precision Delay, SPD) combina a média de atraso de detecção com a precisão do alarme de sequência. Nesse caso, ela utiliza o valor normalizado da ADD. Desse modo, matematicamente temos

\begin{equation} \textrm{SPD} = \int_{0}^{1} P(\alpha) d\alpha, \end{equation} em que \alpha denota o valor normalizado da média de atraso de detecção (normalized average detection delay, NADD)