CSC 6711 - Recommendation Systems

4 lecture hours 0 lab hours 4 credits
Course Description
Recommendation systems help users navigate incomprehensively large sets of choices by providing suggestions that are most pertinent to a particular user. Recommendation systems are widely used in online stores, streaming services, social media platforms, and advertising.  This seminar course will start by introducing different types of recommendation problems and data sets. Next, students will review and implement several foundational algorithms. Metrics, experimental designs, and practical considerations for offline and online evaluation of recommendation systems will be discussed. Architectures and implementations of several modern commercial recommendation systems will be reviewed and discussed. Student will finish the course by architecting, implementing, testing, documenting, and evaluating a service that will ingest ratings and generate recommendations.
Prereq: (MTH 2340 or MTH 5810 ) and (CSC 5610  or (CSC 2621 and CSC 3310) or CSC 6621 ) or instructor consent
Note: None
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
  • Access and interpret public recommendation data sets
  • Differentiate implicit and explicit ratings data
  • Describe how recommendation data are obtained from user-facing systems
  • Describe and implement recommendation algorithms such as average ratings, k-nearest neighbors, and matrix factorization
  • Compare and contrast the tradeoffs in memory usage, run times, and prediction performance of recommendation algorithms
  • Design experiments to evaluate predictions from recommendation systems
  • Describe and interpret several metrics for evaluating predictions and their tradeoffs
  • Describe the stages (candidate generation, filtering, scoring, and ranking) of modern recommendation systems architectures

Prerequisites by Topic
  • Training and evaluating machine learning models
  • Metrics for evaluating regression and classification models
  • Matrix, vector notation and arithmetic operations
  • Matrix factorization (e.g., some exposure to PCA, SVD, eigenvalues / eigenvectors, QR, LU, etc.)
  • Familarity with Numpy

Coordinator
Dr. RJ Nowling


Print-Friendly Page (opens a new window)