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 (1
–5
)).
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!