Solved – Matrix Factorization Recommendation Systems with Only “Like” Ratings

matrix decompositionrecommender-system

I'm trying to build a recommendation system, but I only have data on what my users have "liked", i.e. all non-missing data has the same numeric value.

Is it possible for me to use matrix factorization methods without actually having "ratings"? (Multiple numeric values for user ratings rather than just an indicator that a user has "liked" the item.) If so, how?

Best Answer

This problem is usually called implicit feedback. The typical solution is similar to word2vec noise-contrastive estimation:

  • predict likes, with log-loss,
  • use your set of actual likes (p=1) and randomly generate set of potential non-likes (p=0).

Usually you want to generate this non-likes set from the similar distribution, i.e. same distribution of users, and of pages (or anything they like). The easiest way to do so is to take a two random entries, and take user from one, and page from the other.

See:

See Improving Pairwise Learning for Item Recommendation from Implicit Feedback by Steffen Rendle and Christoph Freudenthaler (2014). The former authored the original paper Factorization Machines (2010), which I highly recommend reading.