Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Matrix factorization for collaborative filtering - new users and items?

I've been reading about using matrix factorization for collaborative filtering, but I can't seem to find an example that deals with adding a new user or item to the system, or having the user rate a new item. In these cases, the item-user matrix and the factorization needs to be recomputed, correct? How can this perform well with a large number of users and items? Is there a way around it?

Thank you

like image 749
pppnnn Avatar asked Oct 07 '12 08:10

pppnnn


1 Answers

Your question has two parts: (A) How to deal with new users and items, and (B), how to deal with new interactions (e.g. ratings, clicks, etc.).

(A) There are basically 2 different strategies for dealing with new users and items (no matter whether we use matrix factorization or something else):

  1. estimating user/item features from user (demographics, surveys) or item (price, genre, textual description, categories) attributes
  2. active learning: showing new items to all users interacting with the system, or certain items to new users of the system, in a way balancing individual user experience and information gain by the system.

There are many papers in the academic literature on both problems.

(B) This is really not problematic -- incremental updates to a matrix factorization model does not have high computational costs. See for example this paper: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.165.8010&rep=rep1&type=pdf

The MyMediaLite library (disclaimer: I am the main author) supports incremental updates for several matrix factorization methods: http://ismll.de/mymedialite

like image 63
zenog Avatar answered Oct 06 '22 01:10

zenog