Come Strutturare Efficacemente i Progetti di Data Science

Efficiently Structuring Data Science Projects

Una breve spiegazione sull’utilizzo dello strumento PSW

Foto di Ross Sneddon su Unsplash

Introduzione

Ho lavorato su numerosi progetti di Data Science per aiutare i clienti ad affrontare vari compiti di regressione e classificazione: modelli di look-alike e sistemi di raccomandazione, problemi di NLP, analisi predittive solo per citarne alcuni.

Spesso i clienti sono impegnati nella loro routine lavorativa, quindi non possono permettersi di pianificare riunioni di lunga durata per descrivere in dettaglio ciò che desiderano vedere nel progetto. Pertanto, è molto importante avere un’agenda dettagliata e ben strutturata.

Nelle chiamate con gli esperti, applico spesso l’approccio PSW (o Problem Statement Worksheet) per capire appieno le esigenze del cliente.

Il PSW è un modello di descrizione delle attività aziendali utilizzato principalmente nella consulenza, ma adatto anche a quasi ogni progetto IT.

In questo post, ti mostrerò come utilizzare lo strumento PSW per comprendere meglio i punti chiave dei progetti di Data Science e ottenere il massimo dalle riunioni con i clienti rendendole più coerenti e concise.

Il PSW di solito contiene sei blocchi principali:

  • Contesto. Questo blocco contiene informazioni concise sullo stato attuale del progetto e sulle sfide che ne hanno causato l’avvio.
  • Criteri di successo. È importante capire come le decisioni possibili per risolvere i compiti del progetto verranno valutate e classificare tutti i criteri in ordine di importanza.
  • Ambito delle soluzioni. Questo blocco fornisce una comprensione dei limiti dell’analisi. È meglio chiarire con il cliente quali aree non devono più essere considerate.
  • Limitazioni delle soluzioni. Qui si delineano le barriere che possono insorgere nello spazio delle decisioni. Potrebbero essere linguaggi di programmazione specifici da utilizzare, requisiti di modelli o limiti di budget rigidi.
  • Stakeholder. Questo è un elenco di persone che influenzeranno la presa di decisioni e il successo del progetto. Queste persone possono essere suddivise in coloro che decidono, coloro che aiutano e coloro che ostacolano.
  • Principali fonti di informazioni. Questo blocco intende rispondere alla domanda “Da dove ottenere i dati per risolvere i compiti del nostro progetto?”. È meglio suddividere le fonti di informazione in gruppi pertinenti, ad esempio: 1) libri, articoli di ricerca pertinenti; 2) gli ultimi rapporti del settore; 3) progetti simili, ecc.

Di seguito considererò separatamente ciascuno dei blocchi e fornirò esempi di informazioni che possono essere inserite.

1. Contesto

Foto di Keith Misner su Unsplash

Questo è il primo blocco e di solito accade naturalmente dopo i saluti reciproci. Qui chiedo spesso ai clienti di fornire un po’ più di contesto sul progetto: perché è apparso, perché è importante per l’azienda, ecc.. Da un lato, questi dettagli creeranno una solida base per approfondire le sfumature del progetto, dall’altro aiuteranno a formulare l’obiettivo principale del progetto.

Se riesci a definire l’Obiettivo del Progetto in una frase, allora hai capito perfettamente il progetto.

Ecco un tipico esempio di sezione Contesto basata su input da uno dei clienti:

Ogni app mobile deve tener conto delle esigenze degli utenti per offrire loro le soluzioni più convenienti. È ben stabilito che gli utenti entrano nell’app con uno scopo specifico, eseguendo determinate azioni. Ma questa sequenza può essere accorciata aggiungendo raccomandazioni allo schermo, ad esempio per effettuare una transazione verso un altro utente più velocemente. Qui entrano in gioco i sistemi di raccomandazione basati su Machine Learning (ML).

Come parte del progetto, è necessario classificare i contatti per ogni utente in base alla quantità di trasferimenti effettuati. Ci sono già stati tentativi di addestrare il modello, quindi la base di partenza è già disponibile, ma ora l’obiettivo è migliorarne la precisione del 5% o più applicando algoritmi di raccomandazione di ML.

