Comunidad

02 de abril de 2019 | por: Comunicación EADIC | 0 comentarios

Matrix Profile una novedosa representación de series temporales

En Octubre de 2016, tan recientemente como eso, surge en la Universidad de California Riverside una nueva representación matemática de series temporales, computacionalmente muy eficiente para ciertos problemas que antes resultaban costosísimos de resolver, se llama Matrix Profile.

Matrix Profile facilita desde su concepción ciertas operaciones sobre series temporales, es decir, por como la información es representada y por las operaciones, resulta muy eficiente y “sencillo” diseñar y ejecutar ciertos algoritmos, de forma ideal en entornos Big Data.

Las series temporales son una forma de representar la información muy abundante en el Internet de las Cosas, su concepción viene de los principios de la estadística, y las operaciones estaban basadas en los principios diseñados en aquellos momentos en los que se trabajaba con muy pocas muestras, obtenidas con gran dificultad (pocos datos y espaciados en el tiempo), como los de la granja de Fisher.

Pero desde la aparición de Big Data e IoT, vemos como grandes volúmenes de datos ahora son muestreados a muy altas frecuencias, y trabajar con las herramientas clásicas es todo un reto. Hasta el momento, las herramientas para procesar esta información provenían básicamente de la estadística, que nació y fue evolucionando desde la granja de Fisher y aquellas pocas muestras anotadas en una libreta y calculadas lápiz en mano. Desde ahí fueron evolucionando, apareciendo conceptos, desarrollándose modelos, pero el punto de partida es este.

matrix_profile

Matrix Profile supone, una nueva pieza base unificada, nacida contemplando estas situaciones típicas de Big Data, sobre la que comenzar a aplicar herramientas, y no será la única.

 

Al afrontar ahora ciertas dificultades introducidas por el volumen de datos y la frecuencia de obtención de muestras, intuíamos que, si bien seguir usando esas herramientas en este nuevo contexto era necesario porque son las herramientas existentes para analizar los datos, tendrían que surgir nuevas herramientas matemáticas. Era necesario deshacer el camino conseguido por la estadística y tomando nuevos puntos de partida más adecuados a los retos que se afrontan por el volumen, variedad y velocidad de obtención de muestras.

En esta búsqueda hemos explorado desde el análisis clásico, ARIMA, Wavelets, Matemática caótica, … Consiguiendo resultados parciales para resolver problemas muy concretos, pero reusarlos y aplicarlos a otros dominios era dificilísimo, debido una parametrización complicada, por ejemplo. O por alta sensibilidad a los valores de los datos. O a características de las series en sí mismas.

Por otra parte, los métodos requerían complejas representaciones, de manera que, era muy arduo probar con unos mismos datos varios métodos diferentes.

Matrix Profile supone, una nueva pieza base unificada, nacida contemplando estas situaciones típicas de Big Data, sobre la que comenzar a aplicar herramientas, y no será la única.

Matrix Profile presenta facilidades para problemas como time series motif discovery, time series joins, shapelet discovery (classification), density estimation, semantic segmentation, visualizaci, rule discovery, clustering, etc”, proporcionando los algoritmos STAMP, STAMPI, STOMP, SCRIMP, SCRIMP++ y GPU-STOMP.

En cuanto surgió y se publicó, la comunidad comenzó a trabajar y, en tiempo record, han surgido trabajos que, aplicando esta representación, permiten ya hoy realizar aplicaciones hace dos años muy complejas, con tremenda facilidad. Por ejemplo, es de resaltar Shapelets.io (https://shapelets.io/ ) y su framework Khiva (disponible en Github), que proporciona una versátil solución para para una gran variedad de tecnologías, lenguajes, y es aplicable a muchas situaciones, tanto técnicas como en cuanto al dominio de aplicación.

Por ejemplo, con Shapelets.io (Khiva) puedes dibujar una curva a mano alzada, y sobre un volumen enorme de datos, encontrar ese patrón en la serie temporal. Tal cual, como si estuvieras dibujando con Paint, puedes verlo en acción aquí.

Khiva is an open-source library of efficient algorithms to analyse time series in GPU and CPU. It can be used to extract insights from one or a group of time series. The large number of available methods allow us to understand the nature of each time series. Based on the results of this analysis, users can reduce dimensionality, find out recurrent motifs or discords, understand the seasonality or trend from a given time series, forecasting and detect anomalies.

Khiva provides a mean for time series analytics at scale. These analytics can be exploited in a wide range of use cases across several industries, like energy, finance, e-health, IoT, music industry, etc.

 

Entrando en detalle de los aspectos diferenciales a resaltar sobre Matrix Profile, de forma genérica, son:

Es exacto: para el descubrimiento de motivos, el descubrimiento de discordias, las series de tiempo, etc., los métodos basados en el Matrix Profile no proporcionan falsos positivos ni falsos negativos.

Es simple y no tiene parámetros: en contraste, los algoritmos de métodos de acceso espacial más generales generalmente requieren la creación y el ajuste de métodos de acceso espacial y / o función hash.

Es eficiente en espacio: los algoritmos de construcción de Matrix Profile requieren una sobrecarga de espacio intrascendente, simplemente lineal en la longitud de la serie de tiempo con un pequeño factor constante, lo que permite el procesamiento de conjuntos de datos masivos en la memoria principal.

Permite algoritmos en cualquier momento: si bien sus algoritmos exactos son extremadamente escalables, para conjuntos de datos extremadamente grandes también permite calcular Matrix Profile en cualquier momento, permitiendo soluciones aproximadas ultra rápidas.

Se puede mantener de forma incremental: después de haber calculado el Matrix Profile para un conjunto de datos, podemos actualizarlo de manera incremental de manera muy eficiente. En muchos dominios, esto significa que podemos mantener efectivamente las combinaciones / motivos / discordancias exactas en la transmisión de datos para siempre. Y trabajar fácilmente con datos en Streaming.

No requiere que el usuario establezca umbrales de similitud / distancia: para las combinaciones de series de tiempo, el Matrix Profile proporciona uniones completas, eliminando la necesidad de especificar un umbral de similitud, que es una tarea no intuitiva para las series de tiempo.

Puede aprovechar el hardware: la construcción de Matrix Profile es altamente paralelizable, tanto en procesadores multinúcleo como en sistemas distribuidos.

Tiene una complejidad de tiempo que es constante en la longitud de la subsecuencia: esta es una propiedad muy inusual y deseable; todos los algoritmos de unión / motivo / discordia de series de tiempo conocidas se escalan mal a medida que crece la longitud de la subsecuencia. En contraste, con Matrix Profile se han procesado combinaciones / motivos de series temporales con longitudes de subsecuencias de hasta 100,000, al menos dos órdenes de magnitud más largas que cualquier otro trabajo que se conozca.

Se puede construir en tiempo determinista: todos los algoritmos de unión / motivo / discordia pueden hacer tiempos radicalmente diferentes para terminar en dos conjuntos de datos diferentes (incluso ligeramente). En contraste, dada solo la longitud de las series de tiempo, se puede predecir con precisión de antemano cuánto tiempo tomará calcular el Matrix Profile.

Puede manejar falta de datos: incluso en presencia de datos faltantes, puede proporcionar respuestas que garanticen que no tienen falsos negativos.

 

Autor: Adolfo Cortés. Docente del Master de Big Data y Business Intelligence de EADIC

 

Comentarios

Deja tu comentario

You must be logged in to post a comment. So log in!

EADIC Blog