Cómo el aprendizaje por refuerzo ayuda a los minoristas

Introducción



¡Hola! Nuestro equipo de Glowbyte Advanced Analytics desarrolla soluciones de ML para industrias aplicadas (minorista, banca, telecomunicaciones, etc.). Muchas tareas requieren soluciones no estándar. Uno de ellos es la optimización de las cadenas de comunicación con el cliente mediante Reinforcement Learning (RL), al que decidimos dedicar este artículo.



Hemos dividido el artículo en tres bloques: introducción al problema de la optimización de las cadenas de comunicación; introducción a RL; y en el tercer bloque, combinamos 1 y 2 juntos.



imagen



La tarea de optimizar las cadenas de comunicación



Para empezar, un pequeño glosario:



CRM es un sistema de gestión de relaciones con los clientes. Por lo general, incluye el proceso de acumular y analizar el conocimiento del cliente, que se utiliza para mejorar los niveles de ventas y servicio.



Un cliente es alguien que utiliza los servicios de una organización.



Atributos del cliente : el conocimiento acumulado sobre el cliente. Ejemplos:



  • Cheque promedio;
  • Frecuencia promedio de compras por mes;
  • Años;
  • Región de residencia.


Campaña de marketing \ Comunicación \ Oferta : ofertas promocionales que los clientes reciben de una organización. Ejemplos:



  • Ha recibido XXX puntos, tiene tiempo para gastar hasta YYY;
  • Para ti XXX descuento en productos de la marca YYY.


Una cadena de comunicaciones es una secuencia de campañas de marketing.



El programa de fidelización es un conjunto de actividades de marketing destinadas a aumentar el valor del cliente. Un ejemplo típico son las tarjetas de descuento.



Clúster de clientes : dividir a los clientes en grupos, dentro de los cuales los clientes son similares entre sí en cuanto al comportamiento del consumidor.



Un sistema de recomendación es un sistema que genera las mejores ofertas al cliente en términos de valor comercial.



LTV (valor de por vida) : el beneficio esperado del cliente durante todo el período de cooperación con él.



Se cree que al desarrollar un programa de fidelización, la tarea principal de un analista es crear un sistema de recomendación de primera clase que sepa qué, cuándo y en qué cantidades necesita un cliente en un momento dado. Sin duda, esto es importante e incluso genera beneficios, pero no es una tarea empresarial clave. Cualquier organización quiere, en primer lugar, desarrollar el hábito de sus clientes de utilizar sus servicios. El cliente ideal es aquel que utiliza los servicios exclusivamente de esta organización, trae una ganancia estable, recomienda servicios a amigos, mientras requiere un mínimo de costos del negocio. La lealtad del cliente no se gana instantáneamente y el trabajo de la organización es guiar al cliente desde el primer pedido hasta la compra regular de la manera más eficiente.



Por ejemplo, imagine un grupo escolar en el que el profesor no solo necesita explicar una regla o un algoritmo, es importante para él inculcar en los estudiantes el amor por el aprendizaje o la asignatura. Un profesor experimentado sabe que el proceso de aprendizaje no siempre es agradable, a veces incluso doloroso para ambas partes, pero el resultado final es importante. El profesor tiene su propio enfoque para cada alumno, teniendo en cuenta muchos factores individuales.



A diferencia de un pequeño grupo escolar, una organización puede tener decenas de millones de clientes, cada uno de los cuales debe ser criado por el mango. Para ello, no basta con adivinar el deseo una vez. Y está claro que esto va más allá de las capacidades humanas.



Entonces, ¿cuáles son nuestras notas introductorias?



  1. — (, LTV ). , , ;
  2. , , .;
  3. , , ;
  4. , , .1. , ( .2). , .


Nuestra solución a este problema se basa en el concepto de aprendizaje por refuerzo (o aprendizaje por refuerzo). Antes de proceder a la presentación de nuestro enfoque, hemos preparado una pequeña excursión a la teoría.



Aprendizaje reforzado. INTRO



