Recommender Systems Course

This is the repository to support the course in Recommender Systems

View project on GitHub

πŸ“š Recommender Systems Course - Lecture Breakdown

This directory contains materials for each lecture in the Recommender Systems course. The course consists of 8 lectures, each 3 hours long, covering the fundamentals, evaluation metrics, classical approaches, hybrid models, and modern deep learning techniques.

πŸ“– Course Lectures

1️⃣ Introduction to Recommender Systems

πŸ“Œ Overview of recommender systems and their real-world applications
πŸ“Œ Types of recommender systems (content-based, collaborative filtering, hybrid)
πŸ“Œ Business impact and challenges in recommendation
πŸ“Œ Datasets: MovieLens, Netflix Prize, Amazon Reviews
πŸ“Œ Hands-on: Setting up a simple rule-based recommender

πŸ“‚ Materials: Lecture1_Intro/


2️⃣ Evaluation Metrics for Recommender Systems

πŸ“Œ Offline vs. online evaluation
πŸ“Œ Accuracy metrics: Precision, Recall, MAP, NDCG
πŸ“Œ Error-based metrics: RMSE, MAE
πŸ“Œ Beyond accuracy: diversity, novelty, serendipity, coverage
πŸ“Œ A/B testing and online evaluation
πŸ“Œ Hands-on: Implementing evaluation metrics in Python

πŸ“‚ Materials: Lecture2_Evaluation/


3️⃣ Content-Based Filtering

πŸ“Œ How content-based filtering works
πŸ“Œ Feature extraction: TF-IDF, embeddings for text, images, audio
πŸ“Œ Cosine similarity and nearest neighbours
πŸ“Œ Strengths and weaknesses of content-based methods
πŸ“Œ Hands-on: Implementing a TF-IDF-based movie recommender

πŸ“‚ Materials: Lecture3_ContentBased/


4️⃣ Collaborative Filtering

πŸ“Œ User-based vs. item-based collaborative filtering
πŸ“Œ Pearson correlation and similarity measures
πŸ“Œ Model-based methods: Matrix factorisation (SVD, ALS)
πŸ“Œ Cold start and sparsity issues
πŸ“Œ Hands-on: Implementing collaborative filtering with user-item data

πŸ“‚ Materials: Lecture4_CollaborativeFiltering/


5️⃣ Hybrid Recommender Systems

πŸ“Œ Why hybrid models?
πŸ“Œ Strategies: weighted, switching, feature combination
πŸ“Œ Netflix Prize: How Netflix optimised recommendations
πŸ“Œ Hands-on: Implementing a hybrid recommender

πŸ“‚ Materials: Lecture5_Hybrid/


6️⃣ LensKit Library for Recommender Systems

πŸ“Œ Introduction to LensKit and its advantages
πŸ“Œ Implementing content-based and collaborative filtering using LensKit
πŸ“Œ Evaluating recommendation models with LensKit
πŸ“Œ Hands-on: Training and evaluating models in LensKit

πŸ“‚ Materials: Lecture6_LensKit/


7️⃣ Matrix Factorisation & Advanced Techniques

πŸ“Œ Matrix factorisation fundamentals: SVD, ALS
πŸ“Œ Factorisation Machines and Bayesian Personalised Ranking
πŸ“Œ Implicit feedback handling
πŸ“Œ Hands-on: Implementing matrix factorisation with Surprise

πŸ“‚ Materials: Lecture7_MatrixFactorization/


8️⃣ Deep Neural Networks for Recommender Systems

πŸ“Œ Neural Collaborative Filtering (NCF)
πŸ“Œ Autoencoders and Variational Autoencoders (VAEs)
πŸ“Œ RNNs for sequential recommendations
πŸ“Œ Transformers in recommender systems
πŸ“Œ Hands-on: Building a deep learning-based recommender

πŸ“‚ Materials: Lecture8_DeepLearning/


🎯 Final Project

πŸ“Œ Build and evaluate a custom recommender system
πŸ“Œ Apply concepts from previous lectures
πŸ“Œ Present results and insights

πŸ“‚ Materials: FinalProject/


πŸ“š References

This course is built upon a mix of theoretical foundations, industry best practices, and hands-on implementations from various sources. Below are key references used throughout the lectures:

πŸ“– Books

  • Ricci, F., Rokach, L., & Shapira, B. (2015). Recommender Systems Handbook. Springer.
  • Aggarwal, C. C. (2016). Recommender Systems: The Textbook. Springer.
  • Okura, K., Tagami, Y., Ono, S., & Tajima, A. (2017). Deep Neural Networks for YouTube Recommendations. arXiv.

πŸ“„ Academic Papers

  • Resnick, P., & Varian, H. R. (1997). Recommender Systems. Communications of the ACM, 40(3), 56-58.
  • Sarwar, B. M., Karypis, G., Konstan, J. A., & Riedl, J. (2001). Item-Based Collaborative Filtering Recommendation Algorithms. WWW Conference.
  • He, X., Liao, L., Zhang, H., Nie, L., Hu, X., & Chua, T. S. (2017). Neural Collaborative Filtering. WWW Conference.
  • Koren, Y., Bell, R., & Volinsky, C. (2009). Matrix Factorization Techniques for Recommender Systems. IEEE Computer.

πŸ”¨ Libraries & Tools

  • LensKit - A Python toolkit for building and experimenting with recommender systems.
  • Surprise - A scikit-based Python library for collaborative filtering.
  • TensorFlow Recommenders - TensorFlow-based deep learning models for recommendation tasks.

πŸ“‚ Datasets

  • MovieLens - Widely used dataset for evaluating recommender systems.
  • Netflix Prize - Historic dataset from the Netflix recommendation competition.
  • Amazon Reviews - Large-scale e-commerce recommendation dataset.

πŸŽ“ Online Courses & Tutorials


πŸ“Œ If you find useful references or additional resources that complement this course, feel free to contribute by adding them here!