EN

El pasado mes de diciembre tuvimos la oportunidad de asistir presencialmente al AWS re:Invent 2021 y conocer de primera mano las novedades anunciadas por Amazon Web Services, especialmente aquellas relacionadas con el aprendizaje automático.

SageMaker Studio Lab

Es la versión simplificada y gratuita de SageMaker Studio. Es un entorno de desarrollo de aprendizaje automático que proporciona almacenamiento persistente (hasta 15 GB) y capacidad de cómputo (CPU y GPU, con 16 GB de RAM) de manera gratuita. Además, permite la integración con el resto de herramientas de AWS mediante los SDK de Python (tanto Sagemaker SDK como Boto3), por lo que permite prototipar de manera fácil y sin costo, para luego utilizar el resto de recursos de AWS cuando sea necesario. Por otra parte, también es una opción adicional para aprender y poner en práctica el aprendizaje automático, además de Google Colab y los notebooks de Kaggle. Recomendamos este post donde se realizan pruebas ingeniosas para comparar los tres entornos.

Anuncio
Servicio
Vídeo

Studiolab Infographic

SageMaker Inference Recommender

Este nuevo servicio es capaz de ejecutar múltiples pruebas automáticamente relacionadas a la inferencia de modelos y recomendar al usuario: el tipo de instancia de cómputo, el número de instancias, valores de parámetros de configuración de los contenedores que alojan el código para inferencia, entre otras cosas. Esto permite tomar decisiones de forma objetiva y basada en evidencia, respecto al despliegue de modelos para optimizar costos, y también permite ahorrar tiempo valioso a los desarrolladores.

Anuncio
Ejemplos en repositorio
Vídeo

Inference Recommender infographic

SageMaker Serverless Inference

Este nuevo servicio integra Lambda y SageMaker, y está diseñado para realizar inferencias en aplicaciones con tráfico intermitente o impredecible. Hasta antes de este servicio, las opciones de inferencia en SageMaker eran inferencia en tiempo real, inferencia en batch, e inferencia asíncrona. Ahora, la nueva opción Serverless Inference es capaz de encargarse automáticamente de aprovisionar y escalar la capacidad de cómputo basada en el volumen de solicitudes.

Anuncio
Ejemplos en repositorio
Vídeo

SageMaker Serverless Inference infographic

SageMaker Canvas

Esta es una herramienta visual y sin código, diseñada para que los analistas de negocio y otros perfiles menos técnicos sean capaces de construir y evaluar modelos, así como realizar predicciones sobre nuevos datos, a través de una interfaz de usuario intuitiva. Además, los modelos generados en Canvas pueden ser compartidos después con los científicos de datos y desarrolladores para tenerlos disponibles en SageMaker Studio.

Anuncio
Vídeo

SageMaker Ground Truth Plus

Este es un nuevo servicio de etiquetado para crear conjuntos de datos de alta calidad para utilizarlos en el entrenamiento de modelos de aprendizaje automático. Ground Truth Plus utiliza técnicas innovadoras de la comunidad científica, como el aprendizaje activo, el pre-etiquetado y la validación automática. Mientras que SageMaker Ground Truth ya existía desde 2019, permitiendo al usuario crear los flujos de trabajo de etiquetado de datos y administrar al personal encargado del etiquetado, SageMaker Ground Truth Plus crea y administra estos flujos de trabajo de manera automática sin necesidad de la intervención del usuario.

Anuncio
Vídeo

SageMaker Training Compiler

Esta nueva característica de SageMaker compila automáticamente el código de entrenamiento de modelos escrito en algún framework de aprendizaje automático basado en Python (TensorFlow o PyTorch) y genera kernels de GPU específicos para esos modelos. En otras palabras, SageMaker Training Compiler convierte los modelos desde su representación de lenguaje de alto nivel a instrucciones optimizadas para hardware, de modo que utilizarán menos memoria y menos cómputo y, por lo tanto, su entrenamiento será más rápido.

Anuncio
Ejemplos en repositorio
Vídeo

EMR on SageMaker Studio

