Más allá de las suposiciones aprovechando las estadísticas bayesianas para una selección efectiva de títulos de artículos

Explorando más allá de las suposiciones Cómo usar estadísticas bayesianas para seleccionar títulos de artículos de manera efectiva

 

Introducción

 

Tener un buen título es crucial para el éxito de un artículo. Las personas gastan solo un segundo (si creemos en el libro de Ryan Holiday “Trust Me, I’m Lying”) decidiendo si hacer clic en el título para abrir todo el artículo. Los medios están obsesionados con optimizar la tasa de clics (CTR), es decir, el número de clics que recibe un título dividido por el número de veces que se muestra el título. Tener un título sensacionalista aumenta el CTR. Los medios probablemente elegirán un título con un CTR más alto entre los dos títulos porque esto generará más ingresos.

No estoy realmente enfocado en exprimir los ingresos por publicidad. Se trata más de difundir mi conocimiento y experiencia. Aún así, los espectadores tienen tiempo y atención limitados, mientras que el contenido en Internet es virtualmente ilimitado. Por lo tanto, debo competir con otros creadores de contenido para captar la atención de los espectadores.

¿Cómo elijo un título adecuado para mi próximo artículo? Por supuesto, necesito un conjunto de opciones para elegir. Con suerte, puedo generarlas por mi cuenta o preguntar a ChatGPT. ¿Pero qué hago después? Como científico de datos, sugiero realizar una prueba A/B/N para comprender qué opción es la mejor de manera basada en datos. Pero hay un problema. En primer lugar, necesito decidir rápidamente porque el contenido expira rápidamente. En segundo lugar, puede que no haya suficientes observaciones para detectar una diferencia estadísticamente significativa en los CTR, ya que estos valores suelen ser relativamente bajos. Por lo tanto, hay otras opciones además de esperar un par de semanas para decidir.

¡Afortunadamente, hay una solución! Puedo utilizar un algoritmo de aprendizaje automático llamado “multi-armed bandit” que se adapta a los datos que observamos sobre el comportamiento de los espectadores. Cuantas más personas hacen clic en una opción específica del conjunto, más tráfico podemos asignar a esa opción. En este artículo, explicaré brevemente qué es un “multi-armed bandit” de Bayes y mostraré cómo funciona en la práctica utilizando Python.

 

¿Qué es un Bandit Multi-armed de Bayes?

 

Los “multi-armed bandits” son algoritmos de aprendizaje automático. La versión de Bayes utiliza el método de Thompson sampling para elegir una opción en función de nuestras creencias previas sobre las distribuciones de probabilidad de los CTR, que se actualizan según los nuevos datos. Todas estas palabras relacionadas con la teoría de probabilidades y la estadística matemática pueden sonar complejas y abrumadoras. Permítanme explicar todo el concepto utilizando la menor cantidad de fórmulas posible.

Supongamos que solo hay dos títulos para elegir. No tenemos idea sobre sus CTR. Pero queremos tener el título de mayor rendimiento. Tenemos varias opciones. La primera es elegir el título en el que más creemos. Así es como funcionó durante años en la industria. La segunda opción asigna el 50% del tráfico entrante al primer título y el 50% al segundo título. Esto se hizo posible con el auge de los medios digitales, donde puedes decidir qué texto mostrar exactamente cuando un espectador solicita una lista de artículos para leer. Con este enfoque, puedes estar seguro de que el 50% del tráfico se asignó a la opción de mejor rendimiento. ¿Hay algún límite? ¡Por supuesto que no!

Algunas personas leerían el artículo dentro de un par de minutos después de ser publicado. Otras personas lo harían en un par de horas o días. Esto significa que podemos observar cómo respondieron los lectores “tempranos” a diferentes títulos y modificar la asignación de tráfico de 50/50 para asignar un poco más a la opción de mejor rendimiento. Después de un tiempo, podemos calcular nuevamente los CTR y ajustar la división. En última instancia, queremos ajustar la asignación de tráfico después de que cada nuevo espectador haga clic en el título o lo ignore. Necesitamos un marco para adaptar la asignación de tráfico de manera científica y automatizada.

Aquí es donde entra en juego el teorema de Bayes, la distribución Beta y el Thompson sampling.  

