Introduction to Recommender Systems

University of Minnesota

This course introduces the concepts, applications, algorithms, programming, and design of recommender systems--software systems that recommend products or information, often based on extensive personalization. Learn how web merchants such as personalize product suggestions and how to apply the same techniques in your own systems!

Recommender systems have changed the way people find products, information, and even other people. They study patterns of behavior to know what someone will prefer from among a collection of things he has never experienced. The technology behind recommender systems has evolved over the past 20 years into a rich collection of tools that enable the practitioner or researcher to develop effective recommenders. We will study the most important of those tools, including how they work, how to use them, how to evaluate them, and their strengths and weaknesses in practice.

The algorithms we will study include content-based filtering, user-user collaborative filtering, item-item collaborative filtering, dimensionality reduction, and interactive critique-based recommenders. The approach will be hands-on, with six two week projects, each of which will involve implementation and evaluation of some type of recommender.

In addition to topical lectures, this course includes interviews and guest lectures with experts from both academia and industry.

Two Ways to Take this Course:

This course is designed to support two different types of students and educational goals:

Programming Track:  Designed for students with significant programming and mathematics experience (see below), the programming track combines a conceptual and mathematical understanding of recommender systems with experience programming six different recommender systems projects.  Students completing this travel will gain the skills needed to implement basic recommenders from scratch, and to use software libraries and tools to implement more advanced recommenders.

Concepts Track:  Students who are not experienced programmers, or who are primarily interested in understanding the concepts and techniques of recommender systems, without learning to program them, can choose to focus on the conceptual and mathematical content, skipping the programming projects and associated lecture content.  Students in the concepts track are still expected to have significant familiarity with computing systems and college-level mathematics, but need not be accomplished programmers.  We expect this track to be useful for tech-savvy marketing and business leaders, as well as engineering managers who may oversee but not directly develop recommender systems.  We also hope it will be useful to those looking to understand recommender systems concepts without the workload associated with programming those systems. 


Topics covered:
Week 1:
Introduction to Course and to Recommender Systems
Weeks 2 and 3:
Non-Personalized Recommenders
Understanding Ratings, Predictions, and Recommendations
Scales and Normalization
Interview with Anthony Jameson (DFKI AI Labs) Weeks 4 and 5:
Content-Based Recommenders
Inferring Preferences
Unary Ratings
Knowledge-Based Recommenders
Introduction to LensKit Toolkit
Interviews with Robin Burke (DePaul University) and Barry Smyth (University College Dublin) Weeks 6 and 7:
Collaborative Filtering
User-User k-Nearest Neighbor Approach
Tuning CF Algorithms
Interviews with Paul Resnick (University of Michigan), Jen Golbeck (University of Maryland) and Dan Cosley(Cornell University) Weeks 8 and 9:
Evaluation and Metrics;
Error Metrics;
Decision-Support Metrics
Comparative Evaluation: Dead Data vs. Laboratory vs. Field Study
User-Centered Metrics and Evaluation
Data Sets
Interview with Neal Lathia (University of Cambridge) Weeks 10 and 11:
Collaborative Filtering II
Item-Item k-Nearest Neighbor
Business Rules
Adjustments for Serendipity and Diversity
Performance Comparisons
Hybrid Algorithms
Interviews with Brad Miller (Luther College) and Robin Burke (DePaul University) Weeks 12 and 13:
Dimensionality Reduction Recommenders
Concepts behind Latent Semantic Analysis and Singular Value Decomposition
Week 14:
Alternative Recommender Approaches
Interactive Recommenders
Critique and Dialog-based Approaches
Advanced Topics
Interview with Anthony Jameson (DFKI AI Labs), Francesco Ricci (Free University of Bozen-Bolzano), Xavier Amatriain (NetFlix) and Anmol Bhasin (LinkedIn)

Recommended Background

For the Concepts Track students should have a basic familiarity with college-level algebra and a general understanding of computer systems concepts.