Esta nueva característica integra EMR y SageMaker Studio. Antes de esta característica, los usuarios de SageMaker Studio tenían cierta capacidad para buscar clústeres de EMR ya creados y conectarse a ellos, siempre que estos clústeres se estuvieran ejecutando en la misma cuenta que la sesión de SageMaker Studio. Sin embargo, los usuarios no podían crear clústeres desde SageMaker Studio, sino que para hacer esto tenían que realizar la configuración manualmente desde EMR. Además, estar restringido a crear y administrar clústeres en una sola cuenta podría volverse prohibitivo en las organizaciones que trabajan con muchas cuentas de AWS. Ahora, con esta nueva característica, los usuarios de SageMaker Studio pueden administrar, crear, y conectarse a clústeres de Amazon EMR desde SageMaker Studio, además de conectarse y monitorizar trabajos de Spark que se ejecuten en estos clústeres.

Anuncio
Ejemplos en repositorio

Más allá de los anuncios

Además de los anuncios de las nuevas funcionalidades en SageMaker que tuvieron lugar en el evento, existen otras características que no son precisamente nuevas pero de las cuales tuvimos la oportunidad de conocer algo durante el evento a través de presentaciones, workshops, o charlas informales. Aquí comentamos un poco sobre algunos aspectos.

RStudio on SageMaker

Esta característica es resultado de la colaboración entre AWS y RStudio PBC y fue anunciada en noviembre de 2021. Como resultado de esta colaboración, ahora el entorno de desarrollo RStudio está disponible en SageMaker, sumándose a la opción del entorno SageMaker Studio, el cual está basado en el proyecto JupyterLab. Con esta adición, ahora los científicos de datos y los desarrolladores tienen la libertad de elegir entre lenguajes de programación e interfaces para cambiar entre RStudio y Amazon SageMaker Studio. Todo el trabajo desarrollado en cualquiera de los dos entornos (código, conjuntos de datos, repositorios y otros artefactos) se sincroniza a través del almacenamiento subyacente en Amazon EFS.

Anuncio de AWS
Anuncio de RStudio PBC

Redshift ML

Este servicio fue anunciado en diciembre de 2020 y es una integración entre Redshift y SageMaker. Básicamente se trata de hacer entrenamiento, evaluación, y despliegue de modelos desde Redshift mediante instrucciones SQL, utilizando SageMaker como backend.

Anuncio
Vídeo

Infographic on how Amazon Redshift ML works

AutoML en AWS

En AWS existen dos iniciativas relacionadas al aprendizaje automático automatizado (AutoML): SageMaker Autopilot y AutoGluon de AWS Labs (vídeo).

SageMaker Autopilot fue anunciado en diciembre de 2019 por lo que lleva ya algún tiempo en el mercado. Se refiere a la solución comercial de AWS para hacer aprendizaje automático automatizado (AutoML) y se puede utilizar de varias formas: en piloto automático (de ahí el nombre) o con varios grados de guía humana (sin código a través de Amazon SageMaker Studio, o con código usando alguno de los SDK de AWS).

Una característica destacable es que Autopilot crea tres informes automáticos en notebooks que describen el plan que se ha seguido: uno relacionado a la exploración de datos, otro relacionado a la definición de los modelos candidatos, y otro relacionado a las métricas de desempeño de los modelos finales. A través de estos informes, el usuario tiene acceso al código fuente completo para preprocesamiento y entrenamiento de los modelos, por lo que el usuario tiene la libertad de analizar cómo los modelos fueron construidos y también de hacer modificaciones para mejorar el desempeño. Es decir, a comparación de otras soluciones comerciales de AutoML disponibles en el mercado, Autopilot es una herramienta (en su mayoría) de caja blanca.

Autopilot tiene estrategias predefinidas para la selección de algoritmos dependiendo del tipo de problema, y en cuanto a cómo se hace la optimización de hyperparámetros, Autopilot utiliza estrategias basadas en búsquedas aleatorias y en optimización Bayesiana. Más información aquí. Es decir, Autopilot sigue estrategias que entran dentro del paradigma conocido como Combined Algorithm Selection and Hyperparameter optimization (“CASH”), el cual a grandes rasgos consiste en emplear estrategias para simultáneamente encontrar el mejor tipo de algoritmo y sus respectivos hyperparámetros óptimos.

Anuncio
Ejemplos en repositorio
Vídeo

Autopilot infographic
Autopilot infographic

AutoGluon es un proyecto de código abierto, orientado a investigación y también listo para producción, impulsado por AWS Labs y que fue publicado hacia finales de 2019. En palabras de uno de sus autores, AutoGluon automatiza el aprendizaje automático y el aprendizaje profundo para aplicaciones que involucran imágenes, texto y conjuntos de datos tabulares, y que simplifica el trabajo tanto para principiantes como para expertos en aprendizaje automático. Soporta tanto CPU como GPU para backend. AutoGluon es un proyecto amplio que contiene diversos módulos:

  • Predicción tabular1
  • Predicción de texto
  • Predicción de imágenes
  • Detección de objetos
  • Tuning (de hyperparámetros, de argumentos de scripts de Python, y más)
  • Búsqueda de arquitecturas neuronales

