Le principe de l’A/B testing

L’A/B testing constiste à comparer une stratégie A avec une stratégie B. Ces stratégies peuvent reposer sur

–          deux solutions technologiques concurrentes,

–          deux versions d’une même solution

–          deux paramétrages différents d’une même version.

Il y a deux formes possibles d’A/B testing et il est fréquent que l’on oublie la deuxième.

–          La première forme consiste à diviser le flux d’entrée en deux et faire fonctionner chaque système sur une des parties du flux. Dans ce cas la totalité des sorties des deux systèmes est exploitée

–          La seconde forme consiste à alimenter les deux systèmes avec la totalité du flux d’entrée. Dans ce cas, seule une partie des flux de sortie des deux systèmes est exploitée

L’A/B Testing cache un leurre

Dans les deux cas les systèmes sous A/B test sont impactés dans leur fonctionnement par le test même. Tant que la stratégie est purement combinatoire (moteur de règles, arbres de décisions …), l’impact est minime. En revanche dès qu’il s’agit de stratégies évoluées, par exemple apprenantes, l’impact peut être important.

En effet :

–          Si le système A ne reçoit qu’une partie du flux (cas de la première forme), sa fonction d’apprentissage sera moins alimentée que normalement et donc son état après le test sera différent que si le test n’avait pas été fait et qu’il ait reçu la totalité du flux.

–          Si le système A produit des réponses qui ne sont pas acheminées (cas de la deuxième forme), sa fonction d’apprentissage sera leurrée, le système ne saura pas faire la différence entre une stratégie qui est exploitée sans produire l’effet voulu et une stratégie qui n’est pas acheminée.

La plupart des solutions d’A/B testing sur le marché ont été conçues pour des stratégies très basiques. Elles passent bien évidemment sous silence leurs effets induits sur les tests. D’expérience, ces effets induits peuvent prendre des proportions très importantes et, au final, faire rejeter une excellente solution au profit d’une plus médiocre.

Plus la solution dispose d’une fonction d’apprentissage évoluée, plus le risque est élevé. Principalement deux générations de systèmes apprenants modernes sont concernés par ce phénomène :

–          Les solutions ayant une dimension systémique (ce sont des solutions qui englobent la machine apprenante et le monde extérieur dans leurs analyse. Le comportement produit une recommandation, la recommandation modifie le comportement ce qui constitue un effet systémique).

–          Les solutions ayant une dimension constructiviste (ce sont des solutions qui apprennent le raisonnement de chaque utilisateur individuellement. La situation produit une recommandation adaptée à l’individu, la recommandation modifie le champ de conscience de l’individu, son raisonnement se construit).

On comprend bien que pour ces systèmes conçus pour être très performants, l’incomplétude de l’information collectée ou de l’information diffusée impacte considérablement l’apprentissage.

Pour illustrer prenons l’exemple d’une machine qui analyse les actes médicaux en vue de déceler d’éventuelles fraudes à l’assurance maladie. Dans ce domaine, chaque affilié doit être analysé indépendamment, on ne peut pas se contenter d’une statistique, il faut des preuves individuelles. Si la machine A se voit amputée d’un flux au profit de B, sa capacité de détection des cas de double affiliation, par exemple, sera fortement diminuée.

La frustration de l’A/B testing

Affecter 50% ou même 20% du flux à une solution B moins efficace (mais on ne le sait pas encore) que la solution A, uniquement pour la tester sur une période pouvant atteindre quelques jours ou quelques semaines aura un impact négatif sur le chiffre d’affaire.

L’A/B testing est par nature frustrant.

La tentation est grande de proposer des systèmes d’A/B testing plus ou moins automatisés qui réduisent le flux de la solution B de façon importante et qui ne l’augmentent que si la comparaison se fait au profit de B.

Là encore cette approche ne peut s’appliquer qu’aux systèmes combinatoires très basiques. En effet en réduisant le flux sur la solution B, celle-ci n’est plus en mesure d’apprendre. Plus la fonction d’apprentissage de la solution B sera évoluée, plus sa performance sera dégradée par une limitation du flux, et donc elle sera vue comme d’efficacité moindre que la solution A.

Pour illustrer, prenons le cas de deux élèves qui partageraient le même siège. Le premier assisterait aux 55 premières minutes du cours et le second aux 5 dernières. Bien que les deux élèves soient perturbés, il est certain que le premier arrivera probablement à s’en sortir mais que le second n’apprendra rien.