Qué es y por qué?



La tarea del aprendizaje por refuerzo es formar un algoritmo óptimo para interactuar con un determinado entorno para lograr el resultado deseado.



Un ejemplo del uso de RL es encontrar una salida a un laberinto. Inicialmente, no se sabe nada sobre el laberinto. Al examinar diferentes opciones, el algoritmo aprende a encontrar el camino más corto hacia la salida.



imagen



¿Cuáles son las características de RL desde el punto de vista de ML?



El aprendizaje por refuerzo es una clase separada de algoritmos de aprendizaje automático. Como regla, inicialmente falta información sobre el medio ambiente, es decir, no hay ejemplos etiquetados para la capacitación.



La peculiaridad de RL es que puede probar diferentes acciones, sacar una conclusión sobre su éxito, acumular el conocimiento adquirido y utilizarlo en la siguiente elección. Y tantas veces. Un proceso de aprendizaje iterativo, en el que el algoritmo explora el entorno de forma independiente, es una de las principales diferencias de RL.



¿En qué se diferencia RL de la enumeración aleatoria de todas las opciones?



Primero, con la ayuda del RL clásico (sin usar redes profundas), puede hacer que la enumeración sea secuencial y eficiente. Uno de los principios básicos de RL es la exploración, que se alterna con la explotación del conocimiento. En otras palabras, nada nos impide combinar la aplicación del modelo y las pruebas, lo principal es mantener el equilibrio.



En segundo lugar, no en todas las tareas es posible resolver todas las situaciones existentes. En estos casos, los algoritmos avanzados de RL permiten generalizar el conocimiento acumulado a nuevos casos. Sin embargo, incluso en este caso, permanece la idea de realizar pruebas y aplicaciones conjuntas.



¿Qué significa el algoritmo óptimo para interactuar con el entorno?



Las ganancias instantáneas no siempre garantizan el éxito a largo plazo.



Por ejemplo, en el juego de ajedrez, capturar la pieza de un oponente puede resultar en pérdidas más caras.



Sin embargo, al elegir una acción específica, podemos asumir que estaremos esperando el siguiente paso. En el siguiente paso, a su vez, puede asumir lo que sucederá a continuación. Etc. Todo este conocimiento se puede tener en cuenta a la hora de elegir la siguiente acción. Así, se construye una estrategia de comportamiento.



¿Dónde se usa?



En juegos. Además, hay éxitos en la enseñanza de robots, bots de negociación y sistemas de recomendación. Algunas referencias interesantes:





Antes de profundizar en los detalles de la terminología, proporcionamos ejemplos que ilustran algunas de las características conceptuales de RL.



Principiantes de ejemplo



Tradicionalmente, comencemos con el bandido de múltiples brazos.



Considere una máquina tragamonedas con N asas. Solo se puede levantar un asa de la máquina a la vez.



Objetivo: identificar la acción (es decir, el mango) que brinda la máxima recompensa.



Solución: podemos tirar de cada asa muchas veces. Luego, como la "acción óptima", elegimos el mango con la recompensa promedio más alta.



Y si en el futuro elegimos la mejor acción todo el tiempo, esa estrategia se llamará codiciosa .



Obviamente, dicha estrategia solo funcionará en un entorno estacionario (es decir, donde no hay cambios con el tiempo). En un entorno no estacionario(por ejemplo, alguien cambia la configuración de la máquina de vez en cuando) con el tiempo, cuando se utiliza una estrategia codiciosa, no habrá un resultado óptimo.



Además de la estrategia codiciosa, hay otras:



  • ε-estrategia codiciosa : enϵ% de casos elegimos la acción óptima, en (1ϵ)% - aleatorio;
  • Estrategia de límite de confianza superior (UCB) : al elegir una acción, se utiliza un coeficiente de ponderación, cuyo valor depende de qué tan bien se prueba el evento (es decir, cuanto menos estudiado el evento, mayor es la probabilidad de elegir esta acción);
  • Softmax: cuanto mayor sea el beneficio esperado, mayor será la probabilidad de elegir esta acción.


