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

Description
1. A ciência de dados por trás de sistemas de recomendação 2. Data Science 3. Preditiva ● Vai chover ou vai fazer sol? ● Quais ações vão valorizar? ● Quanto…

Please download to get full document.

View again

of 34
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Information
Category:

Engineering

Publish on:

Views: 0 | Pages: 34

Extension: PDF | Download: 0

Share
Transcript
  • 1. A ciência de dados por trás de sistemas de recomendação
  • 2. Data Science
  • 3. Preditiva ● Vai chover ou vai fazer sol? ● Quais ações vão valorizar? ● Quanto tempo vou levar pra chegar em casa?
  • 4. 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
  • 5. Preditiva, prescritiva e... Psicologia Semiótica UX +
  • 6. Machine Learning
  • 7. Pipeline de Machine Learning
  • 8. Treino do modelo
  • 9. Treino do modelo Split aleatório
  • 10. Treino do modelo Mesma métrica na validação
  • 11. 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
  • 12. voltando pra recomendação sobre os algoritmos
  • 13. Filtragem e ordenação ● Não personalizada ● Baseada em conteúdo ● Filtragem colaborativa ● Híbrida
  • 14. Filtragem e ordenação ● Não personalizada ● Baseada em conteúdo ● Filtragem colaborativa ● Híbrida
  • 15. Filtragem Colaborativa ● Memory based ● Model based
  • 16. Memory based
  • 17. Memory based
  • 18. Model based
  • 19. Model based
  • 20. 3.634.0 - Model based
  • 21. Média de erros quadráticos Model based
  • 22. 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
  • 23. 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, ….. ] …
  • 24. usuário e item não treinado não participa da brincadeira
  • 25. Split aleatório inválido Um usuário que está aqui Mas não está aqui
  • 26. 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
  • 27. Treino de modelo tradicional Mesma métrica na validação
  • 28. 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
  • 29. Treino de modelo de recomendação Métrica de cada algoritmo (Exemplo: ALS: RMSE) Métrica de ranking ou de classificação
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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")
  • 34. @timotta timotta@gmail.com
  • Related Search
    We Need Your Support
    Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

    Thanks to everyone for your continued support.

    No, Thanks