Una característica bastante innovadora y poderosa de AutoGluon es que introduce sus capacidades de predicción de texto y de predicción de imágenes dentro de su módulo de predicción tabular, permitiendo tener la opción de Tablas Multimodales (ejemplo y tutorial aquí). Esto es útil en casos de uso en donde se cuenta simultáneamente con datos tanto de tipo numérico, categórico, texto, e imágenes, o cualquier combinación de ellos.

Hablando concretamente del módulo de predicción tabular y de su enfoque para hacer AutoML, AutoGluon toma una dirección alternativa al paradigma CASH (haciéndolo diferente tanto de SageMaker Autopilot como del resto de proyectos de código abierto como auto-sklearn y H2O AutoML) al seguir un enfoque de ensamblar y apilar modelos (de diferentes familias y de diferentes frameworks) en múltiples capas, inspirado en prácticas que se sabe que son efectivas en la comunidad de aprendizaje automático (por ejemplo, en competencias de Kaggle). A estas ideas, AutoGluon añade también otras técnicas:

  • Una estrategia para reducir la varianza en las predicciones y reducir el riesgo de sobreajuste (ensemble bagging, también llamado cross-validated committees)2. Este proceso es altamente paralelizable y en AutoGluon está implementado haciendo uso de Ray.
  • Una estrategia para combinar modelos de manera óptima en la última capa del ensamble 3.
  • Una estrategia para destilar el modelo complejo del ensamble final en algún modelo individual más simple4 que imite el desempeño del modelo complejo y que sea más ligero (y por lo tanto tenga menor latencia en tiempo de inferencia).
Autopilot infographic
AutoGluon’s multi-layer stacking strategy, using two stacking layers and n types of base models.

Anuncio
Repositorio
Artículo en Amazon Science
Vídeo

Además, AutoGluon se puede utilizar tanto para entrenamiento como para despliegue en SageMaker:

Ejemplo AutoGluon en SageMaker
AutoGluon en AWS Marketplace

Por último, también destacar que AutoGluon puede integrarse con Nvidia Rapids, concretamente con cuML (característica anunciada en el Nvidia GTC 2021 como colaboración entre AWS Labs y Nvidia) para mayor aceleración para entrenamiento con GPUs:

Post en el blog de Nvidia Developer
Vídeo con demo

Uno de los aspectos más estimulantes de nuestro trabajo es poder asistir en tiempo real al desarrollo de nuevas tecnologías, nuevos enfoques o la mejora continua -y vertiginosa- de sistemas de Inteligencia Artificial. Ya sea aprendiendo nuevas soluciones o siendo protagonistas de la mejora de alguna de ellas, el trabajo en Inteligencia Artificial cambia constantemente.

Para estar al día de todos estos avances podemos asistir a la multitud de conferencias en Ciencia de Datos que se celebran cada año en todo el mundo. Tanto si son conferencias más generalistas como otras más especializadas, es el lugar idóneo para descubrir soluciones del estado del arte y compartir nuestros aprendizajes. Por esa razón, en BBVA AI Factory disponemos de un presupuesto extraordinario para asistir a eventos o conferencias relevante para nuestro trabajo.

Después de este último año y medio de pausa, muchas conferencias ya están planificando su vuelta a los eventos presenciales.

Conferencias en campos específicos

El pasado mes de septiembre tuvo lugar Recsys 2021 en formato híbrido (on line y presencial). Foto de ACM RecSys.

FAccT

Donde: Seúl, Corea del Sur
Cuando: Junio 21-25, 2022
Formato: on line y presencial
⎋ Mas información

