introdução - inteligência na web e big datatitle introdução - inteligência na web e big data...

60
Introdução Inteligência na Web e Big Data Fabricio Olivetti de França e Thiago Ferreira Covões [email protected], [email protected] Centro de Matemática, Computação e Cognição Universidade Federal do ABC

Upload: others

Post on 13-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

IntroduçãoInteligência na Web e Big Data

Fabricio Olivetti de França e Thiago Ferreira Covõ[email protected], [email protected]

Centro de Matemática, Computação e CogniçãoUniversidade Federal do ABC

Page 2: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Introdução

Page 3: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Mineração de Dados

Extração e descoberta de conhecimentos de bases de dados.

Interdisciplinar: aprendizado de máquina, estatística e bancode dados.

Objetivo: conhecimento entregue de forma legível ou modelocomputacional.

1

Page 4: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Principais Tarefas

Agrupamento dos Dados:

• Segmentação• Sumarização• Redução

2

Page 5: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Principais Tarefas

Classificação:

• Rotular dados em classes• Aplicável em dados ainda não rotulados• Automatizar tarefa

3

Page 6: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Principais Tarefas

Regressão:

• Modelo matemático descritivo

• Entender fenômenos

4

Page 7: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Pipeline

Raw Data

Select and Join

Export

Transformation

NormalizationFeatureSelection

FeatureReduction

FeatureEngineering

Labeling

Model Selection

Parameters Optimization

Model Validation

5

Page 8: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Muitos Dados

Novas tecnologias:

• Poder de processamento• Capacidade de armazenamento• Capacidade de coleta de dados

6

Page 9: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Poder de Processamento

Figura 1: Fonte: maximumpc.com7

Page 10: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Poder de Processamento

Não leva em conta apenas o clock:

• Instruções utilizando menos ciclos• Cache maior• Pipeline de instruções / Paralelização

• Mais instruções → otimização• Intrinsics• Multicore

8

Page 11: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Armazenamento

Figura 2: Fonte: wikimedia.org

9

Page 12: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Armazenamento

• Velocidade e durabilidade também aumentaram.• Custo dimiuiu com o tempo.• Computadores capazes de gerenciar múltiplos discos.

10

Page 13: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Coleta

Novas tecnologias, novas fontes:

• Transações de compras na internet• Dados de navegação (Google, Facebook)• Dados de satélite• Experimentos com genes

11

Page 14: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Coleta x Armazenamento

O crescimento de capacidade de armazenamento e coletalevou a uma imensa quantidade de dados, que devem serprocessados.

12

Page 15: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Coleta x Armazenamento

Em 2012, a Amazon vendia 158 itens por segundo: 13.651.200itens em um dia!

Assumindo que cada transação de um cliente continha 5 itens,teremos 2.730.240 transações em um dia.

13

Page 16: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Coleta x Armazenamento

Em um ano teremos 996.537.600 transações para seremanalisadas por técnicas de mineração de dados.

Se cada transação for representada por 24 bytes (otimista),teríamos cerca de 24 Gigabytes de dados.

14

Page 17: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

SPAM

Em 2010, a estimativa era de 3 bilhões de spam enviados pordia.

Sem imagens, um e-mail de spam tem um tamanho médio de5kb (2007).

Em um dia teremos 15TB de informação para processar!

15

Page 18: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Os 4 V’s do Big Data

Durante o modismo do Big Data foram definidos 4 desafiosdessa área:

• Volume• Velocidade• Variedade• Veracidade

16

Page 19: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Veracidade

Os resultados extraídos da base de dados são relevantes?

Possibilidade alta de ruídos aleatórios.

17

Page 20: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Limites Estatísticos

Torture os dados, e confessará qualquer coisa. — RonaldCoase, economista.

18

Page 21: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Limites Estatísticos

Uma crítica da área de Big Data é que a grande quantidade dedados pode te ajudar a encontrar padrões que, na verdade,eram esperados.

19

