El valor de la incertidumbre en la detección de anomalías

Jose Antonio Rodriguez Serrano, Joan Llop, David Muelas y Luis Peinado

Procesamiento de datos

El desarrollo de la Inteligencia Artificial en el sector financiero impulsa la creación de nuevos productos basados en datos, que en muchas ocasiones van ligados a una nueva forma de relación entre los clientes y sus entidades financieras. En este sentido, una de las principales tendencias está relacionada con la creación de servicios personalizados y de productos que nos permiten gestionar mejor nuestras finanzas. La app de BBVA incorpora una funcionalidad que muestra al usuario la estimación del saldo disponible en su cuenta a final de mes. Esta predicción puede ser de gran interés para nuestros clientes, porque les permite conocer cuál será su situación financiera y por tanto, poder desarrollar acciones teniendo en cuenta esta información.

Pero como ocurre con cualquier predicción, el valor ofrecido nunca es totalmente seguro; hay que tener en cuenta la incertidumbre que conlleva cualquier estimación. Los sistemas de machine learning (aprendizaje automático) están sujetos a distintas fuentes de incertidumbre cuando producen predicciones. Por eso, actualmente estamos introduciendo modelos para tal incertidumbre durante el desarrollo de nuestros productos basados en datos, con el fin de mejorar la interpretación de sus resultados y ofrecer al cliente una información más fiable.

Un sistema de predicción sin estimación de la incertidumbre sólo produciría un punto de estimación del saldo en la cuenta. Sin embargo, el modelo de incertidumbre nos permite, por un lado, conocer mejor la confianza en la predicción del saldo y, por otro, construir otras aplicaciones interesantes -por ejemplo, la detección temprana de altas probabilidades de descubiertos en cuenta, con el fin de poder plantear acciones que eviten tales eventos-. Como resultado, podemos enviar notificaciones directas al cliente para informarle de los cambios relevantes en su cuenta.

En la edición de este año del KDD Workshop on Machine Learning in Finance hemos presentado uno de nuestros últimos desarrollos que aprovecha nuestro modelo predictivo con incertidumbre para detectar valores de saldo que están muy lejos de lo esperado.

Con este motor analítico somos capaces de identificar picos inesperados en las series de saldo que pueden indicar cambios importantes en la situación de los clientes o eventos que requieran una atención inmediata, en los que la forma de la serie se “rompe” y aparecen valores inesperados que nuestro sistema puede detectar.

Veamos esto a través de un ejemplo real.

Al inicio de cada mes, nuestro modelo ofrece una predicción de cuál podría ser nuestro saldo dentro de 30 días. De hecho, el modelo siempre calcula la predicción para los siguientes 30 días, aunque nosotros veremos el valor correspondiente al último día del mes natural.
El modelo contempla que en la realidad es posible que se den comportamientos diferentes al valor esperado que ofrece una predicción puntual. Por eso, también tiene en cuenta la distribución esperada de los valores futuros de la serie. En el ejemplo anterior, vemos la distribución esperada para el día siguiente. En definitiva, aún pudiendo seleccionar un único valor como predicción del saldo futuro, el modelo considera que se podrían producir realidades diferentes y proporciona distintos valores futuros con distinta probabilidad de que se lleguen a dar. Se trata de variaciones que están dentro de la normalidad.

Los diferentes intervalos que hemos obtenido de la distribución de valores para el día siguiente (mañana), los podemos dibujar también en nuestra serie temporal (figura a continuación), de forma que podamos comprobar qué valores estarían dentro de nuestros intervalos de confianza para mañana. Y podemos hacer el mismo ejercicio para los próximos 30 días, de forma que vemos nuestros intervalos de confianza para el mes completo, y el valor que ofrecemos como predicción (mediana).

Por supuesto, esta desviación respecto a la predicción no será siempre la misma, sino que dependerá del comportamiento del cliente y aumentará al predecir valores más alejados en el tiempo. Por ejemplo, para un cliente que tenga poca variabilidad en su saldo, la horquilla será estrecha. Pero en cualquier caso, esta horquilla será mayor para las predicciones dentro de una semana que para el día siguiente. Ahora ya podemos intuir que, si algún día el valor real se sale de un intervalo que cubre gran parte de los escenarios posibles, podría tratarse de una anomalía. Conocer este tipo de cambios muy poco habituales puede ser realmente útil para los clientes.

Hasta este punto hemos visto un modelo de predicción en cambios de saldo a 30 días vista, que además incluye una medida de incertidumbre que nos indica, por un lado, la confianza que tenemos en los valores de la predicción, y, por otro lado, qué desviaciones podríamos esperar.

Ahora es el momento de contrastar, día a día, la predicción del modelo con el comportamiento real. Aquí es donde se pueden detectar las anomalías, que se producen al observarse un movimiento que no está dentro de la horquilla establecida por el modelo. Cuando esto ocurre, podemos activar avisos en forma de notificaciones push o advertencias dentro de la app que trasladen esta información al cliente de forma rápida y directa. Además, al contrastar los valores reales con los esperados, también podemos actualizar la predicción de los días que quedan en ese mes y utilizar esos datos para que el modelo conozca cada vez mejor el comportamiento del cliente de cara al futuro.

Pero también se puede extraer información de interés para el cliente antes de producirse el valor real, esto es, tomando como referencia las predicciones y la horquilla de posibles desviaciones. Es lo que ocurre cuando queremos detectar, por ejemplo, un descubierto en cuenta antes de que ocurra. Podemos encontrarnos en una situación en la que, aunque una predicción puntual del valor no se corresponda con un saldo negativo, la probabilidad de que la serie tome valores negativos sea relativamente alta. En este caso, y aunque finalmente no se produzca el descubierto, puede ser muy útil trasladar esta información al cliente para que en el caso de ser necesario tome medidas correctivas.

Puedes ver este caso completo en este vídeo

Hemos visto un caso real con el fin de comprobar cómo funciona nuestro modelo y cómo podemos detectar movimientos poco habituales. Con el fin de facilitar que los clientes puedan analizar en cada caso qué ha sucedido, seleccionamos los movimientos más importantes de los momentos en los que se detectan los valores que están lejos de lo esperado. En este caso, la tecnología subyacente es una red profunda recurrente (deep recurrent network). Hemos estudiado si estos movimientos tienden a agruparse en distintas clases, aplicando técnicas de análisis de grafos mediante la definición de relaciones entre las transacciones financieras y sus características:

Con esta representación, podemos definir un embedding (o incrustación) de las transacciones financieras utilizando métodos como node2vec, para analizar y comprender mejor qué grupos de movimientos aparecen. En concreto, node2vec produce una representación de los nodos del grafo en la forma de vectores, que luego pueden formar parte de la entrada de otros procesos para reducir su dimensionalidad o aplicar técnicas de clustering. Los embeddings de transacciones financieras han sido aplicados en la sector financiero en otras ocasiones, como es el caso de Capital One . Por nuestra parte, hemos verificado que tales embeddings capturan información semántica sobre las transacciones, como por ejemplo información sobre sus categorías o escala.

Desde nuestra perspectiva, esta solución que hemos presentado en este artículo muestra que las técnicas más avanzadas de análisis de datos y la integración de distintos procesos analíticos tienen un gran potencial en problemas reales dentro del sector financiero. Estamos convencidos de que estos resultados seguirán ganando relevancia en el futuro más próximo, tanto en sus aplicaciones industriales como en la investigación académica y aplicada.