El acrónimo FaccT hace referencia a Fairness Accountability and Transparency of socio-technical systems (equidad, responsabilidad y transparencia de los sistemas socio-técnicos) y reúne a investigadores y profesionales interesados en las implicaciones sociales de los sistemas algorítmicos. Los sistemas basados en Inteligencia Artificial y alimentados por grandes volúmenes de datos tienen aplicaciones tanto en el sector público como en múltiples industrias como la sanitaria, el márketing, los medios de comunicación, los recursos humanos, el entretenimiento o las finanzas, por nombrar algunas. Para entender y evaluar las implicaciones sociales de estos sistemas es útil estudiarlos desde diferentes perspectivas, por lo que esta conferencia es única en su género por su multidisciplinariedad. Reúne a participantes de los campos de la informática, las ciencias sociales, el derecho y las humanidades, tanto de la industria como del mundo académico, para reflexionar sobre temas como la equidad algorítmica, si estos sistemas contienen riesgos inherentes o sesgos potenciales o cómo crear conciencia sobre sus impactos sociales

Data + AI Summit 2022

Donde: San Francisco, Estados Unidos
Cuando: Junio 27-30, 2022
Formato: presencial (aunque también será posible algún tipo de participación en remoto)
⎋ Mas información

Anteriormente conocida como Spark Summit, la conferencia -organizada por Databricks– ofrece una amplia panorámica de desarrollos recientes, casos de uso y experiencias en torno a Apache Spark y otras tecnologías relacionadas. La variedad de temas puede ser interesante para muchos roles en el ámbito de la Ciencia de Datos y el aprendizaje automático (por ejemplo, Ingenieros de Datos y ML, Científicos de Datos, Investigadores, o tomadores de decisiones clave, por nombrar algunos), y siempre está orientado a big data y pipelines de ML escalables. Las presentaciones suelen tener una orientación práctica y también incluyen talleres de formación y sesiones con los creadores originales de tecnologías de código abierto, como Apache Spark, Delta Lake, MLflow y Koalas. Los contenidos de la edición anterior están disponibles bajo demanda de forma gratuita aquí. Tras dos ediciones en formato on line, este año el Summit se celebrará en San Francisco, aunque se anuncia en la página web algún tipo de participación híbrida.

Recsys

Donde: Seattle, Estados Unidos
Cuando: Septiembre 18-23, 2022
Formato: presencial
⎋ Mas información

RecSys es la principal conferencia internacional cuyo objetivo es presentar los últimos avances, tendencias y retos en el amplio campo de los sistemas de recomendación. También cuenta con tutoriales que cubren el estado del arte en este ámbito, talleres, sesiones especiales para socios industriales de diferentes sectores como el de los viajes, los juegos y la moda, y un simposio de doctorado. RecSys comenzó con 117 personas en Minnesota en 2007, y llega el próximo año a su decimosexta edición. Uno de los aspectos clave de esta conferencia hasta ahora ha sido su buena mezcla entre trabajos académicos e industriales.

Conferencias generalistas en ML/AI

Un momento durante KDD 2019

AAAI Conference on Artificial Intelligence

Donde: Vancouver, Canadá
Cuando: Febrero 22 – Marzo 1, 2022
Formato: presencial
⎋ Mas información

La Asociación para el Avance de la Inteligencia Artificial (AAAI) es una prestigiosa sociedad dedicada a avanzar en la comprensión de los mecanismos que subyacen al comportamiento inteligente y su plasmación en las máquinas. Su conferencia promueve el intercambio de conocimientos entre profesionales, científicos e ingenieros de Inteligencia Artificial. Explora los avances en el núcleo de la IA y también acoge 39 talleres sobre una amplia gama de aplicaciones de IA, como los servicios financieros, la ciberseguridad, la salud, la equidad, entre otros. Puedes consultar la Conferencia de 2021 y también una reseña de la edición de 2020.

Applied Machine Learning Days (AMLD)

Donde: EPFL. Lausanne, Suiza
Cuando: Marzo 26 – 30, 2022
Formato: presencial
⎋ Mas información

Cada año la conferencia consta de diferentes tracks sobre diferentes temas. Es una conferencia orientada a la aplicación del Machine Learning (aprendizaje automático), por lo que se pueden encontrar temas muy variados cada año. Destaca por su buen equilibrio entre academia e industria, sus presentaciones de apertura y, sobre todo, sus talleres. Se trata de sesiones previas a la propia conferencia en las que realmente se aprende de forma 100% práctica. Consulta aquí la edición de 2020.

The Society for AI and Statistics

Donde: Valencia, España
Cuando: Marzo 28 – 30, 2022
Formato: presencial (aún en discusión)
⎋ Mas información

