I am using SGD matrix factorisation (python) using the movielens dataset to make recommendations. I have a website which allows users to give feedback which is positive or negative to whether an item is a good recommendation for a particular movie.
I was wondering if I could use this feedback in my matrix factorisation. I wasn't 100% sure how I would proceed.
So for example I would have a vector like
m1 m2 m3 m1 0 0 0 m2 5 0 -4 m3 0 0 0
Where m2-m1 is a score of 5 so with an example case where noone rated it negative, 5 people think its good. With the other for m2-m3 being -4 so a poor recommendation.
Any help would be greatly appreciated.
Edit: response from answer
I am currently using a sparse matrix for user item ratings and am using bias.
I have been trying to add additional input sources and am using the following to create a attribute matrix containing a genre representation:
for genre in item_genres: genres[genre] = 1 self.attribute_item_matrix[i] = sum(list(genres.values())) pred = self.global_mean + self.bias_user[u] + self.bias_item[i] +np.dot(self.P[u, :],(self.Q[:, i]+self.attribute_item_matrix[i]))
However, I don't think this is correct as it eventually fails and causes a nan error.
I have been following this paper Matrix Factorisation Techniques for recommender systems