- A medida que aumentan los datos de streaming e IoT, la detección de anomalías en series temporales se ha convertido en una tarea analítica clave para distinguir entre lo normal y lo anormal en áreas como ciberseguridad, mercados financieros, aplicación de la ley y salud
- A medida que se mezclan la detección de anomalías tradicional centrada en estadística y los enfoques recientes de aprendizaje automático, surge la necesidad de una taxonomía que refleje el orden temporal y la estructura de las series temporales
- Las anomalías pueden aparecer no solo en valores individuales, sino también en subsecuencias, y las anomalías puntuales, contextuales y colectivas solo pueden distinguirse observando también los patrones circundantes y el contexto temporal
- La mayoría de los métodos siguen un pipeline de preprocesamiento → modelo de detección → puntuación → posprocesamiento, convirtiendo primero la serie temporal en una matriz mediante una ventana deslizante y luego calculando puntuaciones de anomalía
- Esta revisión organiza los métodos en basados en distancia, basados en densidad y basados en predicción, con el fin de reducir la desconexión comparativa entre comunidades de investigación que usan distintos datasets, baselines y métricas de evaluación
Por qué es difícil la detección de anomalías en series temporales
- Una serie temporal es una secuencia ordenada de valores reales registrados a lo largo del tiempo; cuando el orden depende no del tiempo sino de dimensiones como ángulo, masa o posición, también se usan expresiones como serie de datos o secuencia de datos
- El análisis de series temporales es necesario en muchos campos, como astronomía, biología, economía, ciencias de la energía, ingeniería, ciencias ambientales, medicina, neurociencia y ciencias sociales
- La complejidad del proceso de generación de datos, la imperfección de los sistemas de medición y la interacción con actores maliciosos pueden producir fenómenos anómalos en los datos recopilados
- A medida que aumentan las series temporales generadas por la expansión de las aplicaciones IoT, también se espera que aumenten las anomalías que deben encontrarse dentro de las colecciones de series temporales
- Una anomalía se refiere a un punto de datos o grupo de puntos que no coincide con la normalidad o el comportamiento esperado según observaciones previas
- También se usan términos como outlier, novelty, exception, peculiarity, aberration, deviant y discord
- Según la aplicación, una anomalía puede ser ruido que debe eliminarse o corregirse, o bien un evento de interés que debe analizarse después, como una falla o un cambio de comportamiento
Definición y tipos de anomalías
- No existe una definición única, universal y precisa de anomalía
- Tradicionalmente, una anomalía es una observación que se desvía mucho de la mayoría de las muestras de una distribución y hace sospechar que fue generada por un mecanismo distinto al de los demás datos
- Si un experto conoce con precisión cómo opera un sistema, puede establecer la distribución y los parámetros del estado normal, y marcar como anomalías los puntos que estén a más de 3 desviaciones estándar de la media
- En problemas reales, es difícil conocer con precisión la distribución generadora de datos y los múltiples factores que intervienen en la salida, y las distribuciones prácticas también son complejas, por lo que resulta difícil identificar anomalías solo por su distancia respecto de una media definida por expertos
- Con el avance de la capacidad de cómputo, se ha vuelto posible estimar distribuciones a partir de datos crudos y detectar anomalías mediante algoritmos sin conocimiento experto
- Estos métodos dependen fuertemente de la calidad y el contexto del dataset
-
Tres tipos de anomalías en series temporales
- Anomalía puntual (point anomaly): un único punto de datos que se desvía claramente del resto de los datos
- Anomalía contextual (contextual anomaly): un punto de datos que está dentro del rango esperado de la distribución global, pero que se desvía de la distribución esperada en un contexto específico, como cierta ventana
- Anomalía colectiva (collective anomaly): una secuencia de puntos que no repite un patrón observado típicamente
- Las anomalías puntuales y contextuales se clasifican como point-based anomaly, mientras que las anomalías colectivas se clasifican como sequence-based anomaly
- La detección de secuencia completa es un caso de detección de anomalías en subsecuencias donde toda la serie temporal se toma como un único objeto de evaluación, y se usa en entornos de depuración de sensores para encontrar sensores anómalos entre sensores normales
Dimensión de los datos y configuración de aprendizaje
- Una serie temporal univariada consiste en valores reales ordenados en una sola dimensión, y las anomalías se detectan con base en una sola característica
- Una serie temporal multivariada es un conjunto de varias secuencias ordenadas de igual longitud o una secuencia ordenada de vectores reales
- En el caso multivariado, los valores de características individuales pueden parecer normales, pero la secuencia completa puede ser anómala
- Una subsecuencia puede representarse como un vector en el caso univariado, o como una matriz en el caso multivariado donde cada fila es la subsecuencia de una dimensión
-
Detección no supervisada, semisupervisada y supervisada
- El enfoque no supervisado se usa cuando no hay información experta sobre qué anomalías deben detectarse
- Puede funcionar sin una gran colección de anomalías conocidas
- Puede detectar automáticamente comportamientos anómalos desconocidos
- Puede usarse para monitoreo del estado de sistemas o minería histórica de series temporales
- El enfoque semisupervisado detecta anomalías con base en ejemplos de secuencias normales proporcionados por expertos
- En mucha literatura, esta categoría también se denomina no supervisada
- Como requiere conocimiento previo de ejemplos normales, existe la distinción de que no es fácil agruparla en la misma categoría que un enfoque completamente no supervisado
- El enfoque supervisado corresponde a los casos en que los expertos conocen con precisión los patrones a detectar y existe una colección de series temporales anómalas con etiquetas
- Es posible predecir subsecuencias anómalas usando subsecuencias previas a la subsecuencia anómala
- A estas subsecuencias previas se les puede llamar precursores de anomalía (precursor)
Pipeline común de detección
- Los algoritmos de detección de anomalías en series temporales suelen seguir el flujo de preprocesamiento → método de detección → puntuación → posprocesamiento
- En la etapa de preprocesamiento aparece de forma común un enfoque basado en ventanas, que convierte la serie temporal en una matriz compuesta por filas de fragmentos obtenidos con ventana deslizante
- El preprocesamiento adicional varía según se extraigan características estadísticas, se ajusten modelos de aprendizaje automático o se construyan redes neuronales
- En la etapa de detección se aplican métodos sobre el dataset procesado, como cálculo de distancias, ajuste de hiperplanos de clasificación o comparación entre subsecuencias generadas y subsecuencias originales
- En la etapa de puntuación, los resultados de detección se transforman en una puntuación de anomalía de tipo real que representa qué tan anómala es cada subsecuencia
- Esta puntuación se usa para inferir la puntuación de puntos individuales
- La serie temporal resultante de puntuaciones tiene la misma longitud que la serie temporal original
- En la etapa de posprocesamiento se extraen puntos o intervalos anómalos a partir de la serie temporal de puntuaciones de anomalía
- Por lo general, se fija un umbral y se marcan como anómalos los puntos cuya puntuación lo supera
Taxonomía centrada en el proceso
- Los métodos de detección de anomalías en series temporales se dividen en términos generales en basados en distancia, basados en densidad y basados en predicción
- La clasificación de segundo nivel no es mutuamente excluyente
- Un mismo modelo puede comprimir datos de series temporales y al mismo tiempo usar una estrategia de identificación basada en discord
-
Métodos basados en distancia
- Los métodos basados en distancia detectan anomalías comparando los valores numéricos de la serie temporal cruda mediante una métrica de distancia
- En general se define una distancia
d(A, B)entre dos secuencias de la misma longitud, y si ambas secuencias son iguales la distancia es 0 - Las distancias más utilizadas son Euclidean distance y Z-normalized Euclidean distance
- Dynamic Time Warping (DTW) se usa con frecuencia para tratar problemas de desalineación
- Las principales subcategorías son basadas en proximidad, basadas en clustering y basadas en discord
- Basadas en proximidad (proximity-based): determinan si una subsecuencia es anómala según qué tan aislada esté de sus vecinos cercanos
- Basadas en clustering (clustering-based): el grado en que una subsecuencia no pertenece a clusters aprendidos, la distancia al cluster o el tamaño del cluster pueden usarse para calcular la puntuación de anomalía
- Basadas en discord (discord-based): buscan de forma eficiente el discord, es decir, la subsecuencia cuya distancia a su vecino más cercano es la mayor entre todas las subsecuencias
-
Métodos basados en densidad
- Los métodos basados en densidad no tratan la serie temporal solo como una secuencia numérica simple, sino sobre representaciones donde puede medirse la densidad en el espacio de puntos o subsecuencias
- Las representaciones son diversas: grafos, árboles, histogramas, reglas gramaticales inducidas, entre otras
- Las principales subcategorías son basadas en distribución, basadas en grafos, basadas en árboles y basadas en codificación
- Basadas en distribución (distribution-based): construyen distribuciones a partir de características estadísticas de puntos o subsecuencias, y luego infieren anormalidad restaurando modelos estadísticos relevantes a partir de la distribución de características de subsecuencias normales
- Basadas en grafos (graph-based): representan la serie temporal y las subsecuencias como grafos, y detectan anomalías usando características del grafo como pesos de nodos y aristas o grado de los nodos
- Basadas en árboles (tree-based): dividen puntos o subsecuencias mediante árboles y determinan anomalías usando estadísticas y características como la profundidad del árbol
- Basadas en codificación (encoding-based): interpretan la serie temporal como una secuencia de símbolos discretos o estados libres de contexto y detectan anomalías usando reglas gramaticales de los símbolos extraídos, entre otros recursos
-
Métodos basados en predicción
- Los métodos basados en predicción detectan anomalías prediciendo el comportamiento normal esperado a partir de series temporales o subsecuencias de entrenamiento
- Se apoyan en la suposición de que los datos normales son fáciles de predecir y las anomalías, al ser inesperadas, producen errores de predicción grandes
- Esta suposición es válida cuando el conjunto de entrenamiento no contiene anomalías o contiene muy pocas
- Los métodos basados en predicción suelen ser más adecuados en una configuración semisupervisada
- Las principales subcategorías son basadas en forecasting y basadas en reconstrucción
- Basadas en forecasting (forecasting-based): toman como entrada puntos o subsecuencias anteriores a un momento específico, predicen el siguiente valor o subsecuencia, y usan la diferencia entre el valor real y el predicho como puntuación de anomalía
- Basadas en reconstrucción (reconstruction-based): comprimen la serie temporal o subsecuencia de entrada en un espacio latente más pequeño y luego la reconstruyen, usando la diferencia entre la entrada y la reconstrucción como puntuación de anomalía
Evaluación y desconexión en la comparación de investigaciones
- Distintas áreas de investigación están mayormente desconectadas entre sí porque usan diferentes datasets, baselines y métricas de evaluación
- A menudo, los algoritmos nuevos solo se comparan con algunos enfoques poco representativos, lo que dificulta encontrar el enfoque de mejor nivel para un caso de uso específico
- Una taxonomía centrada en el proceso permite agrupar y comparar distintos métodos de detección como familias de algoritmos con enfoques similares
- Las estadísticas de la literatura muestran tendencias en los tipos de enfoque y en las áreas de investigación a lo largo del tiempo
- También se resumen benchmarks existentes que pueden servir como base común de evaluación, junto con las ventajas, desventajas y limitaciones de las métricas de evaluación para detección de anomalías en series temporales
1 comentarios
Opiniones de Hacker News
Matrix Profile es una de las herramientas subestimadas en el análisis de series temporales y es muy eficiente. A diferencia de las técnicas tradicionales, no hace falta ajustar tanto el tamaño de ventana ni los umbrales; sirve bien para encontrar motivos y valores atípicos, y también funciona de forma robusta en varios campos como datos de sensores de manufactura, análisis de electrocardiogramas y detección de sismos.
https://www.cs.ucr.edu/~eamonn/MatrixProfile.html
Este otro material introductorio, del mismo grupo de investigación, es mejor:
https://matrixprofile.org/
Como el uso del sistema tiene una estacionalidad semanal muy marcada, promediamos los valores de una métrica de hace 1, 2, 3 y 4 semanas y los comparamos con el valor actual. Así se pueden establecer dinámicamente umbrales de alerta según día/noche y día laboral/fin de semana, comparando contra el promedio del día de la semana o de la franja horaria.
GitLab tiene un artículo que explica este enfoque con más detalle:
https://about.gitlab.com/blog/2019/07/23/anomaly-detection-u...
Con días festivos se complica un poco, pero en Prometheus sí se puede programar en la práctica.
https://promcon.io/2019-munich/slides/improved-alerting-with...
No es que conozca muy bien esta área, pero la predicción y la detección de anomalías parecen estar bastante relacionadas. Podría estar equivocado.
Por ejemplo, modelos basados en series temporales como Granite TS, creado por excolegas, funcionaron bastante bien cuando los probamos.
La revelación sobre cómo pensar los modelos de detección de anomalías fue que, al final, se trata de predecir los siguientes N pasos y luego ver si las mediciones reales son “lo suficientemente distintas” de lo esperado. En una señal única es fácil dibujarlo en un pizarrón, pero es bastante interesante que también funcione en escenarios multivariados.
[1] https://huggingface.co/ibm-granite/granite-timeseries-ttm-r1
[0] https://scikit-learn.org/stable/modules/generated/sklearn.en...
Estos dispositivos pueden detectar fugas y estimar el consumo de agua a nivel de instalación. La detección de fugas, en última instancia, consiste en identificar valores atípicos en series temporales, y la detección de anomalías basada en distribuciones que menciona el paper es relevante aquí. Curiosamente, los espacios residenciales podrían requerir varias distribuciones debido a los cambios de temperatura de las tuberías entre temporadas cálidas y frías.
Hasta ahora no está tan mal, pero tiene fallas bastante grandes.
Pensé que se podría hacer con la biblioteca de C# de Microsoft, pero era un desastre. Ojalá alguien tenga el tiempo y la voluntad de implementar una biblioteca decente.
Esta área está justo para que aparezca una herramienta SaaS configurable u open source con reportes avanzados y mecanismos de alerta. Datadog también tiene un producto decente, pero es bastante caro.
En particular, lo estamos haciendo para que funcione sin conexión por defecto. Integramos IA en el equipo y no enviamos los datos a servidores de terceros, ni siquiera a nuestros propios servidores. Esto se debe a que creemos que se pierden muchas oportunidades con clientes cuando no es posible una conexión en línea. Si estás buscando una solución de monitoreo para maquinaria industrial, o si te interesa el software industrial sensible a la seguridad, me gustaría conversar. También estamos desarrollando un historiador de datos: www.sentineldevices.com
Creé un sistema que detectaba y respondía antes de que ocurrieran excepciones; por ejemplo, esperaba que reducir proactivamente la velocidad de las solicitudes antes de que llevaran al agotamiento de una base de datos fuera mejor que simplemente dejar que se produjera la excepción
En aquel momento sentí que había muchísimo por hacer en este campo, y me da un poco de pena no haber vuelto a trabajar en él
Otro problema central es definir de forma rigurosa y precisa qué es una anomalía y qué no lo es
Aunque no sea el producto principal, en la mayoría de los casos ayuda a optimizar operaciones. En manufactura, la visión por computadora puede identificar productos defectuosos en una línea de ensamblaje; en operaciones, los acelerómetros/sensores de temperatura y el análisis de frecuencia pueden detectar señales de falla para mantenimiento predictivo. En ventas, el análisis de series temporales de métricas o solicitudes de soporte puede mostrar señales de aumento/caída en el flujo de caja, la satisfacción del cliente, etc.
https://youtu.be/vzPgHF7gcUQ?si=rKQvOjK_qjiSSvKE