Descripción de la web: “Desde su creación en 1985, AISTATS ha sido una reunión interdisciplinaria de investigadores en la intersección de la Inteligencia Artificial, el Aprendizaje Automático, la estadística y áreas relacionadas”. Y es cierto. Es una conferencia principalmente estadística con aplicaciones en el campo del aprendizaje automático. Se requiere un buen conocimiento de la estadística para entender los conceptos que allí se discuten y poder explotarlos al máximo. Los ponentes invitados son de gran nivel (muchos del lado gaussiano) y los organizadores cuidan mucho la elección del lugar de celebración ;). Consulta últimas actas.

KDD 2022

Donde: Washington, Estados Unidos
Cuando: Agosto 14-18, 2022
Formato: presencial
⎋ Más información

KDD es una conferencia de investigación que tiene sus orígenes en la minería de datos, pero su alcance se extiende al aprendizaje automático aplicado, y hoy en día se define como “la principal conferencia de Ciencia de Datos“. Más que otras conferencias sobre ML o AI que se dirigen a la comunidad de investigación académica, ésta es especialmente atractiva para las personas con Data Scientist como título de trabajo. Sus principales puntos diferenciadores son: un track de Ciencia de Datos aplicada, un track de ponentes invitados de Ciencia de Datos, y tutoriales prácticos. El listón sigue siendo muy alto desde el punto de vista técnico, pero una gran parte de la investigación proviene del mundo real y la investigación corporativa tiene un gran peso.

Dentro de KDD, en BBVA AI Factory hemos participado activamente tanto en la organización como en el comité de programa del taller de Machine Learning for Finance durante los últimos 2 años, tras participar en el KDD Workshop on Anomaly Detection in Finance en 2019. ¡Lee nuestro artículo sobre la edición de 2019 para hacerte una mejor idea de este evento!

Dentro de la Inteligencia Artificial, el Procesamiento de Lenguaje Natural (NLP por sus siglas en inglés) ha sido uno de los campos clave desde los orígenes. Al fin y al cabo, el lenguaje es una de las cosas más ligadas a la inteligencia humana. En los últimos años este campo ha sufrido una nueva revolución semejante a la que hace 20 años supuso la introducción de las técnicas estadísticas y de aprendizaje automático (Machine Learning). Esta revolución la abanderan nuevos modelos basados en redes neuronales profundas que facilitan la codificación de la información lingüística y la posibilidad de reutilización en diversas aplicaciones. Con la aparición en 2018 de modelos de lenguaje auto-supervisados como BERT (Google), entrenados sobre una ingente cantidad de texto, se inicia una época en la que la Transferencia de Aprendizaje (Transfer Learning) empieza a ser una realidad práctica para NLP, tal y como lo ha sido para el campo de la Visión Artificial desde 2013.

El concepto de Transferencia de Aprendizaje se basa en la idea de reutilizar el conocimiento adquirido realizando una tarea para abordar nuevas tareas que son similares. En realidad, es una práctica que los humanos llevamos a cabo constantemente en nuestro día a día. Aunque afrontamos nuevos retos, nuestra experiencia nos permite abordar los problemas desde un estadío más avanzado.

La mayoría de algoritmos de aprendizaje automático (Machine Learning), en particular si son supervisados, solo pueden resolver la tarea para la que han sido entrenados mediante ejemplos. Si lo llevamos al mundo culinario, el algoritmo sería como un cocinero súper especializado, entrenado para realizar una única receta. Pedirle una receta diferente a este algoritmo puede tener consecuencias no deseadas, como realizar predicciones incorrectas o incorporar sesgos.

El objetivo de utilizar Transferencia de Aprendizaje es que nuestro cocinero -que es el mejor cocinando ravioli carbonara- sea capaz de aplicar lo aprendido para alcanzar un éxito razonable cocinando unos spaguetti a la boloñesa. Aunque la salsa sea diferente, puede reutilizar el conocimiento adquirido a la hora de cocer la pasta (figura 1).

Figura 1. Aplicando Transferencia de Aprendizaje a modelos de aprendizaje automático.

Este mismo concepto de reutilización de conocimiento, aplicado al desarrollo de modelos de Procesamiento de Lenguaje Natural (NLP), es el que hemos explorado en una colaboración con Vicomtech, un Centro de Investigación del País Vasco especializado en técnicas de interacción humano-máquina basadas en inteligencia artificial. En concreto, el objetivo de este trabajo conjunto ha sido conocer las aplicaciones que tiene la Transferencia de Aprendizaje y valorar los resultados que ofrecen estas técnicas, pues vemos que pueden ser aplicables en las interacciones en lenguaje natural entre clientes y gestores de BBVA. Después de todo, el propósito que perseguimos con este trabajo no es otro que mejorar la forma en la que nos relacionamos con nuestros clientes.

