Slide 1

Slide 1 text

Construindo um Sistema de Recomendações na GCP Daniela Petruzalek Consultant @ ThoughtWorks Google Developer Expert [email protected] November 17th, 2018

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

Arquitetura para Sistemas de Recomendação - Serviços: - Apresentação - Backend - Algoritmos - Banco de Dados / Data Lake - Scheduler Recommendation System => RecSys => “REX”

Slide 6

Slide 6 text

Visão Macro Algoritmos de Recomendação API de Recomendação Fonte de Documentos Dados de Consumo Resultados de Algoritmos

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

Outros Algoritmos • Filtragem colaborativa item-item • Similaridade item-item (medidas de distância: cosseno, Pearson, etc) • Top: itens mais acessados • Random • Constante / lista manual

Slide 9

Slide 9 text

Fontes de Dados: MovieLens - https://movielens.org - https://grouplens.org/datasets/movielens/ - Características: - 20M de ratings - 27k filmes - 138k usuários - ML Youtube

Slide 10

Slide 10 text

Arquitetura: Sistema de Recomendações v1 Front End App Engine Scripts Storage ALS Dataproc recommend Cloud Function rexdb Cloud SQL

Slide 11

Slide 11 text

Cloud Storage Filesystem na Google Cloud Armazenamento em Buckets - Namespace único Endereço começa com gs://, exemplo: - gs://danicat/ml Paga por GB

Slide 12

Slide 12 text

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)

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

Cloud Functions Oferta de código serverless Suporta Node.js 6 e 8 (beta) Python Go (alpha) Paga por chamada de função

Slide 15

Slide 15 text

App Engine Standard Outra oferta serverless Aplicação gerenciada pela GCP: scale up / scale down Suporta: nodejs, Go, python, java, ...

Slide 16

Slide 16 text

Arquitetura: Sistema de Recomendações v1 Front End App Engine Scripts Storage ALS Dataproc recommend Cloud Function rexdb Cloud SQL

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

Cloud Composer Versão gerenciada do Apache Airflow Mínimo de 3 nós Cobrado por hora (!!!) Considerar Cloud Scheduler (beta)

Slide 19

Slide 19 text

Arquitetura: Sistema de Recomendações v2 Front End App Engine Scripts Storage ALS Dataproc recommend Cloud Function rexdb Cloud SQL Scheduler Composer

Slide 20

Slide 20 text

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)

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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.

Slide 23

Slide 23 text

https://github.com/danicat/rex =^_^= =^_^= Twitter: @danicat83 [email protected] Dúvidas?

Slide 24

Slide 24 text

No content