Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AM centrado em modelo ou dados? Um estudo de ca...

AM centrado em modelo ou dados? Um estudo de caso com Shopify Payments

O Shopify Payments é um provedor de pagamentos que permite que lojas possam ser pagas em diversas formas. A maneira como o Payments é estruturado faz com que se lojas recebam chargebacks e retornos em larga escala, a perda monetária fique a cargo do Shopify. Para mitigar este problema, desenvolvemos um modelo de Aprendizado de Máquina para prever perdas em janelas de 3 meses. Nessa palestra abordaremos com base nesse exemplo prático, como Aprendizado de Máquina com enfoque em modelos e com enfoque na qualidade e volume de dados foi utilizado para previnir milhões de dólares em perdas.

Apresentação realizada para a 14ª edição da Semana da Computação e Tecnologia (SeCoT XIV).

Breno Freitas

November 30, 2022
Tweet

More Decks by Breno Freitas

Other Decks in Technology

Transcript

  1. Olá, meu nome é Breno! ❏ Staff Data Scientist ❏

    M.Sc. em AM ❏ BCC UFSCar 011 ❏ XP em Web Dev ❏ @brenolf (GitHub) ❏ //breno.io
  2. “Um programa aprende de uma experiência E sob um conjunto

    de tarefas T e performance P, se sua performance em tarefas de T, medido por P, melhora com experiência em E.” Tom Mitchell - Carnegie Mellon University
  3. Shopify declara "código amarelo" em fraude e gerência de risco

    • Risco nunca foi centralizado como uma organização • Vários times criados/unidos • Incentivo a utilizar dados para automação do trabalho de agentes de risco • Perdas no Shopify Payments poderiam ser mitigadas?
  4. Shopify Payments é uma maneira fácil de aceitar pagamentos online,

    tirando a chatice de alocar 3P nas lojas. Stripe provê APIs para processamento de pagamento para sites. É um parceiro do Shopify que também divide a responsabilidade de lucros e perdas.
  5. Entrevistas • Novo contexto • Entrevistas com stakeholders e times

    para entender os processos • Escrita de um projeto, explorando o contexto e histórico • Proposta de alvo: saldo nos próximos 90 dias
  6. Exploração • Explorando em SQL os atributos vindos dos stakeholders

    • Validação da hierarquia ◦ Extremamente desbalanceado • Validação de queries com times especializados
  7. Modelagem • Transformação de SQL em PySpark • Modelagem dos

    dados em tabelas separadas para features (7+ jobs) • Criação de pipeline para separação de teste e treino • Criação de métricas para validação
  8. Modelagem • Transformação de SQL em PySpark • Modelagem dos

    dados em tabelas separadas para features (7+ jobs) • Criação de pipeline para separação de teste e treino • Criação de métricas para validação
  9. AM • Testando hipóteses ◦ Diferente em um projeto como

    esse! • Diferentes arquiteturas consideradas • Modelagem inicial em Jupyter ◦ Após validação, trazer modelo para produção
  10. 5% dos dados / 15 atributos Classificação se haverá 30+

    dias perdas nos próximos 90 dias Detecção de anomalia se haverá 30+ dias perdas nos próximos 90 dias Regressão para prever os próximos 90 dias de saldo
  11. 5% dos dados / 15 atributos Classificação se haverá 30+

    dias perdas nos próximos 90 dias Detecção de anomalia se haverá 30+ dias perdas nos próximos 90 dias Regressão para prever os próximos 90 dias de saldo Desempenho promissor para revocação (TP/P): ~60% Árvores de isolamento só focaram nos casos mais agressivos de perda Primeiros 30 dias tinham Erro Absoluto Médio baixo, mas cresceu muito nos outros 60
  12. 20% dos dados / 15 atributos Desempenho mais perto do

    alvo de revocação (TP/P): ~75% Peso especial para amostras com maiores perdas no fim dos 90 dias
  13. 5 MM+ Alguns resultados finais* meses que a maior perda

    do Payments seria capturada potencial em perdas salvas ~70% revocação em dólar atingida para aviso em curto período
  14. ?

  15. Principais aprendizados • Nem sempre um modelo mais complexo dará

    métricas melhores • Entender o domínio permite que utilizemos melhores atributos • A qualidade e volume dos dados dita a qualidade de um preditor: dados ruins = predições ruins • Entender o contexto ajuda na seleção de um algoritmo de predição