MACHINE LEARNING MELHOR SOLUÇÃO. - QCon São Paulo … · probabilidade e estatÍstica. variÁvel...

Post on 10-Nov-2018

220 views 0 download

Transcript of MACHINE LEARNING MELHOR SOLUÇÃO. - QCon São Paulo … · probabilidade e estatÍstica. variÁvel...

MACHINE LEARNING RESOLVE MUITA COISA

MAS NÃO É SEMPRE A MELHOR SOLUÇÃO.

DETECTAR PLÁGIO EM BILHÕES DE TEXTOS

DETECTAR SIMILARIDADE EM BANCOS DE DADOS DE

IMAGENS

ESTIMAR INTERSEÇÃO DE CONJUNTOS, SEM PRECISAR TÊ-LOS

PRÓXIMOS GEOGRAFICAMENTE.

ALEATORIEDADE NO CORAÇÃO DOS ALGORITMOS DO FUTURO

● PAI DO MIGUEL

● BACHAREL E QUASE MESTRE

● PROGRAMADOR

● VICIADO EM COMPETIÇÕES

QUEM É JUAN LOPES?

SLIDES, LINKS E DEMOS

TWITTER E GITHUB

ALGORITMOS RANDOMIZADOS

● HASHTABLES

● GERAÇÃO DE PARES DE CHAVES CRIPTOGRÁFICAS

● RANDOMIZED QUICKSORT

ALGORITMOS RANDOMIZADOS

RANDOMIZED ALGORITHMS

ALGORITMOS RANDOMIZADOS

PROBABILÍSTICOS

VAMOS FALAR DE POLÍTICA?

QUAL É A BASE TEÓRICA DE UMA PESQUISA ELEITORAL?

QUAL É A BASE TEÓRICA DE UMA ESTIMATIVA DE PARTICIPANTES?

PROBABILIDADE E ESTATÍSTICA

VARIÁVEL ALEATÓRIA X

VARIÁVEL ALEATÓRIA X

ROLAGEM DE DADO DE 6 LADOS

ESTIMADORES NÃO-ENVIESADOS

COMO CRIAR UMA VARIÁVEL ALEATÓRIA QUE ESTIME

ALGUM VALOR IMPORTANTE?

A OPINIÃO DE UM INDIVÍDUO ALEATÓRIO EM UMA

POPULAÇÃO É UM ESTIMADOR DA OPINIÃO DA POPULAÇÃO

A QUANTIDADE DE PESSOAS EM UM TRECHO DE UMA

MANIFESTAÇÃO É UM ESTIMADOR DO NÚMERO

TOTAL DE PESSOAS

COMPOSIÇÃO DE ESTIMADORES DIMINUI A VARIÂNCIA

● FILTRO DE BLOOM [Blo70]

● CM-SKETCH [CM05]

● MINHASH [Bro97]

● HYPERLOGLOG [FFGM08]

ESTRUTURAS PROBABILÍSTICAS

1970 19901980 2000 2010

LINHA DO TEMPO

FILTRO DE BLOOM [Blo70]

FM-SKETCH [FM85]

MINHASH [Bro97]

KMV-SKETCH [BYJK+02]

LSH THEORY [IM98]

SIMHASH [Cha02]

LOGLOG [DF03]

AMS PAPER [AMS96]

CM-SKETCH [CM05]

HYPERLOGLOG [FFGM08]

SPECTRAL BLOOM [CM03]

– DONALD KNUTH

HASH FUNCTIONS

HASH FUNCTIONS

xh(x)

0: 50%

1: 50%

0: 50%

1: 50%

0: 50%

1: 50%

MINHASH

[Bro97] Andrei Z Broder. On the resemblance and containment of documents. In Compression and Complexity of Sequences 1997. Proceedings, pages 21–29. IEEE, 1997.

MINHASH

● VARIÁVEL DE BERNOULLI

● ÍNDICE DE JACCARD

● DUAS VARIANTES

MINHASH, COM CALMA

A B

A B

MINHASH, COM CALMA

A BA B

MINHASH, COM CALMA

CALMA!

MINHASH

● CADA FUNÇÃO DEFINE UM ESTIMADOR NÃO-ENVIESADO

● MÚLTIPLAS FUNÇÕES DE HASH

● COMPARAÇÃO DOS VALORES DE CADA ASSINATURA

MINHASH

● ASSINATURA DEFINIDA POR K MENORES VALORES

● TAMBÉM É VARIÁVEL DE BERNOULLI

● COMPARAÇÃO DOS VALORES DE CADA ASSINATURA

MINHASH

● PODE SER 1 COM PROBABILIDADE p E 0 COM PROBABILIDADE 1-p

MINHASH

MINHASH

● 42 OBRAS DE SHAKESPEARE

● 84 DOCUMENTOS NO TOTAL

● 0 ≤ K ≤ 1000

MINHASH

S1 S2 S3 S4 S5

h1

h2

h3

h4

h5

h6

h7

h8

MINHASH

S1 S2 S3 S4 S5

