Modellazione di propensione per applicazioni di videogiochi

Scopri come utilizzare BigQuery ML per addestrare, valutare e ricevere previsioni da diversi tipi di modelli di propensione. I modelli di prossimità possono aiutarti a determinare la probabilità che utenti specifici tornino alla tua app, in modo da poter utilizzare tali informazioni nelle decisioni di marketing.

Panoramica

Se sei uno sviluppatore di giochi per dispositivi mobili, la fidelizzazione degli utenti probabilmente è una delle tue sfide. Secondo l'Analisi di settore dei giochi per dispositivi mobili nel 2019, la maggior parte dei giochi per dispositivi mobili registra solo un tasso di fidelizzazione del 25% per gli utenti dopo il primo giorno. Per trattenere una percentuale maggiore di utenti in seguito, puoi adottare misure per motivare e incentivare gli utenti che hanno maggiori probabilità di tornare sul tuo sito. Tuttavia, per scegliere come target questi utenti, devi identificare la propensione di un utente specifico che ritorna dopo le prime 24 ore. Se sviluppi altri tipi di applicazioni online che danno la priorità alla riduzione del tasso di abbandono dei segmenti di pubblico, questo approccio dovrebbe essere adatto anche a te.

Per implementare l'approccio descritto in questo articolo, utilizza questo blocco note.

Questo articolo descrive un approccio di alto livello alla modellazione della propensione, tra cui:

  • Preparazione dei dati di gioco per poterlo utilizzare per addestrare un modello di machine learning (ML)
  • Scegliere il tipo di modello di propensione da utilizzare
  • Addestramento e valutazione del modello
  • Generazione di previsioni dal modello
  • Esportazione dei dati di previsione da utilizzare nelle campagne di marketing

Pubblico

La soluzione è rivolta agli sviluppatori di applicazioni online, in particolare agli sviluppatori di giochi per dispositivi mobili. Si presume che tu abbia una conoscenza di base dei seguenti argomenti:

  • Concetti di machine learning
  • SQL standard

Esempio di set di dati

La soluzione utilizza il set di dati pubblico firebase-public-project.analytics_153293282.events_20181003. Questo set di dati contiene dati di Google Analytics 4 (GA4) da un'app di gioco per dispositivi mobili chiamata "Flood It!". Questo set di dati contiene 5,7 milioni di eventi di oltre 15 mila utenti.

GA4 utilizza un modello di misurazione basato sugli eventi. Ogni riga del set di dati è un evento univoco che contiene campi nidificati per i parametri evento. Per ulteriori informazioni sulla struttura dei dati, consulta lo schema di BigQuery Export.

Esportazione dei dati di Google Analytics in BigQuery

Se invece di utilizzare i dati di esempio vuoi utilizzare i tuoi dati di una proprietà GA4, puoi seguire le istruzioni in (GA4) Configurare BigQuery Export per esportare i tuoi dati.

Elaborazione dei dati

Devi elaborare i dati degli eventi per adattarli alla forma e al formato appropriati, da utilizzare come dati di addestramento. L'elaborazione dei dati raggiunge i seguenti obiettivi:

  • Vengono esclusi gli utenti che hanno meno probabilità di tornare all'app
  • Crea funzionalità per i dati demografici degli utenti
  • Crea funzionalità per i dati comportamentali degli utenti

La combinazione di dati demografici e comportamentali contribuisce a creare un modello più predittivo.

Una volta elaborati, ogni riga i dati di addestramento rappresentano 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 all'app. In questa soluzione, etichetti i record per categorizzarli in base alla loro interazione con l'applicazione.

Innanzitutto, escludi gli utenti che hanno trascorso meno di 10 minuti utilizzando l'app durante la loro prima visita. Contrassegna questi utenti come non recapitati.

Successivamente, etichetta gli utenti rimanenti come abbandono se non hanno dati degli eventi per l'utente dopo 24 ore dal primo coinvolgimento con l'applicazione o come restituito se hanno almeno un record dell'evento 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. Puoi quindi utilizzare il modello addestrato per prevedere tale probabilità per utenti specifici.

Se hai un caso d'uso diverso, puoi utilizzare criteri diversi per identificare i clienti con rimbalzo o che hanno abbandonato. Ad esempio, se vuoi prevedere qualcosa di diverso dal tasso di abbandono del pubblico, puoi:

  • La probabilità che un utente spenda denaro in valuta in-game
  • La probabilità che l'utente completi n livelli di gioco
  • La probabilità che l'utente passi n tempo in-game

Elaborazione delle funzionalità demografiche

Il passaggio successivo nell'elaborazione dei dati consiste nell'aggiungere funzionalità per i dati demografici degli utenti. Questa soluzione utilizza i seguenti campi come elementi demografici:

  • geo.country
  • device.operating_system
  • device.language

