I want to design a system for product recommendation, where I have the following:
- ~1000 products that are tagged with 1 to ~10 descriptive tags by professional product specialists.
- ~200000 users, that can "like" a product (no "dislike", no numerical rating), along with buying products (these are products where it makes sense to buy the same product multiple times).
- Most users have no likes and no purchases, so the density of the user/likes and user/purchases matrices is very low.
- I also have (for some users) explicit preferences of the form "I like this tag" or "I dislike this tag", and other information that can be used to weigh preferences after an initial ranking.
- Since it makes sense to buy a product multiple times, I'd prefer a method that also scored products that have been previously bought/liked.
What are my options here? I'm feeling kind of lost, as most literature I can find on collaborative filtering seems to focus solely on numerical ratings, and most stuff I can find on content-based filtering seems to mostly talk about extracting the keywords which I already have in the form of tags.