Aprende a usar BigQuery ML para entrenar, evaluar y obtener predicciones de diversos tipos de modelos de propensión diferentes. 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 un desarrollador de juegos para dispositivos móviles, es probable que la retención de los usuarios sea uno de tus desafíos. Según el Análisis de la industria de juegos para dispositivos móviles en 2019, la mayoría de los juegos para dispositivos móviles solo ven una tasa de retención del 25% para los usuarios después del primer día. Para conservar un porcentaje mayor de usuarios después de eso, puedes tomar medidas para fomentar y fomentar la participación de los usuarios con más probabilidades de volver. Sin embargo, para orientarte a esos usuarios, debes identificar la propensión de cualquier usuario específico 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 del público, este enfoque también debería ayudarte.
Para implementar el enfoque descrito 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 para entrenar un modelo de aprendizaje automático (AA)
- Elige qué tipo de modelo de propensión 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, en especial 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 usa 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 usa un modelo de medición basado en eventos. Cada fila de este conjunto de datos es un evento único, que contiene campos anidados para parámetros de evento. Para 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 para que tengan la forma y el formato correctos que se usarán como datos de capacitación. El procesamiento de datos logra los siguientes objetivos:
- Filtra a los usuarios que es probable que no 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 de comportamiento ayuda a crear un modelo más predictivo.
Una vez procesados, cada fila representa los datos de capacitación que representan los datos de un usuario único, que se identifican con la columna user_pseudo_id
.
Etiqueta a los usuarios
Para procesar los datos, empieza por etiquetar los registros para identificar a los usuarios que parecen volver poco a la app. En esta solución, debes etiquetar los registros para clasificarlos 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 desertadores si no tienen datos de eventos para el usuario después de 24 horas de la interacción de la primera aplicación con la aplicación. , o como retornante 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 la capacitación para aprender cómo identificar la probabilidad de que un usuario se incluya en una categoría o en la otra. Luego, puedes usar el modelo entrenado para predecir esa probabilidad para usuarios específicos.
Si tienes un caso práctico diferente, puedes usar criterios diferentes para identificar a los clientes rebotes o desertadores. Si deseas predecir algo que no sea la deserción de públicos, puedes considerar, por ejemplo:
- Si es probable que un usuario invierta dinero en la moneda del juego
- La probabilidad de que el usuario complete n niveles de juego
- La probabilidad de que el usuario dedique n cantidad de tiempo en el juego
Procesa funciones demográficas
El siguiente paso en el procesamiento de datos es agregar atributos para los datos demográficos de los usuarios. Esta solución usa los siguientes campos como atributos demográficos:
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 varios valores únicos en estos campos. Por ejemplo, si un usuario usó la app desde dos dispositivos diferentes. Para simplificar, en esta solución se usan los valores del primer evento de participación de los usuarios.
Procesa funciones de comportamiento
El último paso del procesamiento de los datos es agregar atributos para el 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 para 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 práctico es diferente del 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 capacitación estén preparados, 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 |
Entrena más rápido que otros tipos de modelos. | Es posible que no tenga el rendimiento más alto. |
XGBoost | BOOSTED_TREE_CLASSIFIER |
|
Es más lento para entrenar que un modelo LOGISTIC_REG . |
Modelos de redes neuronales profundas. | DNN_CLASSIFIER |
Mayor rendimiento que un modelo LOGISTIC_REG . |
Es más lento para entrenar que un modelo LOGISTIC_REG . |
AutoML Tables | AUTOML_CLASSIFIER |
Mayor rendimiento que un modelo LOGISTIC_REG . |
|
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
Entrenar el modelo de clasificación con BigQuery AA. El modelo entrenado da como resultado una puntuación de propensión que indica la probabilidad de deserción de un usuario. Una probabilidad del 100% de deserción se indica con churned
=1 y una probabilidad del 100% de devolver se indica con churned
=0, con la mayoría de los resultados dentro de estos límites.
Cuando usas la declaración CREATE MODEL
, BigQuery AA divide automáticamente los datos de capacitación en un conjunto de entrenamiento y un conjunto de prueba. Esto te permite evaluar el modelo una vez finalizada la capacitación para que puedas ver su exactitud.
La siguiente consulta muestra la declaració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 valores de month
, julianday
y dayofweek
de las columnas datetime
y timestamp
, como ejemplo de procesamiento previo de atributos adicionales que puedes realizar antes de la capacitación. La función TRANSFORM()
en tu consulta CREATE MODEL
permite que el modelo conserve los valores extraídos. De esa manera, cuando uses este modelo para hacer predicciones más adelante, estos valores no tendrán que volver a extraerse.
Consulta el notebook para ver ejemplos sobre cómo entrenar XGBoost, la red neuronal profunda y los modelos de AutoML Tables.
Evalúa el modelo
Una vez que el modelo terminó de entrenarse, evalúa el modelo para ver su rendimiento.
En esta solución, se usa lo siguiente:ML.EVALUATE
declaración para generar precisión , recuperación ,exactitud yPuntuación f1 métricas del modelo. Entrenar varios modelos y, luego, comparar sus métricas de evaluación pueden ayudarte a decidir qué modelo funciona mejor con tus datos.
En esta solución, también se usa 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 con un límite predeterminado de 0.5, que puedes ajustar para optimizar la recuperación, precisión o un equilibrio de 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 declaració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 se produzca un comportamiento. Cuanto más cercana sea la probabilidad prevista a 1, más probable será que el usuario regrese. Cuanto más cercana sea la probabilidad prevista a 0, más probable será que el usuario la 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 datos de predicción para campañas de marketing en Analytics. Puedes volver a importar las predicciones del modelo a Analytics como un atributo de usuario a través de 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, también puedes hacer Segmentación por público. Por ejemplo, puedes definir un público. según usuarios con probabilidades de predicción entre 0.4 y 0.7, que son aquellas que podrían no mostrarse por sí solas, pero que se podrían incentivar a que lo hagan.
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 a través de la orientación a los usuarios identificados a través de los servicios de Firebase, como Remote Config, Cloud Messaging y mensajes desde la app. Esto te permite enviar notificaciones a los usuarios, configurar la app para los usuarios y seguir el recorrido 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 según datos nuevos y volver a entrenarlo si observas que la calidad disminuye.
Este proceso de garantizar que un modelo de aprendizaje automático de producción siga funcionando bien con los datos nuevos se denomina evaluación continua y es una parte esencial de cualquier flujo de trabajo del AA. Realizar una evaluación continua puede ayudarte a detectar el desvío de modelos, 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 modelos, consulta Evaluación de modelos continuos con BigQuery ML, procedimientos almacenados y Cloud Scheduler.
¿Qué sigue?
- Empieza con la solución notebook de soluciones.
- Obtén información sobre la exportación de BigQuery a los datos de Google Analytics.
- Revisa los eventos que recopila automáticamente Google Analytics 4.
- Aprende a crear modelos de previsión de demanda con BigQuery AA.
- Aprende a compilar un sistema de recomendación en datos de comercio electrónico con BigQuery AA.