Modelos de propensión para aplicaciones de videojuegos

Aprende a usar BigQuery ML para entrenar, evaluar y obtener predicciones a partir de varios tipos diferentes de modelos de propensión. Los modelos de propensión pueden ayudarte a determinar la probabilidad de que usuarios específicos vuelvan a tu app para que puedas usar esa información en decisiones de marketing.

Descripción general

Si eres desarrollador de juegos para dispositivos móviles, la retención de usuarios probablemente sea uno de tus desafíos. Según el análisis de la industria de videojuegos para dispositivos móviles en 2019, la mayoría de los juegos para dispositivos móviles solo registran una tasa de retención del 25% para los usuarios después del primer día. Para retener un porcentaje más alto de usuarios a partir de ese momento, puedes tomar medidas para incentivar y motivar a los que tienen más probabilidades de regresar. Sin embargo, para segmentar a esos usuarios, debes identificar la propensión de cualquier usuario específico a que regrese después de las primeras 24 horas. Si desarrollas otros tipos de aplicaciones en línea que priorizan la reducción de la deserción de públicos, este enfoque también debería ayudarte.

Para implementar el enfoque que se describe en este artículo, usa este notebook.

En este artículo, se analiza un enfoque de alto nivel para los modelos de propensión, incluido lo siguiente:

  • Preparar datos de videojuegos para usarlos a fin de entrenar un modelo de aprendizaje automático (AA)
  • Elegir el tipo de modelo de propensión para usar
  • Entrenar y evaluar el modelo
  • Obtener predicciones a partir del modelo
  • Exportar datos de predicción para usarlos en campañas de marketing

Público

La solución está dirigida a desarrolladores de aplicaciones en línea, especialmente a los desarrolladores de juegos para dispositivos móviles. Suponemos que tienes conocimientos básicos sobre lo siguiente:

  • Conceptos de aprendizaje automático
  • SQL estándar

Conjunto de datos de muestra

La solución utiliza el conjunto de datos públicofirebase-public-project.analytics_153293282.events_20181003. Este conjunto de datos contiene los datos de Google Analytics 4 (GA4) de una app de juegos para dispositivos móviles llamada “Flood It!"”. Este conjunto de datos contiene 5,7 millones de eventos de más de 15,000 usuarios.

GA4 utiliza un modelo de medición basado en eventos. Cada fila de este conjunto de datos es un evento único que contiene campos anidados para los parámetros de eventos. Si deseas obtener más información sobre la estructura de los datos, consulta el Esquema para BigQuery Export.

Exporta datos de Google Analytics a BigQuery

Si, en lugar de los datos de muestra, quieres usar tus propios datos de una propiedad de GA4, puedes seguir las instrucciones que aparecen en (GA4) Configuración de BigQuery Export para exportar tus datos.

Procesa los datos

Debes procesar los datos del evento a fin de que estén en la forma y el formato adecuados para usarlos como datos de entrenamiento. El procesamiento de los datos alcanza los siguientes objetivos:

  • Filtra los usuarios que es poco probable que regresen a la app
  • Crea funciones para los datos demográficos de los usuarios
  • Crea funciones para los datos de comportamiento de los usuarios

Tener una combinación de datos demográficos y datos de comportamiento ayuda a crear un modelo más predictivo.

Una vez procesados, cada fila representa los datos de entrenamiento de un usuario único, que se identifica con la columna user_pseudo_id.

Etiqueta usuarios

A fin de procesar los datos, comienza por etiquetar los registros para identificar a los usuarios que parecen regresar a la app. En esta solución, etiquetas los registros para categorizarlos según la interacción con la aplicación.

En primer lugar, debes filtrar a los usuarios que pasaron menos de 10 minutos con la app durante su primera visita. Etiquetarás a estos usuarios como rebotaron.

Luego, debes etiquetar a los usuarios restantes como desertaron si no tienen datos de eventos para el usuario después de 24 horas de participación con la aplicación, o como volvieron si tienen al menos un registro de evento después de 24 horas de interactuar con la app por primera vez. El modelo usa estas etiquetas durante el entrenamiento para aprender a identificar la probabilidad de que un usuario se encuadre en una categoría o en otra. Luego, puedes usar el modelo entrenado para predecir esa probabilidad para usuarios específicos.

