-
Notifications
You must be signed in to change notification settings - Fork 92
Recommender Engines
The proposed framework contains a recommender engine composed of several algorithms described in the literature, such as user and item-based kNN and matrix factorization. It provides an assortment of components that may be plugged together and customized to create an ideal recommender for a particular domain.
Ratings are a popular kind of explicit feedback. Users assess how much they like a given item (e.g. a movie or a news article) on a predefined scale, e.g. 1 to 5, where 5 could mean that the user likes the item very much, whereas 1 means the user strongly dislikes the item. Rating prediction algorithms estimate unknown ratings from a given set of known ratings and possibly additional data like user or item attributes. The predicted ratings can then indicate to users how much they will like an item, or the system can suggest items with high predicted ratings. Our available prediction algorithms are:
-
Matrix Factorization (with and without baseline)
-
SVD
-
SVD++
-
ItemKNN
-
Item Attribute KNN
-
UserKNN
-
User Attribute KNN
-
Item NSVD1 (with and without Batch)
-
User NSVD1 (with and without Batch)
-
Most Popular
-
Random
-
gSVD++
-
Item-MSMF
Run Rating Prediction Algorithm (E.g: ItemKNN)
>> from caserec.recommenders.rating_prediction.itemknn import ItemKNN
>> ItemKNN(train_file, test_file).compute()
In the item recommendation task, the system constructs a list of items which are more likely to be preferred by a given user. Usually in the item recommendation scenario the user's feedback is implicit, which means that his preferences on items are unobservable \cite{Liu2009}. For example, in the movie recommendation task, the number of times a user watches a movie is observable (i.e., implicit feedback) but not his explicit preference rating about the movie (i.e., explicit feedback). Recommendation models are then built based on some pre-defined preference assumptions, e.g., the more times a user watches a movie, the more he/ she likes it. Such assumptions may not accurately describe users’ preferences. Moreover, the observed user-item interaction data are generally sparse, which makes the preference modeling even more challenging. As a result, existing solutions often deliver unsatisfactory recommendation accuracies. Case Recommender contains:
-
BPRMF
-
ItemKNN
-
Item Attribute KNN
-
UserKNN
-
User Attribute KNN
-
Group-based (Clustering-based algorithm)
-
Paco Recommender (Co-Clustering-based algorithm)
-
Most Popular
-
Random
-
PaCo Recommender
-
Group-Based
-
Ensemble Methods
Run Item Recommendation Algorithm (E.g: ItemKNN)
>> from caserec.recommenders.item_recommendation.itemknn import ItemKNN
>> ItemKNN(train_file, test_file).compute()