En la actualidad, debido al aumento de productos y servicios disponibles, cada vez es más difícil para un usuario encontrar lo que busca. Por esta razón, tener un buen sistema de recomendación es crucial para el éxito de una plataforma de comercio electrónico.
Los sistemas de recomendación son herramientas que, a día de hoy, son ampliamente utilizadas. Las vemos en plataformas de streaming, aplicaciones de viajes, dietas, incluso los productos bancarios las usan para mejorar la experiencia de usuario al proporcionar recomendaciones personalizadas y relevantes.
Una herramienta potente pero no muy conocida para construir estos sistemas son los Multi-Armed Bandits, una familia de algoritmos que se enmarcan en el contexto del aprendizaje por refuerzo y que permiten tomar decisiones en tiempo real en un entorno incierto.
En este artículo profundizaremos en el mundo de los bandits y sus aplicaciones a los sistemas de recomendación, resaltando los beneficios y limitaciones de este enfoque.
Conceptos básicos del aprendizaje por refuerzo o Reinforcement Learning
El aprendizaje por refuerzo (o Reinforcement Learning) es un área del Machine Learning diferente a la del aprendizaje supervisado o no supervisado. A diferencia de los anteriores, los modelos de aprendizaje por refuerzo aprenden a través de la experiencia, por retroalimentación de recompensas o castigos con el objetivo de maximizar una recompensa acumulada.
Los conceptos claves del Reinforcement Learning se pueden sintetizar en los siguientes:
- Agente: el encargado de tomar decisiones.
- Política: la estrategia que define cómo toma el agente sus decisiones.
- Acción: la decisión que toma el agente en un momento dado.
- Entorno o ambiente: el contexto en el que el agente toma acciones y recibe recompensas.
- Estado: la descripción actual del ambiente en un momento dado.
- Recompensa: la medida de éxito.
Otro concepto importante dentro del aprendizaje por refuerzo es el de “algoritmo stateless”, que se dice de aquel que no toma sus decisiones basándose en el estado previo del entorno. Este tipo de algoritmo sólo toma las decisiones basándose en las recompensas obtenidas previamente y, opcionalmente, en el estado actual. El Multi-Armed Bandit (MAB) que veremos a continuación, es un algoritmo stateless.
¿En qué consiste el Multi-Armed Bandit problem?
El Multi-Armed Bandit problem es un problema stateless clásico del aprendizaje por refuerzo. Se plantea como un experimento hipotético en el que un jugador recibe una máquina tragaperras con varios brazos y sabe que unos le van a dar más recompensa que otros, pero no sabe cuáles. Su objetivo es ir tirando de los brazos para obtener la mayor recompensa posible al terminar de jugar. La pregunta que le surge es: ¿Cuál es la mejor estrategia que tengo que seguir para conseguir el mayor beneficio a largo plazo?
¿Debería explotar su conocimiento actual para maximizar la recompensa inmediata o debería explorar nuevas opciones para obtener información valiosa que pueda mejorar su rendimiento a largo plazo?
Esta situación se conoce como el dilema de exploración / explotación, que se da frecuentemente en el ámbito del aprendizaje por refuerzo, pero también en nuestra vida diaria. ¿Vamos a cenar a un restaurante nuevo a riesgo de que no nos guste o volvemos a ir a aquel que ya sabemos que va a estar bien?
Una de las claves de los algoritmos de Multi-Armed Bandits (MAB) es que equilibran esta exploración y explotación: probar recomendaciones nuevas (explorar) y mostrar las recomendaciones con mayor probabilidad de éxito (explotar).
La formulación formal del problema se puede resumir, a grandes rasgos, con el siguiente esquema. Para cada tiempo t, se tiene:
Aplicaciones a negocio del MAB
Algunas de las aplicaciones de los MAB en la actualidad son:
- Selección de titulares: Las noticias tienen una vida útil muy corta y los algoritmos de bandits pueden determinar más rápido que un test A/B clásico cuál es el mejor titular o CTA.
- Campañas cortas y promociones: Lo mismo sucede para una campaña publicitaria corta – de una semana, un mes… -, en la que no se puede perder la mitad del tiempo explorando porque, una vez que se aprenda la mejor opción, ya sería tarde para explotarla.
- Optimización de tratamientos médicos: Ayuda a maximizar la eficacia de los tratamientos eligiendo gradualmente el más efectivo, basándose en la retroalimentación en tiempo real de los resultados.
En particular, la aplicación a sistemas de recomendación tiene mucha relevancia. Desde un punto de vista de negocio, al ofrecer una serie de artículos a un usuario no estamos interesados en predecir si va a hacer clic o no, sino en mostrar el producto en el que sea más probable que haga clic, es decir, en maximizar la recompensa acumulada. Gracias al compromiso entre explorar y explotar, aplicando un MAB a un sistema de recomendación podemos compensar el explorar diferentes opciones para conocer más sobre lo que le gusta al usuario, con el explotar lo que ya sabemos que va a funcionar para maximizar la recompensa.
Algunas políticas destacadas del MAB
¿Y cómo escoge el agente la mejor opción? En la literatura podemos encontrar muchos algoritmos diferentes que buscan este objetivo: algunos hacen uso de variables explicativas (contexto), otros no las incluyen; algunos usan un enfoque determinista, otros un enfoque bayesiano, etc.
Sin entrar en detalles matemáticos, algunas de las políticas más utilizadas son las siguientes:
- ε-greedy: Con una probabilidad ε el algoritmo elige una recomendación al azar para explorar, mientras que con una probabilidad 1- ε el algoritmo elige la recomendación con la mayor probabilidad de éxito hasta el momento. El valor de ε puede ajustarse en función del nivel deseado de exploración vs. explotación.
- UCB1: En el algoritmo anterior sólo se tenía en cuenta cuál era el brazo con mayor recompensa observada, pero no se tenía en cuenta la incertidumbre, es decir, cuánto se sabe sobre el brazo en cuestión. Este algoritmo modifica el anterior teniendo en cuenta tanto la mayor probabilidad de éxito de un brazo, como la incertidumbre asociada a este.
- Bernoulli Thompson Sampling: Este algoritmo se basa en un enfoque bayesiano y se puede aplicar cuando la recompensa es binaria. La incertidumbre de cada recomendación se modela con una distribución de probabilidad, en particular, utiliza una distribución beta para calcular la probabilidad de éxito de cada recomendación y elegir la mejor. Las distribuciones de cada brazo se actualizan iteración a iteración en función de los resultados obtenidos.
- LinUCB: Esta política está basada en la UCB1, pero incluye las variables de contexto suponiendo que la recompensa depende linealmente de ellas.
- LinTS: El algoritmo LinTS es la competencia bayesiana del LinUCB. Adapta el Thompson Sampling para incluir las variables de contexto y también utiliza un modelo lineal para calcular la probabilidad de éxito de cada recomendación y elegir la mejor.
Conclusión
En conclusión, los problemas de los MAB son un área interesante para explorar el campo del aprendizaje por refuerzo y son una alternativa para desarrollar sistemas de recomendación en situaciones en las que el dato etiquetado es muy limitado o, directamente, no existe.
Uno de los mayores beneficios de estos algoritmos es la capacidad de optimizar la experiencia del usuario de manera incremental y en tiempo real, con la capacidad añadida de personalizar las recomendaciones con la información actual del usuario. Esto los hace muy útiles para situaciones en las que se necesita tomar una decisión al instante, sin tener que esperar a recopilar una cantidad significativa de datos etiquetados.
Sin embargo, también existen contras. Hay muchas políticas e implementaciones diferentes disponibles para resolver este tipo de problema y evaluarlas utilizando datos generados por una política diferente no es trivial. Además, la elección de la mejor política depende en gran medida de la base de datos específica del problema, lo que hace que una implementación pueda no ser extrapolable a otro caso de negocio.
Si quieres saber más sobre este tipo de algoritmos, sistemas de recomendación, modelos predictivos o sobre decide4AI, contáctanos o síguenos en las redes sociales (Linkedin, Twitter, Youtube).