SlideShare une entreprise Scribd logo
1  sur  34
A ciência de dados por trás
de sistemas de
recomendação
Data Science
Preditiva
● Vai chover ou vai fazer sol?
● Quais ações vão valorizar?
● Quanto tempo vou levar pra chegar em casa?
Preditiva
● Vai chover ou vai fazer
sol?
● Quais ações vão
valorizar?
● Quanto tempo vou levar
pra chegar em casa?
Prescritiva
● Você deveria usar esta
roupa
● Você deveria comprar
estas ações
● Você deveria seguir este
trajeto
Preditiva, prescritiva e...
Psicologia
Semiótica
UX
+
Machine Learning
Pipeline de Machine Learning
Treino do modelo
Treino do modelo
Split aleatório
Treino do modelo
Mesma métrica na validação
Resultado do modelo
model = [ 0.4, 0.7, 0.2, ….. ]
novos exemplos:
exemplo1 = [ 0.3, 0.2, 0.8, ….. ] * model.i = score
exemplo2 = [ 0.3, 0.2, 0.8, ….. ] * model.i = score
exemplo3 = [ 0.3, 0.2, 0.8, ….. ] * model.i = score
voltando pra recomendação
sobre os algoritmos
Filtragem e ordenação
● Não personalizada
● Baseada em conteúdo
● Filtragem colaborativa
● Híbrida
Filtragem e ordenação
● Não personalizada
● Baseada em conteúdo
● Filtragem colaborativa
● Híbrida
Filtragem Colaborativa
● Memory based
● Model based
Memory based
Memory based
Model based
Model based
3.634.0 -
Model based
Média de erros
quadráticos
Model based
Resultado do modelo de algoritmos
tradicionais
model = [ 0.4, 0.7, 0.2, ….. ]
novos exemplo:
exemplo1 = [ 0.3, 0.2, 0.8, ….. ] * model.i = score
exemplo2 = [ 0.3, 0.2, 0.8, ….. ] * model.i = score
exemplo3 = [ 0.3, 0.2, 0.8, ….. ] * model.i = score
Resultado de modelo de filtragem
colaborativa
user1 = [ 0.2, 0.3, 0.4, ….. ]
user2 = [ 0.4, 0.7, 0.2, ….. ]
…
item1 = [ 0.1, 0.8, 0.2, ….. ]
item2 = [ 0.7, 0.7, 0.1, ….. ]
…
usuário e item não treinado
não participa da brincadeira
Split aleatório inválido
Um usuário
que está aqui
Mas não está
aqui
Split correto
● Selecionar usuários com preferência
de no mínimo N+1 itens
● Selecionar aleatoriamente X desses
usuários
● Selecionar no máximo K itens
aleatórios desses usuários desde que
na base de treino o usuário continue
com N itens
Treino de modelo tradicional
Mesma métrica na validação
Não dá pra comparar
Se compararmos
dois algoritmos ou
input de dados
diferentes
Colaborative Filtering
por rating explícito
Colaborative Filtering
por rating implícito
binário
Colaborative Filtering
por rating implícito de
tempo de video visto
RMSE=0.7
RMSE=0.1
RMSE=30000
Treino de modelo de recomendação
Métrica de cada algoritmo
(Exemplo: ALS: RMSE)
Métrica de
ranking ou de
classificação
Sempre alta precisão e recall
item preference predicted
item1 0.8 0.7
item2 0.7 0.6
Precision@5x5 = 1.0
Recall@5x5 = 1.0
Precision@1x5 = 1.0
Recall@1x5 = 0.5
Inserir itens sem preferência
conhecida no split de teste
item preference predicted
item1 0.8 0.7
item2 0.7 0.6
item3 -- 0.8
item4 0.9
item5 0.95
item6 0.9
Precision@5x5 = 0.2
Recall@5x5 = 0.5
Precision@1x5 = 0.0
Recall@1x5 = 0.0
Resumão pra prova
● No fim das contas é bem parecido
● Split por usuário e itens
● Métrica diferente no treino e na validação
● Complemento de itens desconhecidos pra validação
Evitem essa armadilha
val Array(training, test) = ratings.randomSplit(Array(0.8, 0.2))
val als = new ALS()
val model = als.fit(training)
val predictions = model.transform(test)
val evaluator = new RegressionEvaluator().setMetricName("rmse")
val rmse = evaluator.evaluate(predictions)
println(s"Root-mean-square error = $rmse")
@timotta
timotta@gmail.com

