Modelos de propensão para aplicativos de jogos

Aprenda a usar o BigQuery ML para treinar, avaliar e receber previsões de vários tipos diferentes de modelos de propensão. Os modelos de propensão podem ajudar a determinar a probabilidade de usuários específicos retornarem ao seu app, para que você possa usar essas informações em decisões de marketing.

Visão geral

Se você é um desenvolvedor de jogos para dispositivos móveis, a retenção de usuários provavelmente é um dos seus desafios. De acordo com a Análise do setor de jogos para dispositivos móveis de 2019, a maioria dos jogos para dispositivos móveis apresenta uma taxa de retenção de apenas 25% dos usuários após o primeiro dia. Para reter uma porcentagem maior de usuários depois disso, tome medidas para motivar e incentivar os usuários com maior probabilidade de retornar. Mas, para segmentar esses usuários, é preciso identificar a propensão de qualquer usuário específico que retorne após as primeiras 24 horas. Se você desenvolver outros tipos de aplicativos on-line que priorizam a redução do desligamento de usuários, essa abordagem também funcionará para você.

Para implementar a abordagem descrita neste artigo, use este notebook.

Neste artigo, você verá uma abordagem de alto nível para a modelagem de propensão, incluindo:

  • Como preparar dados de jogos para que possam ser usados no treinamento de um modelo de machine learning (ML)
  • Como escolher o tipo de modelo de propensão a ser usado
  • Como treinar e avaliar o modelo
  • Como receber previsões do modelo
  • Como exportar dados de previsão para uso em campanhas de marketing

Público-alvo

A solução é destinada a desenvolvedores de aplicativos on-line, especialmente desenvolvedores de jogos para dispositivos móveis. Pressupomos que você tenha conhecimentos básicos sobre os seguintes tópicos:

  • Conceitos de machine learning
  • SQL padrão

Conjunto de dados de amostra

A solução usa o conjunto de dados público firebase-public-project.analytics_153293282.events_20181003. Esse conjunto de dados contém dados do Google Analytics 4 (GA4) de um app de jogo para dispositivos móveis chamado "Flood It!". Esse conjunto de dados contém 5,7 milhões de eventos de mais de 15 mil usuários.

O GA4 usa um modelo de medição com base em eventos. Cada linha nesse conjunto de dados é um evento exclusivo, que contém campos aninhados para parâmetros de eventos. Para saber mais sobre a estrutura dos dados, consulte o Esquema para BigQuery Export.

Como exportar dados do Google Analytics para o BigQuery

Se você quiser usar seus próprios dados de uma propriedade do GA4 em vez dos dados de amostra, siga as instruções na seção (GA4) Como configurar o BigQuery Export para exportar seus dados.

Como processar os dados

Processe os dados do evento para colocá-los no formato correto para serem usados como dados de treinamento. O processamento dos dados tem as seguintes metas:

  • Filtra os usuários que provavelmente não retornarão ao aplicativo
  • Cria recursos para dados demográficos de usuários
  • Cria recursos para dados comportamentais de usuários

Ter uma combinação de dados demográficos e dados comportamentais ajuda a criar um modelo mais preditivo.

Depois de processados, cada linha dos dados de treinamento representa os dados de um usuário único, identificado pela coluna user_pseudo_id.

Como rotular os usuários

Para processar os dados, comece rotulando os registros para identificar os usuários que provavelmente não retornarão ao app. Nesta solução, é possível rotular registros para categorizá-los com base na interação deles com o aplicativo.

Primeiro, você filtra os usuários que passaram menos de 10 minutos usando o aplicativo durante a primeira visita. Identifique esses usuários como rejeição.

Rotule os usuários restantes como desligamento se não houver dados de evento para o usuário depois de 24 horas da primeira interação com o aplicativo ou retorno se houver pelo menos um registro de evento após 24 horas da primeira interação com o app. O modelo usa esses rótulos durante o treinamento para aprender a identificar a probabilidade de um usuário ser incluído em uma categoria ou em outra. É possível usar o modelo treinado para prever essa probabilidade para usuários específicos.

Se você tiver um caso de uso diferente, poderá usar critérios diferentes para identificar os clientes de rejeição ou desligamento. Se você quiser prever algo além do desligamento de usuários, poderá considerar, por exemplo:

  • Se um usuário provavelmente gastará dinheiro na moeda do jogo
  • A probabilidade de o usuário completar n níveis de jogo
  • A probabilidade de o usuário passar n tempo no jogo

Como processar recursos demográficos

A próxima etapa do processamento dos dados é adicionar recursos para as informações demográficas do usuário. Esta solução usa os seguintes campos como recursos demográficos:

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

No entanto, você pode escolher campos diferentes se eles funcionarem melhor para seu caso de uso.

Um usuário pode ter diversos valores exclusivos nesses campos. Por exemplo, se um usuário usar o app em dois dispositivos diferentes. Para simplificar, esta solução usa os valores do primeiro evento de engajamento do usuário.

Como processar recursos comportamentais

A etapa final no processamento dos dados é a inclusão de recursos para o comportamento do usuário.

Para extrair o comportamento do usuário dos dados, a solução analisa as atividades de cada usuário nas primeiras 24 horas de engajamento. Além dos eventos coletados automaticamente pelo Analytics, também há eventos recomendados para jogos que você pode analisar para entender o comportamento do usuário. Para prever o desligamento de usuários nesse caso, a solução conta o número de vezes que os seguintes eventos são coletados para cada usuário até 24 horas após o primeiro engajamento do usuário:

  • 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

Você pode usar conjuntos diferentes de eventos se o caso de uso for diferente do descrito aqui. Para ver a lista de eventos disponíveis, use a seguinte 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

Como escolher um modelo

