Modellazione di propensione per applicazioni di videogiochi

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
  • Prestazioni più elevate rispetto a un modello LOGISTIC_REG.
  • Consente di esaminare l'importanza delle caratteristiche.
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.
  • L'addestramento potrebbe richiedere più tempo rispetto ad altri tipi di modelli.
  • Spiegabilità limitata del modello.

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