Contenu connexe

Similaire à A ciência de dados por traz de sistemas de recomendação

Aprendizagem Ativa em Sistemas de Filtragem Colaborativa
Aprendizagem Ativa em Sistemas de Filtragem ColaborativaAprendizagem Ativa em Sistemas de Filtragem Colaborativa
Aprendizagem Ativa em Sistemas de Filtragem Colaborativaigorsampaio
 
Guia completo para definição de estatística de modelos e algoritmos de machin...
Guia completo para definição de estatística de modelos e algoritmos de machin...Guia completo para definição de estatística de modelos e algoritmos de machin...
Guia completo para definição de estatística de modelos e algoritmos de machin...Geanderson Lenz
 
Machine Learning e Artificial Intelligence para desenvolvedores .NET
Machine Learning e Artificial Intelligence para desenvolvedores .NETMachine Learning e Artificial Intelligence para desenvolvedores .NET
Machine Learning e Artificial Intelligence para desenvolvedores .NETRenato Haddad
 
AlfaCon LABs - Meetup Machine Learning (03/07/2014)
AlfaCon LABs - Meetup Machine Learning (03/07/2014)AlfaCon LABs - Meetup Machine Learning (03/07/2014)
AlfaCon LABs - Meetup Machine Learning (03/07/2014)Labs Alfacon
 
Projeto de Interfaces - Aula 04
Projeto de Interfaces - Aula 04Projeto de Interfaces - Aula 04
Projeto de Interfaces - Aula 04Carlos Rosemberg
 
Aula 7 - MASP - ferramentas da qualidade - 2019-1
Aula 7   - MASP -  ferramentas da qualidade - 2019-1Aula 7   - MASP -  ferramentas da qualidade - 2019-1
Aula 7 - MASP - ferramentas da qualidade - 2019-1IFMG
 
BSDDAY 2019 - Data Science e Artificial Intelligence usando Freebsd
BSDDAY 2019 - Data Science e Artificial Intelligence usando FreebsdBSDDAY 2019 - Data Science e Artificial Intelligence usando Freebsd
BSDDAY 2019 - Data Science e Artificial Intelligence usando FreebsdMauro Risonho de Paula Assumpcao
 
Testes Automatizados de Software
Testes Automatizados de SoftwareTestes Automatizados de Software
Testes Automatizados de SoftwareMaurício Aniche
 
De Zero à Web com Python e Django
De Zero à Web com Python e DjangoDe Zero à Web com Python e Django
De Zero à Web com Python e DjangoOsvaldo Santana Neto
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
Introdução a Machine Learning
Introdução a Machine LearningIntrodução a Machine Learning
Introdução a Machine LearningSandro Moreira
 
Teoria do Processamento da Informação no Design
Teoria do Processamento da Informação no DesignTeoria do Processamento da Informação no Design
Teoria do Processamento da Informação no DesignUTFPR
 
Aula rotulação automática - Automatic tagging
Aula rotulação automática - Automatic taggingAula rotulação automática - Automatic tagging
Aula rotulação automática - Automatic taggingFelipe
 
Teste de Software - Especialização Univem
Teste de Software - Especialização UnivemTeste de Software - Especialização Univem
Teste de Software - Especialização UnivemAndré Abe Vicente
 

Similaire à A ciência de dados por traz de sistemas de recomendação (20)

Aprendizagem Ativa em Sistemas de Filtragem Colaborativa
Aprendizagem Ativa em Sistemas de Filtragem ColaborativaAprendizagem Ativa em Sistemas de Filtragem Colaborativa
Aprendizagem Ativa em Sistemas de Filtragem Colaborativa
 
Guia completo para definição de estatística de modelos e algoritmos de machin...
Guia completo para definição de estatística de modelos e algoritmos de machin...Guia completo para definição de estatística de modelos e algoritmos de machin...
Guia completo para definição de estatística de modelos e algoritmos de machin...
 
