Migliora le decisioni aziendali con tre strumenti di interpretabilità dell'apprendimento automatico

L'interpretazione dell'interpretazione automatica è un argomento di ricerca molto caldo e nuovi articoli e articoli scientifici su questo argomento vengono pubblicati ogni settimana. Questo articolo presenta tre strumenti complementari che coprono la maggior parte delle nostre esigenze di interpretabilità di Machine Learning in ManoMano, dove ogni giorno aiutiamo più di un milione di europei a trovare ciò che desiderano nel nostro catalogo di 3 milioni di prodotti fai-da-te e giardinaggio:

  1. Importanza delle funzionalità: quali funzionalità utilizza maggiormente il modello?
  2. Diagramma di dipendenza parziale: in che modo il modello utilizza una variabile specifica?
  3. Contributo delle caratteristiche: perché il modello ha fatto questa previsione specifica?
xkcd

Perché dovremmo interpretare i nostri modelli di apprendimento automatico?

  • Comprendi la tua attività: quali fattori determinano il tasso di conversione del sito Web? Qual è l'impatto del prezzo di spedizione su di esso?
  • Creare fiducia con le controparti aziendali: perché questa previsione di vendita è così alta? Perché il prodotto è stato venduto 157 volte la scorsa settimana e la stagionalità per la sua categoria è in crescita.
  • Adottare le misure pertinenti per risolvere un problema: perché è probabile che questo cliente si agiti? Perché ha avuto problemi di qualità il mese scorso.
  • Eseguire il debug / migliorare il modello: perché questa previsione di vendita è così elevata? Valori mancanti nel set di dati di produzione. Perché abbiamo sottostimato così tanto? Le vendite di questo prodotto sono state basse perché era esaurito e non lo avevamo notato.
Potere predittivo contro dilemma dell'interpretazione (© ManoMano)

Caso d'uso: modellizzazione del tasso di conversione mediante Gradient Boosting Trees

Per illustrare i tre strumenti, ci concentriamo sulla modellizzazione del tasso di conversione del prodotto. Ecco come appare il nostro set di dati di formazione:

Stiamo cercando di prevedere il tasso di conversione di un prodotto in un giorno specifico, a seconda delle caratteristiche basate sul prodotto (prezzo, valutazioni, tempo di spedizione, ecc.) E del giorno della settimana. Per semplificare la seguente analisi, campioniamo artificialmente il nostro set di dati per avere un tasso di conversione medio del 10%.

Stiamo usando LightGBM, un modello di ensemble estremamente potente che utilizza alberi. Questo strumento è ampiamente utilizzato nelle competizioni di Data Science.

Importanza caratteristica

L'importanza della funzione è uno strumento per calcolare e visualizzare rapidamente quanto sia utile ogni funzione nel nostro modello. Questo strumento è comunemente usato nei modelli di ensemble come Random Forest o Gradient Boosting Trees. Più una funzione viene utilizzata per prendere decisioni chiave con alberi decisionali, maggiore è la sua importanza relativa. Per ulteriori dettagli su come viene calcolata l'importanza delle funzionalità, è possibile fare riferimento a questo post del blog. Visualizziamo il grafico dell'importanza delle funzionalità per il nostro modello predittivo:

Secondo questo grafico a barre, le caratteristiche più importanti per prevedere i tassi di conversione sono il prezzo del prodotto, il prezzo di spedizione, le valutazioni e i tempi di spedizione. Coincide con le nostre intuizioni commerciali, il che è fantastico.

Influenza dei valori mancanti

Proviamo un'altra configurazione, immaginiamo di avere un problema di qualità dei dati e, per qualche motivo, mancava il 90% dei valori dei prezzi. Dopo aver riqualificato il modello, ecco cosa otteniamo:

Potremmo supporre che il prezzo non sia una caratteristica importante, il che è totalmente sbagliato. Dovremmo piuttosto dedicare tempo a migliorare la qualità dei dati per migliorare il nostro modello. A proposito, anche i valori mancanti possono contenere informazioni. Ad esempio, avere una valutazione media mancante significa semplicemente che non ci sono valutazioni e che il prodotto non è popolare o nuovo.

Influenza delle variabili correlate

Aggiungiamo tre caratteristiche di prezzo correlate (e rumorose) e vediamo cosa succede:

Qui l'importanza della nostra funzione "prezzo" è diminuita dal 38% al 24%. L'importanza di questa variabile è stata distribuita tra le sue variabili correlate. Inoltre, l'aggiunta di funzionalità rumorose aumenta l'utilizzo della memoria e della CPU e aumenta il rischio di overfitting. Pertanto, una funzione importante secondo questo strumento potrebbe non essere una funzione necessaria.

Pro e contro di importanza delle funzionalità

  • (+) Molto semplice da implementare, sono poche righe di codice
  • (+) Fornisce rapidamente buone informazioni sul segnale
  • (+) Strumento efficiente per rilevare problemi di qualità dei dati nel set di dati di addestramento
  • (-) Sensibilità alle correlazioni delle caratteristiche
  • (-) Sensibile ai valori mancanti
  • (-) Non fornisce la relazione tra la caratteristica e la funzione target (nel nostro esempio, sappiamo che il prezzo è molto correlato al target, ma non sappiamo in quale direzione)

Diagrammi di dipendenza parziale

I grafici di dipendenza parziale sono utili per visualizzare l'impatto di una funzione sul target previsto, emarginando i valori di tutte le altre funzionalità. Tale strumento aiuta a comprendere la correlazione tra il target e una caratteristica, a parità di altre condizioni. Per la dimostrazione matematica completa, puoi fare riferimento a questo capitolo di The Elements of Statistical Learning. I grafici di dipendenza parziale possono essere utilizzati con ogni modello di apprendimento automatico. Si consiglia di utilizzare il pacchetto python PDPBox molto completo.

