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èmes 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

Le leurre de l’A/B testing

Dans les deux cas les systèmes sous A/B test sont impactés dans leur fonctionnement par le test. Tant que la stratégie est purement combinatoire, l’impact est minime. En revanche dès qu’il s’agit de stratégies évoluées, par exemple apprenantes en continu, l’impact peut être violent.

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 réponse qui est exploitée sans produire l’effet voulu et une réponse qui n’est pas acheminée.

La plupart des solutions d’A/B testing sur le marché ont été conçues pour des solutions classiques, relativement simples. Elles passent souvent sous silence leurs effets induits sur les tests. D’expérience, ces effets induits peuvent prendre des proportions très importantes et 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 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 « raisonnements ».
  • Les solutions ayant une dimension constructiviste. Ce sont des solutions qui apprennent de façon personnalisée, en traitant chaque utilisateur comme unique.

On comprend bien que sur 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 pour accuser quelqu’un, il faut des preuves individuelles, juridiquement opposables. 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 aura un impact négatif sur la productivité et 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. 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 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 45 premières minutes du cours et le second aux 15 dernières. Le premier arrivera peut-être à 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.

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’indécidabilité de l’A/B test réalisé.

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 ± 0,7, ce qui signifie que A peut s’avérer être une solution soit bien meilleure (+90%) soit bien plus mauvaise (-50%) que B, d’où l’indécidabilité.

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

C’est notamment le cas pour les solutions basées sur des approches statistiques. Ces approches par nature intégratives agglomèrent les cas individuels pour les traiter de façon collective. 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, plus il est difficile de résoudre les équations différentielles, voire impossible.

En revanche, les approches différenciatives des solutions basées sur des principes telle que l’analyse situationnelle traitent de chaque cas individuellement. Elles sont en cohérence avec la démarche. Il est donc bien plus aisé d’évaluer l’intervalle de confiance de l’A/B test.

Conclusion

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 apprenantes moins l’A/B testing est performant, jusqu’à devenir contreproductif.

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é.

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 sera déterminante. Celle-ci ne peut s’évaluer qu’en vraie grandeur, à l’usage, par une période d’essai soit de A soit de B, mais pas des deux en parallèle pour le même poste.

Jean Pierre MALLE