Machine Learning e Artificial Intelligence para desenvolvedores .NET
Machine Learning e Artificial Intelligence para desenvolvedores .NETMachine Learning e Artificial Intelligence para desenvolvedores .NET
Machine Learning e Artificial Intelligence para desenvolvedores .NET
 
Talk conexao
Talk conexaoTalk conexao
Talk conexao
 
AlfaCon LABs - Meetup Machine Learning (03/07/2014)
AlfaCon LABs - Meetup Machine Learning (03/07/2014)AlfaCon LABs - Meetup Machine Learning (03/07/2014)
AlfaCon LABs - Meetup Machine Learning (03/07/2014)
 
Projeto de Interfaces - Aula 04
Projeto de Interfaces - Aula 04Projeto de Interfaces - Aula 04
Projeto de Interfaces - Aula 04
 
masp - Método de Análise de Problemas
masp - Método de Análise de Problemasmasp - Método de Análise de Problemas
masp - Método de Análise de Problemas
 
Aula 7 - MASP - ferramentas da qualidade - 2019-1
Aula 7   - MASP -  ferramentas da qualidade - 2019-1Aula 7   - MASP -  ferramentas da qualidade - 2019-1
Aula 7 - MASP - ferramentas da qualidade - 2019-1
 
Gilcimar apresentação
Gilcimar apresentaçãoGilcimar apresentação
Gilcimar apresentação
 
BSDDAY 2019 - Data Science e Artificial Intelligence usando Freebsd
BSDDAY 2019 - Data Science e Artificial Intelligence usando FreebsdBSDDAY 2019 - Data Science e Artificial Intelligence usando Freebsd
BSDDAY 2019 - Data Science e Artificial Intelligence usando Freebsd
 
Scipy meetup-2020-02
Scipy meetup-2020-02Scipy meetup-2020-02
Scipy meetup-2020-02
 
Testes Automatizados de Software
Testes Automatizados de SoftwareTestes Automatizados de Software
Testes Automatizados de Software
 
De Zero à Web com Python e Django
De Zero à Web com Python e DjangoDe Zero à Web com Python e Django
De Zero à Web com Python e Django
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
Introdução a Machine Learning
Introdução a Machine LearningIntrodução a Machine Learning
Introdução a Machine Learning
 
Usabilidade1
Usabilidade1Usabilidade1
Usabilidade1
 
Data mining
Data miningData mining
Data mining
 
Teoria do Processamento da Informação no Design
Teoria do Processamento da Informação no DesignTeoria do Processamento da Informação no Design
Teoria do Processamento da Informação no Design
 
Aula rotulação automática - Automatic tagging
Aula rotulação automática - Automatic taggingAula rotulação automática - Automatic tagging
Aula rotulação automática - Automatic tagging
 
Teste de Software - Especialização Univem
Teste de Software - Especialização UnivemTeste de Software - Especialização Univem
Teste de Software - Especialização Univem
 

Plus de Tiago Albineli Motta

Challenges and research for a real-time recommendation at OLX
Challenges and research for a real-time recommendation at OLXChallenges and research for a real-time recommendation at OLX
Challenges and research for a real-time recommendation at OLXTiago Albineli Motta
 
Inteligência Artificial: Da ciência da computação à ciência de dados
Inteligência Artificial: Da ciência da computação à ciência de dadosInteligência Artificial: Da ciência da computação à ciência de dados
Inteligência Artificial: Da ciência da computação à ciência de dadosTiago Albineli Motta
 
Machine Learning no dia a dia do desenvolvedor (Atualizado)
Machine Learning no dia a dia do desenvolvedor (Atualizado)Machine Learning no dia a dia do desenvolvedor (Atualizado)
Machine Learning no dia a dia do desenvolvedor (Atualizado)Tiago Albineli Motta
 
Machine Learning no dia a dia do desenvolvedor
Machine Learning no dia a dia do desenvolvedorMachine Learning no dia a dia do desenvolvedor
Machine Learning no dia a dia do desenvolvedorTiago Albineli Motta
 
Machine Learning e experimentos online para evitar o cancelamento no GloboPlay
Machine Learning e experimentos online para evitar o cancelamento no GloboPlayMachine Learning e experimentos online para evitar o cancelamento no GloboPlay
Machine Learning e experimentos online para evitar o cancelamento no GloboPlayTiago Albineli Motta
 