Una de las tareas que hemos abordado ha consistido en el procesamiento de información textual en diferentes idiomas. Para ello, hemos utilizado conjuntos de datos de dominio público. Es el caso de un dataset de opiniones de restaurantes, generado para la competición académica Semeval 2016, que incluye reseñas en inglés, español, francés, ruso, turco, árabe y chino. El objetivo ha sido identificar los diferentes aspectos o características que se mencionan (comida, ambiente o servicio al cliente, entre otros), en inglés, español y francés. En la siguiente tabla se muestra el volumen de datos de los distintos idiomas.

Tabla 1. Distribución de textos, frases y anotaciones en los datasets de SemEval2016 utilizados

Con este ejercicio queríamos validar si las técnicas de Transferencia de Aprendizaje basadas en el uso de modelos BERT eran apropiadas para adaptar un clasificador multiclase que detectase los aspectos en diferentes idiomas. Frente a este enfoque, existen alternativas basadas en la traducción del texto para adaptarla a un único idioma. Esto lo podemos hacer traduciendo la información que utilizaremos para entrenar el modelo, por un lado, o bien traduciendo directamente las conversaciones de los clientes que queremos clasificar. Sin embargo, estas alternativas también encierran problemas e ineficiencias.

Recuperando el ejemplo culinario que comentábamos al inicio de este artículo, en nuestro caso podríamos considerar que el texto del que disponemos son los ingredientes de la receta. Estos “datasets” de información son diferentes de un idioma a otro (de igual modo que los ingredientes varían según la receta). Por otro lado, la capacidad adquirida por el modelo para clasificar los textos es un conocimiento que podemos reutilizar en varios idiomas; del mismo modo que reutilizamos el conocimiento sobre cómo cocer la pasta en recetas diferentes.

En este experimento hemos partido de un modelo pre-entrenado BERT multilingüe de dominio público, y hemos realizado un ajuste fino (fine tuning) sobre el dataset de restaurantes. En la siguiente figura se muestra el procedimiento (figura 2).

Figura 2. Utilizamos un modelo multilingüe pre-entrenado, BERT, y realizamos un ajuste fino (fine tuning) en el dataset de restaurantes.

Los resultados obtenidos adaptando este modelo, entrenado con dato genérico, al dataset de reseñas en cada idioma, fueron similares a los reportados en 2016 para la tarea en inglés, francés y español por modelos más especializados. Esto es consistente con los resultados de diferentes trabajos de investigación sobre la capacidad de este tipo de modelos de alcanzar muy buenos resultados.

Una vez ajustado un clasificador para texto en inglés, el proceso de Transferencia de Aprendizaje entre idiomas lo llevamos a cabo realizando una segunda etapa de fine tuning con el dataset del segundo idioma (figura 3).

Figura 3. Realización de una segunda etapa de ajuste fino (fine tuning) con el segundo conjunto de datos.

Para medir la efectividad del proceso comparamos el comportamiento de este clasificador con el comportamiento resultante de realizar una única etapa de ajuste fino partiendo del modelo base multilingüe.

Los resultados nos indican (ver tabla 2) que, partiendo del modelo en inglés y utilizando menos datos del idioma de destino (español o francés, en este caso) podemos alcanzar resultados similares a los que obtenemos al adaptar un modelo para cada idioma. Por ejemplo, en el caso del español, alcanzamos un desempeño muy similar si partimos del modelo en inglés y añadimos sólo el 40% de dato en español. Por otro lado, en el caso del francés, los resultados se empiezan a igualar al utilizar el modelo en inglés y el 80% del dato en francés. Por último, si utilizamos todos los datos disponibles, los resultados mejoran de forma moderada si los comparamos con los resultados que alcanzamos al entrenar solo con los datos de cada idioma. En cambio, la mejora es notable respecto a usar el modelo en inglés para el resto de idiomas. Es importante tener en cuenta que estos resultados van a depender de la tarea concreta en la que se aplican.

Tabla 2. Métricas de clasificación para los conjuntos de test en los idiomas destino (ES o FR) de un clasificador entrenado con diferentes combinaciones de datos en el idiomas origen (EN) y destino (ES o FR).