Page 22: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Princípio de Bonferroni

Se seu modelo estatístico retorna mais casos positivos do queo esperado, então seu modelo (ou hipótese) não funciona.

20

Page 23: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Exemplo Fictício

Hipótese: grupos criminosos se encontram em um hotel paraplanejar o crime.

Objetivo: encontrar pessoas sem relação aparente que, porpelo menos duas vezes, se hospedaram no mesmo hotel nomesmo dia.

21

Page 24: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Exemplo Fictício

Experimento: rastrear 109 pessoas hospedadas em hotéis emum período de 1000 dias.

Cada pessoa ficou em um hotel cerca de 1% desse período (10dias).

Temos 105 hotéis e cada hotel comporta 100 pessoas eassumimos que eles estão sempre lotados.

22

Page 25: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Exemplo Fictício

Pergunta: se todos agirem aleatoriamente, nosso modeloestatístico encontrará algo suspeito nos dados coletados?

23

Page 26: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Probabilidades

Duas pessoas p,q escolhem um dia específico:

P (p, d1)× P (q, d2) = 1100 × 1

100 = 10−4

24

Page 27: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Probabilidades

Duas pessoas p,q escolhem um hotel específico:

P (p, h1)× P (q, h2) = 110−5 × 1

10−5 = 10−10

25

Page 28: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Probabilidades

Essas duas pessoas escolhem o mesmo hotel:

P (p, q, h) = 10−10 × 10−5 = 10−5

26

Page 29: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Probabilidades

Elas escolhem o mesmo dia:

P (p, q, h, d) = 10−4 × 10−5 = 10−9

27

Page 30: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Probabilidades

Isso vai ocorrer por duas vezes:

P (p, q, h, d1, d2) = 10−9 × 10−9 = 10−18

28

Page 31: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Probabilidades

Como temos 5× 105 pares de dias, a probabilidade deobservar tal situação em um deles é:

5× 105 × 10−18 = 5× 10−13

29

Page 32: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Probabilidades

Como temos um total de 5× 1017 pares de pessoas parainvestigar, a quantidade esperada de observações quefaremos em nossa base de dados será:

5× 1017 × 5× 10−13 = 2.5× 105

30

Page 33: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Exemplo Fictício

Se temos 10 pares de criminosos que apresentou essecomportamento, teremos que procurá-los dentro das 250.000pares de pessoas que fizeram o mesmo…

31

Page 34: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Conclusão

Tenha certeza que a hipótese não permita um número deeventos aleatórios maior do que o que se busca.

32

Page 35: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Exercício

Em uma base de dados de avaliações de produtos, queremosdetectar usuários que são pagos para avaliar uma série deprodutos positivamente. É razoável imaginar que se doisusuários avaliaram positivamente em comum 90% dosprodutos, então esses foram pagos para isso?

33

Page 36: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Volume

Como armazenar e tratar a grande quantidade de dadoscoletada?

34

Page 37: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Sistemas de Arquivos Distribuídos

• Dividir um arquivo muito grande em várias máquinasconectadas em rede

• Redundância dos dados• Transparência no uso

35

Page 38: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Sistemas de Arquivos Distribuídos

Arquivos seguem a filosofia write-once-read-many-times.

Ou seja, os arquivos armazenados se tornam somente leitura.

Isso não é problema, pois queremos extrair informações, nãoalterar os dados.

36

Page 39: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Sistemas de Arquivos Distribuídos

Tarefas simples e comuns como calculo de estatística básica,procedimentos de seleção, filtragem, junção não são triviais.

Demandam algoritmos que podem ser aplicados localmenteem cada uma das máquinas e combinados ao final.

37

Page 40: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Race condition

A imutabilidade dos dados evita o problema de Race Condition.

Não existe alteração, não existe mudança de estado, nãoexiste conflito!

38

Page 41: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Particionando a Tarefa

Possibilidade de executar tarefas localmente.

Tarefa CPU2

CPU1

...

CPU3

Combinar

