Améliorez vos décisions commerciales avec trois outils d'interprétabilité d'apprentissage automatique

L'interprétabilité du Machine Learning est un sujet de recherche très brûlant et de nouveaux articles scientifiques et articles sur ce sujet sont publiés chaque semaine. Cet article présente trois outils complémentaires qui couvrent la plupart de nos besoins d'interprétabilité du Machine Learning chez ManoMano où nous aidons chaque jour plus d'un million d'Européens à trouver ce qu'ils veulent dans notre catalogue de 3 millions de produits de bricolage et de jardinage:

  1. Importance des fonctionnalités: quelles fonctionnalités le modèle utilise-t-il le plus?
  2. Diagramme de dépendance partielle: comment le modèle utilise-t-il une variable spécifique?
  3. Contribution caractéristique: pourquoi le modèle a-t-il fait cette prédiction spécifique?
xkcd

Pourquoi devrions-nous interpréter nos modèles d'apprentissage automatique?

  • Comprendre votre entreprise: quels facteurs déterminent le taux de conversion du site Web? Quel est l'impact du prix d'expédition sur celui-ci?
  • Créez la confiance avec vos homologues commerciaux: pourquoi cette prévision des prévisions de ventes est-elle si élevée? Parce que le produit a été vendu 157 fois la semaine dernière et que la saisonnalité de sa catégorie augmente.
  • Prendre des mesures pertinentes pour résoudre un problème: pourquoi ce client est-il susceptible de se désengager? Parce qu'il a eu des problèmes de qualité le mois dernier.
  • Déboguer / améliorer le modèle: pourquoi cette prévision de prévision des ventes est-elle si élevée? Valeurs manquantes dans l'ensemble de données de production. Pourquoi avons-nous tant sous-estimé? Les ventes de ce produit ont été faibles car il était en rupture de stock et nous ne l'avions pas remarqué.
Pouvoir prédictif vs dilemme d'interprétabilité (© ManoMano)

Cas d'utilisation: modélisation du taux de conversion à l'aide de Gradient Boosting Trees

Pour illustrer les trois outils, nous nous concentrons sur la modélisation du taux de conversion des produits. Voici à quoi ressemble notre ensemble de données de formation:

Nous essayons de prédire le taux de conversion d'un produit un jour spécifique, en fonction des fonctionnalités basées sur le produit (prix, notes, temps d'expédition, etc.) et le jour de la semaine. Pour simplifier l'analyse suivante, nous échantillonnons artificiellement notre ensemble de données pour avoir un taux de conversion moyen de 10%.

Nous utilisons LightGBM, un modèle d'ensemble extrêmement puissant utilisant des arbres. Cet outil est largement utilisé dans les compétitions de Data Science.

Importance des fonctionnalités

L'importance des fonctionnalités est un outil permettant de calculer et de visualiser rapidement l'utilité de chaque fonctionnalité de notre modèle. Cet outil est couramment utilisé dans les modèles d'ensemble comme Random Forest ou Gradient Boosting Trees. Plus une fonction est utilisée pour prendre des décisions clés avec des arbres de décision, plus son importance relative est élevée. Pour plus de détails sur la façon dont l'importance des fonctionnalités est calculée, vous pouvez vous référer à cet article de blog. Visualisons le graphique d'importance des fonctionnalités pour notre modèle prédictif:

Selon ce graphique à barres, les caractéristiques les plus importantes pour prédire les taux de conversion sont le prix du produit, le prix d'expédition, les notes et le temps d'expédition. Cela coïncide avec nos intuitions commerciales, ce qui est génial.

Influence des valeurs manquantes

Essayons une autre configuration, imaginons que nous avons un problème de qualité des données, et pour une raison quelconque, 90% des valeurs de prix manquaient. Après avoir recyclé le modèle, voici ce que nous obtenons:

On pourrait supposer que le prix n'est pas une caractéristique importante, ce qui est totalement faux. Nous devrions plutôt passer du temps à améliorer la qualité des données pour améliorer notre modèle. Soit dit en passant, les valeurs manquantes peuvent également contenir des informations. Par exemple, avoir une note moyenne manquante signifie simplement qu'il n'y a pas de note et que le produit n'est ni populaire ni nouveau.

Influence des variables corrélées

Ajoutons trois caractéristiques de prix corrélées (et bruyantes) et voyons ce qui se passe:

Ici, l'importance de notre fonctionnalité «prix» est passée de 38% à 24%. L'importance de cette variable a été répartie entre ses variables corrélées. De plus, l'ajout de fonctionnalités bruyantes augmente la mémoire et l'utilisation du processeur et augmente le risque de sur-ajustement. Par conséquent, une fonctionnalité importante selon cet outil peut ne pas être une fonctionnalité nécessaire.

Avantages et inconvénients importants

  • (+) Très simple à implémenter, c'est quelques lignes de code
  • (+) Donne rapidement de bonnes informations sur le signal
  • (+) Outil efficace pour détecter les problèmes de qualité des données dans l'ensemble de données de formation
  • (-) Sensible aux corrélations des fonctionnalités
  • (-) Sensible aux valeurs manquantes
  • (-) Ne fournit pas la relation entre la fonction et la fonction cible (dans notre exemple, nous savons que le prix est très corrélé à la cible, mais nous ne savons pas dans quelle direction)

Tracés de dépendance partielle

Les tracés de dépendance partielle sont utiles pour visualiser l'impact d'une entité sur la cible prédite, en marginalisant les valeurs de toutes les autres entités. Un tel outil permet de comprendre la corrélation entre la cible et une entité, toutes choses étant égales par ailleurs. Pour la démonstration mathématique complète, vous pouvez vous référer à ce chapitre des Éléments de l'apprentissage statistique. Les tracés de dépendance partielle peuvent être utilisés avec tous les modèles d'apprentissage automatique. Nous vous recommandons d'utiliser le package python PDPBox très complet.

