InicioIA y aprendizaje automáticoOptimizador de Test A/B — UCB1 Bandido Multibrazo en Vivo

🎰 Optimizador de Test A/B — UCB1 Bandido Multibrazo en Vivo

Observa cómo un algoritmo UCB1 (Límite Superior de Confianza) de bandido multibrazo real asigna tráfico simulado entre variantes de página en vivo, equilibrando genuinamente exploración y explotación para converger en la variante con mejor conversión más rápido que un reparto fijo 50/50.

IA y aprendizaje automático 3D Moderado 60 FPS UCB1 Análisis de arrepentimiento
ai-ab-testing-multiarmed-bandit ↗ Abrir independiente

Acerca de esta simulación

Esta simulación ejecuta el algoritmo real UCB1 (Límite Superior de Confianza) de bandido multibrazo contra varias variantes de página simuladas ("brazos"), cada una con una tasa de conversión real oculta que el algoritmo nunca ve. En cada ronda calcula una puntuación UCB1 real —recompensa media observada + √(2·ln(N)/ni)— para cada brazo y tira del que tenga la puntuación más alta, para luego observar un resultado de conversión genuino distribuido según Bernoulli extraído de la tasa oculta de ese brazo. Una base uniforme-aleatoria idéntica al estilo 50/50 se ejecuta sobre los mismos resultados de conversión subyacentes en cada ronda, de modo que ambas estrategias se comparan de forma justa en conversiones acumuladas y arrepentimiento acumulado.

🔬 Qué muestra

Torres 3D por variante: las torres doradas muestran los recuentos de tirones de UCB1 y brillan más intensamente a medida que sube la tasa de conversión estimada; las torres grises apagadas detrás de ellas muestran los recuentos de tirones de la base uniforme ingenua sobre el mismo tráfico simulado. Un fino anillo blanco marca la tasa de conversión real (oculta para el algoritmo) de cada variante. Debajo de las torres, un gráfico 2D en vivo hace seguimiento de las conversiones acumuladas y el arrepentimiento acumulado de ambas estrategias a lo largo del tiempo.

🎮 Cómo usarlo

Define el número de variantes (2–6) y arrastra el control deslizante de tasa de conversión real de cada variante para definir el entorno oculto. Ajusta las rondas por tic para acelerar o ralentizar la simulación, arrastra sobre las torres 3D para rotar la cámara, y usa Reiniciar para generar una nueva ejecución. Observa cómo la torre de UCB1 para la mejor variante crece más alta a medida que desplaza el tráfico lejos de las variantes más débiles.

💡 ¿Sabías que...?

El arrepentimiento acumulado de UCB1 está demostrablemente acotado por O(ln N) —crece cada vez más lento a medida que se acumulan rondas. Un reparto fijo 50/50, en cambio, tiene un arrepentimiento que crece linealmente para siempre, porque nunca deja de enviar tráfico a la variante perdedora. Esta garantía de arrepentimiento logarítmico es la razón por la que los bandidos de estilo UCB se usan en sistemas reales de test A/B en producción y de publicidad en lugar de repartos estáticos.

Preguntas frecuentes

¿Qué es un problema de bandido multibrazo?

Un bandido multibrazo es un problema de decisión en el que un agente elige repetidamente entre varias opciones ("brazos") con probabilidades de recompensa desconocidas, buscando maximizar la recompensa acumulada con el tiempo. El nombre proviene de una fila de máquinas tragamonedas ("bandidos de un brazo") donde un jugador debe decidir qué máquina seguir jugando sin conocer la tasa de pago real de cada una. En los test A/B, cada variante de página es un brazo, y un "tirón" consiste en mostrar esa variante a un visitante y observar si convierte.

¿Qué es UCB1 y cómo funciona la fórmula?

UCB1 (Límite Superior de Confianza) es un algoritmo que, en cada ronda, elige el brazo que maximiza recompensa_promedio + √(2·ln(N)/ni), donde recompensa_promedio es la tasa de conversión observada del brazo hasta ese momento, N es el número total de rondas jugadas, y ni es cuántas veces se ha tirado ese brazo en concreto. El primer término premia a los brazos que han rendido bien (explotación); el segundo término es una bonificación de confianza que se reduce cuanto más se tira de un brazo, pero crece lentamente con el total de rondas N, de modo que los brazos poco probados siguen siendo muestreados (exploración) hasta que los datos los descartan. Esto le da a UCB1 una cota matemáticamente demostrable sobre el arrepentimiento acumulado que crece solo de forma logarítmica con el número de rondas.

¿En qué se diferencia UCB1 de un reparto fijo 50/50 en un test A/B?

Un test A/B de reparto fijo tradicional sigue enviando una fracción constante del tráfico a cada variante durante toda la duración del test, incluso después de que quede estadísticamente claro que una variante es peor. UCB1, en cambio, adapta la asignación de tráfico continuamente: sigue explorando cada brazo al principio, pero a medida que se acumula evidencia, desplaza una proporción cada vez mayor del tráfico hacia la variante de mejor rendimiento, reduciendo el número de visitantes que ven una variante perdedora. Esto reduce el arrepentimiento acumulado —las conversiones perdidas por no elegir siempre el mejor brazo— en comparación con un reparto uniforme ingenuo evaluado sobre los mismos resultados de conversión subyacentes.

¿Qué significa el "arrepentimiento acumulado" y por qué importa?

El arrepentimiento acumulado es el total acumulado, a lo largo de todas las rondas hasta el momento, de la diferencia entre la tasa de conversión real del mejor brazo posible y la tasa de conversión real del brazo que realmente se eligió en cada ronda. Mide cuántas conversiones se perdieron por no elegir siempre la variante óptima. El arrepentimiento de un buen algoritmo de bandido crece logarítmicamente con el número de rondas (casi plano tras suficientes datos), mientras que el de una base uniforme-aleatoria ingenua crece linealmente para siempre, ya que sigue enviando una parte fija del tráfico a variantes inferiores indefinidamente.

¿Por qué UCB1 tira de cada brazo al menos una vez antes de usar la fórmula?

La bonificación de confianza de la puntuación UCB1, √(2·ln(N)/ni), no está definida (división por cero) para cualquier brazo con cero tirones, y de otro modo sería infinitamente optimista sobre brazos sin datos. Por ello, la implementación estándar trata la puntuación de un brazo no probado como infinita, garantizando que cada brazo reciba un tirón exploratorio inicial antes de que el algoritmo empiece a confiar en los promedios observados. Este principio de "optimismo ante la incertidumbre" es lo que le da a UCB1 su garantía demostrable de arrepentimiento logarítmico.