Si tienes un caso de uso diferente, puedes usar criterios diferentes para identificar a los clientes que rebotaron o desertaron. Si deseas predecir algo distinto a la deserción de usuarios, puedes considerar, por ejemplo, la siguiente información:

  • Si un usuario es probable que gaste dinero en la moneda local
  • La probabilidad de que el usuario complete n niveles de juego
  • La probabilidad de que el usuario pase n la cantidad de tiempo en el juego

Procesa funciones demográficas

El siguiente paso en el procesamiento de los datos es agregar características para los datos demográficos de los usuarios. En esta solución, se usan los siguientes campos como funciones demográficas:

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

Sin embargo, puedes elegir diferentes campos si funcionan mejor para tu caso de uso.

Un usuario puede tener múltiples valores únicos en estos campos. Por ejemplo, si un usuario usó la app en dos dispositivos diferentes. Para simplificar, esta solución usa los valores del primer evento de participación del usuario.

Procesa funciones de comportamiento

El último paso para procesar los datos es agregar características de comportamiento del usuario.

Para extraer el comportamiento de los usuarios de los datos, la solución analiza las actividades de cada usuario en las primeras 24 horas de participación. Además de los eventos recopilados automáticamente en Analytics, también están los eventos recomendados para juegos que puedes explorar a fin de comprender el comportamiento de los usuarios. Para predecir la deserción de usuarios en este caso, la solución cuenta la cantidad de veces que se recopilan los siguientes eventos para cada usuario en un plazo de 24 horas desde que participó el primer usuario:

  • 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

Puedes usar diferentes conjuntos de eventos si tu caso de uso es diferente al que se describe aquí. Para ver la lista de eventos disponibles, usa la siguiente consulta:

SELECT
    event_name,
    COUNT(event_name) as event_count
FROM
    firebase-public-project.analytics_153293282.events_*
GROUP BY 1
ORDER BY
   event_count DESC

Elige un modelo

Una vez que los datos de entrenamiento estén listos, estarás listo para crear un modelo de AA. Puedes elegir entre varios algoritmos de clasificación para el modelo. En la siguiente tabla, se enumeran los tipos de modelos, y sus ventajas y desventajas:

Modelo model_type Ventajas Desventajas
Regresión logística LOGISTIC_REG Es más rápido de entrenar que otros tipos de modelos. Es posible que no tenga el rendimiento más alto.
XGBoost BOOSTED_TREE_CLASSIFIER
  • Mayor rendimiento que un modelo LOGISTIC_REG.
  • Permite la inspección de la importancia de las características.
Más lento para entrenar que un modelo LOGISTIC_REG.
Modelos de redes neuronales profundas. DNN_CLASSIFIER Mayor rendimiento que un modelo LOGISTIC_REG. Más lento para entrenar que un modelo LOGISTIC_REG.
AutoML Tables AUTOML_CLASSIFIER Mayor rendimiento que un modelo LOGISTIC_REG.
  • Es posible que se tarde más en entrenar que otros tipos de modelos.
  • Explicación del modelo limitado.

Esta solución usa de forma predeterminada un modelo de regresión logística porque es el más rápido para entrenar, pero, en el notebook, puedes elegir usar uno de los otros tipos de modelos si lo prefieres.

Entrena el modelo

Entrena el modelo de clasificación mediante BigQuery ML. El modelo entrenado genera una puntuación de propensión que indica la probabilidad de deserción de usuarios. Una probabilidad del 100% de deserción se indica con churned=1 y una probabilidad del 100% de retorno se indica con churned=0, con la mayoría de los resultados entre estos límites.

Cuando usas la declaración CREATE MODEL, BigQuery ML divide de forma automática los datos de entrenamiento en un conjunto de entrenamiento y un conjunto de prueba. Esto te permite evaluar el modelo una vez finalizado el entrenamiento para que puedas ver su exactitud.