Pour illustrer une dépendance partielle, prenons un exemple concret lié à notre cas d'utilisation. Supposons que les propriétaires d'entreprise souhaitent connaître l'impact des prix d'expédition sur le taux de conversion. Sachant que le prix d'expédition est très corrélé au prix du produit, nous commençons par calculer la fonction shipping_ratio qui est le rapport entre le prix d'expédition du produit et son prix total:

Faisons une analyse univariée en calculant le taux de conversion moyen par le bin de shipping_ratio:

Le graphique résultant est assez clair: le taux de conversion est positivement corrélé avec la fonction ratio_shipping! Doit-on communiquer avec les propriétaires d'entreprise et leur conseiller d'augmenter les prix d'expédition de tous nos produits afin d'augmenter le taux de conversion? Bien sûr que non, car la corrélation n'implique pas de causalité. Faisons une analyse de dépendance partielle sur la même variable et observons la différence:

Comme prévu et lorsque nous prenons en compte toutes les autres fonctionnalités utilisées par le modèle prédictif, la fonctionnalité shipping_ratio est corrélée négativement avec le taux de conversion prévu. Notez que nous ne voyons toujours pas de véritable causalité, mais une corrélation corrigée à partir d'autres fonctionnalités.

Avantages et inconvénients des parcelles de dépendance partielle

  • (+) Montre la relation entre une caractéristique et notre variable d'intérêt
  • (+) Vous permet de voir l'influence non corrélée d'une entité sur une autre, par rapport à une analyse univariée standard
  • (-) Prend beaucoup de temps sur de grands ensembles de données
  • (-) Limité aux tracés bidimensionnels
  • (-) Sensible aux corrélations de fonctionnalités

Contribution de fonctionnalité

La contribution des fonctionnalités calcule l'impact de chaque fonctionnalité sur une prédiction donnée. Il donne une micro compréhension de chaque prédiction. Comme les graphiques de dépendance partielle, la contribution des fonctionnalités peut être calculée quel que soit le modèle d'apprentissage automatique utilisé. Vous pouvez vous référer à cet article de blog si vous voulez savoir comment il est calculé pour les forêts aléatoires. La fonction de prédiction LightGBM fournit un paramètre pour les calculer directement. Prédisons un des produits les plus populaires de ManoMano - une perceuse de Makita - et observons la contribution de chaque fonctionnalité:

Ce produit a beaucoup de bonnes notes (644 notes, avec une valeur moyenne de 4,69 / 5). Par conséquent, la contribution du nombre de notations au taux de conversion prévu est de + 12%. Cependant, son prix (167,99 €) est supérieur à la moyenne. Les produits coûteux ont tendance à avoir un taux de conversion plus faible. Sa contribution au taux de conversion prévu est donc de -7,5%. Notez que la somme des contributions est égale au taux de conversion prévu (nous devons également ajouter l'ordonnée à l'origine à la somme).

Nous pouvons répéter ce processus pour un autre produit et observer les différences:

Même si ce produit a un taux de conversion prévu similaire à celui de la perceuse Makita précédente, il a un autre «profil»: il est beaucoup moins cher (34,2 €) et il est bien noté mais le temps et le prix d'expédition sont dissuasifs (6,9 € pour l'expédition dans 8 jours).

Comme les deux méthodes précédentes, la contribution des fonctionnalités est sensible aux corrélations des fonctionnalités: si vous alimentez le modèle avec deux fonctionnalités très corrélées, la contribution de la prédiction sera artificiellement divisée par deux.

Avantages et inconvénients de la contribution des fonctionnalités

  • (+) Micro-explication d'une prédiction comme somme des contributions de fonctionnalités
  • (+) Aide à enquêter sur les prédictions pour éventuellement détecter de manière préventive les bogues du modèle ou les problèmes de qualité des données
  • (+) Construisez la confiance avec les propriétaires d'entreprise en leur expliquant comment l'algorithme se comporte
  • (+) Autoriser la modélisation prescriptive (vs la modélisation prédictive): expliquer pourquoi un client peut se désintéresser aide à prendre les bonnes mesures
  • (-) Sensible aux corrélations de fonctionnalités

Conclusions

Nous avons présenté trois outils qui couvrent la plupart de nos besoins d'interprétabilité chez ManoMano. Quelques avertissements si vous les utilisez hors de la boîte:

  • Les fonctionnalités hautement corrélées sont une nuisance pour l'interprétabilité de l'apprentissage automatique. Vous devez vous en débarrasser avant d'essayer d'interpréter votre modèle.
  • Essayer d'interpréter des modèles avec de très mauvaises performances prédictives (par exemple 0,51 AUC) n'a pas de sens. L'utilité d'une interprétation est directement liée au signal prédictif capté par le modèle.

Gardez à l'esprit qu'il existe d'autres outils d'interprétabilité (LIME, valeurs de Shapley, tracés ICE, etc.) Reportez-vous au guide complet de Christoph Molnar pour plus d'informations et de détails mathématiques sur ces outils.

Nous espérons que cet article vous sera utile et que les problèmes d'interprétabilité ne seront plus un problème lors de l'utilisation de puissantes techniques d'apprentissage automatique!

Écrit par Jacques Peeters et Romain Ayres.

Remerciements

Alexandre Cazé, Yohan Grember, Chloé Martinot, Marin De Beauchamp, Bryce Tichit, Raphaël Siméon, Thomas Charuel, Louis Pery, Cyril Auberger, Matthieu Cornec et tous nos grands collègues de ManoMano.

Rejoignez-nous

Nous recherchons de nouveaux collègues chez ManoMano, jetez un œil à nos offres d'emploi!