8

currently when a new user comes I cannot update my recommender system which apprently is related to not having added the user and item matrix. Where can I find this and how to do this? Thanks

model.userFactors model.itemFactors

peter
  • 674
  • 1
  • 12
  • 33
  • Could you please explain your problem or maybe provide some code samples – Vishnu667 Apr 19 '16 at 21:47
  • 1
    Sorry, I first edited the title with word "safe" insted of "save". But as I see, the problem is not about saving the model, but to (1) produce recommendation for new user/item a.k.a *cold-start problem* and (2) updating already calculated model. See my answer below. I wish I gave a better title, but right now I can't edit smth what is in review :-( – Bartłomiej Twardowski Apr 20 '16 at 16:27
  • See here for a possible solution: http://stackoverflow.com/questions/41537470/als-model-how-to-generate-full-u-vt-v – Chris Snow Jan 16 '17 at 20:45

1 Answers1

16

When items features and users features are computed the model is prepared only to recommend for known items and users. If You have new user/item, You have to cope with cold start problem.

But there are two things - making recommendations work for new users/items and the separate thing is updating the model (features matrices) near-online.

In order to prepare recommendations for new/anonymous user, which wasn't in input data when model was build, You have to prepare it's features vector. The method is to prepare it from features of items already seen (or any kind of interaction You are considering as 'like'), e.g. calculate mean value for every feature from those items which user liked. Or look at Oryx code for the method of building anonymous user feature vector

For updating Your model near-online (I write near, because face it, the true online update is impossible) by using fold-in technique, e.g.: Online-Updating Regularized Kernel Matrix Factorization Models for Large-Scale Recommender Systems. Ou You can look at code of:

  • MyMediaLite
  • Oryx - framework build with Lambda Architecture paradigm. And it should have updates with fold-in of new users/items.