evitar cancelamentos no globoplay experimentos online para ... · @timotta dados desbalanceados...

49
@timotta Machine learning e experimentos online para evitar cancelamentos no Globoplay @timotta

Upload: dangdat

Post on 28-Jan-2019

217 views

Category:

Documents


0 download

TRANSCRIPT

@timotta

Machine learning e experimentos online para evitar cancelamentos no

Globoplay@timotta

@timotta

Globoplay,Novos assinantes,Cancelamentos

@timotta

Churn rate

@timotta

Usuários e seu viés de propensão de cancelar

@timotta

Churners!Quem são?Onde vivem?Do que se alimentam?

@timotta

Let's get the data

Usuários retidos

Usuários que cancelaram

Julho

Consumo nas X últimas semanas

Histórico da assinatura

Dados cadastrais

@timotta

Dados desbalanceados

Apenas 2% de churners

@timotta

Dados desbalanceados

Previsto

Churn Não churn

Atual Churn 0 20

Não churn 0 980

accuraccy: 0,98

precision: 0

recall: 0

@timotta

Lidando com desbalanceamento

Oversampling

Undersampling

Smote

Class weights

Class Weight

Churn 60

Não churn 1

@timotta

Lidando com desbalanceamento

Oversampling

Undersampling

Smote

Class weights

Class Weight

Churn 60

Não churn 1

@timotta

Comunicação de resultados

BalanceadosPrevisto

Churn Não churn

Atual Churn 445 50

Não churn 30 475

accuraccy: 0,92

precision: 0,94

recall: 0,90

DesbalanceadosPrevisto

Churn Não churn

Atual Churn 436 59

Não churn 402 103

accuraccy: 0,54

precision: 0,52

recall: 0,88

@timotta

eventos de usuários

AssinaturasVídeos e titulos

Dados crus

Limpeza dos dados

Split treino e teste desbalanceado Balanceamento

Split treino e teste

treino do modelo (k-fold)

Validar no teste balanceado

Troca algoritmo

Mais informações

Validar no teste desbalanceado

Processo completo

@timotta

- Random forest- 41 features

- Dados demográficos- 17 semanas de

consumo- Histórico de assinaturas

- Balanceamento Smote

Modelo finalDepois de muitas iterações

@timotta

Modelo final: Resultado

Melhor F1:

- Precision: 33%

- Recall: 88%

@timotta

Modelo final: Possíveis usos

E-mail, push notification

- Precision: 10%- Recall: 98%

Desconto:

- Precision: 84%- Recall: 12%

@timotta

Primeiro experimento AB com o modelo

ControleAlvo

@timotta

sem diferença

11% x 10,6%de cancelamento

Primeiro experimento AB com o modelo

ControleAlvo

@timotta

Churn é uma métrica influenciável em curto prazo?

@timotta

Explicando o modelo: Variáveis mais relevantes

- Idade da assinatura: Recente- Tipo de cobrança: Boleto- Sexo: Sem preencher

@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

@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

@timotta

De vídeos avulsos a

títulosMudança de foco

De vídeos avulsos

Para programas e filmes

@timotta

Hipóteses para influenciar essesfatores

@timotta

Muito tempo sem retornar

hipótese

Dificuldade de encontrar no produto o programa que está acompanhando.

@timotta

Proposta: Prever títulos que assistirá no dia

@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

@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

@timotta

MRR constante em diversas datas

@timotta

Melhor que top: ƛ = 0,95

ƛ = 0.95MRR: 0.51

TopMRR: 0.35

@timotta

Retorno semanal

Ui Ui+1

usuários ativos na semana i

usuários ativos na semana i+1

@timotta

Experimento AB

+3,61% de retorno semanal

@timotta

Poucos títulos consumidos

hipótese

- Usuário não conhece a enorme variedade de títulos que o Globoplay oferece

- Produto não exibe de forma clara essa variedade ao usuário

@timotta

Propostas: Oferecer títulos relevantes e novos

@timotta

Filtragem colaborativa

@timotta

Memory based: KNN

@timotta

Memory based: Enorme matriz

@timotta

Model based: SVD

@timotta

Model based: ALS

@timotta

Aumento de programas consumidos

AuBu

títulos consumidos antes

títulos consumidos Depois

@timotta

Concentração de usuários em títulos: Gini

@timotta

Concentração de usuários em títulos: Gini

gini = 0,22 gini = 0,09 gini = 0,13

@timotta

Experimento AB

+2,75 de programas consumidos-1,2% de concentração de programas

AlvoControle

@timotta

Mais de 20 experimentos AB(sem contar dos outros times)

@timotta

Sem isolamento

Experimento 1 Experimento 2 Experimento 3

Sorteio

A B

Sorteio

A B

Sorteio

A B

@timotta

Experimentos isolados

Sorteio

Experimento 1 Experimento 2 Slot vazio Experimento 3

Sorteio

A B

Sorteio

A B

Sorteio

A B

@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%

@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

@timotta

Recomendação

Featuring

Segmentação

Cluster

Pipeline

ExperimentaçãoGrowth

@timotta

@timotta