Come puoi vedere, il blocco di Background aiuta a inserire i compiti del progetto nel contesto generale dell’azienda (rendere un’app ancora più user-friendly) e potrebbe, se necessario, adattarli tenendo conto degli obiettivi globali (applicando sistemi di raccomandazione basati su ML).

2. Criteri di Successo

Foto di Guille Álvarez su Unsplash

Qui puoi chiedere al cliente su quali parametri principali verrà valutato il progetto e quali criteri verranno utilizzati per determinare il “successo del progetto”. Questi possono essere indicatori finanziari (come la riduzione dei costi) e non finanziari (ad esempio il numero di utenti attivi dell’applicazione, l’accuratezza del modello creato, ecc.). Oltre ai criteri specifici, è importante conoscere tutti i desideri incommensurabili del cliente. Forse i tuoi clienti rivoluzioneranno la loro cultura aziendale con l’aiuto delle misure proposte (perché no?!).

Continuando con l’esempio dell’app mobile e dei sistemi di raccomandazione, di seguito sono riportati i possibili criteri di successo per questo progetto:

1) La selezione di un modello di ML per il sistema è adeguatamente spiegata. 2) Il modello di base è stato migliorato del 5% o più. 3) La velocità di esecuzione del modello è inferiore a 6 ore dal momento del lancio fino all’ottenimento dei risultati. 4) Le prestazioni del modello vengono verificate sui dati disponibili: dovrebbe avere un’accuratezza superiore all’85% sul set di test.

3. Ambito dello Spazio di Soluzione

Foto di Nicolas Lobos su Unsplash

È importante capire quali sono i limiti del progetto. Molto spesso, questo blocco di PSW include un breve contesto del progetto, ovvero perché l’argomento del progetto è importante e attuale, quali soluzioni e benchmark esistono già sul mercato e possono essere ulteriormente modificati per soddisfare le esigenze del cliente.

Se parliamo di sistemi di raccomandazione, bisogna tenere presente che ci sono diversi approcci per crearli.

Possiamo considerare metodi basati sul contenuto (content-based) o sulla conoscenza (knowledge-based), utilizzando il filtraggio collaborativo (collaborative filtering) o un approccio ibrido. I sistemi ibridi combinano i vantaggi di diversi sistemi, consentendo loro di diventare uno strumento completo per fare raccomandazioni.

4. Vincoli all’interno dello Spazio di Soluzione

Foto di Joshua Hoehne su Unsplash

In questo blocco, vogliamo delineare la gamma di soluzioni accettabili e inaccettabili. Puoi chiedere direttamente ai clienti riguardo a questo. La domanda “Quali sono le nostre limitazioni?” potrebbe aiutare. Qui potresti sentire parlare di restrizioni su metodi, tecniche, linguaggi di programmazione. Per il progetto analizzato, c’erano limiti legati all’uso di dataset open-source per l’addestramento dei modelli di ML e alla riproducibilità dei risultati ottenuti. Quest’ultima può essere ottenuta fornendo un file README con una descrizione dettagliata del progetto.

1. Restrizione sull’uso di fonti di terze parti: quando si sviluppa un sistema di raccomandazione, non utilizzare dati aperti per il pre-addestramento del modello. 2. Riproducibilità dell’approccio implementato: quando si riavvia il modello su un altro computer, dovrebbero essere ottenuti risultati simili.

Nota

I blocchi 3 e 4 in PSW possono essere confusi. In realtà, come capire la differenza tra spazio di soluzione e vincoli? Guardiamo un esempio.

Immagina di aver trovato una vecchia lettera in cui tuo nonno scrive che molti anni fa ha nascosto nel cortile della casa di famiglia un baule pieno d’oro. Non ha specificato esattamente dove l’ha fatto, quindi l’intero cortile sarebbe uno spazio di soluzione. Una volta letta questa lettera, vuoi estrarre il tesoro il più presto possibile e pensi di usare una scala mobile per trovarlo. Purtroppo, il cortile è recintato e non è possibile accedervi con una scala mobile. In questo caso, l’impossibilità di utilizzare le scale mobili sarebbe un chiaro vincolo all’interno dello spazio di soluzione.

Foto di Jean-Frederic Fortier su Unsplash

5. Stakeholders

