Recommender Systems: The Textbook, Springer, April 2016
Charu C. Aggarwal.
PDF Download Link (Free for computers connected to subscribing institutions only)
Buy hard-cover or PDF (for general public- PDF has embedded links for navigation on e-readers)
Buy low-cost paperback edition (Instructions for computers connected to subscribing institutions only)
This book covers the topic of recommender systems comprehensively, starting with the fundamentals and then exploring the advanced topics. The chapters of this book can be organized into three categories:
Algorithms and evaluation: These chapters discuss the fundamental algorithms in recommender systems, including collaborative filtering methods, content-based methods, knowledge-based methods, ensemble-based methods, and evaluation.
Recommendations in specific domains and contexts: The context of a recommendation can be viewed as important side information that affects the recommendation goals. Different types of context such as temporal data, spatial data, social data, tagging data, and trustworthiness are explored.
Advanced topics and applications: Various robustness aspects of recommender systems, such as shilling systems, attack models, and their defenses are discussed. In addition, recent topics, such as multi-armed bandits, learning to rank, group systems, multi-criteria systems, and active learning systems, are discussed together with applications.
Although this book is primarily written as a textbook, it is recognized that a large portion of the audience will comprise industrial practitioners and researchers. Therefore, the book is also designed to be useful from an applied and reference point of view. Numerous examples and exercises have been provided.
In general, for electronic versions, I highly recommend buying the PDF directly from springer over Amazon's Kindle edition. The PDF has embedded links that allows navigation over an e-reader, and will take about 9 MB on your device. Aside from this, one PDF allows you use over any device or computer. Since the PDFs are fully produced by Springer (rather than Amazon kindle, where Amazon plays a role in conversion), the look and feel is fully controlled by author and publisher. This makes the PDF versions of better quality than an Amazon Kindle.
The solution manual for the book is available here from Springer. There is a link for the solution manual on this page. If you are an instructor, then you can obtain a copy. Please do not ask me directly for a copy of the solution manual. It can only be distributed by Springer.
Chapter 1: An Introduction to Recommender Systems
Apache Mahout Recommender Systems
Apache Spark Collaborative Filtering
Scikit recommender systems in Python
Large scale collaborative filtering
Various recommendation implementations in GraphLab
Netflix Prize Webpage with Forum Discussions
Cofi Collaborative Filtering Library (Java)
Crab: Components to create recommender systems (Python)
MyMediaLite Recommender System Library (multi-language)
LibRec Recommnder Systems Library (Java)
Mrec Recommender Systems Library
Item-Based and User-Based Implementations from George Karypis Lab (SUGGEST Engine)
Sparse Linear Models (SLIM) from George Karypis Lab
Apache Mahout Recommender Systems
Apache Spark Collaborative Filtering
Scikit recommender systems in Python
MyMediaLite Recommender System Library (multi-language)
LibRec Recommnder Systems Library (Java)
Apache Mahout Recommender Systems
Apache Spark Collaborative Filtering (Uses ALS)
Scikit recommender systems in Python
Cofi Collaborative Filtering Library (Java)
Crab: Components to create recommender systems (Python)
MyMediaLite Recommender System Library (multi-language)
LibRec Recommnder Systems Library (Java)
Graphlab Matrix Factorization Library
LIBMF library for matrix factorization
R-wrapper for the LIBMF library
Coordinate descent methods for matrix factorization
Maximum margin matrix factorization
Various recommendation implementations in GraphLab
Bayesian Probabilistic Matrix Factorization (MATLAB)
A lot of pointers here are for classification software because of the importance of off-the-shelf machine learning techniques in content-based methods
Scikit-learn Data Classification and Regression (Python)
Open Source Data Mining Software (WEKA Workbench)
Apache Mahout Machine Learning Library (Classification)
Spider Machine Learning Library (MATLAB)
LibSVM for Support Vector Machines
Apache Mahout Recommender Systems
Scikit recommender systems in Python
SVMperf Software for scalable text classification
Multinomial Bayes model for classification
Robin Burke's Page on FindMe Systems
Entree Restaurant Recommender Data Set
ENTOOL for Ensemble Learning and Classification
R-archive network with lots of classification and ensemble methods
Netflix Runner Up Entry: The Ensemble
Jester Collaborative Filtering Data Set
Recommenderlab project in R (includes evaluation code)
Mrec Recommender Systems Library (offers tools for reproducible evaluation)
Yahoo! Movie, Music and Images Data Sets
last.fm music recommendation data sets
Scholarly paper recommendation data sets from NUS
LibRec Recommnder Systems Library contains Time-svd++ (Java)
Time-svd++ implementation from CMU
Graphlab Temporal Matrix Factorization
libFM: Factorization Machines Library
fastFM: Factorization Machines Library
SVDFeature allows use of contextual side information (features) Project homepage
GSP Sequential Pattern Mining from Weka
SPMF Sequential Pattern Mining Implementations
Open Source Data Mining Software (WEKA Workbench)
Sequence mining for computational biology
SNAP: Stanford Network Analysis Project (includes Epinions and Slashdot data sets)
Social Tagging Data Set from GroupLens
PageRank implementation for very large graphs
Weka Package for Semisupervised Learning and Collective Classification
NetKit-SRL for Collective Classification
Link Prediction Method (Lpmade)
LibRec Recommnder Systems Library contains many social/trust-based implementations (Java)
Robust PCA code for matrix completion (MATLAB)