Skip to content

Recommender Engines

Arthur Fortes edited this page Jun 29, 2018 · 6 revisions

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.

Rating Prediction

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()


Item Recommendation

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()


Clone this wiki locally