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

Construindo um Sistema de Recomendações na GCP

Construindo um Sistema de Recomendações na GCP

Esta talk mostra como construir um sistema de recomendações de ponta a ponta na Google Cloud Platform, utilizando como componentes principais: Dataproc, Cloud SQL, Cloud Functions e AppEngine.

O código que acompanha esta apresentação pode ser encontrado em: https://github.com/danicat/rex

Daniela Petruzalek

November 17, 2018
Tweet

More Decks by Daniela Petruzalek

Other Decks in Technology

Transcript

  1. O fenômeno da cauda longa Amazon: 36,7% (2008) $1,9 bi

    USD Amazon: 63,3%(2008) $3,4 bi USD Mais de 100 mil livros vendidos
  2. Arquitetura para Sistemas de Recomendação - Serviços: - Apresentação -

    Backend - Algoritmos - Banco de Dados / Data Lake - Scheduler Recommendation System => RecSys => “REX”
  3. Visão Macro Algoritmos de Recomendação API de Recomendação Fonte de

    Documentos Dados de Consumo Resultados de Algoritmos
  4. Algoritmo: Filtragem Colaborativa •Processo: • Identificar usuários similares • Recomendar

    itens que usuários similares gostam Filmes Usuários User x Item Matrix | Utility Matrix | Rating Matrix
  5. Outros Algoritmos • Filtragem colaborativa item-item • Similaridade item-item (medidas

    de distância: cosseno, Pearson, etc) • Top: itens mais acessados • Random • Constante / lista manual
  6. Arquitetura: Sistema de Recomendações v1 Front End App Engine Scripts

    Storage ALS Dataproc recommend Cloud Function rexdb Cloud SQL
  7. Cloud Storage Filesystem na Google Cloud Armazenamento em Buckets -

    Namespace único Endereço começa com gs://, exemplo: - gs://danicat/ml Paga por GB
  8. Cloud SQL Banco de dados relacional na GCP Dois sabores:

    MySQL e PostgreSQL Paga por CPU e Storage É possível desligar a instância (paga só por storage)
  9. Cloud Dataproc Apache Spark na GCP Provisiona cluster na GCE

    - Mínimo 3 máquinas (1 master + 2 workers) Paga por máquina + storage Cria um cluster novo em aprox. 2 minutos
  10. Cloud Functions Oferta de código serverless Suporta Node.js 6 e

    8 (beta) Python Go (alpha) Paga por chamada de função
  11. App Engine Standard Outra oferta serverless Aplicação gerenciada pela GCP:

    scale up / scale down Suporta: nodejs, Go, python, java, ...
  12. Arquitetura: Sistema de Recomendações v1 Front End App Engine Scripts

    Storage ALS Dataproc recommend Cloud Function rexdb Cloud SQL
  13. Ephemeral Dataproc Cluster Criar um cluster para cada job Executar

    o job Destruir o cluster após o job se encerrar Resolve problemas de conflito de configuração, concorrência, etc
  14. Cloud Composer Versão gerenciada do Apache Airflow Mínimo de 3

    nós Cobrado por hora (!!!) Considerar Cloud Scheduler (beta)
  15. Arquitetura: Sistema de Recomendações v2 Front End App Engine Scripts

    Storage ALS Dataproc recommend Cloud Function rexdb Cloud SQL Scheduler Composer
  16. Próximos Passos Adicionar novos algoritmos Camada de testes AB Captura

    de eventos do front Diminuir acoplamento (processamento por eventos ao invés de síncrono)
  17. Arquitetura: Sistema de Recomendações v3 Front End App Engine Scripts

    Storage ALS Dataproc recommend Cloud Function rexdb Cloud SQL Scheduler Composer Cache Memorystore Inv. Cache Pub/Sub Views Pub/Sub
  18. Conclusões A nuvem permite a construção de um sistema de

    recomendação de forma evolutiva. Utilizando os componentes certos pode ser possível fazê-lo de forma muito econômica.