El problema de los bandidos de múltiples brazos es un ejemplo del problema más simple en el que inicialmente no sabemos nada sobre el sujeto de observación, es decir, aprendemos a interactuar con él desde cero. La solución a este problema se basa en prueba y error (muy vital) y a medida que adquirimos experiencia, nuestras acciones se vuelven cada vez más exitosas.



Lo que aprendimos del ejemplo:



  • El ensayo y error también es un método;
  • La enumeración aleatoria se puede hacer más eficiente utilizando diferentes variantes de estrategias;
  • Entornos estacionarios y no estacionarios separados.


Ejemplo intermedio



Ahora podemos complicar un poco la tarea y considerar una caña como ejemplo:



imagen



un carro con una caña puede moverse “izquierda” y “derecha”.



Objetivo: debes aprender a mantener la caña en posición vertical el mayor tiempo posible.



Diferencia con la tarea anterior: ahora es necesario tener en cuenta parámetros adicionales: ángulo de inclinación(a) y velocidad de la varilla (v)y tomar una decisión basada en esta información.



La tarea parece más complicada porque las combinaciones(a;v)bastante y probar cada uno de ellos muchas veces no funcionará.



Cualquier combinación(a;v)llamado estado . El número de estados puede ser continuo o finito. Los algoritmos de estado finito son generalmente más fáciles de implementar.



Resulta que el estado es un conjunto de algunos parámetros del sistema. Existe una suposición importante en la teoría de RL de que este conjunto de parámetros debe describir completamente el estado del sistema. Es decir, no debería importarnos lo que le pasó al sistema en los pasos anteriores, solo es importante lo que observamos en un momento dado en el tiempo.



Lo que aprendimos del ejemplo:



  • Al elegir la acción óptima, es necesario tener en cuenta el estado del sistema. El número de estados afecta la complejidad del algoritmo;
  • Los parámetros que describen el estado del sistema deben proporcionar información completa sobre el sistema en el momento actual.


Ejemplo avanzado



Ahora veamos el juego de ajedrez.



El número de posibles posiciones de las piezas en el tablero se expresa en 52 dígitos. Y esta no es la única dificultad. La diferencia con las dos tareas anteriores es que en el caso del ajedrez es importante elegir no la acción que traerá el máximo resultado ahora, sino la que llevará a la victoria en el futuro (después de muchos pasos hacia adelante).



Lo que aprendimos del ejemplo:



  • Al tomar una decisión, considere el efecto a largo plazo, no el beneficio inmediato.


Ahora, usando ejemplos, definiremos los términos RL generalmente aceptados.



Terminología básica de RL



Un agente es un sujeto que interactúa con el entorno, realiza determinadas acciones, recibe retroalimentación del mismo y lo recuerda.



  • Por ejemplo, un motor que impulsa un carro con una varilla; el bandido de armas múltiples son agentes.


Entorno : el lugar en el que existe el agente y del que recibe comentarios.



La retroalimentación que recibe el agente del entorno suele tener cierta incertidumbre.



  • Por ejemplo, cuando un carro con barra hace un movimiento, la retroalimentación de la acción realizada es el resultado de que la barra caiga o no. Carro y barra - mediano.


Estado : cualquier conocimiento que ayude a tomar decisiones. Los estados se refieren al medio ambiente y lo definen de manera única en cada momento. Como regla, dichos estados se escriben como un conjunto de parámetros, matrices o tensores de orden superior.



  • Por ejemplo, la posición actual de las piezas en un tablero de ajedrez es un estado.


Acción : acciones que están disponibles para el agente. Como regla general, el número de acciones en el espacio es finito.

  • Por ejemplo, los movimientos de una barra hacia la derecha o hacia la izquierda son acciones.


