Accueil / Factory / Algos ML / Bandit manchot — factory / algos ML / apprentissage par renforcement

BANDIT MANCHOT.

Le bandit manchot répartit le trafic entre plusieurs options (bannières, objets d'e-mail, offres) et apprend au fil de l'eau laquelle fonctionne le mieux. Un A/B test partage le trafic à parts égales jusqu'à la fin ; le bandit envoie de plus en plus de visiteurs vers l'option gagnante. On perd moins de ventes pendant le test.

DécisionA/B testExploration / exploitationMarketingNiveau : intermédiaire

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformancePlus de conversions pendant le test qu'un A/B test classique
InterprétabilitéTaux observés et parts de trafic se lisent directement
VitesseUne mise à jour par visiteur, calcul négligeable
Facilité de réglagePeu de paramètres, mais ils changent beaucoup le résultat
Tolérance aux données brutesSuppose des taux stables et un résultat connu vite
EN 30 SECONDES

Un joueur face à quatre machines à sous, les « bandits manchots », aux gains inconnus. Il doit jouer assez chaque machine pour repérer celle qui paie le mieux, sans gaspiller trop de pièces sur les mauvaises.

1. On essaie chaque option

Chaque bannière est montrée au moins une fois pour obtenir un premier taux de conversion.

2. On exploite la meilleure, on explore un peu

Avec epsilon-greedy, 90 % des visiteurs voient la bannière au meilleur taux observé et 10 % une bannière au hasard. UCB1 ajoute plutôt à chaque taux un bonus d'autant plus grand que la bannière a été peu testée.

3. On met à jour après chaque visiteur

Le taux observé de la bannière montrée est recalculé. Les parts de trafic basculent peu à peu vers la meilleure.

LE CAS MÉTIER

optimisation de campagne · e-commerce / média / marketing
EN ENTRÉE

4 bannières, 20 000 visiteurs

Quatre versions d'une bannière d'accueil dont on ignore les taux de conversion. La simulation les fixe à 3 %, 3,5 %, 4 % et 5 %, pour pouvoir juger les stratégies.

EN SORTIE

Des ventes et une répartition du trafic

Le code compare l'A/B test à parts égales, epsilon-greedy et UCB1. Sur la simulation Python, epsilon-greedy envoie environ 90 % du trafic vers la meilleure bannière et vend nettement plus que l'A/B test. UCB1, prudent, explore encore beaucoup à cet horizon.

CE QU'ON MESURE

Le regret : les ventes perdues

On compare les ventes obtenues à celles qu'aurait apportées la meilleure bannière montrée à tous. Cet écart s'appelle le regret, et c'est lui que le bandit réduit. L'A/B test poursuit un autre but : mesurer l'écart entre options avec une marge d'erreur connue.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Plusieurs variantes à départager en continu : bannières, objets d'e-mail, mises en avant produits
  • Coût d'opportunité élevé pendant le test : promotion courte, campagne saisonnière
  • Résultat connu vite après l'affichage : clic, ajout au panier, achat dans la session
  • Nouvelles variantes ajoutées régulièrement au fil de la campagne

NON

  • Mesure rigoureuse de l'écart entre options pour une décision produit : garder un A/B test
  • Effet visible seulement après des semaines (fidélisation, churn) : le bandit apprend trop lentement
  • Taux qui changent fortement dans le temps : prendre une version à fenêtre glissante
  • Meilleure option différente selon le profil du visiteur : passer à un bandit contextuel ou à l'uplift modeling
LES 3 CHOIX QUI COMPTENT

Noms donnés pour le code de la fiche, le même en R et en Python.

La stratégie

Epsilon-greedy est simple et efficace, mais peut rester bloqué sur une option moyenne si l'exploration est trop faible. UCB1 n'abandonne jamais une option trop tôt, mais converge lentement quand les taux sont faibles et proches. Thompson Sampling est souvent le meilleur compromis.

epsilon

Part du trafic réservée à l'exploration, ici 10 %. Trop faible, on risque de rester sur une mauvaise option ; trop forte, on gaspille du trafic sur les perdantes. On peut la faire décroître avec le temps.

L'horizon

Le nombre de visiteurs disponibles. Sur un horizon court, une stratégie qui exploite vite rapporte plus ; sur un horizon long, une exploration plus soutenue évite de se tromper de gagnante.

LE CODE MINIMAL

données simulées dans le code
# Bannières e-commerce : bandit manchot en R
set.seed(42)
taux_reels <- c(0.030, 0.035, 0.040, 0.050)   # inconnus en pratique
n_visiteurs <- 20000
k <- length(taux_reels)

jouer <- function(strategie) {
  essais <- rep(0, k)
  succes <- rep(0, k)
  for (t in 1:n_visiteurs) {
    if (strategie == "ab") bras <- (t - 1) %% k + 1               # A/B test : parts égales
    else if (t <= k) bras <- t                                     # chaque bannière une fois
    else if (strategie == "epsilon" && runif(1) < 0.1) bras <- sample(k, 1)   # exploration
    else if (strategie == "epsilon") bras <- which.max(succes / essais)       # exploitation
    else bras <- which.max(succes / essais + sqrt(2 * log(t) / essais))       # UCB1
    essais[bras] <- essais[bras] + 1
    succes[bras] <- succes[bras] + (runif(1) < taux_reels[bras])  # le visiteur achète-t-il ?
  }
  cat(strategie, "| ventes :", sum(succes), "| part du trafic :", round(essais / n_visiteurs, 2), "\n")
}

for (strategie in c("ab", "epsilon", "ucb")) jouer(strategie)
cat("Référence, meilleure bannière pour tous :", n_visiteurs * max(taux_reels), "ventes attendues\n")

QUESTIONS FRÉQUENTES

Bandit manchot ou A/B test ?

L'A/B test mesure l'écart entre options avec une marge d'erreur connue, au prix des ventes perdues pendant le test. Le bandit maximise les ventes pendant le test, mais estime mal les options qu'il a vite délaissées. L'A/B test sert à décider et documenter, le bandit à optimiser en continu.

Pourquoi parle-t-on de bandit manchot ?

C'est le surnom des machines à sous, qui n'ont qu'un bras et vident les poches des joueurs. Le problème consiste à choisir quel bras actionner parmi plusieurs machines aux gains inconnus. L'anglais dit multi-armed bandit.

Qu'est-ce que le dilemme exploration-exploitation ?

Exploiter, c'est choisir l'option qui semble la meilleure aujourd'hui. Explorer, c'est tester une option moins connue qui pourrait se révéler meilleure. Trop exploiter fait rater la vraie gagnante, trop explorer gaspille du trafic : chaque algorithme de bandit est une façon de doser les deux.

LES ALGOS VOISINS

à comparer avant de choisir
souvent plus efficace

Thompson Sampling

Choisit chaque option selon la probabilité qu'elle soit la meilleure. Explore là où c'est utile, sans paramètre epsilon à régler.

Voir la fiche →
quand l'effet dépend du client

Uplift modeling

Cherche quelle action convient à quel client, au lieu d'une seule gagnante pour tous.

Voir la fiche →
quand les décisions s'enchaînent

Q-learning

Le bandit décide coup par coup ; le Q-learning gère des décisions dont l'effet se prolonge sur les suivantes.

Voir la fiche →
— formation

Passer de la fiche à la pratique

Dataistudio forme les équipes au machine learning et à l'IA, sur des cas concrets.

Voir les formations →