6 puntos por GN⁺ 2025-01-07 | 1 comentarios | Compartir por WhatsApp
  • 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

 
GN⁺ 2025-01-07
Opiniones de Hacker News
  • También vale la pena conocer UCR Matrix Profile
    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
    • No es correcto decir que no hay que ajustar el tamaño de ventana. Matrix Profile depende muchísimo del tamaño de ventana.
    • MP es uno de los mejores métodos univariados, pero de hecho también se menciona en el artículo.
    • El texto promocional es más interesante que el contenido compartido, aunque el sitio web se ve bastante mal.
      Este otro material introductorio, del mismo grupo de investigación, es mejor:
      https://matrixprofile.org/
    • Se trata en la sección 6.2.1.
  • Uso la función offset de Prometheus para crear, como recording rule, el promedio de las últimas semanas.
    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...
    • Si el gráfico de Grafana no queda demasiado saturado, casi siempre agrego como línea el valor con offset de 7 días. Es muy útil para decidir qué es normal y qué no.
    • GitLab también tiene esto: https://gitlab.com/gitlab-com/gl-infra/tamland
      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.
  • Este artículo no refleja el trabajo de más o menos el último año.
    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
    • Tuve un momento de comprensión parecido cuando leí sobre Isolation Forest para detección de outliers. Si la predicción difiere del promedio, algo está fuera de lugar.
      [0] https://scikit-learn.org/stable/modules/generated/sklearn.en...
    • Me da curiosidad cómo lo pensabas antes de esa revelación :D
    • Me interesa si puedes compartir el contexto en el que se necesita un modelo zero-shot para series temporales. Todavía no he visto una situación en la que no haya absolutamente ningún dato histórico para ajustar el modelo.
  • En el campo emergente de water tech hay dispositivos IoT que monitorean el flujo de agua.
    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.
  • En un proyecto reciente de seguimiento de rendimiento intenté crear por mi cuenta una detección de anomalías, y me sorprendió que casi no hubiera soluciones listas, open source o de pago, que no fueran demasiado básicas ni excesivamente complejas. En esta área todavía hay mucho por explorar.
    • Hay bastante material sobre detección de anomalías con el stack Prometheus y Grafana: https://grafana.com/blog/2024/10/03/how-to-use-prometheus-to.... Aunque quizá esto caiga en lo que mencionas como “excesivamente complejo”.
    • La razón por la que no hay soluciones listas es que este problema sigue siendo un problema sin resolver. No existe un enfoque que sea útil de forma general.
    • Todavía estoy experimentando con esto: https://grafana.com/blog/2024/10/03/how-to-use-prometheus-to... También hay un repositorio de GitHub.
      Hasta ahora no está tan mal, pero tiene fallas bastante grandes.
    • Durante una pasantía necesitaba detección de anomalías en series temporales para rastrear cuándo una máquina/servidor entraba en degradación de rendimiento o en downtime inesperado.
      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.
    • Coincido. En nuestra empresa terminamos creando nuestro propio sistema.
      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.
  • Nuestra startup trabaja en detección de anomalías en series temporales para maquinaria industrial

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

  • Le tengo cariño a este campo. Hace casi 10 años, durante mi maestría, trabajé en un tema cercano: predicción de fallas en línea: https://estudogeral.uc.pt/handle/10316/99218
    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
  • La clave está en que los fenómenos anómalos surgen de la combinación entre la complejidad del proceso de generación de datos, las imperfecciones de los sistemas de medición y la interacción con actores maliciosos; en muchos casos, eso es difícil de manejar
    Otro problema central es definir de forma rigurosa y precisa qué es una anomalía y qué no lo es
  • La detección de anomalías puede aportar valor agregado a casi cualquier industria
    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.
  • Conviene buscar a Eamonn Keogh. Ha hecho mucho trabajo interesante en el área de detección de anomalías en series temporales