As the subject says:

How would one update user vectors online while having static item vectors? Run the learning step only on the user vectors? But that would still take too much time to be considered online I guess.

From Logistic Matrix Factorization for Implicit Feedback Data:

A common practice for collaborative filtering based recommender systems is to first learn a set of item vectors and then update user vectors more frequently in an online fashion while keeping the item vectors static. Recommendations can then be computed in real time by performing an approximate nearest neighbor (ANN) search over the space of item vectors in I. ANN search requires keeping a data structure such as a k-d tree or locality sensitive hashing (LSH) based trees in RAM. The size of these data structures is proportional to both the number of items as well as the dimensionality of the latent factor vectors and so reducing the number of latent factors can greatly reduce the size of these objects.


1 Answer 1


Yes, it's probably referring to running the optimization for user vectors only.

Note that the paper you've referred to does alternating minimization in the user and item latent factors, so optimizing only the user factors is actually much faster than optimizing the full model.

Moreover, for fixed item factors, the objective separates across users; when you get a new signal from a user, you only have to retrain that user's latent vector, which should be quite fast and easily achievable online.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.