Recomendação de ponta a ponta na Globo.com
Recomendação de ponta a ponta na Globo.comRecomendação de ponta a ponta na Globo.com
Recomendação de ponta a ponta na Globo.comTiago Albineli Motta
 
Testes unitários e de integração: Quando e Porque
Testes unitários e de integração: Quando e PorqueTestes unitários e de integração: Quando e Porque
Testes unitários e de integração: Quando e PorqueTiago Albineli Motta
 

Plus de Tiago Albineli Motta (18)

Multi Armed Bandit
Multi Armed BanditMulti Armed Bandit
Multi Armed Bandit
 
Challenges and research for a real-time recommendation at OLX
Challenges and research for a real-time recommendation at OLXChallenges and research for a real-time recommendation at OLX
Challenges and research for a real-time recommendation at OLX
 
Inteligência Artificial: Da ciência da computação à ciência de dados
Inteligência Artificial: Da ciência da computação à ciência de dadosInteligência Artificial: Da ciência da computação à ciência de dados
Inteligência Artificial: Da ciência da computação à ciência de dados
 
Machine Learning no dia a dia do desenvolvedor (Atualizado)
Machine Learning no dia a dia do desenvolvedor (Atualizado)Machine Learning no dia a dia do desenvolvedor (Atualizado)
Machine Learning no dia a dia do desenvolvedor (Atualizado)
 
Machine Learning no dia a dia do desenvolvedor
Machine Learning no dia a dia do desenvolvedorMachine Learning no dia a dia do desenvolvedor
Machine Learning no dia a dia do desenvolvedor
 
Experimentation anti patterns
Experimentation anti patternsExperimentation anti patterns
Experimentation anti patterns
 
Machine Learning e experimentos online para evitar o cancelamento no GloboPlay
Machine Learning e experimentos online para evitar o cancelamento no GloboPlayMachine Learning e experimentos online para evitar o cancelamento no GloboPlay
Machine Learning e experimentos online para evitar o cancelamento no GloboPlay
 
xCLiMF
xCLiMFxCLiMF
xCLiMF
 
Rastros digitais
Rastros digitaisRastros digitais
Rastros digitais
 
Big data
Big dataBig data
Big data
 
Recomendação de ponta a ponta na Globo.com
Recomendação de ponta a ponta na Globo.comRecomendação de ponta a ponta na Globo.com
Recomendação de ponta a ponta na Globo.com
 
Recomendação na Globo.com
Recomendação na Globo.comRecomendação na Globo.com
Recomendação na Globo.com
 
Otimizando seu projeto Rails
Otimizando seu projeto RailsOtimizando seu projeto Rails
Otimizando seu projeto Rails
 
Meta-programacao em python
Meta-programacao em pythonMeta-programacao em python
Meta-programacao em python
 
Testes unitários e de integração: Quando e Porque
Testes unitários e de integração: Quando e PorqueTestes unitários e de integração: Quando e Porque
Testes unitários e de integração: Quando e Porque
 
Redis na Prática
Redis na PráticaRedis na Prática
Redis na Prática
 
Dinamizando Sites Estáticos
Dinamizando Sites EstáticosDinamizando Sites Estáticos
Dinamizando Sites Estáticos
 
Escalando Sites com Nginx
Escalando Sites com NginxEscalando Sites com Nginx
Escalando Sites com Nginx
 

A ciência de dados por traz de sistemas de recomendação

Notes de l'éditeur

  1. É o sistema que ajuda pessoas a encontrarem o que necessitam com o mínimo esforço possivel.
  2. Enorme matriz
  3. SVD redução de dimensionalidade
  4. É o sistema que ajuda pessoas a encontrarem o que necessitam com o mínimo esforço possivel.
  5. P. Cremonesi, Y. Koren, and R. Turrin. Performance of recommender algorithms on top-n recommendation tasks. RecSys ’10, pages 39–46. ACM, 2010. Y. Koren. Factorization meets the neighborhood: a multifaceted collaborative filtering model. KDD ’08, pages 426–434. ACM, 2008.