Scopri come utilizzare BigQuery ML per addestrare, valutare e ottenere previsioni da diversi tipi di modelli di propensione. I modelli di propensione possono aiutarti a determinare la probabilità che utenti specifici tornino alla tua app, in modo da poter utilizzare queste informazioni per prendere decisioni di marketing.
Panoramica
Se sei uno sviluppatore di giochi per dispositivi mobili, probabilmente la fidelizzazione degli utenti è una delle tue sfide. Secondo l'analisi del settore dei giochi mobile nel 2019, la maggior parte dei giochi mobile registra un tasso di fidelizzazione del 25% per gli utenti dopo il primo giorno. Per mantenere una percentuale maggiore di utenti dopo questo periodo, puoi adottare misure per motivare e incentivare gli utenti che hanno maggiori probabilità di tornare. Tuttavia, per scegliere come target questi utenti, devi identificare la propensione di un determinato utente a tornare dopo le prime 24 ore. Se sviluppi altri tipi di applicazioni online che danno la priorità alla riduzione del tasso di abbandono del pubblico, questo approccio dovrebbe funzionare anche per te.
Per implementare l'approccio descritto in questo articolo, utilizza questo blocco note.
Questo articolo illustra un approccio generale alla definizione del modello di propensione, tra cui:
- Preparazione dei dati di gioco in modo che possano essere utilizzati per addestrare un modello di machine learning (ML).
- Scegliere il tipo di modello di propensione da utilizzare
- Addestramento e valutazione del modello
- Ottenere previsioni dal modello
- Esportazione dei dati di previsione da utilizzare nelle campagne di marketing
Pubblico
La soluzione è destinata agli sviluppatori di applicazioni online, in particolare agli sviluppatori di giochi mobile. Si presume che tu possieda una conoscenza di base degli argomenti seguenti:
- Concetti di machine learning
- SQL standard
Set di dati di esempio
La soluzione utilizza il set di dati pubblico firebase-public-project.analytics_153293282.events_20181003. Questo set di dati contiene i dati di Google Analytics 4 (GA4) di un'app di gioco mobile reale denominata "Flood It!". Questo set di dati contiene 5,7 milioni di eventi di oltre 15.000 utenti.
GA4 utilizza un modello di misurazione basato sugli eventi. Ogni riga in questo set di dati è un evento univoco, che contiene campi nidificati per i parametri evento. Per saperne di più sulla struttura dei dati, consulta lo schema per BigQuery Export.
Esportazione dei dati di Google Analytics in BigQuery
Se invece dei dati di esempio vuoi utilizzare i tuoi dati di una proprietà GA4, puoi seguire le istruzioni in (GA4) Configurare BigQuery Export per esportare i dati.
Elaborazione dei dati
Devi elaborare i dati degli eventi per ottenerli nella forma e nel formato corretti da utilizzare come dati di addestramento. L'elaborazione dei dati consente di raggiungere i seguenti obiettivi:
- Esclude gli utenti che è improbabile tornino all'app
- Crea funzionalità per i dati demografici degli utenti
- Crea funzionalità per i dati comportamentali degli utenti
La combinazione di dati demografici e dati comportamentali contribuisce a creare un modello più predittivo.
Una volta elaborati, ogni riga dei dati di addestramento rappresenta
i dati di un utente unico, identificato dalla colonna user_pseudo_id
.
Etichettatura degli utenti
Per elaborare i dati, inizia etichettando i record per identificare gli utenti che hanno poche probabilità di tornare nell'app. In questa soluzione, devi etichettare i record da classificare in base alla loro interazione con l'applicazione.
In primo luogo, escludi gli utenti che hanno trascorso meno di 10 minuti a utilizzare l'app durante la loro prima visita. e etichettali come rimbalzi.
Successivamente, etichetti gli utenti rimanenti come abbandonati se non dispongono di dati sugli eventi per l'utente dopo 24 ore dal primo coinvolgimento dell'applicazione oppure come restituiti se hanno almeno un record di eventi dopo 24 ore dal primo coinvolgimento con l'app. Il modello utilizza queste etichette durante l'addestramento per scoprire come identificare la probabilità che un utente rientri in una categoria o nell'altra. Poi puoi usare il modello addestrato per prevedere la probabilità per utenti specifici.
Se il tuo caso d'uso è diverso, puoi utilizzare criteri diversi per identificare i clienti che hanno abbandonato o che hanno abbandonato il sito. Se vuoi prevedere qualcosa di diverso dal abbandono del pubblico, puoi prendere in considerazione:
- La probabilità che un utente spenda denaro per la valuta in-game
- La probabilità che l'utente completi n livelli di gioco
- La probabilità che l'utente trascorri n tempo nel gioco
Elaborazione delle funzionalità demografiche in corso...
Il passaggio successivo nell'elaborazione dei dati consiste nell'aggiungere funzionalità per i dati demografici degli utenti. Questa soluzione utilizza i seguenti campi come funzionalità demografiche:
geo.country
device.operating_system
device.language
Tuttavia, puoi scegliere campi diversi se sono più adatti al tuo caso d'uso.
Un utente potrebbe avere più valori univoci in questi campi. ad esempio se un utente ha utilizzato l'app da due dispositivi diversi. Per semplificare, questa soluzione utilizza i valori del primo evento di coinvolgimento dell'utente.
Elaborazione delle funzionalità comportamentali
Il passaggio finale dell'elaborazione dei dati consiste nell'aggiungere funzionalità per il comportamento degli utenti.
Per estrarre il comportamento degli utenti dai dati, la soluzione analizza le attività di ciascun utente nelle prime 24 ore di coinvolgimento dell'utente. Oltre agli eventi raccolti automaticamente da Analytics, sono disponibili anche gli eventi consigliati per i giochi che puoi esplorare per comprendere il comportamento degli utenti. Per prevedere il tasso di abbandono degli utenti in questo caso, la soluzione conta il numero di volte in cui vengono raccolti i seguenti eventi per ogni utente entro 24 ore dal primo coinvolgimento dell'utente:
user_engagement
level_start_quickplay
level_end_quickplay
level_complete_quickplay
level_reset_quickplay
post_score
spend_virtual_currency
ad_reward
challenge_a_friend
completed_5_levels
use_extra_steps
Puoi utilizzare insiemi di eventi diversi se il tuo caso d'uso è diverso da quello descritto qui. Per visualizzare l'elenco degli eventi disponibili, utilizza la seguente query:
SELECT
event_name,
COUNT(event_name) as event_count
FROM
firebase-public-project.analytics_153293282.events_*
GROUP BY 1
ORDER BY
event_count DESC
Scelta di un modello
Una volta preparati i dati di addestramento, puoi creare un modello ML. Puoi scegliere da una serie di algoritmi di classificazione per il modello. Nella tabella seguente sono elencati i tipi di modello e i relativi pro e contro:
Modello | model_type | Vantaggi | Svantaggi |
---|---|---|---|
Regressione logistica | LOGISTIC_REG |
Addestramento più veloce rispetto ad altri tipi di modelli. | Potrebbe non avere le massime prestazioni. |
XGBoost | BOOSTED_TREE_CLASSIFIER |
|
L'addestramento è più lento rispetto a un modello LOGISTIC_REG . |
Reti neurali profonde | DNN_CLASSIFIER |
Prestazioni più elevate rispetto a un modello LOGISTIC_REG . |
L'addestramento è più lento rispetto a un modello LOGISTIC_REG . |
AutoML Tables | AUTOML_CLASSIFIER |
Prestazioni più elevate rispetto a un modello LOGISTIC_REG . |
|
Per impostazione predefinita, questa soluzione utilizza un modello di regressione logistica perché è il più veloce da addestrare, ma nel blocco note puoi scegliere di utilizzare uno degli altri tipi di modello, se preferisci.
Addestramento del modello
Addestra il modello di classificazione utilizzando BigQuery ML. Il modello addestrato restituisce un punteggio di propensione che indica la probabilità che un utente abbandoni. Una probabilità di abbandono del 100% è indicata da churned
=1, mentre una probabilità del 100% di ritorno è indicata da churned
=0, con la maggior parte dei risultati che rientrano tra questi limiti.
Quando utilizzi l'istruzione CREATE MODEL
, BigQuery ML
suddivide
automaticamente i dati di addestramento in un set di addestramento e in un set di test. In questo modo puoi valutare il modello dopo che l'addestramento è stato completato, per capire quanto è preciso.
La query seguente mostra l'istruzione CREATE OR REPLACE MODEL
per addestrare il modello:
CREATE OR REPLACE MODEL bqmlga4.churn_logreg
TRANSFORM(
EXTRACT(MONTH from user_first_engagement) as month,
EXTRACT(DAYOFYEAR from user_first_engagement) as julianday,
EXTRACT(DAYOFWEEK from user_first_engagement) as dayofweek,
EXTRACT(HOUR from user_first_engagement) as hour,
* EXCEPT(user_first_engagement, user_pseudo_id)
)
OPTIONS(
MODEL_TYPE="LOGISTIC_REG",
INPUT_LABEL_COLS=["churned"]
) AS
SELECT
*
FROM
Bqmlga4.train
Questa query estrae i valori month
, julianday
e dayofweek
dalle colonne datetime
e timestamp
, come un esempio di pre-elaborazione aggiuntiva delle funzionalità che puoi eseguire prima dell'addestramento. La funzione TRANSFORM()
nella query CREATE MODEL
consente al modello di conservare i valori estratti. In questo modo, quando utilizzi questo modello per fare previsioni in un secondo momento, questi valori non dovranno essere estratti di nuovo.
Visualizza il blocco note per vedere esempi di come addestrare modelli XGBoost, rete neurale profonda e AutoML Tables.
Valutazione del modello
Una volta completato l'addestramento, valuta il modello per verificarne le prestazioni.
Questa soluzione utilizza l'istruzione ML.EVALUATE
per generare metriche di precisione, richiamo, precisione e f1_score per il modello. Addestrare più modelli e confrontare le relative metriche di valutazione
può aiutarti a decidere quale modello funziona meglio con i tuoi dati.
Questa soluzione utilizza anche una matrice di confusione per esaminare la capacità del modello di prevedere le etichette rispetto alle etichette effettive. La matrice di confusione viene creata utilizzando la soglia predefinita di 0,5, che puoi regolare per ottimizzare il richiamo, la precisione o un equilibrio dei due. Puoi utilizzare il parametro facoltativo THRESHOLD
per modificare la soglia predefinita.
Generazione di previsioni
Una volta addestrato e valutato il modello, puoi utilizzarlo per ottenere previsioni.
La soluzione utilizza l'istruzione ML.PREDICT
per richiedere previsioni dal modello.
Per la creazione di modelli di propensione, l'output della previsione è la probabilità che si verifichi un comportamento. Più la probabilità prevista è pari a 1, maggiore è la probabilità che l'utente torni. Più la probabilità prevista è pari a 0, maggiore è la probabilità che l'utente abbandoni il sito.
Esportazione delle previsioni
Una volta ottenute previsioni dal modello, puoi usare questi dati per attivare il marketing. I modi più comuni sono esportare i dati per utilizzarli in Analytics o Firebase.
Utilizzare le previsioni in Google Analytics
Puoi utilizzare i dati di previsione per le campagne di marketing in Analytics. Puoi importare di nuovo le previsioni del modello in Analytics come attributo utente utilizzando la funzionalità Importazione dati per Google Analytics 4. In base ai valori di previsione, puoi creare e modificare segmenti di pubblico e anche targeting per pubblico. Ad esempio, puoi definire un segmento di pubblico in base agli utenti con probabilità di previsione comprese tra 0,4 e 0,7, ovvero quelli che potrebbero non tornare autonomamente, ma che potrebbero essere incentivati a farlo.
Utilizzo delle previsioni in Firebase
Per le applicazioni Firebase, puoi utilizzare la funzionalità Importa segmenti per importare i dati di previsione. Con questi dati puoi personalizzare l'esperienza utente scegliendo come target gli utenti identificati tramite servizi Firebase come Remote Config, Cloud Messaging e In-App Messaging. In questo modo, puoi inviare notifiche agli utenti, configurare l'app per gli utenti e seguire i loro percorsi su più dispositivi.
Valutazione continua del modello
Poiché i tuoi utenti generano più dati, ti consigliamo di valutare regolarmente il modello con dati aggiornati e di addestrarlo nuovamente se noti che la qualità del modello è ridotta.
Questo processo per garantire che un modello di machine learning di produzione continui a funzionare bene con i nuovi dati è chiamato valutazione continua ed è una parte essenziale di qualsiasi flusso di lavoro ML. L'esecuzione della valutazione continua può aiutarti a rilevare la deriva del modello, un fenomeno che si verifica quando i dati utilizzati per addestrare il modello non riflettono più i dati che stai utilizzando per richiedere previsioni.
Per scoprire di più su come eseguire la valutazione continua del modello, consulta Valutazione continua del modello con BigQuery ML, Stored Procedures e Cloud Scheduler.
Passaggi successivi
- Inizia a utilizzare il blocco note della soluzione.
- Scopri di più sull'esportazione in BigQuery dei dati di Google Analytics.
- Esamina gli eventi raccolti automaticamente da Google Analytics 4.
- Scopri come creare modelli di previsione della domanda con BigQuery ML.
- Scopri come creare un sistema di suggerimenti per i dati di e-commerce utilizzando BigQuery ML.