Que dit la science ?

Le phénomène n’est pas nouveau, tout scientifique connait le principe d’incertitude d’Heisenberg édicté en 1927. La mesure influe sur le phénomène mesuré. Il faut s’y résoudre : faire un A/B testing c’est prendre le risque que le test favorise une solution qui aurait été rejetée si cette solution avait été testée seule.

Bien évidemment des précautions peuvent permettre de réduire le risque sans jamais pouvoir l’éliminer (selon Heisenberg). Encore faut-il ne pas éluder ce risque dans une approche commerciale trop pressante à laquelle certains fournisseurs de services d’A/B testing peuvent s’adonner.

Pour limiter le risque, il faut déjà le prendre en considération et calculer des intervalles de confiance (x±dx). Un test A/B qui fournit seulement une valeur (x) quelle qu’elle soit, est par nature suspect. C’est en calculant l’intervalle de confiance (±dx) que l’on est amené, si on le fait correctement, à mettre en évidence que celui-ci peut s’étendre au-delà du raisonnable, traduisant ainsi l’incapacité de l’A/B test réalisé à fonder une décision pertinente.

Par exemple on peut trouver un ratio de performance A/B de 1,2±0,1, ce qui est raisonnable et signifie que A est meilleure de 10% à 30% que B, ou au contraire 1,2±3,1, ce qui signifie que A peut être bien meilleure ou bien plus mauvaise que B, d’où l’indécidabilité.

Cependant dans la pratique, le calcul de l’intervalle de confiance peut être difficile à conduire, voire irréaliste.

C’est notamment le cas pour les solutions basées sur des approches statistiques. Ces approches sont par nature intégratives (elles agglomèrent les cas individuels pour les traiter de façon collective sur base de moyennes). Or le calcul de l’intervalle de confiance repose sur une logique différentielle, et plus l’intégration est prononcée dans le modèle statistique, moins il est possible d’établir des équations différentielles pertinentes. Autant le dire, peu, très peu, très très peu de solutions d’A/B testing fournissent un intervalle de confiance ….

En revanche, les approches différenciatives des solutions modernes basées sur des principes telle que l’analyse situationnelle traitent de chaque cas individuellement. Il est donc bien plus aisé de reconstituer l’intervalle de confiance de l’A/B test en consolidant les intervalles de confiance des cas individuels à la fin plutôt qu’en essayant de retrouver ses petits dans des agglomérats.

Quel compromis pour l’A/B testing appliqué à la recommandation de produits ?

La conclusion de cette étude est que

–          moins le système formé des deux solutions testées est décidable, moins il est utile de recourir à l’A/B testing

–          plus les solutions à tester sont intelligentes moins l’A/B testing est performant, jusqu’à devenir contreproductif.

En matière de recommandation de produits ou de services, les approches statistiques n’ont guère de sens. La machine apprenante « statistique » – là encore la quasi-totalité des solutions du marché- fonctionne un peu comme un vendeur qui attendrait que plusieurs clients soient rassemblés pour donner une seule réponse devant couvrir toutes leurs questions. Il y a de fortes chances que la réponse « moyenne » ne satisfasse personne.

Lorsque le marché aura retrouvé son bon sens et éliminé toutes les solutions statistiques d’apparence plus simples mais en réalité simplistes, les seules solutions performantes et viables qui resteront seront basées sur des approches différenciatives, voisines de celles mises en œuvre par le vendeur dans le monde réel. A ce moment la question du recours à l’A/B testing ne se posera plus, celui-ci impactant trop la fonction d’apprentissage sera purement et simplement abandonné.

Toutefois la demande de disposer d’un mécanisme permettant de décider si un système est meilleur qu’un autre subsistera. Ce n’est que par l’observation de la solution en vraie grandeur, selon des critères établis pour l’occasion que le choix pourra être effectué.

Il est facile de comprendre que plus un système devient intelligent plus on rencontre des problématiques voisines de celles des êtres humains. Et nous savons tous que décider d’affecter A ou B à un même poste ne peut se mener en faisant un A/B test, si ce n’est pour des postes extrêmes basiques. Dans tous les autres cas, la fonction d’apprentissage chez A et B est déterminante et celle-ci ne peut s’évaluer qu’en vraie grandeur, à l’usage lors de périodes d’essais d’occupation pleine et entière du poste.