Recompensa : retroalimentación instantánea que recibe un agente por sus acciones. Es decir, es el resultado de la acción realizada. La recompensa es siempre un número.



  • Por ejemplo, ganar un autómata en un problema de bandidos con varios brazos es una recompensa.


Objetivo : como regla general, el objetivo del agente es maximizar la recompensa total. En otras palabras, el objetivo final es maximizar la recompensa no en el paso actual, sino la recompensa final basada en los resultados de la secuencia de pasos.



  • Por ejemplo, nuestro objetivo no es sujetar la caña una sola vez, sino el mayor tiempo posible.


Estrategia : mapear estados en acciones. Por ejemplo, la probabilidad de elegir la acción A en el estado S.



Enunciado formal del problema



  1. En cada paso, el medio ambiente puede estar en el estado sS...
  2. En cada paso, el agente selecciona una acción del conjunto de acciones disponibles. aA de acuerdo con alguna estrategia π.
  3. El entorno le dice al agente cuál es la recompensa. r recibió por ello y en qué condición sS después de eso resultó.
  4. El agente ajusta la estrategia π.


Todo parece sencillo. Hay una pregunta sin resolver: de dónde proviene la misteriosa estrategia π , es decir, cómo toma el agente una decisión en cada paso.



Dado que en la parte final del artículo se propondrá una solución basada en Q-learning, nos centraremos deliberadamente solo en métodos tabulares.



Algoritmos tabulares RL



Algunos de los métodos fundamentales de RL son métodos tabulares, utilizados para tareas en las que los conjuntos de estados y acciones son finitos. Un rasgo característico de tales métodos es el uso de tablas de acción de estado. Las filas suelen ser estados diferidos, las columnas son acciones. Las celdas contienen los valores de la función de valor.



imagen



Q(si;aj) - el valor de la acción aj capaz de si... A grandes rasgos, este es el beneficio esperado que recibiremos si elegimos una acciónajser capaz si... En el primer paso, los valoresQ(si;aj)se inicializan con ceros, por ejemplo.



Usando el ejemplo del laberinto, la tabla de acción de estado inicial podría verse así:



imagen



Aquí, el estado es la posición (celda del laberinto) en la que se encuentra el agente. Después de realizar cualquier acción, nuestro agente cambia de estado y recibe una Recompensa. En esta tarea, la recompensa puede ser la siguiente:



  • 1 si el objeto ha encontrado una salida del laberinto;
  • 0 de lo contrario.


Además, una vez que el agente ha recibido comentarios reales del entorno, el valor Q(si;aj)corregido. Los algoritmos de corrección son diferentes, por ejemplo, el método de Monte Carlo, SARSA, Q-learning. Lea más sobre ellos aquí o aquí .



Por ejemplo, las fórmulas Q-learning y SARSA se ven muy similares a primera vista:



imagen



ambos métodos usan el valor esperado de la acción en el siguiente paso. Se recibe de manera muy simple: digamos que el agente está en el estadosi y realiza la acción aj... Entonces el entorno le informa al agente que como resultado de su acción recibe una recompensari y nueva condición sk... Usando la tabla Estado-Acción, puede encontrar la fila con el estadosky determinar qué valor aportará esta o aquella acción.



La diferencia es que en Q-learningQ(sk;a)Siempre es el valor máximo en un nuevo estado. Si bien el método SARSA asume que el agente simula la elección de acción en el estadosk, por ejemplo, según la estrategia ε-codiciosa o UCB. Cuando se usa la estrategia codiciosa, los métodos son equivalentes.



La desventaja de tales algoritmos es la necesidad de almacenar la tabla State-Action. Algunas tareas pueden tener un gran estado y espacio de acción, lo que hace que sea imposible utilizar métodos de tabla clásicos. En tales casos, se utilizan enfoques para aproximar los valoresQ(si;aj)utilizando redes neuronales.



La programación dinámica puede ser una alternativa a los métodos de tabla. No nos detendremos en estos algoritmos, pero recomendamos leer el libro Aprendizaje por refuerzo de R. S. Sutton y E. G. Barto.



