So I am building a recommendation model using customer and product information. This will be done via implicit, that is, a customer has a product or not as we don't have rating information about products. I want the model to recommend a product using collaborative filtering so I am thinking of using a recommender model like Matrix factorisation/ SVD etc. I will perform multiple tests/experiments to determine the best algorithm to go with.

Should I perform clustering first to determine similar customers based on their demographic and geographic information before the recommender? Then subsequently should I train a recommender model for each cluster?

Would there be any benefit in this approach or would the recommender model be able to naturally determine similar customers?


Short Answer: No, you should not perform clustering before doing matrix factorisation.

First, I just want to say SVD is a special case of Matrix Factorisation. Another thing, SVD in recommendations is not traditional SVD, but has a different form.

Detailed Answer for why (in general) you should not perform clustering before doing matrix factorisation

Matrix Factorisation (MF) itself performs clustering. When you perform Matrix Factorisation, you end up with latent vectors for user and items. By running a clustering algorithm, such as K-Means, on these latent vectors, you end up doing clustering. But, if your end goal is just to recommend, then, there is no point performing clustering apriori.

In some corner cases, you may consider performing clustering

  • Do you want to cluster to understand the data better and build different recommendation models for every different cluster? If yes, then you may consider doing clustering before hand.
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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