Big Data e Sistemas de Recomendação
12/09/2013
Joel Pinho Lucas
1
Saturday, September 14, 13
Agenda
• Who am I?
• O que é Big Data?
• Introdução ao NoSQL
• Big Data no mercado de trabalho
• Visão geral de MongoDB e Hadoop
• Sistemas de Recomendação
• Gameverse
• Como entrar no mundo e mercado de Big Data?
2
Saturday, September 14, 13
Who am I?
3
Saturday, September 14, 13
Lean Start-up vs. Pesquisa/Ciência?
vs
Scientific Thinking
4
Saturday, September 14, 13
Big Data
• “Termo usado para descrever o crescimento, a disponibilidade e o uso exponencial de informações estruturadas e não estruturadas”. SAS - Business Analytics software
5
Saturday, September 14, 13
Big Data - Aplicações
✓ Medicina
✓ Mercado Financeiro
✓ Detecção de Fraude
✓ Análise de Sentimento
✓ Marketing
✓ Sistemas de Recomendação
6
Saturday, September 14, 13
Big Data - Volume
A quantidade de informação no mundo dobra a cada 20 meses (Breese, et. al. - 2010)
"The New York Times" tem mais conteúdo do que um inglês médio teria acesso em toda sua vida no início do século XVII
O volume de informação no mundo ocuparia o equivalente a 295 trilhões de megabytes (University of Southern California - 2011)
7
Saturday, September 14, 13
Big Data - Variedade
8
Saturday, September 14, 13
Big Data - Velocidade
• Análise de dados:
✓ Processamento em “batch”
✓ Processamento em tempo real
9
Saturday, September 14, 13
Big Data - 3Vs
10
Fonte: http://www.datasciencecentral.com
Saturday, September 14, 13
Big Data - Etapas
11
Coleta
Processamento
Análise / Buscas
Visualização
{
Saturday, September 14, 13
Big Data - Áreas
✓Banco de Dados
✓Text-Mining
✓Infra-Estrutura / DevOps
✓Aprendizado de Máquina (Machine Learning)
✓Estatística
✓Data Analytics
✓Visualização
12
Saturday, September 14, 13
NoSQL• “Termo genérico para uma classe definida de banco de dados
não-relacionais que rompe uma longa história de banco de dados relacionais com propriedades ACID” - (Wikipedia, 2013)
13
? ? ? ?
Saturday, September 14, 13
NoSQL
14
Escalabilidade Vertical vs. Escalabilidade Horizontal
Saturday, September 14, 13
NoSQL
vs.
Quando a Consistencial Eventual é tolerável?
Saturday, September 14, 13
NoSQL - Teorema CAP
• “Estabelece que é impossível para um sistema distribuído garantir simultaneamente disponibilidade, consistência e tolerância a falhas” (Wikipedia, 2013)
16
Saturday, September 14, 13
NoSQL
17
ACID
Atomicidade -Consistência -Isolamento -
Durabilidade -
BASE
- Basicamente Disponível(Basically Available)- Estado Suave- Consistência Eventual
vs.
RDBMS NoSQL
Saturday, September 14, 13
NoSQL
✓Indicado para aplicações com grandes volumes de dados
✓Não possui esquema (schema) rigoroso como RDBMS
✓Não exige a integridade dos dados
✓Não indicado para transações sensíveis
18
Saturday, September 14, 13
Big Data/NoSQL no Mercado
• “80% das informações que a companhia possui estão completamente desestruturadas” (Jeff Jones, IBM - 2011)
• “Computadores ficam mais rápidos e empresas, mais burras” (Jeff Jones, IBM - 2011)
19
Saturday, September 14, 13
Big Data/NoSQL no Mercado
• “A falta de profissionais de TI no Brasil será de 800 mil postos em 2014” (FGV - Fundação Getúlio Vargas)
20
• “Até 2015 serão criados 4.4 milhões de empregos para suportar as iniciativas de Big Data (1.9 milhões nos EUA)” (Gartner, Inc. - 2012)
Saturday, September 14, 13
Big Data/NoSQL no Mercado
21
NoSQL SQL
Saturday, September 14, 13
Big Data/NoSQL no Mercado
22
Saturday, September 14, 13
Big Data/NoSQL no Mercado
23
Saturday, September 14, 13
Big Data/NoSQL no Mercado
24
Saturday, September 14, 13
Big Data/NoSQL no Mercado
25
Saturday, September 14, 13
Sistemas de Recomendação
• Cenário em E-Commerce:
✓A “explosão da informação” resultou em uma enorme quantidade de produtos ao alcance do usuário
✓Dificuldade na escolha para compra de produtos
✓Falta de personalização
✓Email / SPAM
26
Saturday, September 14, 13
Sistemas de Recomendação
• “Combina várias técnicas computacionais para selecionar itens personalizados com base nos interesses dos usuários e conforme o contexto no qual estão inseridos” (Wikipedia)
• Modelo de aprendizagem focado no perfil de usuário (predictive analytics) e não num sumário geral dos dados (BI)
27
“Se tenho 3 milhões de clientes na Web, tenho de ter 3 milhões de lojas on-line” Jeff Bezos, CEO - Amazon.com
Saturday, September 14, 13
Sistemas de Recomendação
✓Métodos baseados em Conteúdo:
✓Filtragem Colaborativa:
‣ Baseada em Usuário
‣ Baseada em Item
28
Saturday, September 14, 13
Sistemas de Recomendação
Figura: Recomendação baseada em Conteúdo (Gmail.com)
29
Saturday, September 14, 13
Sistemas de Recomendação
Figura: Exemplo de Falso Positivo (Gmail.com, 2010)
30
Saturday, September 14, 13
Sistemas de Recomendação
Figura: Recomendação baseada em Item - Filtragem Colaborativa (Amazon.com,)
31
Saturday, September 14, 13
Sistemas de Recomendação
Figura: Recomendação baseada em Usuário - Filtragem Colaborativa (Netflix.com)32
Saturday, September 14, 13
Tecnologias - MongoDB
• Banco de dados Orientado a Documento
• Trabalha com o formato BSON (Binary JSON)
• Schema-free
• Escalabilidade horizontal facilitada
• Linguagem rica para consulta
33
Saturday, September 14, 13
Tecnologias - MongoDB
34
Clientes - Cases
Saturday, September 14, 13
Tecnologias - MongoDB
• Características:
✓Esquema Flexível
✓Escalabilidade Horizontal
✓Suporte nativo a Replicação
✓Consistência Eventual
35
Saturday, September 14, 13
36
Tecnologias - MongoDB
RDBMS MongoDB
Base de Dados Base de Dados
Tabela Coleção
Registro Documento
Atributo Chave-valor
Índice Índice
Join Embedded doc
Chave Estrangeira Referencia
Saturday, September 14, 13
Tecnologias - MongoDB
post- title- content- status- create_time- update_time- author_name
Comment[ ] - content - status - create_time - author_name - email - url
Tags[ ]
userusernamepasswordsaltemailprofile
Relacional NoSQL37
vs.
Saturday, September 14, 13
Tecnologias - MongoDB
• Características:
✓Esquema Flexível
✓Escalabilidade Horizontal
✓Suporte nativo a Replicação
✓Consistência Eventual
38
Saturday, September 14, 13
Tecnologias - MongoDB
39
Sharding (Escalabilidade Horizontal)
1) Definir os servidores: host
2) Disparar o início de cada “shard”: sh.addShard(host)
3) Escolher uma “shard key”
4) Habilitar sharding na collection: sh.shardCollection("pessoas", {nome:1})
✓ Deploy:
Saturday, September 14, 13
Tecnologias - MongoDB
• Características:
✓Esquema ou Esquema Flexível
✓Escalabilidade Horizontal
✓Suporte nativo a Replicação
✓Consistência Eventual
40
Saturday, September 14, 13
Tecnologias - MongoDB
41
Suporte a Alta Disponibilidade - Replicação
1) Iniciar o “replica set”: rs.initiate()
2) Definir os servidores: host
3) Disparar cada réplica: rs.add(host)
✓ Deploy:
Saturday, September 14, 13
• Framework baseado em MapReduce mantido em código aberto pela Apache
• Foi concebido a partir dos papers de MapReduce e GoogleFS (GFS) do Google
• Usado em pesquisa (e produção) no Yahoo, Facebook e Microsoft Bing
• Promove escalabilidade horizontal em “hardware de comodity”
42
Tecnologias - Hadoop
Saturday, September 14, 13
Tecnologias - Hadoop
Fonte: S. Fries, B. Boden - Fast Access to Complex Data Saturday, September 14, 13
Tecnologias - Hadoop
44
Clientes - Cases
Saturday, September 14, 13
Gameverse
45
Saturday, September 14, 13
Gameverse
46
Saturday, September 14, 13
Gameverse - Desafios
• Pontencial para crescimento exponencial de usuários
• Falsos Positivos x Falsos Negativos
• Domínio de games para recomendação
• 128,000 games na AppStore
• Dados fornecidos/captados do iTunes47
Saturday, September 14, 13
Gameverse - Desafios
• Dispersão de dados (sparsity): usuários conseguem avaliar (rating) em média1% dos itens disponíveis
• Escalabilidade
• Ovelha Negra
• Primeiro Rating (early-rater)
48
Saturday, September 14, 13
Gameverse -Implementação
Saturday, September 14, 13
Gameverse -Implementação
50
Saturday, September 14, 13
51
“É complexo definir similaridade, mas…
você sabe quando você a vê.” (Dr. E. Keogh)
Saturday, September 14, 13
Como entrar no mundo de Big Data?
✓Cursos online
✓Blogs
✓“Hands On”
✓Eventos
52
Saturday, September 14, 13
Como entrar no mundo de Big Data?
✓Coursera (http://www.coursera.org):
• Introduction to Data Science
• Recommender Systems
• Machine Learning
✓MongoDB University: https://education.mongodb.com/
✓Amazon EMR Training: http://aws.amazon.com/elasticmapreduce/training/
53
Saturday, September 14, 13
Como entrar no mundo de Big Data?
✓Cursos online
✓Blogs
✓“Hands On”
✓Eventos
54
Saturday, September 14, 13
✓Gigaom: http://gigaom.com/channel/data/
✓Netflix Tech Blog: http://techblog.netflix.com/
✓GroupLens - University of Minnesota, EUA: http://www.grouplens.org/
55
Como entrar no mundo de Big Data?
Saturday, September 14, 13
Como entrar no mundo de Big Data?
✓Cursos online
✓Blogs
✓“Hands On”
✓Eventos
56
Saturday, September 14, 13
Como entrar no mundo de Big Data?
✓Weka Machine Learning: http://www.cs.waikato.ac.nz/ml/weka/
✓Amazon Public datasets: http://aws.amazon.com/publicdatasets/
✓GroupLens Public Data Sets: http://www.grouplens.org/
✓Tableau: http://www.tableausoftware.com
57
Saturday, September 14, 13
58
Como entrar no mundo de Big Data?
Saturday, September 14, 13
Como entrar no mundo de Big Data?
✓Cursos online
✓Blogs
✓“Hands On”
✓Eventos
59
Saturday, September 14, 13
✓KDnuggets: www.kdnuggets.com
✓Meetup.com:
‣ São Paulo Hadoop Users Group
‣ São Paulo MongoDB User Group
60
Como entrar no mundo de Big Data?
Saturday, September 14, 13
Perguntas - Contato
‣ Linkedin: http://br.linkedin.com/in/joelplucas/
‣ Email: [email protected]
‣ Oportunidades na Mobjoy: [email protected]
61
Saturday, September 14, 13
Recommended