Slashdot Mirror


Interest Still High In the Netflix Algorithm Competition

circletimessquare brings us an update to the status of the million-dollar Netflix competition to develop a better algorithm for movie recommendations. We've discussed aspects of the competition since it started two years ago, but the New York Times has a lengthy overview of where it stands now. "The Netflix competition is still going strong, with a vibrant, competitive roster of some 30,000 programmers around the globe hard at work trying to win the prize. The Times provides a look at some of the more obsessive searchers, such as Len Bertoni, a semi-retired computer scientist near Pittsburgh who logs 20 hours a week on the problem, oftentimes with the help of his children. There's also Martin Chabbert in Montreal: 'After the kids are asleep and I've packed the lunches for school, I come down at 9 in the evening and work until 11 or 12.' The article gets into the history of the search algorithm Netflix currently uses, and explores the hot commodity called 'singular value decomposition' that serves as the basis for most of the algorithms in competition."

30 of 77 comments (clear)

  1. Netflix by boyter · · Score: 5, Interesting

    It's actually not that hard to build an algorithm which works well. Following a demonstration at TechEd I built my own implementation using Python in about 2 hours (using a vector space algorithm) or so with reasonable results. The problem is that it is very difficult to win the prize.

    The best thing about it is that you get a lot of data to play with. If you are interested in parallel algorithms and large data sets give it a go. Its surprisingly interesting and sucks you in. In fact I might go play with it now.

    1. Re:Netflix by gardyloo · · Score: 4, Funny

      Its surprisingly interesting and sucks you in. In fact I might go play with it now.

      This week on Life of Geeks: What not to say on slashdot.

    2. Re:Netflix by boyter · · Score: 5, Funny

      You and your dirty mind. Then again large amounts of data is pretty sexy...

  2. Gotta hand it to the article's author by gardyloo · · Score: 4, Funny

    Each new algorithm takes on average three or four hours to churn through the data on the family's "quad core" Gateway computer.

    Anyone who puts "quad core" in quotes like that is either clueless, or---when talking about Gateways---astoundingly ironic. It's kudos either way!

  3. Algorithm or Human inaccuracy? by cjfs · · Score: 4, Interesting

    When Bertoni runs his algorithms on regular hits like Lethal Weapon or Miss Congeniality and tries to predict how any given Netflix user will rate them, he's usually within eight-tenths of a star

    Makes me wonder how accurate my own ratings would be. The difference between clicking 3 or 4 stars is often very minor and arbitrary. At the end of a movie I might rate it something totally different than 20min later. Sounds like they're doing pretty good so far.

    There's a sort of unsettling, alien quality to their computers' results ... But many categorizations are now so obscure that they cannot see the reasoning behind them. Possibly the algorithms are finding connections so deep and subconscious that customers themselves wouldn't even recognize them.

    Realizing the program you wrote out-performs you and you can't explain why is a rather odd feeling.

    1. Re:Algorithm or Human inaccuracy? by davester666 · · Score: 5, Funny

      Jim Davis performed in obscure French porn in the 60's.

      --
      Sleep your way to a whiter smile...date a dentist!
    2. Re:Algorithm or Human inaccuracy? by jacquesm · · Score: 3, Funny

      Second that. I once wrote a chess program just for kicks and it beat me on the second game and I was like 'wtf ?'

      6502 assembler long long long ago...

    3. Re:Algorithm or Human inaccuracy? by lysergic.acid · · Score: 2, Insightful

      well, i think that's one of the interesting things about social sciences. it's very difficult--nigh impossible in some cases--to accurately predict the behavior of a single individual. however, it is possible to predict the collective behavior of a large group of people.

      this seems counter intuitive at first, but it's kinda like not being able to predict how a particular dice roll will land but still being able to predict the statistical average of 100 dice rolls.

      the capriciousness of individuals eventually balances itself out if you use a large enough data set. likewise, fringe opinions also balance each other out when dealing with statistical averages.

  4. Wow! Think about how many free man-hours Netflix by rolfwind · · Score: 3, Insightful

    got from this, even when it has to pay out the prize it will be very cheap against any going rate.

  5. Re:Wow! Think about how many free man-hours Netfli by Alterion · · Score: 2, Insightful

    exactly this is spec work, plain and simple, anyone entering this kind of competition is selling themselves short

  6. Re:Wow! Think about how many free man-hours Netfli by ai3 · · Score: 2, Insightful

    That's what I was thinking. This shows how a company with good management can really save money. Instead of the standard outsourcing-to-cheap-country thing, you get 30,000 people, many of them very bright and motivated, working on your problem for free, and you only have to pay when they are successful per your definition. What a bargain!

  7. Re:Wow! Think about how many free man-hours Netfli by Animaether · · Score: 5, Insightful

    Why is it considered selling yourself short if you do work for free for a commercial entity... but not when you contribute to, say, FireFox, ThunderBird, Apache, the Linux kernel, and so forth and so on?

    In both cases you are typically doing work for absolutely zilch as far as cash or prizes go. You may get a fuzzy warm feeling on the inside, you may simply enjoy doing the work (similar to the fuzzy warm feeling), maybe you enjoy the popularity it gives you. On rare occasions, maybe the work you do there lands you a job further down the line but that's not really something you can bank on. In both cases, you are also doing work somebody else -could- have been doing, for actual pay. I won't get into an argument of whether doing work for free means you're 'stealing jobs' - fact simply is that Netflix -is- getting a lot of work done practically for free that they would otherwise have had to hire somebody for; you would have to agree as otherwise "selling themselves short" would not apply.

    So yes, you're doing work that should be landing you some cold hard cash when you...
    - devise a matching algorithm for Netflix
    - create a video for Radiohead
    - submit photos to a Canon photo competition that they are then free to use in any and all marketing material aka ads regardless of whether your photo actually won that competition.

    But isn't that pretty much the status quo that many here -want- to go to? Those making their money with proprietary programming, creating arts, etc. are dinosaurs in dying business models, no?

    (only semi-flamebait)

  8. Re:Wow! Think about how many free man-hours Netfli by Kryptikmo · · Score: 4, Insightful

    It's not selling yourself short to work on FOSS for a very simple reason. Work on FF, or Thunderbird, or open-sourcing a script that I wrote to convert music is free at the point of delivery. That is, anyone can use it without paying. Freely given, and freely distributed.

    However, in this case the user of the algorithm is paying Netflix. Netflix takes the work that I have done, and closes it off from other people. My work goes not to benefit the community, but merely to benefit one company - a company that has paid me (cheaply) for my work. Since companies by definition only care about the bottom line, their intent is not to benefit the community, but to benefit themselves. You are effectively working for them for cheap, selling yourself short.

    If netflix were to give away the algo for use by anyone else too, then it would be very generous and then you may be able to make a comparison with FOSS. I( have no idea if they will do that or not. However, if I were a shareholder, I would not want them to give away a potentially killer feature for which they paid $1m.

    Saying that, if you enjoy playing with this, go ahead! Just be honest with yourself about. If you still want to do it, wallow in it. But it's an extremely pernicious thing to do to link this with working on something that is done to benefit everyone. It simply is not the same thing.

  9. almost impossible to really win by mlwmohawk · · Score: 4, Informative

    The problem with the Netflix prize, and I myself am working on it :-) is that it is pretty darn near impossible to do better than what they have.

    It is based on user ratings and how close you can come to actual user ratings. For instance, their record set has a frozen point in time, you job is to create a system that will accurately predict what another person will rate a movie in the future.

    It doesn't take much psychology to understand that these are very subjective values. If you watch a movie on a "good" date, you'll rate it higher than if you watch the same movie with a "bad" date. Then there's the level of drunkenness under which you watch the movie. The day you had at work. How much money you lost in the stock market, etc.

    In aggregate, you can come close, but the percentage of variability in the data suggests that Netflix chose their numbers well enough to never have to pay the prize.

    Also, the "data" is nothing more than movie titles and obfuscated user ratings. Any sort of contextual or meta data about the movies you have to go find yourself.

    It is a fun project on which to work, but I'm dubious of the end prize. I'll keep working on it because its fun, but I have my doubts as to the winability of the contest based on the criteria for success.

    1. Re:almost impossible to really win by Cylix · · Score: 4, Interesting

      If I recall correctly, the last person I remember winning a milestone used an additional data source for rating. (which is fine by their rules)

      It's probably going to take an additional data source to improve ratings.

      Hey if you do it at least you get a mil ;) It sounds like a worthy hobby in my book.

      --
      "You should always go to other people's funerals; otherwise, they won't come to yours." -- Yogi Berra
    2. Re:almost impossible to really win by Garse+Janacek · · Score: 2, Insightful

      You recall incorrectly. None of the top teams currently use external data sources (some have tried, but it doesn't help that much once you get up towards the top 10). The last team that (probably, not official yet) won a milestone used the combined predictions of the first and second place teams, interpolated to improve the final score, but nothing external. Same thing in the previous year, the winning team used only computations on the data given.

      IAITTT ;)

      --

      I am the man with no sig!

    3. Re:almost impossible to really win by Garse+Janacek · · Score: 2, Informative

      I have not looked into it but can you be certain that the top teams are not using additional metadata on the movies?

      Pretty sure. IAITTT = I Am In The Top Ten ;)

      The winning progress prize entry from 2007 had to publish the full details of their algorithm, and they don't use anything. I don't use anything. PragmaticTheory even wrote a blog post about how they don't use anything. Others have said the same thing. It's impossible to say that no one will ever come up with a useful way to use metadata, but so far the "metadata" produced by the algorithms themselves is far more accurate than that generated by human observers on the same data.

      It may wind up being something not intuitive (like release month/year, production company, gap score of economic state during release year vs current, or something like that)

      Well, that's beyond just counterintuitive to actually demonstrably unhelpful -- it seems a priori unlikely that someone's rating would depend on the production company, for example, but even if it was, that would be much more easily detected by the actual movie average (i.e. if a particular production company gets good ratings, then we will know that just because the movie has a lot of good ratings, and the company becomes superfluous). On the other hand, if you're suggesting that specific people have varying opinions of particular companies, well that again seems odd, but again it's irrelevant -- if such a correlation exists, SVD will find it, and so some of the dimensions of user-movie vectors will correlate to production company.

      Similar with the other properties you mention: since SVD is already finding *all* of the (linear) correlations in the data, it's not very helpful to try to come up with a huge list of farfetched ones yourself hoping one of them will work out...

      --

      I am the man with no sig!

    4. Re:almost impossible to really win by Garse+Janacek · · Score: 2

      But isn't farfetched what you're looking for?

      Well, no, "accurate" is what you're looking for ;)

      But part of what I was getting at is that it doesn't matter how farfetched it is, SVD has no preconceptions (or at least, only the minimum needed for accuracy), it just finds the correlations themselves. If a correlation isn't detectable in the data, then it doesn't matter how plausible or farfetched something is, it won't be useful. If it is detectable in the data, then again, farfetched or not doesn't matter. Time is better spent modeling different ways for functions to correlate and then applying SVD to that than it is in coming up with as many hard-coded correlations as possible...

      --

      I am the man with no sig!

  10. Re:Wow! Think about how many free man-hours Netfli by Spy+Hunter · · Score: 5, Informative

    Actually Netflix closes nothing off. In fact, in order to receive the prize, the winner must publish their algorithm to the public. The winner could easily open-source the entire thing, or OTOH they're also free to patent it out the wazoo and start pimping it out. The only condition Netflix imposes is that Netflix gets a non-exclusive license to use the algorithm in exchange for the prize money, which is eminently reasonable.

    --
    main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}
  11. Re:Wow! Think about how many free man-hours Netfli by morgan_greywolf · · Score: 2, Informative

    Saying that, if you enjoy playing with this, go ahead! Just be honest with yourself about. If you still want to do it, wallow in it. But it's an extremely pernicious thing to do to link this with working on something that is done to benefit everyone. It simply is not the same thing.

    Exactly. Working on FOSS is a magnanimous thing to do. You are giving freely to the entire world -- anyone who needs done what your particular code does. It's volunteerism.

    When you participate in the Netflix competition, you might not be getting paid, but the work you're doing benefits only Netflix and you -- if you win the $1 million prize, that is. There are side benefits even if you don't win the million dollar prize -- you increase your own abilities in the areas of programming, mathematics, critical thinking, etc.

    But that's the only place where there are similarities in working on FOSS, and it's where the similarities end. At the end of the day, doing the Netflix competition is spec work at best. If you exclude the $1m -- which is very cheap, BTW, The sole beneficiary is Netflix.

    But if you write something that benefits others in the world who share your problem and distribute that freely to the world, the beneficiary is the entire world, or at least some portion of it.

  12. Re:It's fundamentally flawed by boyter · · Score: 2, Informative

    It doesn't make a difference. If you are using the same account for scoring then you are using the same account for the recommendations. So if the algorithm suggests something your wife will like but you don't it is still successful because for the account in general it gave a good match. Besides, you can actually look into the data more deeply and find accounts like this (not too difficult) and vary your scoring weights to improve accuracy for other people.

  13. First bit here by Anonymous Coward · · Score: 2, Funny


    function get_rating( int movie_flags )
    {
            int rating;

            rating = 0;

            if ((movie_flags & MADE_BY_RIAA_MEMBERS) == 0)
            { /* todo */
            }

            return rating;
    }

  14. Re:Wow! Think about how many free man-hours Netfli by Kryptikmo · · Score: 2, Interesting

    That's remarkably reasonable. If I was LOVEFiLM or Amazon I'd be cackling with glee. I'm not though, so I'll just be depressed that one could hope to patent an algorithm. Not hardware that carries out an algorithm, but just an algorithm.

    Although if I were a netflix shareholder I'd be pissed off that the company were giving away my funded research for free, when they could probably get it closed off and reap the rewards. Mind you, the amount of publicity that they have received - I know about Netflix now and I don't watch DVDs or live in the USA! - is probably more than worth it...

  15. Multi discipline rating by Coolhand2120 · · Score: 5, Interesting

    I've used netflix on video over the internet for a year or two now. The way to solve the problem is to break the star ratings up into a few different categories. You can always leave an "overall" rating for the lazy people, but if someone really wants netflix to "get to know them" they need to be more specific about what they like in the movie.

    Right now neflix tries to infer what it was in the movie you liked by looking at other movies. Why not just ask what they liked about the movie.

    For instance, I'm very concerned about the production quality in a movie. The movie may have the best plot ever and great actors but it was shot on a home VHS camera. I would give the movie a 1 star because the production quality was so bad, on the other hand someone who likes plots may have rated it a 5 star. Now netflix will never know if I rated it 1 star because I don't like the genre or don't like the acting or the cinematography. It just sees I rated the whole movie as a 1 and any movies that have similar elements then lose their importance on my personal ratings. If I could tell netflix: don't show me movies shot on a VHS camera (e.g.: production 1 star) then I could tell netflix I love the genre, love the plot hate the production.

    A good example is Blood Ryane - this movie absolutely sucks (insert government sponsored movies jab here), but I like the genre - now if I give this one star, as it deserves, netflix will think I really don't like the... whatever, it's most likely going to be wrong about it because it's pure conjecture.

    I'm not a big movie nerd so I wouldn't be the best person to come up with the rating categories, but I'll give it a shot since this will never occur:

    1. Production Quality
    2. Plot
    3. Directing
    4. Acting
    5. Genre

    Of course this will never happen because netflix will not change their system to conform to my random idea on slashdot. And by this sentence I've just about exhausted all my interest in the subject.

    One last comment: Why are all the online netflix movies so craptastic? Really, if it wasn't made 15 years ago, and it's in the "watch instantly" section, then it must really suck. They had a movie on there called "merc force" .... OMG! The special FX were done with PBRUSH, and they used the microphone that was built into the directors handy cam the whole time. Yes, it was that crappy, I actually had to show this movie to other people so they would believe me. I'm not a producer or anything, but I could shit on a paper plate and kick it against a clean white wall, and that would make a better movie. Merc force.... I will never forget you.

  16. Re:age and gender would boost it way over 10 perce by Smauler · · Score: 3, Funny

    In the same vein, a 55 year old man is going to like a teenaged girl much better than NAPOLEON DYNAMITE.

  17. Comment removed by account_deleted · · Score: 2, Insightful

    Comment removed based on user account deletion

  18. Re:Crowdsourcing by try_anything · · Score: 5, Insightful

    exploitation is exploitation, self imposed or not; as well, contests are, by their very nature, one-sided, there must be a loser, if there is to be a winner, therefore, competition is only valuable within the framework of co-operation, otherwise, yes, it is exploitative

    see? oh well probably not....

    I think you don't understand the concept of "fun." Read the article and the comments and tell me that the people "working" at this competition aren't getting paid handsomely. If money is the only compensation that means anything to you, you must be an economist. Congrats, you're doing your part to keep up economics' reputation as the "dismal science."

    If it's exploitative for a company to provide enjoyment and intellectual stimulation to a lot of people and benefit financially as a result, then I guess publishing companies don't deserve my support, either. And the movie studios... theater companies... restaurants... and of course any bands that get paid for gigs are just a bunch of ruthless exploiters.

    I guess the only commercial entertainment that's okay is what I can enjoy completely passively, without any mental effort at all. That way I'm not being exploited, right? Because work is an awful, awful thing ;-)

    Wake up; it's not the nineteenth century or even the twentieth century. Everyone has a natural appetite for work, and unlike our unfortunate ancestors, ours is not overwhelmed and sickened by the work required for mere survival. You're addressing a relatively privileged group of people; we earn enough to support ourselves on less work than we have an appetite for. As a result, we don't have to regard all work as a curse imposed on us by necessity. Work freely done and enjoyed is a blessing.

    If you insist that our entire appetite for work be channeled through grim-faced contract negotiations, then that blessing is ruined. What's the point of ruining our fun? So you can save us from the misery suffered by our great-grandparents?

    Obviously none of what I said applies to call center employees, game company employees, and technical support employees. They should pay careful attention to what you say ;-)

  19. Re:Crowdsourcing by try_anything · · Score: 2, Insightful

    it is exploitative for any enterprise to pay less than fair compensation in any exchange

    I only demand to be compensated for some pain or loss on my part. I don't need to be compensated for pleasure. Should I be jealous of the benefit another party gets when I engage in a mutually beneficial exchange? If I give a gift to someone, should they be angry if I enjoy giving it more than they enjoy receiving it?

    Ah, but you said "enterprise." I do believe that companies are inherently more prone to evil than the people they comprise, and they need careful watching and manipulation (by consumers and by regulators) to make sure they don't abuse their economic power or legal status (which is important when dealing with special legal entities such as corporations.) However, when assessing a mutually beneficial exchange with another party, I don't see any need to add a special penalty if the other party is a business entity instead of a person.

    most modern companies enterprises take more from the community than they deserve or return

    You are playing a subtle game with words here -- if "taking" is bad then you must be referring to some loss or cost incurred by another party. There is surely nothing wrong with "taking" pleasure from someone without incurring any cost or displeasure for them, so you are strictly using the word "take" to refer to the case where one party gets something and as a result the other party loses something.

    In this case Netflix may get something from the work around the prize, but what do they take, and who do they take it from? Do they "take" the time and effort of the participants? The participants don't seem to feel that their time and effort are being "lost" in any way, so I don't see how that is possible.

    They may "take" some right to any IP generated by the winner, but they will pay one million dollars for it, and any participant who feels that is unfair is free to keep his algorithm to himself instead of submitting his results and claiming the prize.

  20. Re: the problem with outliers by Anonymous Coward · · Score: 2, Informative

    The outliers are a major problem, but you can't just ignore them and move on. Collectively they add up to most of the error.

    The training data set includes 116,362 user ratings of Napoleon dynamite; the distribution is:

    • 1: 13,365 = 11.5%
    • 2: 15,790 = 13.6%
    • 3: 27,216 = 23.4%
    • 4: 31,115 = 26.7%
    • 5: 28,876 = 24.8%

    The weighted average of these ratings is 3.4, and the math works out that when you only guess one value, the RMSE minimizes at the average. So in this case, a guess of 3.4 on all of those ratings gives you a 1.3025 RMSE for the data shown above. Most movies have an RMSE below 1.1.

    Now suppose we try to refine our guess by using a coinflip method. In this model, we can look at the split 12/345 and assign ratings of 25%@1.54 and 75%@4.02. But what happens when we apply these without having any knowledge of which category each person falls? We end up doing worse! The problem is that even though you're only giving a 1.54 a quarter of the time, 3/4 of that 1/4 you're guessing a 1.54 for someone that actually ranked it a 3, 4, or 5. The error for 5 is especially bad, since 5 - 1.54 = 3.46, and then you have to square that! Overall, across the distribution, a guess of 1.54 ends up having an RMSE of 2.27, and the guess of 4.02 has an RMSE of 1.44. Applied together at 25% and 75% respectively you'll get sqrt(25% * 2.27^2 + 75% * 1.44^2) = 1.69 RMSE. Alternately we could use the 123/45 split: 48.5%@2.25 and 51.5%@4.48, but that turns out worse still since you'll end up with sqrt(48.5% * 1.74^2 + 51.5% * 1.69^2) = 1.71 RMSE.

    The qualifying set asks for 10,551 guessed ratings of Napoleon dynamite out of 2,817,131 guessed ratings total. So if you can't figure out anything else about the ratings and have to go with the median vote, your error will include 10,551 * (1.3025)^2 = ~17,900 SSE (sum of squared error) from Napoleon Dynamite alone. The coin flip methods mentioned above would give over 30,000 SSE.

    To put this in greater perspective: To win $1e6, you need to get below (0.8563)^2 * 2,817,131 = 2,065,660 SSE. The current leader has (0.8616)^2 = 2,091,310 SSE, and the 10th place team has (0.8677)^2 * 2,817,131 = 2,121,027 SSE. Thus the leader is only 25,650 SSE away from the prize, and the 10th place team is only 29,717 behind that at 55,367 SSE away.

    So if the leaders were all using 3.4 as their guess for Napoleon Dynamite, and then they suddenly figured out a way to reduce the RMSE of their guesses for that one movie to 0.86, they'd be able to knock off 10,000 points of SSE -- just for the one movie. That's why they're so interested in "solving" the problem with outliers. However, odds are that they're already guessing in the 0.95 to 1.05 RMSE range for Napoleon, based on connections they've deduced about how each individual rated other movies.

  21. Re:It's fundamentally flawed by Alpha830RulZ · · Score: 2, Funny

    It doesn't matter. The algorithms are focused on what the 'account' will like. They will find that your account likes both Oscar winners and Mel Brooks films.

    --
    I was taught to respect my elders. The trouble is, it's getting harder and harder to find some.