Aquí es donde terminamos la teoría y luego hablamos sobre cómo se puede usar el aprendizaje por refuerzo en una tarea aplicada.



Encontrar la mejor estrategia de incentivos para el cliente utilizando Reinforcement Learning



Declaración del problema en términos comerciales



Restricciones bajo las cuales se desarrolló nuestro enfoque:



  • La solución debe ser flexible a las limitaciones de la política de comunicación con los clientes;
  • La función a optimizar debe estar impulsada por objetivos comerciales y puede ser más compleja que una simple respuesta;
  • El sistema debe adaptarse a los cambios en el comportamiento del cliente sin involucrar a un experto;
  • ( , , , );
  • .


RL



Entonces,

Agent and Environment es un sistema de programa de fidelización que envía comunicaciones al cliente con propuestas de marketing y al propio cliente.



Estado es el estado del cliente, que se caracteriza por los atributos del cliente.



Las acciones son ofertas de marketing (por ejemplo, "obtenga un X% de descuento en la compra Y"). Se asume que la lista de propuestas es fija y finita.



La recompensa es una función de cambiar el comportamiento del cliente (por ejemplo, aumentar los ingresos o responder a una campaña dirigida).



imagen



Enfoque de solución



Ahora veamos las posibles soluciones usando los métodos tabulares de Aprendizaje por refuerzo.



El algoritmo de solución que utiliza Q-Learning o Sarsa puede ser el siguiente:



1. Definición de estados de clientes



El estado del cliente se puede especificar mediante los atributos del cliente. La mayoría de estos atributos son números reales, por lo que antes de usar métodos tabulares, los atributos deben discretizarse para obtener un conjunto finito de estados.



En nuestra solución, utilizamos los clústeres obtenidos como resultado de agrupar la base de clientes en función de los atributos seleccionados como estados del cliente. El número de clústeres afecta la rapidez con que aprende el algoritmo. Las recomendaciones generales son las siguientes:



  • para poder gestionar el flujo de clientes de clúster a clúster, es necesario que la lista de atributos incluya aquellos que se pueden cambiar bajo la influencia de la disponibilidad y reacción a las ofertas de marketing;
  • dentro de cada grupo, los clientes deben tener un comportamiento homogéneo;
  • la actualización de los atributos debería ser posible de forma regular;
  • en cada clúster, el número de clientes debe ser superior al mínimo establecido (el mínimo puede deberse, por ejemplo, a restricciones sobre el número mínimo de clientes para que los resultados sean significativos)


2. Elección de la recompensa



La elección de la recompensa es la etapa más importante en el desarrollo del sistema. Para esta tarea, la recompensa puede caracterizar el éxito de la campaña. Por ejemplo, las posibles opciones son:



  • Conversión por oferta;
  • Aumento en respuesta a una oferta;
  • Ingresos específicos por participante de la campaña;
  • Beneficio específico teniendo en cuenta los costes;
  • ...


Volviendo al problema de aumentar la lealtad del cliente, la métrica objetivo puede ser LTV o la métrica de proximidad del cliente al segmento leal.



En cualquier caso, la elección de la recompensa debe estar en consonancia con los objetivos del marketing.



PS Algunas de las opciones de remuneración propuestas se calculan agregadas por un grupo de clientes (por ejemplo, el aumento en la respuesta a las ofertas es la respuesta en el grupo objetivo menos la respuesta en el grupo de control). En este caso, sería más correcto decir que elegimos una acción no para un cliente, sino para un grupo de clientes (que se encuentran en el mismo estado), dentro de los cuales se calcula la recompensa.



3. Elección de posibles acciones



