Post on 10-Nov-2018
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
INTRODUÇÃO AOS ALGORITMOS RANDOMIZADOS
MINING OF MASSIVE DATASETS
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!