Todos los días, las agencias de publicidad digital publican miles de millones de anuncios en sitios web de noticias, motores de búsqueda, redes sociales, sitios web de transmisión de video y otras plataformas. Y todos quieren responder la misma pregunta: ¿cuál de los muchos anuncios que tienen en su catálogo es más probable que atraiga a un determinado espectador? Encontrar la respuesta correcta a esta pregunta puede tener un gran impacto en los ingresos cuando se trata de cientos de sitios web, miles de anuncios y millones de visitantes.
Afortunadamente (para las agencias de publicidad, al menos), aprendizaje reforzado, la rama de la inteligencia artificial que se ha hecho famosa por masterización de juegos de mesa y video, proporciona una solución. Los modelos de aprendizaje por refuerzo buscan maximizar las recompensas. En el caso de los anuncios en línea, el modelo RL intentará encontrar el anuncio en el que es más probable que los usuarios hagan clic.
La industria de la publicidad digital genera cientos de miles de millones de dólares cada año y proporciona un interesante caso de estudio sobre los poderes del aprendizaje por refuerzo.
Pruebas ingenuas A / B / n
Para comprender mejor cómo el aprendizaje por refuerzo optimiza los anuncios, considere un escenario muy simple: usted es el propietario de un sitio web de noticias. Para pagar los costos de alojamiento y personal, ha firmado un contrato con una empresa para publicar sus anuncios en su sitio web. La compañía le ha proporcionado cinco anuncios diferentes y le pagará un dólar cada vez que un visitante haga clic en uno de los anuncios.
Su primer objetivo es encontrar el anuncio que genera la mayor cantidad de clics. En la jerga publicitaria, querrá maximizar su tasa de clics (CTR). El CTR es la proporción de clics sobre el número de anuncios mostrados, también llamado impresiones. Por ejemplo, si 1000 impresiones de anuncios le dan tres clics, su CTR será 3/1000 = 0.003 o 0.3%.
Antes de resolver el problema del aprendizaje por refuerzo, analicemos las pruebas A / B, la técnica estándar para comparar el rendimiento de dos soluciones de la competencia (A y B), como diferentes diseños de páginas web, recomendaciones de productos o anuncios. Cuando se trata de más de dos alternativas, se denomina prueba A / B / n.
[Leer:[Read:
]En las pruebas A / B / n, los sujetos del experimento se dividen aleatoriamente en grupos separados y a cada uno se le proporciona una de las soluciones disponibles. En nuestro caso, esto significa que mostraremos aleatoriamente uno de los cinco anuncios a cada nuevo visitante de nuestro sitio web y evaluaremos los resultados.
Digamos que ejecutamos nuestra prueba A / B / n para 100,000 iteraciones, aproximadamente 20,000 impresiones por anuncio. Aquí está la proporción de clics sobre impresiones de nuestros anuncios:
Anuncio 1:80 / 20.000 = CTR de 0,40%
Anuncio 2: 70/20 000 = CTR del 0,35%
Anuncio 3:90 / 20.000 = CTR del 0,45%
Anuncio 4:62 / 20.000 = CTR del 0,31%
Anuncio 5:50 / 20.000 = CTR del 0,25%
Nuestras 100.000 impresiones de anuncios generaron $ 352 en ingresos con un CTR promedio de 0.35%. Más importante aún, descubrimos que el anuncio número 3 funciona mejor que los demás, y seguiremos usándolo para el resto de nuestros espectadores. Con el anuncio de peor rendimiento (anuncio número 2), nuestros ingresos habrían sido de 250 dólares. Con el anuncio de mejor rendimiento (anuncio número 3), nuestros ingresos habrían sido de 450 dólares. Entonces, nuestra prueba A / B / n nos proporcionó el promedio de los ingresos mínimos y máximos y arrojó el conocimiento muy valioso de las tasas de CTR que buscamos.
Los anuncios digitales tienen tasas de conversión muy bajas. En nuestro ejemplo, existe una sutil diferencia del 0,2% entre nuestros anuncios con mejor y peor rendimiento. Pero esta diferencia puede tener un impacto significativo a escala. Con 1,000 impresiones, el anuncio número 3 generará $ 2 adicionales en comparación con el anuncio número 5. Con un millón de impresiones, esta diferencia se convertirá en $ 2,000. Cuando publica miles de millones de anuncios, un sutil 0,2% puede tener un gran impacto en los ingresos.
Por lo tanto, encontrar estas sutiles diferencias es muy importante en la optimización de anuncios. El problema con las pruebas A / B / n es que no es muy eficiente para encontrar estas diferencias. Trata a todos los anuncios por igual y debe ejecutar cada anuncio decenas de miles de veces hasta que descubra sus diferencias con un nivel de confianza confiable. Esto puede resultar en una pérdida de ingresos, especialmente cuando tiene un catálogo más grande de anuncios.
Otro problema con las pruebas clásicas A / B / n es que son estáticas. Una vez que encuentre el anuncio óptimo, tendrá que ceñirse a él. Si el entorno cambia debido a un nuevo factor (estacionalidad, tendencias de noticias, etc.) y hace que uno de los otros anuncios tenga un CTR potencialmente más alto, no lo sabrá a menos que ejecute la prueba A / B / n por todas partes. otra vez.
¿Qué pasaría si pudiéramos cambiar las pruebas A / B / n para hacerlas más eficientes y dinámicas?
Aquí es donde entra en juego el aprendizaje por refuerzo. Un agente de aprendizaje por refuerzo comienza sin saber nada sobre las acciones, recompensas y sanciones de su entorno. El agente debe encontrar una forma de maximizar sus recompensas.
En nuestro caso, las acciones del agente de RL son uno de los cinco anuncios que se muestran. El agente de RL recibirá un punto de recompensa cada vez que un usuario haga clic en un anuncio. Debe encontrar una forma de maximizar los clics en los anuncios.
El bandido de múltiples brazos
En algunos entornos de aprendizaje por refuerzo, las acciones se evalúan en secuencias. Por ejemplo, en los videojuegos, debes realizar una serie de acciones para alcanzar la recompensa, que es terminar un nivel o ganar una partida. Pero al publicar anuncios, el resultado de cada impresión de anuncio se evalúa de forma independiente; es un entorno de un solo paso.
Para resolver el problema de optimización de anuncios, usaremos un «bandido de múltiples brazos» (MAB), un algoritmo de aprendizaje por refuerzo que es adecuado para el aprendizaje por refuerzo de un solo paso. El nombre del bandido de múltiples brazos proviene de un escenario imaginario en el que un jugador está parado en una fila de máquinas tragamonedas. El jugador sabe que las máquinas tienen diferentes tasas de ganancias, pero no sabe cuál proporciona la mayor recompensa.
Si se apega a una máquina, podría perder la oportunidad de seleccionar la máquina con la tasa de ganancias más alta. Por lo tanto, el jugador debe encontrar una manera eficiente de descubrir la máquina con la mayor recompensa sin gastar demasiadas fichas.
La optimización de anuncios es un ejemplo típico de un problema de bandidos con múltiples brazos. En este caso, el agente de aprendizaje por refuerzo debe encontrar una manera de descubrir el anuncio con el CTR más alto sin desperdiciar demasiadas impresiones publicitarias valiosas en anuncios ineficientes.
Exploración vs explotación
Uno de los problemas que enfrenta todo modelo de aprendizaje por refuerzo es el desafío de “exploración versus explotación”. La explotación significa apegarse a la mejor solución que el agente de RL ha encontrado hasta ahora. Explorar significa probar otras soluciones con la esperanza de llegar a una que sea mejor que la solución óptima actual.
En el contexto de la selección de anuncios, el agente de aprendizaje por refuerzo debe decidir entre elegir el anuncio con mejor rendimiento y explorar otras opciones.
Una solución al problema de explotación-exploración es el algoritmo “épsilon-greedy” (ε-greedy). En este caso, el modelo de aprendizaje por refuerzo elegirá la mejor solución la mayor parte del tiempo, y en un porcentaje específico de casos (el factor épsilon) elegirá uno de los anuncios al azar.
Así es como funciona en la práctica. Digamos que tenemos un agente MAB ávido de épsilon con el factor ε establecido en 0.2. Esto significa que el agente elige el anuncio con mejor rendimiento 80% del tiempo y explora otras opciones el 20% del tiempo.
El modelo de aprendizaje por refuerzo comienza sin saber cuál de los anuncios funciona mejor, por lo que asigna a cada uno de ellos un valor igual. Cuando todos los anuncios son iguales, elegirá uno de ellos al azar cada vez que quiera publicar un anuncio.
Después de publicar 200 anuncios (40 impresiones por anuncio), un usuario hace clic en el anuncio número 4. El agente ajusta el CTR de los anuncios de la siguiente manera:
Anuncio 1: 0/40 = 0,0%
Anuncio 2: 0/40 = 0,0%
Anuncio 3: 0/40 = 0,0%
Anuncio 4: 1/40 = 2,5%
Anuncio 5: 0/40 = 0,0%
Ahora, el agente cree que el anuncio número 4 es el de mayor rendimiento. Para cada nueva impresión de anuncio, elegirá un número aleatorio entre 0 y 1. Si el número es superior a 0,2 (el factor ε), elegirá el número de anuncio 4. Si está por debajo de 0,2, elegirá uno de los otros anuncios en aleatorio.
Ahora, nuestro agente ejecuta otras 200 impresiones de anuncios antes de que otro usuario haga clic en un anuncio, esta vez en el anuncio número 3. Tenga en cuenta que de estas 200 impresiones, 160 pertenecen al anuncio número 4, porque era el anuncio óptimo. El resto se divide igualmente entre los demás anuncios. Nuestros nuevos valores de CTR son los siguientes:
Anuncio 1: 0/50 = 0,0%
Anuncio 2: 0/50 = 0,0%
Anuncio 3: 1/50 = 2,0%
Anuncio 4: 1/200 = 0,5%
Anuncio 5: 0/50 = 0,0%
Ahora, el anuncio óptimo se convierte en el anuncio número 3. Obtendrá 80% de las impresiones de anuncios. Supongamos que después de otras 100 impresiones (80 para el anuncio número tres, cuatro para cada uno de los demás anuncios), alguien hace clic en el anuncio número 2. Así es como se ve la nueva distribución de CTR:
Anuncio 1: 0/54 = 0,0%
Anuncio 2: 1/54 = 1,8%
Anuncio 3: 1/130 = 0,7%
Anuncio 4: 1/204 = 0,49%
Anuncio 5: 0/54 = 0,0%
Ahora, el anuncio número 2 es la solución óptima. A medida que publicamos más anuncios, las CTR reflejarán el valor real de cada anuncio. El mejor anuncio obtendrá la mayor parte de las impresiones, pero el agente seguirá explorando otras opciones. Por lo tanto, si el entorno cambia y los usuarios comienzan a mostrar reacciones más positivas a un determinado anuncio, el agente de RL puede descubrirlo.
Después de publicar 100.000 anuncios, nuestra distribución puede tener el siguiente aspecto:
Anuncio 1: 123 / 30,600 = 0.40% CTR
Anuncio 2: 67 / 18,900 = CTR del 0,35%
Anuncio 3: 187 / 41,400 = CTR del 0,45%
Anuncio 4:35 / 11,300 = CTR del 0,31%
Anuncio 5: 15 / 5,800 = CTR del 0,26%
Con el algoritmo ε-greedy, pudimos aumentar nuestros ingresos de $ 352 a $ 426 en 100,000 impresiones de anuncios y un CTR promedio de 0.42%. Esta es una gran mejora con respecto al modelo de prueba clásico A / B / n.
Mejorando el algoritmo ε-greedy
La clave del algoritmo de aprendizaje por refuerzo ε-codicioso es ajustar el factor épsilon. Si lo establece demasiado bajo, explotará el anuncio que cree que es óptimo a expensas de no encontrar una solución posiblemente mejor. Por ejemplo, en el ejemplo que exploramos anteriormente, el anuncio número cuatro genera el primer clic, pero a la larga, no tiene el CTR más alto. Los tamaños de muestra pequeños no representan necesariamente distribuciones verdaderas.
Por otro lado, si establece el factor épsilon demasiado alto, su agente de RL desperdiciará demasiados recursos explorando soluciones no óptimas.
Una forma de mejorar el algoritmo épsilon-greedy es definiendo una política dinámica. Cuando el modelo MAB es nuevo, puede comenzar con un valor épsilon alto para hacer más exploración y menos explotación. A medida que su modelo publica más anuncios y obtiene una mejor estimación del valor de cada solución, puede reducir gradualmente el valor épsilon hasta que alcance un valor de umbral.
En el contexto de nuestro problema de optimización de anuncios, podemos comenzar con un valor épsilon de 0.5 y reducirlo en 0.01 después de cada 1,000 impresiones de anuncios hasta que llegue a 0.1.
Otra forma de mejorar nuestro bandido de múltiples brazos es darle más peso a las nuevas observaciones y reducir gradualmente el valor de las observaciones más antiguas. Esto es especialmente útil en entornos dinámicos como anuncios digitales y recomendaciones de productos, donde el valor de las soluciones puede cambiar con el tiempo.
A continuación, se muestra una forma muy sencilla de hacer esto. La forma clásica de actualizar el CTR después de publicar un anuncio es la siguiente:
(resultado + resultados_pasados) / impresiones
Aquí, resultado es el resultado del anuncio mostrado (1 si se hace clic, 0 si no se hace clic), past_results es el número acumulado de clics que ha obtenido el anuncio hasta el momento, y impresiones es el número total de veces que se ha publicado el anuncio.
Para desvanecer gradualmente los resultados anteriores, agregamos un nuevo alfa factor (entre 0 y 1) y realice el siguiente cambio:
(resultado + resultados_pasados * alfa) / impresiones
Este pequeño cambio dará más peso a las nuevas observaciones. Por lo tanto, si tiene dos anuncios de la competencia que tienen el mismo número de clics e impresiones, aquellos cuyos clics sean más recientes se verán favorecidos por su modelo de aprendizaje por refuerzo. Además, si un anuncio tuvo una tasa de CTR muy alta en el pasado, pero ha dejado de responder en los últimos tiempos, su valor disminuirá más rápido en este modelo, lo que obligará al modelo RL a pasar a otras alternativas antes y desperdiciar menos recursos en el anuncio ineficiente.
Agregar contexto al modelo de aprendizaje por refuerzo
En la era de Internet, los sitios web, las redes sociales y las aplicaciones móviles han mucha información sobre cada usuario como su ubicación geográfica, tipo de dispositivo y la hora exacta del día en que ven el anuncio. Las empresas de redes sociales tienen aún más información sobre sus usuarios, incluida la edad y el género, los amigos y la familia, el tipo de contenido que han compartido en el pasado, el tipo de publicaciones que les gustaron o en las que hicieron clic en el pasado, y más.
Esta rica información les brinda a estas empresas la oportunidad de personalizar los anuncios para cada espectador. Pero el modelo de bandido de múltiples brazos que creamos en la sección anterior muestra el mismo anuncio para todos y no tiene en cuenta las características específicas de cada espectador. ¿Y si quisiéramos agregar contexto a nuestro bandido de múltiples brazos?
Una solución es crear varios bandidos con múltiples brazos, cada uno para un subcampo específico de usuarios. Por ejemplo, podemos crear modelos RL separados para usuarios en América del Norte, Europa, Medio Oriente, Asia, África, etc. ¿Y si también quisiéramos tener en cuenta el género? Entonces tendríamos un modelo de aprendizaje reforzado para usuarios femeninos en América del Norte, uno para usuarios masculinos en América del Norte, uno para usuarios femeninos en Europa, usuarios masculinos en Europa, etc. Ahora, agregue rangos de edad y tipos de dispositivos, y podrá ver que rápidamente se convertirá en un gran problema, creando una explosión de bandidos armados múltiples que se volverán difíciles de entrenar y mantener.
Una solución alternativa es utilizar un «bandido contextual», una versión mejorada del bandido de múltiples brazos que tiene en cuenta la información contextual. En lugar de crear un MAB separado para cada combinación de características, el bandido contextual utiliza «aproximación de funciones, ”Que intenta modelar el desempeño de cada solución en base a un conjunto de factores de entrada.
Sin entrar demasiado en los detalles (que podría ser el tema de otra publicación), nuestro bandido contextual utiliza aprendizaje automático supervisado para predecir el rendimiento de cada anuncio según la ubicación, el tipo de dispositivo, el género, la edad, etc. El beneficio del bandido contextual es que utiliza un modelo de aprendizaje automático por anuncio en lugar de crear un MAB por combinación de características.
Esto concluye nuestra discusión sobre la optimización de anuncios con aprendizaje por refuerzo. Las mismas técnicas de aprendizaje por refuerzo se pueden utilizar para resolver muchos otros problemas, como la recomendación de contenido y productos o la fijación de precios dinámicos, y se utilizan en otros dominios como la atención sanitaria, la inversión y la gestión de redes.
Este artículo fue publicado originalmente por Ben Dickson en TechTalks, una publicación que examina las tendencias en tecnología, cómo afectan la forma en que vivimos y hacemos negocios, y los problemas que resuelven. Pero también discutimos el lado malo de la tecnología, las implicaciones más oscuras de la nueva tecnología y lo que debemos tener en cuenta. Puedes leer el artículo original aquí.
Publicado el 28 de febrero de 2021-16: 00 UTC