Per illustrare la dipendenza parziale, prendiamo un esempio di vita reale correlato al nostro caso d'uso. Supponiamo che gli imprenditori vogliano conoscere l'impatto dei prezzi di spedizione sul tasso di conversione. Sapendo che il prezzo di spedizione è molto correlato al prezzo del prodotto, iniziamo calcolando la funzione shipping_ratio che è il rapporto tra il prezzo di spedizione del prodotto e il suo prezzo totale:

Facciamo un'analisi univariata calcolando il tasso di conversione medio dal cestino di shipping_ratio:

Il grafico risultante è abbastanza chiaro: il tasso di conversione è positivamente correlato con la funzione ratio_shipping! Comunicheremo con gli imprenditori e consiglieremo loro di aumentare i prezzi di spedizione di tutti i nostri prodotti al fine di aumentare il tasso di conversione? Certo che no, perché la correlazione non implica la causalità. Facciamo un'analisi parziale della dipendenza sulla stessa variabile e osserviamo la differenza:

Come previsto e quando prendiamo in considerazione tutte le altre funzionalità utilizzate dal modello predittivo, la funzione shipping_ratio è negativamente correlata al tasso di conversione previsto. Tieni presente che non vediamo ancora una reale causalità, ma una correlazione corretta da altre funzionalità.

Pro e contro dei diagrammi di dipendenza parziale

  • (+) Mostra la relazione tra una caratteristica e la nostra variabile di interesse
  • (+) Consente di vedere l'influenza non correlata di una funzione su un'altra, rispetto a un'analisi univariata standard
  • (-) Richiede tempo in set di dati di grandi dimensioni
  • (-) Limitato a grafici bidimensionali
  • (-) Sensibile alle caratteristiche correlate

Contributo caratteristica

Il contributo della funzione calcola l'impatto di ciascuna caratteristica su una determinata previsione. Fornisce una micro comprensione di ogni previsione. Come i diagrammi di dipendenza parziale, il contributo delle funzioni può essere calcolato indipendentemente dal modello di apprendimento automatico utilizzato. Puoi fare riferimento a questo post di blog se vuoi sapere come viene calcolato per le foreste casuali. La funzione di previsione di LightGBM fornisce un parametro per calcolarli direttamente. Prevediamo uno dei prodotti più popolari di ManoMano, un trapano di Makita, e osserviamo il contributo di ciascuna funzione:

Questo prodotto ha molte buone valutazioni (644 valutazioni, con un valore medio di 4,69 / 5). Pertanto, il contributo del numero di rating al tasso di conversione previsto è + 12%. Tuttavia, il suo prezzo (167,99 €) è superiore alla media. I prodotti costosi tendono ad avere un tasso di conversione più basso. Pertanto, il suo contributo al tasso di conversione previsto è del -7,5%. Si noti che la somma dei contributi è uguale al tasso di conversione previsto (è inoltre necessario aggiungere l'intercettazione alla somma).

Possiamo ripetere questo processo per un altro prodotto e osservare le differenze:

Anche se questo prodotto ha un tasso di conversione previsto simile al precedente trapano Makita, ha un altro "profilo": è molto più economico (34,2 €) ed è ben valutato ma i tempi di spedizione e il prezzo sono dissuasivi (6,9 € per la spedizione entro 8 giorni).

Come i due metodi precedenti, il contributo delle caratteristiche è sensibile alle correlazioni delle caratteristiche: se si alimenta il modello con due caratteristiche molto correlate, il contributo di previsione verrà diviso artificialmente per due.

Pro e contro del contributo di funzionalità

  • (+) Micro spiegazione di una previsione come somma dei contributi delle funzionalità
  • (+) Aiuta a indagare sulle previsioni per rilevare preventivamente bug del modello o problemi di qualità dei dati
  • (+) Costruisci la fiducia con i proprietari delle attività spiegando loro come si comporta l'algoritmo
  • (+) Consenti modellazione prescrittiva (vs modellazione predittiva): spiegare perché un cliente potrebbe sfornare aiuta ad intraprendere le azioni giuste
  • (-) Sensibile alle caratteristiche correlate

conclusioni

In ManoMano abbiamo presentato tre strumenti che coprono la maggior parte delle nostre esigenze di interpretabilità. Alcuni avvertimenti se li usi fuori dalla scatola:

  • Le funzioni altamente correlate sono una seccatura per l'interpretazione dell'interpretazione automatica. Devi sbarazzartene prima di provare a interpretare il tuo modello.
  • Cercare di interpretare modelli con prestazioni predittive molto scarse (ad es. 0,51 AUC) non ha senso. L'utilità di un'interpretazione è direttamente collegata al segnale predittivo acquisito dal modello.

Tieni presente che esistono altri strumenti di interpretabilità (LIME, valori di Shapley, grafici ICE, ecc.) Fai riferimento alla guida completa di Christoph Molnar per ulteriori informazioni e dettagli matematici su questi strumenti.

Speriamo che questo articolo ti sia utile e che i problemi di interpretabilità non rappresentino più un problema quando si utilizzano potenti tecniche di apprendimento automatico!

Scritto da Jacques Peeters e Romain Ayres.

Ringraziamenti

Alexandre Cazé, Yohan Grember, Chloé Martinot, Marin De Beauchamp, Bryce Tichit, Raphaël Siméon, Thomas Charuel, Louis Pery, Cyril Auberger, Matthieu Cornec e tutti i nostri grandi colleghi di ManoMano.

Unisciti a noi

Siamo alla ricerca di nuovi colleghi in ManoMano, dai un'occhiata alle nostre offerte di lavoro!