The big CS news of the week: Netflix, the online DVD subscription
rental site, has announced a million-dollar prize for substantially
improving their movie recommendation system. The New York Times has
the story,
NPR has an interview
with James Bennett, Netflix vice-president of recommendation systems, and John Langford gives his take.
Recommendation Systems (or Collaborative
Filtering) tries to match one person's interests based on the
interests of a large collection of other users. At first this seems
like an easy task, just trying to match vectors. But the simple ideas
don't work very well. The AI community have developed much more
sophisticated techniques that have been implemented in companies that
take recommendation systems seriously, like Amazon and
Netflix. Apparently these techniques have reached the point of
diminishing returns, thus the contest.
I understand that Amazon wants to sell more stuff, but why does
Netflix take the problem so seriously, to the point of having a VP of
recommendation systems as well as running this contest? They only
recommend to already paying subscribers, the amount of extra business
they get or keep by a strong recommendation system seems minimal.
But I shouldn't complain. Too often the public thinks of computer
science as simply writing programs and making them run quickly. The
Netflix contest sheds light on a different view of CS that shows the
depth in a seemingly simple problem.
The million-dollar prize puts recommendation systems in the same class
as the P versus
NP Millenium Prize. Though if you could show P = NP by giving a
quick algorithm for NP-complete problems, you can use that algorithm
to develop a great recommendation system and collect a cool two mill.
Netflix is interested in recommendation systems, because one of the major problems they have is keeping customers around after the initial 3-6 months. Many subscribers get lots of movies when they first sign-up, but as the exhaust their list of movies, they lose interest in the service and cancel. A good recommendation system would ensure that the subscribers continue to get movies they are interested in and don't cancel their subscriptions.
"Though if you could show P = NP by giving a quick algorithm for NP-complete problems, you can use that algorithm to develop a great recommendation system and collect a cool two mill."
Really!? I always thought string matching was in P but why do they then fund so much money for bioinformatics?
I think it might be interesting to explore recommendation systems that rely more on human intelligence rather than sophisticated collaborative filtering algorithms.
For example, I have built a social news/advertising service that relies on the intelligence of link submitters/advertisers: you target your links to people who you think will like them based on their previously liked/disliked links; as they vote your links up or down (thus determining their scores), better targeted (i.e., higher scoring) links will rank higher among personalized recommendations.
An alternative method is to rely on the intelligence of people receiving recommendations. For example, one can have people set up "reminder links".
Suppose a user sees a link X submitted by someone else and likes it. In that case, the user may wish to be reminded of link X when visiting some other web page(s). So the user would set up "reminder links" so that he/she would be reminded of X when visiting some set of web pages Y_1, ..., Y_m.
These "reminder links" can then be used to provide personalized recommendations for other users. Say some other user liked one of the Y_i, then the system would suggest link X to that user. Of course, one could take into account the number of reminders for various link pairs to determine the strength of the recommendation.
I think netflix is currently in a tough price war with several other similar services. I think the theory is that if they can add value with recommendations, they can retain their customers without cutting their prices to the bone.
"Too often the public thinks of computer science as simply writing programs and making them run quickly."
If only that were true! The large majority of the public thinks of "computer scientists" as people who know all the features of Windows, or know how to make the audio output of the PC come out of the speakers of the Wifi.
"Too often the public thinks of computer science as simply writing programs and making them run quickly."
If only that were true! The large majority of the public thinks of "computer scientists" as people who know all the features of Windows, or know how to connect their PC to the speakers of the Hifi.