Los diferentes resultados obtenidos con este experimento son muy esperanzadores desde el punto de vista de aplicación en problemas reales, ya que nos estarían indicando que los modelos son capaces de utilizar el conocimiento adquirido en un idioma para extrapolarlo a otro, obteniendo la misma calidad con menos dato etiquetado. De hecho, uno de los principales obstáculos al desarrollar cualquier funcionalidad de NLP en un entorno industrial es disponer de una gran cantidad de datos de calidad, y tener que desarrollarlo para cada uno de los idiomas. Por lo tanto, requerir de menos dato etiquetado siempre es una gran ventaja a la hora de desarrollar las funcionalidades.

El conocimiento obtenido a raíz de esta colaboración con Vicomtech nos va a permitir, de esta forma, construir de forma más ágil funcionalidades de ayuda al gestor en su relación con el cliente, permitiendo reducir el ciclo de desarrollo de un caso de uso en un idioma o canal distinto a aquel en el que originalmente se implementó.

En 2018, coincidiendo con la celebración de la copa del mundo de fútbol, una empresa se aventuró a pronosticar la probabilidad que tendría cada equipo de convertirse en campeón (el informe original no está disponible pero sigue pudiendo leerse algún artículo en medios que cubrieron la historia). Encabezaba la lista Alemania, con un 24% de probabilidad. En cuanto Alemania fue eliminada, este pronóstico se tomó como equivocación y la anécdota circuló por las redes sociales.

El problema no estaba tanto en el modelo, del que no se desvelaron detalles, aunque se hablaba de una metodología de simulación, seguramente muy fiable, ya que se conocen modelos robustos de pronósticos deportivos (con ocasión del mundial, en BBVA AI Factory también hicimos una visualización de datos de jugadores y equipos). Tampoco encontramos el problema en la redacción del informe, que nunca llegaba a concluir que sólo podía ganar Alemania.

Lo que sí que fue un problema es la interpretación del resultado que le dieron algunos medios y el público general, ya que muchos interpretaron ‘gana Alemania’ con unos números que no lo afirmaban: la probabilidad estaba tan fragmentada, que si para Alemania era de un 24%, había un 76% de que ganase cualquier otro equipo, ¿no?

Los humanos tendemos a simplificar: el wet bias

Este fenómeno, por el que a los humanos no se nos da bien evaluar escenarios basados en probabilidades, es bien conocido por los meteorólogos. En 2002 fue desvelado un fenómeno bautizado como el sesgo húmedo (“wet bias”): la observación de que los servicios de meteorología en algunos medios estadounidenses solían inflar deliberadamente la probabilidad de precipitación, para que fuese mucho mayor a la que realmente habían calculado. En su conocido libro “The Signal and the Noise”, el estadístico y divulgador de datos Nate Silver profundiza en el fenómeno y llega a atribuirlo a que los meteorólogos creen que la población, cada vez que ve una probabilidad de lluvia demasiado pequeña (digamos un 5%), lo interpreta directamente como “no va a llover” (y, consecuentemente, se lleva una decepción el 5% de las veces).

Ello hace entrever que los humanos tendemos a simplificar la información para tomar decisiones. Y es que ese 5% de probabilidad de lluvia, o el 24% de probabilidad de que Alemania ganase el mundial, no hay que transformarlo en una decisión de blanco o negro, sino tomarlo como información para analizar escenarios. El propio Nate Silver, en su post “The media has a probability problem” o en su última charla en Spark Summit 2020, analiza esta limitación que tenemos las personas para construir escenarios dadas unas probabilidades, ilustrándolo con ejemplos de pronóstico de huracanes o las elecciones en EEUU de 2016. Como argumenta Kiko Llaneras en su artículo “En defensa de la estadística”, toda predicción tiene que caer del lado improbable alguna vez.

Diseñando algoritmos correctamente desde el principio

Quienes trabajamos con Machine Learning en el diseño de productos pensados para ser usados por personas creemos que no debemos reproducir ese mismo error de tomar los resultados de pronósticos como absolutos. Nos corresponde entender bien qué nivel de confianza tiene un sistema de Machine Learning respecto al resultado que ofrece, y transmitirlo adecuadamente a los receptores de la información.

Por ejemplo, si queremos diseñar un algoritmo de pronóstico de los gastos que tendrá un cliente, para informarle a través de la app de BBVA, nos interesa poder analizar cómo de seguro está el algoritmo en cada pronóstico, y quizás descartar los casos donde no tengamos alta seguridad.