Supongamos que el CTR de un artículo es una variable aleatoria “theta”. Por diseño, se encuentra en algún lugar entre 0 y 1. Si no tenemos creencias previas, puede ser cualquier número entre 0 y 1 con igual probabilidad. Después de observar algunos datos “x”, podemos ajustar nuestras creencias y tener una nueva distribución para “theta” que se inclinará más hacia 0 o 1 utilizando el teorema de Bayes.

El número de personas que hacen clic en el título se puede modelar como una distribución binomial en la que “n” es el número de visitantes que ven el título y “p” es la tasa de clics del título. ¡Esta es nuestra verosimilitud! Si modelamos la priori (nuestra creencia sobre la distribución de la tasa de clics) como una distribución Beta y tomamos la verosimilitud binomial, el posterior también sería una distribución Beta con parámetros diferentes. En estos casos, la distribución Beta se llama una priori conjugada respecto a la verosimilitud.

La demostración de este hecho no es tan difícil, pero requiere algunos ejercicios matemáticos que no son relevantes en el contexto de este artículo. Por favor, consulte la hermosa demostración aquí:

La distribución Beta está acotada entre 0 y 1, lo que la convierte en un candidato perfecto para modelar la distribución de la tasa de clics. Podemos comenzar con “a = 1” y “b = 1” como parámetros de la distribución Beta que modela la tasa de clics. En este caso, no tendríamos creencias sobre la distribución, lo que hace que cualquier tasa de clics sea igualmente probable. Luego, podemos agregar datos observados. Como pueden ver, cada “éxito” o “clic” aumenta “a” en 1. Cada “fracaso” o “salto” aumenta “b” en 1. Esto sesga la distribución de la tasa de clics, pero no cambia la familia de distribución. ¡Seguirá siendo una distribución Beta!

Suponemos que la tasa de clics se puede modelar como una distribución Beta. Luego, hay dos opciones de título y dos distribuciones. ¿Cómo elegimos qué mostrarle a un espectador? Por eso, el algoritmo se llama “bandito de múltiples brazos”. En el momento en que un espectador solicita un título, “tira de ambos brazos” y muestrea las tasas de clics. Después de eso, se comparan los valores y se muestra el título con la tasa de clics muestreada más alta. Luego, el espectador hace clic o salta. Si se hizo clic en el título, se ajustará el parámetro “a” de la distribución Beta de esta opción, que representa los “éxitos”. De lo contrario, se aumentará el parámetro “b” de la distribución Beta de esta opción, lo que significa “fallos”. Esto sesga la distribución y, para el próximo espectador, habrá una probabilidad diferente de elegir esta opción (o “brazo”) en comparación con otras opciones.

Después de varias iteraciones, el algoritmo tendrá una estimación de las distribuciones de la tasa de clics. Muestrear de esta distribución principalmente activará el brazo con la tasa de clics más alta, pero aún permitirá que los nuevos usuarios exploren otras opciones y ajusten la asignación.

Bueno, todo esto funciona en teoría. ¿Es realmente mejor que la división 50/50 que hemos discutido antes?

Creando una simulación con Python

Todo el código para crear una simulación y construir gráficos se puede encontrar en mi Repositorio de GitHub.

Como se mencionó anteriormente, solo tenemos dos títulos para elegir. No tenemos creencias previas sobre las tasas de clics de este título. Entonces, comenzamos desde a=1 y b=1 para ambas distribuciones Beta. Simularé un tráfico entrante simple asumiendo una cola de espectadores. Sabemos exactamente si el espectador anterior “hizo clic” o “saltó” antes de mostrar un título al nuevo espectador. Para simular acciones de “clic” y “saltar”, necesito definir algunas tasas de clics reales. Permítanme establecerlas en 5% y 7%. Es esencial mencionar que el algoritmo no sabe nada sobre estos valores. Los necesito para simular un clic; en el mundo real, tendrías clics reales. Lanzaré una moneda muy sesgada para cada título que caiga cara con una probabilidad del 5% o 7%. Si cae cara, entonces hay un clic.

