Solved – Item-based collaborative filtering – Can you add demographic information to initial user×item matrix

matrixrecommender-system

I am building an item-based collaborative filter recommendation system. I have a matrix of users and items, which in this case, are products that were either bought or not (i.e., binary: 1 or 0). I can build an item-based CF out of this co-occurrence/association matrix (note: this is not a matrix of product ratings (15)).

I would also like to add information on "demographics" (location, browser type, device type, etc.) to my recommender to improve the recommendations, especially for people new to the site. Is it possible to just binarize the demographic variables, treat them like new items (i.e., not different than a product), and then add them as new columns in the occurrence matrix? In other words: {user_1: {product_22: 1, product_38: 1, browser_firefox: 1, California: 1, etc}.

I want to either use this matrix (with both products and demographic information for items) to obtain measures of item-similarity (e.g., how similar is product1 to product2; firefox_browser to product1) that can be used for recommendations. I may also want apply matrix factorization on this matrix.

It strikes me that this is a sensible approach but I haven't been able to find documentation on anyone adding demographics to their recommender in such a simple way. Any thoughts?

Thanks for any help!

Best Answer

I had a similar question/problem and got an answer here - How to integrate users' profile information into a recommender system . The simplest solution is to use kNN method - find the closest neighbors using your demographic data and infer recommendations from their ratings

A somewhat more profound technique is to use model-based approach ( matrix factorization method ) where you can put all your data in the model. THis may help - Matrix Factorization algorithms for Recommender Systems

Related Question