# STAT3009 Recommender Systems

All models are wrong, but some are useful.” — George E. P. Box

## 💬 Announcement

• Sep 1, 2021: Welcome to STAT3009: Recommender Systems.

## 🗓️ Schedule (tentative)

Week00Python Numpy Tutorial Numpy tutorial
Week01Background, dataset, evaluation, metrics, baseline method, and software prepareslidesnotebookSections 1.1 - 1.3 in [1]
Week02Correlation-based collaborative filteringslidesnotebookSections 2.1 - 2.3 in [1]
Quizz 1: implement for baseline methods and Correlation-based collaborative filtering Kaggle InClass Prediction Competition
Week03Latent factor model I: methodologyslidesnotebook[3], [7], Section 3.6 in [1]
Week04Latent factor model II: alternating least square (ALS)slidesnotebookSection 3.6.4.4 in [1], [8]
Week05Latent factor model III: stochastic gradient descent (SGD)slidesnotebookSection 3.6.4.1, [14], [15]
Week06Case study: MovieLens dataset notebook[16], [17]
Project 1: Recommender systems based on LFM Kaggle InClass Prediction Competition
Week07Neural collaborative filtering: nonlinear interactionslidesnotebook[2], [5], [19]
Week08Side information: continuous and discrete featuresslidesnotebook[2], [10]
Week09Cold-start: smoothing recommender systemsslidesnotebookSection 1.5 in [1]
Week10binary recommender systems and Top-K recommendationslides1+slides2notebookSection 10.4 in [1], [11], [12]
Project 2: Recommender system based on Real application Kaggle InClass Prediction Competition
Week11Advance topic: convolutional neural networks based Recommendationslidesnotebook[2], [13]
Week12Advance topic: Causality in recommender systemsslides [18]
Quizz 2: Inclass exercise for statistical modelling (similar to the homework)
Week13Top-3 solution presentation

## 🧾 Course Content

🖥️ Description:

Commercial sites such as search engines, advertisers and median (e.g., Netflix, Amazon), and financial institutions employ recommender systems for content recommendation, predicting customer behavior, compliance, or risk.

This course provides an overview of predictive models for recommender systems, including content-based collaborative algorithms, latent factor models, and deep learning models, as well as Python implementation, evaluation and metrics for recommender systems.

🔑 Key words:

In this course, students will learn about principles and algorithms for turning training data into effective automated predictions. We will cover:

• Python programming, recommender systems library
• Correlation-based collaborative filtering, latent factor models, neural collaborative filtering, deep learning models
• Recommender systems, link prediction, Top-K recommendation
• Tuning, bagging, ensemble in recommender systems

👌 What you’ll learn:

• Understand principles behind recommender systems approaches such as correlation-based collaborative filtering, latent factor models, neural recommender systems
• Implement and analyze recommender systems to real applications by Python
• Choose and tune suitable models for different applications

🏗️ Prerequisites:

• Familiarity with linear algebra (inner product, matrix-vector product), linear regression (OLS).
• At least a little experience programming with Numpy, TensorFlow, and pandas.
• Completed Machine Learning Crash Course either in-person, online, or self-study, or you have equivalent knowledge.

👨‍💻 Coursework:

• Homeworks (20%)

There will be three homework / Inclass quizzes. You are encouraged to use LaTeX to submit your homework (Latex template). You will receive one (1) bonus point for submitting a typed written assignment (e.g. LaTeX, Microsoft Word). We will accept scanned handwritten assignments, but they will not receive the bonus point.

• Inclass quizzes (coding and exercise) (25%)

Open-book exam, and problems will be like the homework.

• Real application project (50%)

A full analysis provided in form of report and Jupyter notebook. (1) An executable notebook containing the performed analysis on the data; (2) A technique report includes the (i) mathematical form and intuitive interpretation of your predictive models (ii) details about the data processing and hyper-parameters tuning.

👨🏻‍🤝‍👨🏾 Collaboration policy: we admit you to form a group to finish your real application projects. The number of group members should be smaller or equal than 3. The contribution of each member should be clearly stated in the final report. You will receive one (1) bonus point if you work solo to the final project.

1. Aggarwal, C. C. (2016). Recommender systems (Vol. 1). Cham: Springer International Publishing.
2. Zhang, S., Yao, L., Sun, A., & Tay, Y. (2019). Deep learning based recommender system: A survey and new perspectives. ACM Computing Surveys (CSUR), 52(1), 1-38.
3. Funk, S. (2006). Netflix update: Try this at home.
4. Chen, H., Li, X., & Huang, Z. (2005, June). Link prediction approach to collaborative filtering. In Proceedings of the 5th ACM/IEEE-CS Joint Conference on Digital Libraries (JCDL’05) (pp. 141-142). IEEE.
5. He, X., Liao, L., Zhang, H., Nie, L., Hu, X., & Chua, T. S. (2017, April). Neural collaborative filtering. In Proceedings of the 26th international conference on world wide web (pp. 173-182).
6. Dai, B., Wang, J., Shen, X., & Qu, A. (2019). Smooth neighborhood recommender systems. Journal of Machine Learning Research, 20.
7. Koren, Y., Bell, R., & Volinsky, C. (2009). Matrix factorization techniques for recommender systems. Computer, 42(8), 30-37.
8. Insight blog: Explicit Matrix Factorization: ALS, SGD, and All That Jazz
9. Github: Matrix Factorization for Recommender Systems
10. Agarwal, D., & Chen, B. C. (2009, June). Regression-based latent factor models. In Proceedings of the 15th ACM SIGKDD international conference on Knowledge discovery and data mining (pp. 19-28).
11. Deshpande, M., & Karypis, G. (2004). Item-based top-n recommendation algorithms. ACM Transactions on Information Systems (TOIS), 22(1), 143-177.
12. Dai, B., Shen, X., Wang, J., & Qu, A. (2019). Scalable Collaborative Ranking for Personalized Prediction. Journal of the American Statistical Association, 1-9.
13. Wang, S., Wang, Y., Tang, J., Shu, K., Ranganath, S., & Liu, H. (2017, April). What your images reveal: Exploiting visual contents for point-of-interest recommendation. In Proceedings of the 26th international conference on World Wide Web (pp. 391-400).
14. Music artist Recommender System using Stochastic Gradient Descent: Machine Learning from Scratch (Part VII)
15. Understanding matrix factorization for recommendation (part 3) - SVD for recommendation
16. Creating a Simple Recommender System in Python using Pandas
17. khanhnamele’s GitHub: MovieLens Recommendation Systems
18. Wan, M., & McAuley, J. (2018, September). Item recommendation on monotonic behavior chains. In Proceedings of the 12th ACM Conference on Recommender Systems (pp. 86-94).
19. Companion Jupyter notebooks for the book “Deep Learning with Python”
20. Build a scalable, online recommender with Keras, Docker, GCP, and GKE
21. Tuinhof, H., Pirker, C., & Haltmeier, M. (2018, September). Image-based fashion product recommendation with deep learning. In International Conference on Machine Learning, Optimization, and Data Science (pp. 472-481). Springer, Cham.