lyst / lightfm

A Python implementation of LightFM, a hybrid recommendation algorithm.
Apache License 2.0
4.77k stars 691 forks source link

How to recommend more items with high rating #578

Open nikosece opened 3 years ago

nikosece commented 3 years ago

First of all thank you for this great framework. I am working on a Restaurant/Food recommendation system with yelp dataset. I have item_features like the category of the business, the number of reviews etc. I also included the average rating of each business. I have categorize rating : ["very_low, "low", "average","high"]. When i use the dataset.build_item_features function i use this form: (item id, {feature: feature weight}) provided at documentation. As weight i use the actual value of rating (1,1.5,2,...5). For the other features i use weight: 1. So my question is how can i manage the weights so that businesses with low review value to have also lower score? One other idea is to pre-filter or post filter the items using in predict function and exclude those with rating under a specific threshold, but i would prefer to make a more "clever" recommender instead doing that. About the user_features I am using the categories which user already have reviewed, with weight value to be (total reviews user did for that category)/(user's total reviews). Apart from that i would also like to know if there is a way to give some more input in the predict function. For example if there are features such as Pizza, and Italian at item_features can i get predictions based on that or the only way is the post filtering? Thanks in advance

Terfy03 commented 2 weeks ago

Hey @nikosece, were you able to figure a solution for this?