For the Programming Track students should have significant skill in Java programming, basic data structures, college-level algebra, and the ability to install and manage sophisticated software development tools and libraries.  Programming track students will install and use significant open-source software tools. Therefore, a special lecture in the first week of class will identify the tool and installation options for various computing platforms.

Suggested Readings

Specific readings will be identified to accompany particular lectures or assignments.  All such readings will be available to students online.  Those interested in an introductory text are invited to consider Recommender Systems: An Introduction by Jannach et al.  

Course Format

Course content will consist of lecture videos (with PDFs of used slides available), online resources including review and research articles, and online discussion forums.  Additionally, we will be recording live Q&A and discussion sessions held with students enrolled for credit at the University of Minnesota; at those sessions, we will be addressing many of the top-scoring questions from the class forums. 

Course evaluation will include three components:  written assignments, quizzes, and programming assignments (programming track only).  While many assignments will be automatically graded, some will use peer grading; students must complete peer grading to earn credit for their own submission. 


Will I get a Statement of Accomplishment for this Course?

Yes, students who complete the course with sufficiently high scores will receive a Statement of Accomplishment signed by the instructors.  For the programming track, we will award a certificate of distinguished accomplishment to students who receive 80% or more of the possible points in the course.  We will award a certificate of accomplishment to any student who receives 50% or more of the total points possible in the course -- a level that can be achieved by students in the concepts track as well.  

  • 2013年9月03日, 14 星期
  • 免费:
  • 收费:
  • 证书:
  • MOOC:
  • 视频讲座:
  • 音频讲座:
  • Email-课程:
  • 语言: 英语 Gb



请注册, 为了写反馈

Small-icon.hover Machine Learning
Machine learning: from the basics to advanced topics. Includes statistics...
Small-icon.hover Organizational Analysis (Self-Paced)
In this introductory, self-paced course, you will learn multiple theories of...
90066_f3b3_9 Java 101: Java Programming for Beginners
Learn the Fundamentals of Programming with Java. Start Coding Like The Pros...
Human_beans_logo Introduction to Psychology
This course is all about you ... your mind, your behavior, and what underlies...
122922_b266_6 Life Impact: Media Interview confidence & communication by Seán Brickell
A proven psychological & practical confidence & communication training...
6-189iap11 A Gentle Introduction to Programming Using Python (January IAP 2011)
This course will provide a gentle, yet intense, introduction to programming...
Regular_0ff99575-9383-496b-b458-c0f922f4aca3 Introduction to Innovation and Technology in Legal Services
Develop your understanding of how technological innovation is transforming...
Regular_63427a5b-85cc-4169-8dbf-4d717b25949a How to Succeed at: Interviews
This free three week course provides the tools you need to succeed at interviews...
Regular_e8883a5d-dc06-49e5-a9c5-6ee0db012fe5 Digital Skills: Grow Your Career
Learn about how digital is changing the world of work, and how you can successfully...
Regular_b06f6a32-bbe1-4d79-b184-b456dd1f5ff0 Digital Skills: Social Media
Learn how to use social media for business, from creating a social media presence...
Regular_af65e5e4-6e24-4222-9919-4d1e0e318fa2 Digital Skills: Digital Marketing
Learn about some of the different digital marketing strategies and techniques...
Success-from-the-start-2 First Year Teaching (Secondary Grades) - Success from the Start
Success with your students starts on Day 1. Learn from NTC's 25 years developing...
New-york-city-78181 Understanding 9/11: Why Did al Qai’da Attack America?
This course will explore the forces that led to the 9/11 attacks and the policies...
Small-icon.hover Aboriginal Worldviews and Education
This course will explore indigenous ways of knowing and how this knowledge can...
Ac-logo Analytic Combinatorics
Analytic Combinatorics teaches a calculus that enables precise quantitative...
Talk_bubble_fin2 Accountable Talk®: Conversation that Works
Designed for teachers and learners in every setting - in school and out, in...

© 2013-2019