Retrouvez-nous le 14 mai au Google Cloud Summit à l'Accor Arena - Paris !

logo saagie red

Les tests A/B, une étape essentielle pour valider vos modèles de machine learning

Le machine learning (ou ML) est un domaine complexe requérant méthode et minutie. 

L’une des difficultés provient de la complexité des modèles développés, qui ressemblent trop souvent à des boîtes noires peu interprétables. Pour cette raison, il est essentiel de mettre en place un protocole de test pertinent pour évaluer un modèle une fois déployé.

L’un des outils d’analyse à notre disposition est le « test AB », que nous allons découvrir dans cet article.

Qu’est-ce qu’un test A/B ?

Commençons par l’essentiel : test A/B, qu’est-ce que ça veut dire ? À quoi ça sert ?

Un test A/B consiste à réaliser une expérience, limitée dans le temps, durant laquelle on souhaite comparer deux versions (une version A et une version B, d’où le nom) d’un même produit (ou d’un sous-élément du produit).

C’est un terme que l’on retrouve principalement dans le monde du web (en particulier le e-commerce) et du logiciel. En effet, en principe, les tests A/B sont applicables dans beaucoup de domaines. Le digital est probablement le secteur où leur application est la plus facile et la plus intéressante.

Exemple : vous avez un site de ecommerce et vous décidez de changer le contenu de votre page d’accueil. Faire un test A/B est une option possible pour déterminer (quantitativement) si votre nouveau contenu a un meilleur taux de conversion que l’ancien. 

Plus largement, on retrouve sous la dénomination « test A/B » ou « A/B testing » différentes variantes de ce principe (par exemple, comparer trois, quatre, cinq… versions à la fois).

Si vous souhaitez en savoir plus, Kameleoon, entreprise française spécialisée dans le développement de solutions de tests A/B, fournit un guide détaillé sur son site.

Comment réalise-t-on un test A/B en pratique ?

Comme nous venons de le dire, il existe plusieurs variants de test A/B et donc autant de méthodes de mise en œuvre.

Généralement, l’approche utilisée consiste à déployer dans votre produit (votre site internet, application, API…) les deux versions que vous souhaitez comparer, puis à séparer vos utilisateurs en deux groupes, l’un utilisant la version A et l’autre utilisant la version B. Le but du test sera d’étudier le comportement de chaque groupe en fonction de la version utilisée, sur une période de temps donnée.

Vous pouvez séparer vos utilisateurs aléatoirement ou bien mettre en place des critères arbitraires. L’important est surtout de faire en sorte que les deux groupes soient similaires. On peut ici faire un parallèle avec un essai clinique, où le groupe témoin doit ressembler le plus possible au groupe test pour éviter des biais liés à la composition de chaque groupe (tels que l’âge).

Quel est l’intérêt d’un test A/B en machine learning ?

Intéressons-nous maintenant à une application plus précise : les tests A/B en machine learning et en particulier pour valider la performance de vos modèles ML.

En machine learning, la différence entre théorie et pratique est parfois brutale

Lorsque l’on développe un modèle de machine learning, on commence généralement par une phase « offline ». Durant cette phase, on utilise un massif de données que l’on sépare en deux (ou plus), avec une partie dédiée à l’entraînement du modèle et une deuxième partie utilisée pour tester le modèle et valider sa performance.

En théorie, ce deuxième groupe de données permet de confronter notre modèle à des données qu’il n’a pas « vues » auparavant et donc de valider ses performances. 

En pratique, on se rend compte que cette validation n’est pas suffisante, pour plusieurs raisons, notamment :

LA chose à retenir de cet article est que la performance « offline » d’un modèle (selon n’importe quelle métrique) n’est qu’une indication partielle quant à son potentiel, nullement une évaluation précise et définitive.

Il faut donc trouver une méthode plus robuste et pertinente pour juger un modèle de machine learning. Entre en scène le test A/B.

Le test A/B, étape essentielle pour valider un modèle de machine learning

Pour ce faire, nous allons tout simplement appliquer l’approche décrite plus haut à nos algorithmes de machine learning.

Prenons en exemple un moteur de recommandations. L’équipe data propose une amélioration de l’algorithme. Deux choix s’offrent alors à vous :

Dans le deuxième cas, on pourra déployer deux APIs différentes, chacune contenant une version de l’algorithme. Lors du chargement d’une page contenant des recommandations, on appelle aléatoirement l’une de ces deux APIs. On s’assure d’enregistrer chaque chargement de page et chaque clic sur une recommandation en leur associant comme label la version d’API utilisée. 

Après une certaine donnée, on regarde quelle version d’API a permis d’obtenir le plus grand ratio nombres de clics sur des recommandations/nombre de pages vues. Si on considère toutes choses égales par ailleurs, cette version semble être la plus performante.

Bien sûr, on peut utiliser différentes métriques, chacune pouvant avoir un impact majeur sur le résultat… Rien n’est parfait, l’incertitude est intrinsèque à l’analyse des données. Dans ce cas précis, on ne peut pas remplacer l’expertise métier pour déterminer les métriques les plus pertinentes.

 

Pour conclure cet article, on soulignera l’importance de la surveillance (« monitoring ») et de la journalisation (« logging ») de vos modèles de machine learning en production, nécessaires notamment pour pouvoir labelliser chaque clic dans notre exemple précédent. 

Faire l’impasse sur ces points-là revient en quelque sorte à piloter un avion sans instruments.