Accueil ▸ IA et apprentissage automatique ▸ Optimiseur de test A/B — Bandit manchot UCB1 en direct
🎰 Optimiseur de test A/B — Bandit manchot UCB1 en direct
Regardez un véritable algorithme de bandit manchot UCB1 (Upper Confidence Bound) répartir le trafic simulé entre les variantes de page en direct, en équilibrant réellement exploration et exploitation pour converger vers la variante la plus performante plus vite qu'une répartition fixe 50/50.
IA et apprentissage automatique
3D
Modéré
60 FPS
UCB1
Analyse du regret
À propos de cette simulation
Cette simulation exécute le véritable algorithme de bandit manchot UCB1 (Upper Confidence Bound) face à plusieurs variantes de page simulées (« bras »), chacune avec un taux de conversion réel caché que l'algorithme ne voit jamais. À chaque tour, elle calcule un véritable score UCB1 — récompense moyenne observée + √(2·ln(N)/ni) — pour chaque bras et tire celui dont le score est le plus élevé, puis observe un résultat de conversion réellement distribué selon Bernoulli, tiré du taux caché de ce bras. Une base de référence uniforme aléatoire identique de type 50/50 est exécutée sur les mêmes tirages de conversion sous-jacents à chaque tour, de sorte que les deux stratégies sont comparées équitablement sur les conversions cumulées et le regret cumulé.
🔬 Ce que ça montre
Des tours 3D par variante : les tours dorées montrent le nombre de tirages d'UCB1 et brillent davantage à mesure que le taux de conversion estimé augmente ; les tours grises ternes derrière elles montrent le nombre de tirages de la base de référence uniforme naïve sur le même trafic simulé. Un fin anneau blanc marque le taux de conversion réel (caché à l'algorithme) de chaque variante. Sous les tours, un graphique 2D en direct suit les conversions cumulées et le regret cumulé des deux stratégies dans le temps.
🎮 Comment l'utiliser
Définissez le nombre de variantes (2 à 6) et faites glisser le curseur de taux de conversion réel de chaque variante pour définir l'environnement caché. Ajustez le nombre de tours par tick pour accélérer ou ralentir la simulation, faites glisser sur les tours 3D pour faire pivoter la caméra, et utilisez Réinitialiser pour relancer une nouvelle exécution. Observez la tour d'UCB1 pour la meilleure variante grandir davantage à mesure qu'elle déplace le trafic loin des variantes plus faibles.
💡 Le saviez-vous ?
Le regret cumulé d'UCB1 est prouvablement borné par O(ln N) — il croît de plus en plus lentement à mesure que les tours s'accumulent. Une répartition fixe 50/50, en revanche, a un regret qui croît linéairement indéfiniment, car elle ne cesse jamais d'envoyer du trafic à la variante perdante. Cette garantie de regret logarithmique est la raison pour laquelle les bandits de type UCB sont utilisés dans de véritables systèmes de test A/B et de diffusion publicitaire en production, plutôt que des répartitions statiques.
Questions fréquentes
Qu'est-ce qu'un problème de bandit manchot ?
Un bandit manchot est un problème de décision où un agent choisit à répétition parmi plusieurs options (« bras ») dont les probabilités de récompense sont inconnues, dans le but de maximiser la récompense cumulée dans le temps. Le nom vient d'une rangée de machines à sous (« bandits manchots ») où un joueur doit décider quelle machine continuer à utiliser sans connaître le taux de gain réel de chacune. Dans un test A/B, chaque variante de page est un bras, et un « tirage » consiste à montrer cette variante à un visiteur et à observer s'il convertit.
Qu'est-ce que UCB1 et comment fonctionne la formule ?
UCB1 (Upper Confidence Bound) est un algorithme qui, à chaque tour, choisit le bras maximisant récompense_moyenne + √(2·ln(N)/ni), où récompense_moyenne est le taux de conversion observé du bras jusqu'ici, N est le nombre total de tours joués, et ni est le nombre de fois où ce bras précis a été tiré. Le premier terme récompense les bras qui ont bien performé (exploitation) ; le second terme est un bonus de confiance qui diminue quand un bras est tiré plus souvent, mais qui croît lentement avec le nombre total de tours N, de sorte que les bras peu testés continuent d'être échantillonnés (exploration) jusqu'à ce que les données les écartent. Cela confère à UCB1 une borne mathématiquement prouvable sur le regret cumulé, qui ne croît que de façon logarithmique avec le nombre de tours.
En quoi UCB1 diffère-t-il d'une répartition fixe 50/50 pour un test A/B ?
Un test A/B classique à répartition fixe continue d'envoyer une fraction constante du trafic à chaque variante pendant toute la durée du test, même une fois qu'il devient statistiquement clair qu'une variante est moins bonne. UCB1, à l'inverse, adapte la répartition du trafic en continu : il explore encore chaque bras au début, mais à mesure que les preuves s'accumulent, il déplace une part croissante du trafic vers la variante la plus performante, réduisant le nombre de visiteurs exposés à une variante perdante. Cela réduit le regret cumulé — le total des conversions perdues en ne choisissant pas toujours le meilleur bras — par rapport à une répartition uniforme naïve évaluée sur les mêmes tirages de conversion sous-jacents.
Que signifie le « regret cumulé » et pourquoi est-ce important ?
Le regret cumulé est le total courant, sur tous les tours effectués jusqu'ici, de l'écart entre le taux de conversion réel du meilleur bras possible et le taux de conversion réel du bras effectivement choisi à chaque tour. Il mesure combien de conversions ont été perdues en ne choisissant pas toujours la variante optimale. Le regret d'un bon algorithme de bandit croît de façon logarithmique avec le nombre de tours (quasi plat après suffisamment de données), tandis que le regret d'une base de référence uniforme aléatoire naïve croît linéairement indéfiniment, puisqu'elle continue d'envoyer une part fixe du trafic à des variantes inférieures sans fin.
Pourquoi UCB1 tire-t-il chaque bras au moins une fois avant d'utiliser la formule ?
Le bonus de confiance du score UCB1, √(2·ln(N)/ni), est indéfini (division par zéro) pour tout bras n'ayant jamais été tiré, et serait sinon infiniment optimiste pour les bras sans données. L'implémentation standard traite donc le score d'un bras jamais testé comme infini, garantissant que chaque bras reçoit un premier tirage exploratoire avant que l'algorithme ne commence à faire confiance aux moyennes observées. Ce principe d' « optimisme face à l'incertitude » est ce qui donne à UCB1 sa garantie prouvable de regret logarithmique.