Las acciones son propuestas de marketing que se pueden enviar al cliente. Al elegir las campañas de marketing que se utilizarán en el sistema, tenga en cuenta:



  • la propuesta de marketing no debe cambiar de un lanzamiento a otro;
  • la elección del número de oraciones afecta la tasa de aprendizaje del algoritmo;
  • Se debe considerar un escenario cuando ninguna de las campañas es adecuada para el estado (por ejemplo, todas las variantes de oferta generan ingresos negativos). En este caso, una de las acciones puede ser "campaña predeterminada". Puede ser algún mailing básico que se pueda enviar a todos los clientes, o ninguna oferta (es decir, es posible que sea más rentable no enviar nada al cliente).


4. Diseño de un algoritmo de selección sujeto a restricciones



Al diseñar un algoritmo, se debe considerar:



  1. (, iphone, iphone).
  2. , .
  3. .
  4. Q-learning SARSA . , , .
  5. , ( ) -.


5. Inicialización de la tabla State-Action



Inicialmente, la tabla Estado-Acción se ve así:



imagen



Es posible un lanzamiento adicional del sistema en ausencia de lanzamientos históricos para las campañas seleccionadas, lo cual es una ventaja importante del concepto.



Sin embargo, si hay un cierto historial, entonces se puede usar, es decir, es posible un entrenamiento previo retrospectivo de la tabla State-Action:



  1. Inicializar la tabla State-Action con ceros
  2. Tome el histórico lanzamiento de la campaña X. Calcule los estados de los clientes que participan en la campaña en el momento del lanzamiento y al final de la campaña. Calcula la recompensa recibida en cada estado.
  3. De acuerdo con la fórmula de Q-learning o SARSA, vuelva a calcular la tabla State-Action teniendo en cuenta los valores esperados de los valores de la campaña en el próximo lanzamiento.


6. Entrenamiento del algoritmo en lanzamientos piloto



El objetivo de nuestro sistema es aprender a seleccionar las mejores ofertas para toda la base de clientes. Sin embargo, en la etapa de prueba del sistema, recomendamos realizar lanzamientos piloto en una pequeña muestra representativa de clientes.



A lo que debe prestar atención en esta etapa:



  1. Cambios en los valores en la tabla Estado-Acción: a medida que se acumula la historia, los valores en la tabla Estado-Acción deberían volverse cada vez más estables;
  2. Dinámica positiva del efecto de las campañas: de lanzamiento en lanzamiento, la efectividad de cada propuesta de marketing debe crecer.


Tan pronto como (1) y (2) alcancen una meseta, podemos suponer que el sistema está listo para implementarse en toda la base de clientes.



7. Sistema de desenrollado



Antes de comenzar a implementar el sistema, es recomendable analizar la sostenibilidad de los resultados de la campaña en el contexto de cada estado del cliente. Como muestra la práctica, a pesar de la estabilidad general, en algunos estados puede haber historia insuficiente o los estados mismos pueden ser inestables en el tiempo => tenemos un resultado inestable.



Por ello, hemos desarrollado las siguientes recomendaciones para rodar:



  • Excluya las condiciones inestables del balanceo;
  • Utilice una estrategia ε-codiciosa para que el sistema pueda ajustarse de forma independiente a los cambios en el comportamiento de la base de clientes;
  • Continúe con el monitoreo regular del rendimiento del sistema.


Entonces, en este artículo hemos intentado describir el concepto de alto nivel de nuestro enfoque. Los resultados de la operación del sistema basados ​​en el algoritmo propuesto se pueden encontrar aquí .



Conclusión



Hemos descrito el uso de RL para resolver el problema de seleccionar la cadena de acciones óptima. Sin embargo, cabe mencionar que un concepto similar se puede aplicar a otras tareas de marketing, por ejemplo, sistemas de recomendación, elegir el canal / horario de comunicación óptimo, o seleccionar un banner personal en el sitio. A pesar de que el aprendizaje por refuerzo es inferior en popularidad a los métodos tradicionales de aprendizaje automático, queríamos transmitir al lector que RL puede ser una solución excelente si existe la necesidad de mantener el reentrenamiento automático del sistema o entrenar completamente el sistema desde cero.



El equipo de GlowByte desea agradecer a X5 Retail Group la oportunidad de implementar este caso.



All Articles