Quando os dados de treinamento estiverem preparados, será possível criar um modelo de ML. É possível escolher dentre vários algoritmos de classificação para o modelo. A tabela a seguir lista os tipos de modelo e as vantagens e desvantagens deles:

Modelo model_type Vantagens Desvantagens
Regressão logística LOGISTIC_REG Mais rápido para treinar do que outros tipos de modelo. Talvez não tenha o melhor desempenho.
XGBoost BOOSTED_TREE_CLASSIFIER
  • Desempenho superior ao de um modelo LOGISTIC_REG.
  • Permite a inspeção da importância do recurso.
Mais lento para treinar do que um modelo LOGISTIC_REG.
Redes neurais profundas DNN_CLASSIFIER Desempenho superior ao de um modelo LOGISTIC_REG. Mais lento para treinar do que um modelo LOGISTIC_REG.
AutoML Tables AUTOML_CLASSIFIER Desempenho superior ao de um modelo LOGISTIC_REG.
  • Pode levar mais tempo para ser treinado do que outros tipos de modelo.
  • Explicabilidade do modelo limitada.

Por padrão, esta solução usa um modelo de regressão logística porque é o mais rápido de treinar, mas no notebook é possível usar um dos outros tipos de modelos, se preferir.

Como treinar o modelo

Treine o modelo de classificação usando o BigQuery ML. O modelo treinado gera uma pontuação de propensão que indica a probabilidade de desligamento de um usuário. Uma probabilidade de 100% de desligamento de usuários é indicada por churned=1, e uma probabilidade de retorno 100% é indicada por churned=0, com a maior parte dos resultados entre esses limites.

Quando você usa a instrução CREATE MODEL, o BigQuery ML divide automaticamente os dados de treinamento em um conjunto de treinamento e um de teste. Isso permite que você avalie o modelo após a conclusão do treinamento para ver a acurácia dele.

A consulta abaixo mostra a instrução CREATE OR REPLACE MODEL para treinar o 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

Essa consulta extrai os valores de month, julianday e dayofweek das colunas datetime e timestamp, como um exemplo de pré-processamento extra de recursos que é possível ser feito antes do treinamento. A função TRANSFORM() na consulta CREATE MODEL permite que o modelo retenha os valores extraídos. Dessa forma, quando você, posteriormente, usar esse modelo para fazer previsões, esses valores não precisarão ser extraídos novamente.

Consulte o notebook para ver exemplos de como treinar modelos do XGBoost, da rede neural profunda e do AutoML Tables.

Como avaliar o modelo

Depois que o modelo terminar o treinamento, avalie o modelo para ver o desempenho dele.

Esta solução usa a instrução ML.EVALUATE para gerar as métricas precision, recall, accuracy e f1_score para o modelo. Treinar vários modelos e comparar as métricas de avaliação deles pode ajudar você a decidir qual modelo funciona melhor com seus dados.

Esta solução também usa uma matriz de confusão para verificar a eficiência da previsão dos rótulos pelo modelo, em comparação com os rótulos reais. A matriz de confusão é criada usando o limite padrão de 0,5, que pode ser ajustado para otimizar o recall, a precisão ou o equilíbrio dos dois. Use o parâmetro opcional THRESHOLD para modificar o limite padrão.

Como receber previsões

Depois que o modelo for treinado e avaliado, será possível usá-lo para receber previsões.

A solução usa a instrução ML.PREDICT para solicitar previsões do modelo.

Para o modelo de propensão, a saída da previsão é a probabilidade de um comportamento ocorrer. Quanto mais próxima a probabilidade prevista for de 1, maior será a probabilidade de retorno do usuário. Quanto mais próxima a probabilidade prevista for de 0, maior será a probabilidade de desligamento do usuário.

Como exportar previsões

Depois que você tiver as previsões do modelo, será possível usar esses dados para a ativação do marketing. As maneiras comuns de fazer isso são exportar os dados para uso no Google Analytics ou no Firebase.

Como usar previsões no Google Analytics

Use os dados de previsão em campanhas de marketing no Google Analytics. Importe as previsões do modelo no Google Analytics como um atributo do usuário usando o recurso de importação de dados do Google Analytics 4. Com base nos valores de previsão, é possível criar e editar públicos-alvo e também fazer a segmentação por público-alvo. Por exemplo, é possível definir um público-alvo com base nos usuários com probabilidades de previsão entre 0,4 e 0,7, que são aqueles que podem não retornar por conta própria, mas podem ser incentivados a fazê-lo.

Como usar previsões no Firebase

Em aplicativos do Firebase, use o recurso Importar segmentos para importar dados de previsão. Com esses dados, você pode personalizar a experiência do usuário segmentando os usuários identificados com os serviços do Firebase, como a Configuração remota, a Cloud Messaging e Mensagens no app. Isso permite que você envie notificações aos usuários, configure o app para usuários e siga a jornada do usuário em vários dispositivos.

Avaliação contínua do modelo

À medida que mais dados forem gerados pelos usuários, convém avaliar regularmente o modelo quanto aos dados atualizados e treinar novamente o modelo, caso você perceba que a qualidade do modelo está diminuindo.

Esse processo de garantir que um modelo de machine learning de produção ainda tenha um bom desempenho com novos dados é chamado de avaliação contínua e é parte essencial de qualquer fluxo de trabalho de ML. A realização da avaliação contínua pode ajudá-lo a detectar o deslocamento do modelo, um fenômeno que ocorre quando os dados usados para treinar o modelo não refletem mais os dados que você está usando para solicitar previsões.

Para saber mais sobre como fazer uma avaliação de modelo contínua, consulte Avaliação contínua do modelo com BigQuery ML, procedimentos armazenados e Cloud Scheduler.

A seguir