h1

h2

h3

h4

h5

h6

h7

h8

r=2}

MINHASH

S1 S2 S3 S4 S5

r1

h1

h2

r2

h3

h4

r3

h5

h6

r4

h7

h8

} r=2{b=4

MINHASH

S1 S2 S3 S4 S5

r1

h1

h2

r2

h3

h4

r3

h5

h6

r4

h7

h8

S1 S4

MINHASH

S1 S2 S3 S4 S5

r1

h1

h2

r2

h3

h4

r3

h5

h6

r4

h7

h8

S2 S5

S1 S4

MINHASH

S1 S2 S3 S4 S5

r1

h1

h2

r2

h3

h4

r3

h5

h6

r4

h7

h8

S2 S5

S2 S5

S1 S4

MINHASH

S1 S2 S3 S4 S5

r1

h1

h2

r2

h3

h4

r3

h5

h6

r4

h7

h8

S1 S4

S2 S5

S2 S5

S2 S5

S2 S5

S2 S5

S1 S4

MINHASH

S1 S2 S3 S4 S5

r1

h1

h2

r2

h3

h4

r3

h5

h6

r4

h7

h8

S1 S4

S2 S5

S2 S5

S2 S5 S1 S4

S2 S5

S2 S5

S1 S4

MINHASH

● PROBABILIDADE DE UM PAR SER ESCOLHIDO DEPENDE DA SIMILARIDADE ENTRE OS CONJUNTOS

MINHASH

● PROBABILIDADE DE UM PAR SER ESCOLHIDO DEPENDE DA SIMILARIDADE ENTRE OS CONJUNTOS

MINHASH

● 42 OBRAS DE SHAKESPEARE

● 84 DOCUMENTOS NO TOTAL

● K = 512

SIMHASH

SIMHASH

SIMHASH

r ⃗

u ⃗v ⃗

SIMHASH

● FUNÇÃO DE HASH DEFINIDA POR VETOR ALEATÓRIO

● ESTIMATIVA DO MENOR ÂNGULO ENTRE DOIS VETORES

SIMHASH

● REPRESENTAÇÃO COMPACTA

● COMPUTAÇÃO EFICIENTE

● REPRESENTA MULTICONJUNTOS FACILMENTE

HYPERLOGLOG

[FFGM08] Philippe Flajolet, Éric Fusy, Olivier Gandouet, and Frédéric Meunier. Hyperloglog: the analysis of a near-optimal cardinality estimation algorithm. DMTCS Proceedings, (1), 2008.

É COMO ESTIMAR O NÚMERO DE PESSOAS EM UMA

MULTIDÃO PELA ALTURA DA MAIOR PESSOA

HYPERLOGLOG

● BASEIA-SE NA OBSERVAÇÃO DO PADRÃO DE BITS

HYPERLOGLOG

0

0

0

0

0

0

0

0

HYPERLOGLOG

A

0

0

0

3

0

0

0

0

01000101

HYPERLOGLOG

B

0

0

0

3

0

0

1

0

11010011

HYPERLOGLOG

C

0

0

0

5

0

0

1

0

01000001

HYPERLOGLOG

C

0

0

0

5

0

0

1

0

01000001

CADA POSIÇÃO NESTE ARRAY DE EXEMPLO USA APENAS 3 BITS

HYPERLOGLOG

C

0

0

0

5

0

0

1

0

01000001

HYPERLOGLOG

● SE O VALOR ESTIMADO FOR MUITO BAIXO (<2.5M), USA-SE LINEAR COUNTING NO MESMO VETOR

● A ESTIMATIVA TEM UM VIÉS MULTIPLICATIVO CONSTANTE QUE PRECISA SER CORRIGIDO

“LOGLOG” VEM DA QUANTIDADE DE MEMÓRIA NECESSARIA PARA CADA

SUBFLUXO.LOGLOG(2^32) = 5 BITS

HYPERLOGLOG++

HYPERLOGLOG++

COMO ENGENHEIROS RESOLVEM PROBLEMAS:

goo.gl/iU8Ig

18 PÁGINAS DE CONSTANTES

HYPERLOGLOG

HYPERLOGLOG

● 42 OBRAS DE SHAKESPEARE

OPERAÇÕES SOBRE HYPERLOGLOGS

INTERSEÇÃO DE HYPERLOGLOGS

● IDEIA SIMPLES

● O PROBLEMA

INTERSEÇÃO DE HYPERLOGLOGS

● MINHASH × HYPERLOGLOG

● ERRO CONTROLADO

● SÃO MUITO IMPORTANTES QUANDO HÁ RESTRIÇÃO DE RECURSOS

● ÁREA DE PESQUISA RECENTE

● ATRAI MUITO INTERESSE DOS BIG PLAYERS

● IMPLEMENTAR É MAIS SIMPLES QUE EXPLICAR

ESTRUTURAS PROBABILÍSTICAS

SLIDES, LINKS E DEMOS

TWITTER E GITHUB

PERGUNTAS?

OBRIGADO!