Skip to content

SurpriseSimilarityMatrixJob

Adrian Marino edited this page Feb 1, 2023 · 3 revisions

El job o proceso SurpriseSimilarityMatrixJob se encarga de calcular las matrices de similitud user-user/item-item utilizando la inversa de la distancia coseno, también llamada similitud coseno. Para realizar esto, primero se consulta via Rest toda las interacciones de los usuarios, filtrando usuarios con 20 o mas interacciones. Se entrena un modelo SVD, con el cual se predicen los ratings de cada usuario para los items que aun no han puntuado. Ya teniendo una matrix de rating completa, se calcula la similitud coseno entre los vectores embedding que representa a los usuarios y items. Finalmente, se actualiza las matrices de distancia en Rec-Sys via Rest. Es importante aclarar que a pesar de que inicialmente se calculan todas las distancias, a Rec-Sys solo llegan los N vecinos mas cercanos a cada user o item. Esto permite que la transferencia de datos a Rec-sys sea casi instrantanea y mejora la general performance de la aplicación. por otro lado Rec-Sys maneja versiones delas matrices de similitud. De esta forma mientra se calcula la nueva versión es ta en uso la versión actual. No se guarda un historial de versiones para no impactar en la performance de la aplicación pero es posible.

SurpriseSimilarityMatrixJob permite configurarse con distintos modelos, ya que el modelo es parámetro del job. En nuestro caso se ha probado con SV y NFM sin encontrar diferencia en los resultados de ambos modelos.

Diagrama de interacción

Clone this wiki locally