En la consulta a continuación, se muestra la instrucción CREATE OR REPLACE MODEL para entrenar el modelo:

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

Esta consulta extrae los valores month, julianday y dayofweek de las columnas datetime y timestamp, como un ejemplo de procesamiento previo de atributos adicionales que puedes realizar antes del entrenamiento. La función TRANSFORM() en tu consulta CREATE MODEL permite que el modelo conserve los valores extraídos. De esta manera, cuando uses este modelo para hacer predicciones más adelante, estos valores no se deberán volver a extraer.

Consulta el notebook para ver ejemplos de cómo entrenar modelos de XGBoost, redes neuronales profundas y AutoML Tables.

Evalúa el modelo

Una vez que el modelo termine de entrenarse, evalúa el modelo para ver su rendimiento.

En esta solución, se usa la instrucción ML.EVALUATE para generar métricas de precisión ,recuperación ,exactitud y f1_score para el modelo. Entrenar varios modelos y, luego, comparar sus métricas de evaluación puede ayudarte a decidir qué modelo funciona mejor con tus datos.

En esta solución, también se utiliza una matriz de confusión para inspeccionar qué tan bien el modelo predijo las etiquetas en comparación con las etiquetas reales. La matriz de confusión se crea mediante el umbral predeterminado de 0.5, que es posible que quieras ajustar para optimizar la recuperación, la precisión o un equilibrio entre ambos. Puedes usar el parámetro opcional THRESHOLD para modificar el umbral predeterminado.

Obtén predicciones

Una vez que el modelo se entrenó y se evaluó, puedes usarlo para obtener predicciones.

En la solución, se usa la instrucción ML.PREDICT para solicitar predicciones del modelo.

Para el modelado de propensión, el resultado de la predicción es la probabilidad de que ocurra un comportamiento. Cuanto más cercana a la probabilidad prevista sea 1, más probable es que el usuario regrese. Cuanto más cercana a la probabilidad prevista sea 0, más probable es que el usuario deserte.

Exporta predicciones

Una vez que tengas predicciones del modelo, puedes usar estos datos para la activación de marketing. Las formas comunes de hacerlo son exportar los datos para usarlos en Analytics o Firebase.

Usa predicciones en Google Analytics

Puedes usar los datos de predicción para las campañas de marketing en Analytics. Puedes volver a importar las predicciones del modelo a Analytics como un atributo de usuario mediante la función de importación de datos para Google Analytics 4. Según los valores de predicción, puedes crear y editar públicos y, además, realizar la Segmentación por público. Por ejemplo, puedes definir un público basado en usuarios con probabilidades de predicción entre 0.4 y 0.7, que es posible que no se muestren solos, pero sí se los alienta a hacerlo.

Usa predicciones en Firebase

En las aplicaciones de Firebase, puedes usar la función Importar segmentos para importar datos de predicción. Con estos datos, puedes adaptar la experiencia del usuario si segmentas los usuarios identificados mediante los servicios de Firebase, como Remote Config, Cloud Messaging y In-App Messaging. Esto te permite realizar acciones como enviar notificaciones a los usuarios, configurar la app para los usuarios y seguir los recorridos de los usuarios en todos los dispositivos.

Evaluación continua de modelos

A medida que se generan más datos de tus usuarios, es posible que desees evaluar con regularidad tu modelo en datos nuevos y volver a entrenar el modelo si notas que la calidad del modelo disminuye.

Este proceso de garantizar que un modelo de aprendizaje automático de producción aún funcione bien en datos nuevos se denomina evaluación continua y es una parte esencial de cualquier flujo de trabajo del AA. La evaluación continua puede ayudarte a detectar la variación del modelo, un fenómeno que ocurre cuando los datos usados para entrenar tu modelo ya no reflejan los datos que usas para solicitar predicciones.

Para obtener más información sobre cómo realizar una evaluación continua de los modelos, consulta Evaluación continua de modelos con BigQuery ML, procedimientos almacenados y Cloud Scheduler.

¿Qué sigue?