39

Page 42: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Paradigma Funcional

Um paradigma de programação que não permite mudança deestados e dados mutáveis.

Computação como sequência de funções matemáticas.

40

Page 43: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Paradigma Funcional

$λ$-calculus: formalização matemática de computação.

Turing completa.

Propriedades interessantes para processamento em paralelo edistribuído.

41

Page 44: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Transparência Referencial

Dada a expressão:

x+ f(x)

Podemos substituir f(x) pelo valor avaliado sem alterar oresultado final:

x+ y

42

Page 45: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Pureza

Funções que permitem uma transparência referencial sãochamadas de funções puras.

f(x) sempre retornará o mesmo valor ao passar o mesmovalor de x.

43

Page 46: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Contra Exemplo

1 int f(int * x) {2 *x = *x + 1;3 return *x;4 }

1 System.currentTimeMillis()

44

Page 47: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Imutabilidade

Em linguagens funcionais puras uma variável não pode ter seuvalor alterado.

Uma variável x passada para uma função f() não pode ter seuvalor alterado por ela.

45

Page 48: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Funcional x Paralelo

Como as variáveis são imutáveis, não existe conflito de acesso.

Se dois processos tentam acessar o conteúdo de uma mesmavariável, tenho certeza que ambos receberão o mesmo valor.

46

Page 49: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Funcional x Paralelo

A pureza das funções e expressões matemáticas, permite queelas sejam avaliadas em qualquer ordem:

f(x) = sin(x) + cos(x) ∗ sqrt(x)

Não importa quem vai ser calculado primeiro, sin, cos ou sqrt,o resultado final será o mesmo!

47

Page 50: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Funcional x Paralelo

f(x) = sin(x) + cos(x) ∗ sqrt(x)

Cada thread pode ficar responsável por computar uma parteda expressão.

48

Page 51: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Linguagens Funcionais

Por muito tempo o uso dessas linguagens foi acadêmico.

Atualmente muitas empresas já fazem uso desse paradigma.

49

Page 52: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Linguagens Funcionais

Erlang - criado pela Ericsson para programar sistemastolerante a falhas.

OCaml - uso em sistemas financeiros, programas livres debugs.

Scala - elementos funcionais no Java.

50

Page 53: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Linguagens Funcionais

Closure - dialeto do Lisp que roda no Java Virtual Machine.

Haskell - linguagem acadêmica que encontrou seu lugar naindústria (anti-spam do Facebook).

51

Page 54: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Velocidade

Cenário que recebemos um fluxo contínuo de dados equeremos processá-los em tempo real.

Como tratar?

52

Page 55: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Algoritmos Incrementais

Algoritmos de aprendizado de máquina que aprendemincrementalmente.

O algoritmo deve se adaptar durante o processo deaprendizagem (mudança de tendências).

Apenas uma quantidade limitada de de dados pode residir emmemória.

53

Page 56: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Variedade

Maior parte dos algoritmos de Aprendizado de Máquinaassumem uma entrada de dados bem definida.

Geralmente um vetor multidimensional.

54

Page 57: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Variedade

Muitas bases de dados de interesse não possuem esseformato:

• Textos• Imagens• Som• Vídeos

55

Page 58: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Pré-processamento

Necessidade de transformar tipos desestruturados em umaestrutura vetorial.

Cuidado para não perder informação no meio do caminho!

56

Page 59: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Exercício

Pense em exemplo de tarefas que demanda a combinação dedados de imagem, som e texto.

57

Page 60: Introdução - Inteligência na Web e Big DataTitle Introdução - Inteligência na Web e Big Data Author Fabricio Olivetti de França e Thiago Ferreira Covões folivetti@ufabc.edu.br,

Conclusão

Trabalhar com grandes quantidades de dados traz diversosproblemas desafiadores.

O simples volume de dados não implica em maior facilidade naextração de informação.

Algumas das formas de tratamento dos problemas serãoapresentados nas próximas aulas.

58