Tuttavia, puoi scegliere campi diversi se funzionano meglio nel 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 degli utenti.

Elaborazione delle funzionalità comportamentali

Il passaggio finale nell'elaborazione dei dati consiste nell'aggiungere funzionalità per il comportamento degli utenti.

Per estrarre il comportamento dell'utente dai dati, la soluzione analizza le attività di ogni utente nelle prime 24 ore di coinvolgimento dell'utente. Oltre agli eventi raccolti automaticamente da Analytics, esistono 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 ciascun utente entro 24 ore dal primo coinvolgimento:

  • 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 diversi insiemi di eventi se il tuo caso d'uso è diverso da quello descritto qui. Per visualizzare l'elenco degli eventi disponibili, utilizza la query seguente:

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. Per il modello puoi scegliere tra una serie di algoritmi di classificazione. La tabella seguente elenca i tipi di modello con i relativi pro e contro:

Modello model_type [tipo_di_modello] Vantaggi Svantaggi
Regressione logistica LOGISTIC_REG Più veloce di addestramento di altri tipi di modelli. Potrebbero non avere il rendimento migliore.
XGBoost BOOSTED_TREE_CLASSIFIER
  • Prestazioni più elevate rispetto a un modello LOGISTIC_REG.
  • Consente l'ispezione dell'importanza delle funzionalità.
Più lento dell'addestramento di un modello LOGISTIC_REG.
Reti neurali profonde DNN_CLASSIFIER Prestazioni più elevate rispetto a un modello LOGISTIC_REG. Più lento dell'addestramento di 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 per l'addestramento, ma nel notebook 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 genera un punteggio di propensione che indica la probabilità di abbandono da parte dell'utente. Una probabilità di abbandono del 100% è indicata da churned = 1 e una probabilità di ritorno del 100% è indicata da churned = 0, con la maggior parte dei risultati che rientrano tra questi limiti.

Quando utilizzi l'istruzione CREATE MODEL, BigQuery ML splits automaticamente i dati di addestramento in un set di addestramento e un set di test. In questo modo puoi valutare il modello dopo aver completato l'addestramento e vedere quanto sia 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 esempio di pre-elaborazione delle funzionalità aggiuntiva 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 alcuni esempi di come addestrare modelli XGBoost, rete neurale profonda e AutoML Tables.

Valutazione del modello

Dopo aver terminato l'addestramento, valuta il modello per vedere le prestazioni.

Questa soluzione utilizza l'istruzione ML.EVALUATE per generare metriche di precisione, recupero, accuratezza e f1_score per il modello. Addestrare più modelli e poi confrontarne le 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 in che misura le etichette hanno previsto le etichette rispetto alle etichette effettive. La matrice di confusione viene creata utilizzando la soglia predefinita di 0,5, che potresti voler 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

Dopo aver addestrato e valutato il modello, puoi utilizzarlo per ricevere previsioni.

La soluzione utilizza l'istruzione ML.PREDICT per richiedere previsioni dal modello.

Per la modellazione della propensione, l'output della previsione è la probabilità di un comportamento che si verifica. Più la probabilità prevista è pari a 1, più è probabile che l'utente torni. Quanto più probabile è la probabilità prevista, ma pari a 0, maggiore è la probabilità che l'utente abbandoni.

Esportazione delle previsioni

Quando disponi di previsioni dal modello, puoi utilizzare questi dati per l'attivazione del marketing. I modi più comuni per farlo sono esportare i dati da utilizzare 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 i segmenti di pubblico e anche il targeting per pubblico ad esempio, puoi definire un segmento di pubblico basato su utenti con probabilità di previsione comprese tra 0,4 e 0,7, che sono coloro che potrebbero non ritornare in autonomia, 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 Messaggi in-app. In questo modo puoi, ad esempio, inviare notifiche agli utenti, configurare l'app per gli utenti e seguire i percorsi degli utenti su tutti i dispositivi.

Valutazione continua del modello

Man mano che vengono generati più dati dagli utenti, potrebbe essere utile valutare regolarmente il tuo modello su dati aggiornati e addestrare nuovamente il modello se noti che la sua qualità è in calo.

Questo processo per garantire che un modello di machine learning in produzione stia ancora dando buoni risultati su nuovi dati è chiamato valutazione continua ed è una parte essenziale di qualsiasi flusso di lavoro di ML. Eseguire una valutazione continua può aiutarti a rilevare le deviazioni del modello, ossia un fenomeno che si verifica quando i dati utilizzati per addestrare il modello non riflettono più i dati utilizzati per richiedere le previsioni.

Per ulteriori informazioni su come eseguire una valutazione continua del modello, consulta Valutazione continua dei modelli con BigQuery ML, stored procedure e Cloud Scheduler.

Passaggi successivi