Recommender Systems: The Textbook


Recommender Systems: The Textbook, Springer, April 2016

Charu C. Aggarwal.

Comprehensive textbook on recommender systems: Table of Contents

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.


Cost-effective methods for obtaining electronic and hardcopy versions

The book is available in both hardcopy (hardcover) and electronic versions. The hardcover is available at all the usual channels (e.g, Amazon, Barnes and Noble etc.), in Kindle format, and also directly from Springer in hardcopy and pdf format. The good thing about Springer is that electronic versions are often widely accessible at no cost to subscribing institutions, which is particularly convenient for students. My understanding is that a very large fraction of universities in North America, Europe, Australia, and New Zealand are subscribers, and a rapidly increasing number of universities in Asia are also subscribing. The electronic version is available at the following Springerlink pointer . For subscribing institutions click from a computer directly connected to your institution network to download the book for free. Springer uses the domain name of your computer to regulate access. To be eligible, your institution must subscribe to "e-book package english (Computer Science)" or "e-book package english (full collection)". If your institution is eligible, you will see a (free) `Download Book' button. Otherwise you will see a (paid) `Get Access' button. Sometimes you may be able to download it from your library e-collection, even when it is not Web-accessible from your institution. For those who prefer desk copies rather than electronic books, there are some very cost-effective methods to obtain a paperback MyCopy edition for $25 or less (subscribing institutions only). If you have ever published an article (even journal) with Springer, you are also entitled to an additional 40% author discount for any Springer book (including the $25 paperback edition) using the approach described here .

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.


About the Author

Charu Aggarwal is a Distinguished Research Staff Member (DRSM) at the IBM T. J. Watson Research Center in Yorktown Heights, New York. He completed his B.S. from IIT Kanpur in 1993 and his Ph.D. from Massachusetts Institute of Technology in 1996. He has worked extensively in the field of data mining, with particular interests in data streams, privacy, uncertain data and social network analysis. He has published 15 (4 authored and 11 edited) books, over 300 papers in refereed venues, and has applied for or been granted over 80 patents. His h-index is 72. Because of the commercial value of the above-mentioned patents, he has received several invention achievement awards and has thrice been designated a Master Inventor at IBM. He is a recipient of an IBM Corporate Award (2003) for his work on bio-terrorist threat detection in data streams, a recipient of the IBM Outstanding Innovation Award (2008) for his scientific contributions to privacy technology, and two IBM Outstanding Technical Achievement Awards for his work on streaming systems and high-dimensional data analysis. He has received two best paper awards and an EDBT Test-of-Time Award (2014). He has received the IEEE ICDM Research Contributions Award (2015), which is one of two highest awards for research in the field of data mining. He has served as the general or program co-chair of the IEEE Big Data Conference (2014), the ICDM Conference (2015), the ACM CIKM Conference (2015), and the KDD Conference (2016). He also co-chaired the data mining track at the WWW Conference 2009. He served as an associate editor of the IEEE Transactions on Knowledge and Data Engineering from 2004 to 2008. He is an associate editor of the ACM Transactions on Knowledge Discovery and Data Mining Journal , an action editor of the Data Mining and Knowledge Discovery Journal , an associate editor of the IEEE Transactions on Big Data, and an associate editor of the Knowledge and Information Systems Journal. He is editor-in-chief of the ACM SIGKDD Explorations. He is a fellow of the SIAM (2015), ACM (2013) and the IEEE (2010) for "contributions to knowledge discovery and data mining techniques."


Solution Manual for Book

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.


Resources for book

The resources for this book will grow over time. Currently, I have not found time to prepare slides for teaching and will add them over time. I will also make the powerpoint figures of the book available soon. Meanwhile, I have added links to various sites on the internet where software is available for related material. In case you use the book and prepare slides, please try to share them on the internet. I can add a link from my site like the links below (with your name acknowledged of course).

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

Grouplens Webpage

Cofi Collaborative Filtering Library (Java)

Crab: Components to create recommender systems (Python)

Weka Workbench

Recommenderlab project in R

MyMediaLite Recommender System Library (multi-language)

LibRec Recommnder Systems Library (Java)

Mrec Recommender Systems Library

Chapter 2: Neighborhood-Based Collaborative Filtering

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

Recommenderlab project in R

MyMediaLite Recommender System Library (multi-language)

LibRec Recommnder Systems Library (Java)

Chapter 3: Model-Based Collaborative Filtering

Apache Mahout Recommender Systems

Apache Spark Collaborative Filtering (Uses ALS)

Scikit recommender systems in Python

Toolkit SVDFeature

Cofi Collaborative Filtering Library (Java)

Crab: Components to create recommender systems (Python)

Recommenderlab project in R

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)

Chapter 4: Content-Based Recommender Systems

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)

IBM SPSS Software Suite

LibSVM for Support Vector Machines

mlpack in C++

Apache Mahout Recommender Systems

Scikit recommender systems in Python

Bow Toolkit and Data Sets

CRAN Text-Mining Packages

SVMperf Software for scalable text classification

Multinomial Bayes model for classification

Chapter 5: Knowledge-Based Recommender Systems

Robin Burke's Page on FindMe Systems

My Product Advisor

Entree Restaurant Recommender Data Set

Chapter 6: Hybrid and Ensemble-Based Recommender Systems

ENTOOL for Ensemble Learning and Classification

R-archive network with lots of classification and ensemble methods

Netflix Runner Up Entry: The Ensemble

Chapter 7: Evaluating Recommender Systems

MovieLens Data Sets

Jester Collaborative Filtering Data Set

Book Crossing Data Set

Recommenderlab project in R (includes evaluation code)

Librec data sets

Data sets from CMU

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

Dating data set

Chapters 8 and 9: Contextual, Temporal and Location-Based Recommenders

LibRec Recommnder Systems Library contains Time-svd++ (Java)

Time-svd++ implementation from CMU

Time-svd++ in GraphLab

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)

HMM Implementation in R

Sequence mining for computational biology

Chapters 10 and 11: Network and Social Recommendations

SNAP: Stanford Network Analysis Project (includes Epinions and Slashdot data sets)

Social Tagging Data Set from GroupLens

PageRank implementation for very large graphs

Python Graph Implementations

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)

Chapters 12 and 13: Advanced Topics

Robust PCA code for matrix completion (MATLAB)

Voogoo Website and Portal Personalization in PHP

EasyRec Recommender for Webpages in Java