xCLiMF
Um nome pomposo para um algoritmo simples
Uma filtragem colaborativa que
maximiza ranking de items
Memory based
Memory based
Memory based
Memory based
Model based
Model based
Model based
3.634.0 -
Model based
Média de erros
quadráticos
Paper sobre collaborative filtering model based
Função Suaviza função Função Objetivo
Gera derivada parcial
para usuário e item
Model based
K
K K
K
KK
K
Métrica de ranking: MRR
User 1
User 2
User 3
Itens em ordem de retorno
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
Métrica de ranking: MRR
( 0,5 + 1 + 0,333) / 3
MRR = 0,61
Rank = 1/2
Rank = 1/1
Rank = 1/3
Reciprocal Ranking
Parte matemática bizarra pra indicar
que só leva em consideração o item
com maior ranking
CLiMF vs xCLiMF
CLiMF (Sem o X)
Sigmoid
Atualização dos fatores latentes simultânea
Pull request na implementação de CLiMF
https://github.com/gamboviol/climf/pull/2/files
xCLiMF (Com o X)
Sigmoid
Depois de suavizar: Função objetivo
Simplificando o entendimento
Fator de regularização
para evitar overfitting
E as derivadas parciais
Implementação disponível em C++
Errado!
https://github.com/gpoesia/xclimf
xCLiMF em Python
https://github.com/timotta/xclimf
Replicação da validação offline
Top k do usuário pra treino
Vs
Outros top k do usuário pra teste
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
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
Vetorizando -54% no tempo total de treino
xCLiMF em Spark
https://github.com/timotta/xclimf-spark
Problema 1: Representação de matriz
NumPy <3 Todas de
java e scala
Problema 1: Representação de matriz
Problema 2: Breeze sem Tensor
Validação offline usando dados do globosatplay
xCLiMF
MRR 0,37
ALS
MRR 0,17
Teste AB em produção
Sem conclusões por enquanto
(tendência para piora)
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

xCLiMF

Notas do Editor

  • #6 Pearson para encontrar usuários mais correlatos
  • #7 Enorme matriz
  • #8 Predição
  • #9 SVD redução de dimensionalidade