A recommender system (RS) can help to influence your customers’ behaviour directly but entertainingly. In this course, we will build RS’s using different approaches: content-based, collaborative filtering, context-aware, or a hybrid one. We will learn about the theory behind diverse mathematical models of an RS task: matrix and tensor decompositions, associative rules, neighbourhood methods, learning to rank, and metric learning. For the practical part, we will employ classical machine learning (such as scikit-learn), deep learning (e.g. pytorch), and a slew of specialised packages (implicit and lightfm amongs them). During the lectures, we will talk not only about theorems but also about applications of RS’s making the clients of companies and non-profit organisations happier. No prior knowledge of the subject is necessary. Python programming experience is mandatory. Statistical learning fundamentals will be nice to have.