Let's talk about recommender systems.
Motivations to talk about recommender systems
- It's an important application of machine learning
Many groups in Silicon Valley now is trying to build better recommender systems. There are many websites or systems in Amazon, Netflix, eBay, iTunes Genius try to recommend new products to use. Amazon tries to recommend books to you. Netflix tries to recommend movies to you and so on. These systems are responsible for a substantial fraction of the revenue of these companies. So the improvement in performance of a recommender system can have a substantial and immediate impact on the bottom line of many of these companies. - Share with you some big ideas in machine learning
Features are important for machine learning and features you choose will have a big effect on the performance of your learning algorithm. So there's this big idea in machine learning, which is that for some problems, there are algorithms that can try to automatically learn a good set of features for you. Recommender system is one example of that sort of settings where you might be able to have an algorithm just to learn what features to use.
Recommender system problem formulation
Let's use the problem of predicting movie ratings. Suppose you're a website or company that sells or rents out movies. And you let your users rate your movies using a 1 to 5 star rating. In order to make this example just a little bit nicer, I'm going to allow 0 to 5 stars as well because that just makes the math come out nicer. Suppose we have 5 movies and 4 users. And above table shows the ratings. The "?" means the user didn't see the movie thus no rating available. To introduce a bit of notation:
no. users
no. movies. I have loosely 3 maybe romantic comedy movies, and 2 action movies. From the table, seems that Alice and Bob are giving high ratings to these romantic comedies and giving very low ratings about the action movies. For Carol and Dave, it's the opposite. They really like action movies and gave them high ratings, but don't like romance and love-type movies.
if user has rated movie .
rating given by user to movie (defined only if )
So, the recommender system problem is: given these and , try to come up with a learning algorithm that can automatically fill in these values of the questions marks. With this, we can look at the movies that the users has not yet watched, and recommend new movies to that user to watch.
In this particular example, seems Alice and Bob both like the romantic movies, maybe we can predict that Alice could rate "Cute puppies of love" to 5. Maybe Bob would give "Romance forever" 4.5. Whereas Carol and Dave could give these two movies 0. And Dave, really like action movies, and could rate "Swords vs. Karate" 4 or maybe 5 rating. Based on this, we can recommend the users new movies to watch.
In the next class, we'll develop a learning algorithm to address this problem.
<end>