O documento discute o uso de machine learning e experimentos online pela Globoplay para prever e evitar cancelamentos de assinatura. É descrito o processo de análise de dados de usuários, treinamento de modelos para prever churn, testes de hipóteses para reduzir fatores de risco e experimentos AB para validar as mudanças propostas.
13. @timotta
- Random forest
- 41 features
- Dados demográficos
- 17 semanas de
consumo
- Histórico de assinaturas
- Balanceamento Smote
Modelo final
Depois de muitas iterações
19. @timotta
Explicando o modelo: Variáveis mais relevantes
- Idade da assinatura: Recente
- Tipo de cobrança: Boleto
- Sexo: Sem preencher
20. @timotta
Quais outros fatores?
- Idade da assinatura: Recente
- Tipo de cobrança: Boleto
- Sexo: Sem preencher
- Muito tempo sem retornar ao produto
- Poucos diferentes títulos consumidos
- Pouco tempo gasto em conteúdo pago
- Pouca quantidade de vídeos assistidos
21. @timotta
Quais outros fatores?
- Idade da assinatura: Recente
- Tipo de cobrança: Boleto
- Sexo: Sem preencher
- Muito tempo sem retornar ao produto
- Poucos diferentes títulos consumidos
- Pouco tempo gasto em conteúdo pago
- Pouca quantidade de vídeos assistidos
26. @timotta
Bag of entity
V: Matriz de preferências
de usuários para cada
título
Z: Matriz com a soma do
tempo de vídeo de cada
usuário em cada título no
último dia
ƛ: Redutor temporal
with time reduction
27. @timotta
Métrica de ranking vs métrica de classificação
Preferência
Algoritmo 1
Algoritmo 2
1
1 2 3
32 Classificação:
Empate
Ranking:
Algoritmo 2
46. @timotta
Experimentos Multi Variados
Experimento 1 Experimento 2 Experimento 3
Sorteio
A B
Sorteio
A B
Sorteio
A B
E1 E2 E3 R
A A A 10%
A A B 12%
A B B 8%
B B B 10%
B B A 14%
B A A 8%
B A B 10%
A B A 11%
47. @timotta
- Machine learning lidando com dados desbalanceados
- Mudanças de rumo influenciadas pela análise de dados
- Diferentes algoritmos para diferentes objetivos
- Experimentos AB online paralelos e concorrentes
Resumão pra prova
Globoplay é o produto de vídeos da Globo.com que foi lançado em 2015.
Desde março de 2017 foi formado o time de Growth com o objetivo de alavancar a base de assinantes do Globoplay
Somos um time multidisciplinar composto de um desenvolvedor web, um engenheiro de dados, um engenheiro de machine learning, um estatístico e um pessoa de negócios.
O nosso objetivo principal é aumentar a base de assinantes. Para isso nós passamos por duas métricas:
Novas assinaturas
Evitar o abandono
A venda de novas assinaturas não é um problema para o Globoplay, basta uma campanha na TV, uma nova novela ou um novo programa que as assinaturas crescem sem dificuldade. O problema é que o abandono é altissimo.
De qualquer forma, nosso primeiro trabalho foi implementar um modelo para identificar os usuários que têm maior probabilidade de abandonar o produto.
Já havia na área de marketing algumas rotinas "rule based" com envio de e-mail para potenciais churners. Por exemplo, havia um alto numero de abandono nas primeiras semanas, então havia um disparo de e-mail automático para esses usuários. Contudo, essas regras não eram a solução ótima, e nossa hipótese é que poderíamos obter resultados melhores utilizando a combinação de diversos fatores.
O primeiro problema que encontramos foi o desbalanceamento da base. A porcentagem de churners em relação a usuários retidos era em torno de 2%. Muito baixa de forma que o resultado do modelo ficava ruim.
Os nossos primeiros modelos acabavam por otimizar a classe negativa, o que dava uma ótima acurácia. Mas o que queríamos mesmo era prever a classe churn. Por isso a métrica que escolhemos foi precision e recall.
Os nossos primeiros modelos acabavam por otimizar a classe negativa, o que dava uma ótima acurácia. Mas o que queríamos mesmo era prever a classe churn. Por isso a métrica que escolhemos foi precision e recall.
O modelo que se saiu melhor é o random forest utilizando 41 diferentes parâmetros (features), dentre eles dados demográficos, histórico de assinatura e consumo segmentado de diversas formas das ultimas 17 semanas do titular e seus dependentes.
Fizemos um experimento de envio de e-mail
Dividimos o grupo de pessoas assinantes com alta probabilidade de cancelar em pessoas
que receberiam o e-mail e pessoas que não receberiam. Não houve diferença significativa.
Fizemos um experimento de envio de e-mail
Dividimos o grupo de pessoas assinantes com alta probabilidade de cancelar em pessoas
que receberiam o e-mail e pessoas que não receberiam. Não houve diferença significativa.
É fácil em um experimento online obter diferença em métricas diretas como clique, compra ou tempo online. Mas uma métrica como o "não abandono" que depende de tantos fatores, um só experimento é pouco. Neste momento a gente ficou um pouco desanimado, mas não nos abatemos. Resolvemos então explorar um pouco mais desse modelo que teve resultado tão bom. Será que conseguimos extrair algo quantificavel?
Resolvemos então explicar o modelo pra entender melhor e os três fatores principais que determinam o churn do usuário são as seguintes variaveis categóricas.
Idade mostra que os usuários mais antigos são os que já são fiéis ao produto (ou esqueceram que assinaram)
Tipo de cobrança mostra duas possibilidades: O esquecimento de pagar ou um perfil sócio economico que não pode se manter assinante
E sexo sem preencher também é um legado de assinaturas antigas, quando não havia esse campo (embora o campo atualmente não seja obrigatório)
Um vez que os primeiros fatores referiam-se a usuários novos, resolvemos olhar os fatores que faziam com que esses usuários novos desistissem do produto.
Dois desses nos mostrou que o Globoplay estava em um caminho ruim até então. Ele nasceu com uma proposta meio youtube, de oferecer gratuitamente vídeos relevantes dos programas, mas o que percebemos com é que o assinante que se mantém é aquele que consome mais diferentes programas e seus conteúdos pagos (episódios na íntegra). Faz total sentido né, é este usuário que vê valor no produto.
Então houve uma grande mudança de mindset e foco no produto. Ao invés de ofertarmos vídeos, passamos gradualmente a ofertar títulos, sejam eles programas ou filmes. Esse processo ainda está ocorrendo. Essa mudança está acontecendo ainda.
Mas, mais que isso, nós levantamos algumas hipóteses olhando mais a fundo o que poderia estar causando cada um dos fatores.
Fizemos 6 testes AB até chegar a uma versão combinando algoritmos, layout e posição de entrega.
Chegando na solução final que obteve +3,61% de retorno semanal a mais que o antigo layout
É interessante notar, que mantivemos o teste AB por mais tempo depois para verificar se no longo prazo o retorno semanal continuaria igual ou degradaria. Ele manteve-se acima da versão anterior, mas com uma diferença menor (+1%). Isso demonstra que o efeito surpresa ajudou nas métricas.
O outro fator notado no modelo de churn é a baixa quantidade de titulos consumidos. Notamos que existe um grupo grande de usuários que nào assina realmente o Globoplay, assina um programa. Assim que termina o programa ele não volta mais ao produto (uma das possiveis causas não retorno) ou então cancela.
Com essa métrica, baseada no índice de desigualdade Gini, a gente consegue verificar se não houve uma concentração de usuários em um só grupo de usuários e comparar em um experimento AB qual alternativa teve a menor concentração. Obviamente essa métrica só tem validade se houver um empate na métrica de aumento de programas consumidos. Porque se eu criar uma feature que esconda por exemplo o programa blockbuster do momento eu consigo diminuir a concentração em programas, mas eu desagradei o usuário final. É o mesmo dilema do indice de desigualdade Gini. Etiópia tem um Gini melhor que Luxemburgo.
http://www.hostmath.com/Show.aspx?Code=%0A%5Cfrac%7B1-2*%5Csum_%7Bi%3D1%7D%5En%7Bi%20*%20W_i%7D%7D%7Bn%7D%20%2B%201
http://www.hostmath.com/Show.aspx?Code=%0AW_k%20%3D%20%5Cfrac%7BP_k%7D%7B%5Csum_%7Bi%3D1%7D%5En%7BP_i%7D%7D%0A
https://github.com/open-risk/concentration_library/issues/4