Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

xCLiMF

99 views

Published on

Palestra ministrada no TechTalk da Globo.com

Published in: Software
  • Be the first to comment

  • Be the first to like this

xCLiMF

  1. 1. xCLiMF Um nome pomposo para um algoritmo simples
  2. 2. Uma filtragem colaborativa que maximiza ranking de items
  3. 3. Memory based
  4. 4. Memory based
  5. 5. Memory based
  6. 6. Memory based
  7. 7. Model based
  8. 8. Model based
  9. 9. Model based 3.634.0 -
  10. 10. Model based Média de erros quadráticos
  11. 11. Paper sobre collaborative filtering model based Função Suaviza função Função Objetivo Gera derivada parcial para usuário e item
  12. 12. Model based K K K K KK K
  13. 13. Métrica de ranking: MRR User 1 User 2 User 3 Itens em ordem de retorno
  14. 14. Métrica de ranking: MRR User 1 User 2 User 3 Itens que usuário gostou Rank = 1/2 Rank = 1/1 Rank = 1/3
  15. 15. Métrica de ranking: MRR ( 0,5 + 1 + 0,333) / 3 MRR = 0,61 Rank = 1/2 Rank = 1/1 Rank = 1/3
  16. 16. Reciprocal Ranking Parte matemática bizarra pra indicar que só leva em consideração o item com maior ranking
  17. 17. CLiMF vs xCLiMF
  18. 18. CLiMF (Sem o X) Sigmoid
  19. 19. Atualização dos fatores latentes simultânea
  20. 20. Pull request na implementação de CLiMF https://github.com/gamboviol/climf/pull/2/files
  21. 21. xCLiMF (Com o X) Sigmoid
  22. 22. Depois de suavizar: Função objetivo
  23. 23. Simplificando o entendimento Fator de regularização para evitar overfitting
  24. 24. E as derivadas parciais
  25. 25. Implementação disponível em C++ Errado! https://github.com/gpoesia/xclimf
  26. 26. xCLiMF em Python https://github.com/timotta/xclimf
  27. 27. Replicação da validação offline Top k do usuário pra treino Vs Outros top k do usuário pra teste
  28. 28. Melhoria da validação offline Top k*2 do usuário Para treino random k desses Para teste os top k restantes xCLiMF MRR 0,24 ALS MRR 0,13
  29. 29. Bug no paper? Falta informação sobre normalização 0,9 0,4 0,70,8 1,0 0,4 0,7 0,8 0,2
  30. 30. Vetorizando -54% no tempo total de treino
  31. 31. xCLiMF em Spark https://github.com/timotta/xclimf-spark
  32. 32. Problema 1: Representação de matriz NumPy <3 Todas de java e scala
  33. 33. Problema 1: Representação de matriz
  34. 34. Problema 2: Breeze sem Tensor
  35. 35. Validação offline usando dados do globosatplay xCLiMF MRR 0,37 ALS MRR 0,17
  36. 36. Teste AB em produção Sem conclusões por enquanto (tendência para piora)
  37. 37. Idéias para o futuro ● Implementação de algoritmo CAF (Context-aware filtering) ● CAF + xCLiMF ● Melhorar performance do xCLiMF com esquema de paralelização em blocos

×