Sorprendentemente, muchos algoritmos de pronóstico están diseñados de manera que pueden inducir a un error de interpretación similar al que describíamos en el caso del mundial. Esto es porque la estimación que proporciona un modelo de pronóstico (por ejemplo, el gasto del siguiente mes), y que toma información observada en el pasado (gasto en los meses anteriores) resulta en forma de un único valor. Y ya hemos comentado lo que puede suceder si reducimos todo sólo al valor más probable. Sería más interesante que el sistema fuese capaz de proporcionar un rango (el gasto estará entre 100 y 200 euros), y “atreverse” a reducir el rango cuando está muy seguro (por ejemplo si se detectan gastos fijos recurrentes) o ampliarlo si no lo está (por ejemplo si estamos en un período más impredecible como el vacacional), caso por caso.

En BBVA AI Factory hemos trabajado en una línea de investigación, junto con la Universidad de Barcelona, para tratar de desarrollar ese tipo de algoritmos, usando técnicas de pronóstico con redes neuronales. Esta línea ya la habíamos comentado en otros posts y ha dado como resultado publicaciones, incluyendo una en la prestigiosa conferencia NeurIPS 20191.

Gracias a esta labor de investigación, ahora tenemos algoritmos capaces de hacer pronósticos que resultan en un rango de incertidumbre, o una función matemática de distribución, en lugar de un solo valor, lo cual nos da información más completa.

¿Podemos confiar en las cajas negras? (Spoiler: Sí, con ciertos trucos)

Sin embargo, nos hemos encontrado un obstáculo más: muchas veces, los equipos de ciencia de datos utilizamos modelos que no hemos creado nosotros: modelos de otros, de librerías de código o APIs externas, o de paquetes de software. Si tenemos un sistema de pronósticos que ya está en marcha (por ejemplo, estimación de gastos del siguiente mes, o estimación de saldo de los próximos días), y por alguna buena razón no lo podemos sustituir, ¿podemos diseñar otro algoritmo que estime cómo de seguro está el primero, sin tener que sustituirlo o llegar a modificarlo?

La respuesta es afirmativa y ha sido descrita en nuestro reciente artículo, “Building Uncertainty Models on Top of Black-Box predictive APIs”, publicado en IEEE Access y firmado por los autores de BBVA AI Factory y de la Universidad de Barcelona Axel Brando, Damià Torres, José A. Rodríguez Serrano y Jordi Vitrià. En él, describimos un algoritmo de red neuronal que transforma el pronóstico dado por cualquier sistema ya existente en un rango de incertidumbre. Distinguimos dos casos: el primero, donde conocemos los detalles del sistema que queremos mejorar. Pero también tratamos el caso donde el sistema que queremos mejorar sea lo que llamamos una caja negra, es decir, un sistema que usamos para generar pronósticos pero que no podemos modificar y que no sabemos cómo ha sido construido. Un caso que se da frecuentemente en la realidad, por ejemplo, al usar software de un proveedor.

Esto abre la posibilidad de usar cualquier sistema de pronóstico disponible, que trabaje dando estimaciones puntuales y, sin tener que modificarlo, “aumentarlo” con la capacidad de proporcionar un rango de incertidumbre, como se indica esquemáticamente en la figura anterior. Hemos verificado el sistema en casos de pronóstico bancario y en casos de predicción de consumo eléctrico. Dejamos el enlace al artículo por si otros investigadores, científicos de datos o cualquier persona interesada pueda consultar los detalles.

El reto: traducir la fiabilidad a lenguaje humano

Con este trabajo, hemos cubierto el reto de diseñar un sistema de pronóstico que proporcione más información. Pero sigue sin resolver la pregunta fundamental que hacíamos al inicio: si construimos productos basados en Machine Learning, ¿cómo transferir al usuario final esa información de una manera que entienda que es una estimación útil, pero que podría tener errores?

Esto sigue siendo un tema abierto. Recientemente, una presentación de Apple sobre diseño de productos con machine learning arrojaba algo de luz sobre este aspecto: sugerían comunicar la información incierta en términos de alguna cantidad que apele al usuario. Mejor decir “si esperas a reservar, podrías ahorrar 100 euros”, que “la probabilidad de que el precio baje es de 35%”. La última fórmula (la más utilizada generalmente) podría originar los mismos problemas de interpretación que se produjeron con el caso de Alemania en el mundial. Si los humanos no somos animales de mentalidad estadística, quizás el reto sea traducir la probabilidad a lenguaje humano.