2

Using this paper (Wayback Machine) I have been attempting to make a matrix factorization recommender system.

However, it is not clear as to what to initialise the 2 factor matrices to; which leads to my next problem: if I initialise every entry in the matrix to be, e.g. 3.0, then when I perform the Stochastic Gradient Descent, the vector of a particular user or item is like this: [1.4, 1.4], i.e. each factor has the same value! Similarly, if I initialise the original factors to be [2.0, 1.0] then when I perform alterations to the vector, the new vector is always [2a, a] i.e. first factor is twice that of the second. This is clearly not correct, as it states that each factor in the vector represents how much that user or item is like that factor - but in my version it is clearly just dependent on how they were initialised to begin with.

I update each user vector by:

uservector := uservector + lambda x ((realRating - uservector.itemvector) x itemvector ) - regularization x uservector

So, what is it I am missing so each factor of the vector is updated correctly? I seem to be following the paper correctly.

monster
  • 123

0 Answers0