Table Of ContentBuilding Recommendation Engines
Table of Contents
Building Recommendation Engines
Credits
About the Author
About the Reviewers
www.PacktPub.com
Why subscribe?
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Downloading the color images of this book
Errata
Piracy
Questions
1. Introduction to Recommendation Engines
Recommendation engine definition
Need for recommender systems
Big data driving the recommender systems
Types of recommender systems
Collaborative filtering recommender systems
Content-based recommender systems
Hybrid recommender systems
Context-aware recommender systems
Evolution of recommender systems with technology
Mahout for scalable recommender systems
Apache Spark for scalable real-time recommender systems
Neo4j for real-time graph-based recommender systems
Summary
2. Build Your First Recommendation Engine
Building our basic recommendation engine
Loading and formatting data
Calculating similarity between users
Predicting the unknown ratings for users
Summary
3. Recommendation Engines Explained
Evolution of recommendation engines
Nearest neighborhood-based recommendation engines
User-based collaborative filtering
Item-based collaborative filtering
Advantages
Disadvantages
Content-based recommender systems
User profile generation
Advantages
Disadvantages
Context-aware recommender systems
Context definition
Pre-filtering approaches
Post-filtering approaches
Advantages
Disadvantages
Hybrid recommender systems
Weighted method
Mixed method
Cascade method
Feature combination method
Advantages
Model-based recommender systems
Probabilistic approaches
Machine learning approaches
Mathematical approaches
Advantages
Summary
4. Data Mining Techniques Used in Recommendation Engines
Neighbourhood-based techniques
Euclidean distance
Cosine similarity
Jaccard similarity
Pearson correlation coefficient
Mathematic model techniques
Matrix factorization
Alternating least squares
Singular value decomposition
Machine learning techniques
Linear regression
Classification models
Linear classification
KNN classification
Support vector machines
Decision trees
Ensemble methods
Random forests
Bagging
Boosting
Clustering techniques
K-means clustering
Dimensionality reduction
Principal component analysis
Vector space models
Term frequency
Term frequency inverse document frequency
Evaluation techniques
Cross-validation
Regularization
Root-mean-square error (RMSE)
Mean absolute error (MAE)
Precision and recall
Summary
5. Building Collaborative Filtering Recommendation Engines
Installing the recommenderlab package in RStudio
Datasets available in the recommenderlab package
Exploring the Jester5K dataset
Description
Usage
Format
Details
Exploring the dataset
Exploring the rating values
Building user-based collaborative filtering with recommenderlab
Preparing training and test data
Creating a user-based collaborative model
Predictions on the test set
Analyzing the dataset
Evaluating the recommendation model using the k-cross validation
Evaluating user-based collaborative filtering
Building an item-based recommender model
Building an IBCF recommender model
Model evaluation
Model accuracy using metrics
Model accuracy using plots
Parameter tuning for IBCF
Collaborative filtering using Python
Installing the required packages
Data source
Data exploration
Rating matrix representation
Creating training and test sets
The steps for building a UBCF
User-based similarity calculation
Predicting the unknown ratings for an active user
User-based collaborative filtering with the k-nearest neighbors
Finding the top-N nearest neighbors
Item-based recommendations
Evaluating the model
The training model for k-nearest neighbors
Evaluating the model
Summary
6. Building Personalized Recommendation Engines
Personalized recommender systems
Content-based recommender systems
Building a content-based recommendation system
Content-based recommendation using R
Dataset description
Content-based recommendation using Python
Dataset description
User activity
Item profile generation
User profile creation
Context-aware recommender systems
Building a context-aware recommender systems
Context-aware recommendations using R
Defining the context
Creating context profile
Generating context-aware recommendations
Summary
7. Building Real-Time Recommendation Engines with Spark
About Spark 2.0
Spark architecture
Spark components
Spark Core
Structured data with Spark SQL
Streaming analytics with Spark Streaming
Machine learning with MLlib
Graph computation with GraphX
Benefits of Spark
Setting up Spark
About SparkSession
Resilient Distributed Datasets (RDD)
About ML Pipelines
Collaborative filtering using Alternating Least Square
Model based recommender system using pyspark
MLlib recommendation engine module
The recommendation engine approach
Implementation
Data loading
Data exploration
Building the basic recommendation engine
Making predictions
User-based collaborative filtering
Model evaluation
Model selection and hyperparameter tuning
CrossValidation
CrossValidator
Train-Validation Split
Setting the ParamMaps/parameters
Setting the evaluator object
Summary
8. Building Real-Time Recommendations with Neo4j
Discerning different graph databases
Labeled property graph
Understanding GraphDB core concepts
Neo4j
Cypher query language
Cypher query basics
Node syntax
Relationship syntax
Building your first graph
Creating nodes
Creating relationships
Setting properties to relations
Loading data from csv
Neo4j Windows installation
Installing Neo4j on the Linux platform
Downloading Neo4j
Setting up Neo4j
Starting Neo4j from the command line
Building recommendation engines
Loading data into Neo4j
Generating recommendations using Neo4j
Collaborative filtering using the Euclidean distance
Collaborative filtering using Cosine similarity
Summary
9. Building Scalable Recommendation Engines with Mahout
Mahout - a general introduction
Setting up Mahout
The standalone mode - using Mahout as a library
Setting Mahout for the distributed mode
Core building blocks of Mahout
Components of a user-based collaborative recommendation engine
Building recommendation engines using Mahout
Dataset description
User-based collaborative filtering
Item-based collaborative filtering
Evaluating collaborative filtering
Evaluating user-based recommenders
Evaluating item-based recommenders
SVD recommenders
Distributed recommendations using Mahout
ALS recommendation on Hadoop
The architecture for a scalable system
Summary
10. What Next - The Future of Recommendation Engines
Future of recommendation engines
Phases of recommendation engines
Phase 1 - general recommendation engines
Phase 2 - personalized recommender systems
Phase 3 - futuristic recommender systems
End of search
Leaving the Web behind
Emerging from the Web
Next best actions
Use cases to look out for
Smart homes
Healthcare recommender systems
News as recommendations
Popular methodologies
Serendipity
Temporal aspects of recommendation engines
A/B testing
Feedback mechanism
Summary
Building Recommendation Engines
Description:Key FeaturesA step-by-step guide to building recommendation engines that are personalized, scalable, and real timeGet to grips with the best tool available on the market to create recommender systemsThis hands-on guide shows you how to implement different tools for recommendation engines, and when t