The recommendation problem is this: Suppose that we have a matrix whose columns are items (e.g., movies) and whose rows are users. A small part of the matrix is filled with rating values. That is values (e.g. between 1 and 5) which represent how much a particular user likes a particular item. The problem is to predict the missing ratings in the matrix. After prediction the highly predicted items will be recommended to the users.

So far the best methods are based on matrix factorization techniques.

SVMs are one of the best off-the-shelf prediction algorithms.

I tried to think of ways of using SVMs for the rating prediction problem. However, I could not make much progress. Also, I could not explain why SVMs are not good for this problem.

For example, one can build a dataset as a list of user, item, rating triples.

123, 3214, 4
214, 1282, 1

Here the first column contains user ids, the second column contains item ids and the last column contains the ratings (the class label to be predicted). You can think of it as a regression problem or a multi-class classification problem.

Build an SVM classifier then try to predict a new rating given a user and an item.

But I don't think that this is a good thing to do.

Any ideas? Can SVMs be used for this problem? If yes, how? If no, why?



2 Answers 2


The problem is simply that you cannot generalise from "IDs" eg userID 123 , item ID 3214 - there is no way of knowing from that representation whether userID 124,125 etc would like item 3214 too. All you can achieve with a representation of just IDs is counting the number of times each person, bought each item []. But the whole problem is that each person only buys a few items, so to generalise from their buying history you need to combine buying histories from a whole bunch of people - you can't do that from IDs.

What you have to do is DESCRIBE your users/items. But no one knows what features of a person (age/sex/...) influence their buying a coffee machine etc [price/colour/style ...]. Factorisation methods infer these latent features by trying to reconstruct the whole buying matrix ( of all users/items)


People have tried it. For example - http://ojs.academypublisher.com/index.php/jcp/article/viewFile/01032734/242

You would have to test on your data set and see what works better for your data and choice of metric.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.