Foto di airfocus su Unsplash

Questo blocco di PSW fornisce un’idea di quali persone dovrebbero essere prese in considerazione durante l’implementazione del progetto. Tipicamente, gli stakeholder sono coloro che hanno un interesse nell’esito del progetto. Possono essere i membri di un team di progetto, i responsabili di progetto, i dirigenti, gli investitori di progetto, i clienti e gli utenti finali.

Gli stakeholder sono persone che saranno influenzate dal progetto in qualsiasi momento del suo ciclo di vita e il loro contributo può influire direttamente sull’esito. Nel caso dello sviluppo del sistema di raccomandazione, la sua integrazione nell’app sarà vantaggiosa per due gruppi principali di persone:

1) Utenti dell’app mobile che risparmiano tempo utilizzando questo sistema. 2) Sviluppatori dell’applicazione che aumenteranno la fedeltà degli utenti rendendo il loro prodotto più funzionale.

6. Principali Fonti di Informazione

Foto di Susan Q Yin su Unsplash

Tipicamente questo blocco contiene tutte le informazioni rilevanti che consentono di comprendere pienamente l’argomento, ad esempio link a librerie API open source [1], tutorial [2], repository, articoli di ricerca, ecc.

In questo caso è estremamente importante chiedere ai clienti cosa è stato già fatto su questo progetto in precedenza. E se lo è stato, non esitare a chiedere loro di condividere ciò che è stato fatto bene e ciò che è stato implementato in modo non soddisfacente durante i primi passi nel progetto. Questo ti darà alcuni suggerimenti su possibili azioni future e direzioni in cui il progetto può essere portato avanti.

Per il progetto di Data Science considerato con sistema di raccomandazione, utilizzare tutti i materiali, inclusi articoli nel campo dell’apprendimento automatico e dell’analisi predittiva, ad esempio una revisione completa sugli ultimi risultati ottenuti in questa industria potrebbe essere un buon punto di partenza [3].

Concentrarsi su approcci aggiornati per risolvere problemi simili di classificazione e raccomandazioni.

Conclusioni

Spero che le informazioni contenute in questo post ti aiutino a essere ben preparato per qualsiasi riunione con i clienti e a fare le domande appropriate durante le stesse.

Di seguito riassumerò le principali informazioni sul metodo PSW:

  1. Mentre applichi il PSW, non dimenticare di registrare tutti i momenti in cui il cliente ti dice qualcosa. Di solito riassumo tutte le informazioni in un unico file di Follow Up, che utilizzo durante l’implementazione del progetto di Data Science.
  2. Lo strumento PSW è utile non solo per le riunioni con i clienti. Inoltre, può aiutare i nuovi membri dei gruppi di progetto di Data Science a immergersi più rapidamente nel progetto ponendo domande preziose ai membri più esperti del gruppo di progetto.
  3. Per favore, tenga presente che, sebbene il metodo PSW sia uno strumento ottimo e facile da usare, non è una soluzione magica “taglia unica”. In alcuni casi potrebbe non funzionare.

In generale, l’approccio PSW funziona bene per i progetti di Data Science, in cui c’è una visione chiara del compito con alcuni input dal cliente e tentativi iniziali di risolvere il compito. In questo caso, i clienti possono condividere queste informazioni con me al fine di risolvere insieme la loro sfida con l’aiuto di PSW. Tuttavia, nel caso in cui il progetto sia caratterizzato da molte informazioni sconosciute e prospettive poco chiare, sarebbe difficile applicare lo strumento PSW. Ad esempio, se i clienti richiedono la generazione di idee per il loro progetto di Data Science che non è ancora iniziato, il metodo PSW non sarà applicabile e sarà necessario sceglierne di diversi.

Grazie per la lettura e buona fortuna con i tuoi progetti!

Elenco delle Referenze

  1. API REST per raccomandazioni: https://github.com/recommender-system/reco-api?ysclid=lll99344l9788228410
  2. Tutorial per principianti: Sistemi di raccomandazione in Python: https://www.datacamp.com/tutorial/recommender-systems-python
  3. Un’indagine completa sui sistemi di raccomandazione multimodali: tassonomia, valutazione e future direzioni: https://arxiv.org/pdf/2302.04473.pdf