Luego, el algoritmo es sencillo:

  1. Basado en los datos observados, obtener una distribución Beta para cada título
  2. Muestrear CTR de ambas distribuciones
  3. Entender cuál CTR es más alto y lanzar una moneda relevante
  4. Entender si hubo un clic o no
  5. Aumentar el parámetro “a” en 1 si hubo un clic; aumentar el parámetro “b” en 1 si hubo un salto
  6. Repetir hasta que haya usuarios en la cola.

Para entender la calidad del algoritmo, también guardaremos un valor que represente una parte de los espectadores expuestos a la segunda opción, ya que tiene un CTR “real” más alto. Utilicemos una estrategia de división 50/50 como contraparte para tener una calidad base.

Código por el autor

Después de 1000 usuarios en la cola, nuestro “bandolero de brazos múltiples” ya tiene una buena comprensión de cuáles son los CTRs.

Y aquí hay un gráfico que muestra que tal estrategia produce mejores resultados. Después de 100 espectadores, el “bandolero de brazos múltiples” superó una participación del 50% de los espectadores que se les ofreció la segunda opción. Debido a que cada vez había más evidencia a favor del segundo título, el algoritmo asignaba más y más tráfico al segundo título. ¡Casi el 80% de todos los espectadores han visto la opción de mejor rendimiento! Mientras que en la división 50/50, solo el 50% de las personas han visto la opción de mejor rendimiento.

¡Bandolero de brazos múltiples bayesianos expuso a un 25% adicional de espectadores a una opción de mejor rendimiento! Con más datos entrantes, la diferencia solo aumentará entre estas dos estrategias.

Conclusión

Por supuesto, los “bandoleros de brazos múltiples” no son perfectos. El muestreo y la entrega en tiempo real de opciones son costosos. Sería mejor tener una buena infraestructura para implementar todo esto con la latencia deseada. Además, es posible que no desee alarmar a sus espectadores cambiando títulos. ¡Si tiene suficiente tráfico para ejecutar una prueba A/B rápida, hágalo! Luego, cambie manualmente el título una vez. Sin embargo, este algoritmo se puede utilizar en muchas otras aplicaciones más allá de los medios de comunicación.

Espero que ahora entienda qué es un “bandolero de brazos múltiples” y cómo se puede usar para elegir entre dos opciones adaptadas a los nuevos datos. Específicamente, no me he centrado en las matemáticas y las fórmulas, ya que los libros de texto lo explicarían mejor. ¡Mi intención es presentar una nueva tecnología y despertar interés en ella!

Si tiene alguna pregunta, no dude en comunicarse a través de LinkedIn.

Puede encontrar el cuaderno con todo el código en mi repositorio de GitHub.

[Igor Khomyanin](https://www.linkedin.com/in/igorkhomyanin/) es un científico de datos en Salmon, con roles previos en Yandex y McKinsey. Me especializo en extraer valor de los datos utilizando estadísticas y visualización de datos.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Desbloquea el avance de la comprensión de video de IA con MM-VID para GPT-4V(isión)

En todo el mundo, las personas crean una gran cantidad de videos todos los días, incluyendo transmisiones en vivo gen...

Inteligencia Artificial

Investigadores de Microsoft proponen Síntesis Visual Responsable de Vocabulario Abierto (ORES) con el Marco de Intervención de Dos Etapas

Los modelos de síntesis visual pueden producir imágenes cada vez más realistas gracias al avance del entrenamiento de...

Investigación

El sistema de IA puede generar proteínas novedosas que cumplan con los objetivos de diseño estructural.

Estas proteínas ajustables podrían ser utilizadas para crear nuevos materiales con propiedades mecánicas específicas,...

Inteligencia Artificial

Midjourney vs Diffusión Estable La Batalla de los Generadores de Imágenes de IA

Midjourney vs Stable Diffusion, ¿cuál es mejor para ti? Vamos a explorar las fortalezas y debilidades de ambos genera...

Inteligencia Artificial

¿Dónde ocurre la IA?

¿Hacia qué sector deberían dirigirse los investigadores en ciernes? ¿La academia o la industria?

Inteligencia Artificial

Presentamos OpenChat La plataforma gratuita y sencilla para construir chatbots personalizados en minutos.

Enseña a tus chatbots cualquier tema conectándolos a recursos como PDFs, sitios web, Notion, Confluence y Office 365.