- Presentación de ayudantes
- Blogs
No olviden enviar hasta este domingo 12 de agosto.
- Cálculo de Nota Final
30% Tarea 1 + 30% (Lecturas, Presentación) + 40% Proyecto Final
Denis Parra
Profesor Asistente, DCC, PUC CHile
Recommender Systems aim to help a user or a group of users in a system
to select items from a crowded item or information space.
\[Similaridad(u,v) = w(u,v), v \in K\] \[\hat{p}_{u,i} = \bar{r}_u + \alpha \sum_{v \in N(u)}{w(u,v)(r_{v,i} - \bar{r}_v)}\]
PROS:
CONS:
Exactitud: Mientras más vecinos \(K\) consideramos (bajo cierto umbral), mejor debería ser mi clasificación (Lathia et al. 2008)
Escalabilidad: Pero mientras más usuarios \(n\) existen en el sistema, mayor es el costo de encontrar los K vecinos más cercanos, ya que K-NN es \(O(dnk)\). Considerando un sitio con millones de usuarios, calcular las recomendaciones usando este método \(memory-based\) se hace poco sustentable.
Model-based methods: Redes Bayesianas (ideales en casos en que las preferencias del usuario no cambian tan a menudo), Reducción de dimensionalidad (estado del arte, pero tiene algunos costos de implementación, especialmente en "tunear" los parámetros)
Clustering, aunque tienen como efecto producir recomendaciones "no tan personalizadas" y, disminuir la exactitud de las predicciones en algunos casos (Breese et al. 1998)
Graph-based methods: Horting, Random Walks, Spread of activation. Son menos precisos, pero contribuyen a dar mayor diversidad a las recomendaciones
Item-base recommendation: Revisar user-based (precisión + simpleza) y escalarlo :-)
Ungar, L. H., & Foster, D. P. (1998). Clustering methods for collaborative filtering. In AAAI workshop on recommendation systems. ~ EM.
O’Connor, M., & Herlocker, J. (1999). Clustering items for collaborative filtering. In Proceedings of the ACM SIGIR workshop on recommender systems. ~ Hierarchical.
Xue, G. R., Lin, C., Yang, Q., Xi, W., Zeng, H. J., Yu, Y., & Chen, Z. (2005). Scalable collaborative filtering using cluster-based smoothing. SIGIR ~ K-means.
Muchos Usuarios tienen pocos ratings
Si sabemos que el usuario pertenece a cierto cluster, podemos llenar tupla \(R_u(t)\)
Donde
y \(C_u\): cluster al que pertenece usuario \(u\).
Algoritmos | Dataset |
---|---|
![]() |
![]() |
Evaluación:
MAE | Parámetros |
---|---|
![]() |
![]() ![]() |