GO TO A SECTION

↑ ↓ to navigate · Enter to openExplore all sections →
FDEInterviews logo
★ Read firstIEEE S&P 2008

How To Break Anonymity of the Netflix Prize Dataset

Netflix removed every name before releasing 100 million ratings. Eight ratings with rough dates, two of them wrong, were enough to single out 99% of subscribers.

Breakdown by FDE Interviews · 13 min read · Updated

About the original · 2006
AUTHORS
Narayanan, Shmatikov
FROM
The University of Texas at Austin
PUBLISHED
Oct 2006 · IEEE S&P 2008
CITED BY
571Semantic Scholar · Nov 2026
IN THIS BREAKDOWN · 10 SECTIONS

You can read 23% of this breakdown.

01

The paper in one minute

In October 2006 Netflix launched a $1 million prize for better movie recommendations and released 100,480,507 ratings by 480,189 subscribers, with dates, from December 1999 to December 2005. Customer identifiers were replaced with random numbers. The prize FAQ said that even someone who knew all their own ratings probably could not find them reliably, because only a sample was released and it had been perturbed.

Narayanan and Shmatikov show that this reasoning fails for data of this shape. Each subscriber's record is a sparse row across thousands of movies, and preferences have a long tail: most people have rated at least a few films that few others rated. In such data, a record rarely has a close neighbor. So a handful of approximately known facts about one person, such as a few movies, rough ratings and rough dates, matches only one record in the whole release.

Their method scores every released record against what the outsider knows, gives more weight to rare movies, tolerates errors in ratings and dates, and declares a match only when the best score stands well above the second best, measured in standard deviations of all the scores. That last test also lets it say "this person is not in the sample", which matters because Netflix released about one-eighth of its subscribers.

The results: 8 ratings with dates within 14 days, 2 of them wrong, identified 99% of records; 2 ratings with dates within 3 days identified 68%. Without any dates, 84% were identified from 6 correct out of 8 movies outside the 500 most popular. Comparing the public IMDb ratings of a few dozen users with the release found two matches far above any other candidate, revealing those users' full Netflix histories and, from them, apparent political and religious leanings. The paper argues that splitting data into "personal" and "non-personal" fields is a false dichotomy for records like these.

THE IDEA, VISUALLY
WHAT AN OUTSIDER NEEDS TO KNOW (SECTION 5) 8 ratings, 2 wrong, dates within 14 days 99% 2 ratings, dates within 3 days 68% 6 of 8 movies right, outside the top 500, no dates 84% share of records uniquely identified BITS STILL NEEDED TO SINGLE OUT ONE RECORD knowing nothing ~19 bits 2 ratings, the other 32% ~3 bits log2(480,189) = 18.9. Ratings were released with dates and no meaningful perturbation (Appendix C). Two IMDb users matched at 28 and 15 standard deviations above the next candidate. arXiv cs/0610105 v2, UT Austin OUR SIMULATION: SHARE UNIQUE BY KNOWN ITEMS 0% 25% 50% 75% 100% 1 2 3 4 6 known items about one user rating + date rating only items only top items only 20,000 synthetic users, 4,000 long-tailed items, dates within 14 days. Illustrative, not Netflix data.
Left: the paper's Netflix results: share of records uniquely identified from a few known ratings, and the bits still needed to single out a record. Right: our simulation of 20,000 users and 4,000 long-tailed items, the share uniquely matched as the number of known items grows, with and without ratings and dates.
Research notes: the problem, approach and results
99%

records uniquely identified from 8 ratings, 2 of them wrong, with dates known to within 14 days (Section 5)

68%

records uniquely identified from just 2 ratings with dates known to within 3 days (Section 5)

84%

identified with no dates at all, from 6 of 8 known movies outside the 500 most rated (Section 5)

THE PROBLEM

Companies release or share 'anonymized' records of what individuals bought, watched or searched, with names and IDs removed, on the assumption that the remaining preferences cannot be tied back to a person.

THE IDEA

Model records as sparse, high-dimensional rows; score every released record against a few approximately known attributes of a person, weighting rare items more; accept a match only when the best score stands far above the second best.

THE RESULT

In the Netflix Prize data of 480,189 subscribers, 8 ratings with dates within 14 days, 2 of them wrong, identified 99% of records uniquely; 2 ratings with dates within 3 days identified 68%. Matching public IMDb ratings found two users' full Netflix histories.

02

Why it matters to an FDE

Removing names does not make behavioral data anonymous. Purchase histories, support-ticket topics, clickstreams, location traces and app usage are all sparse and long-tailed, like movie ratings. If a customer wants to share such data with a vendor, a partner or your team "because it is anonymized", this paper is the reason to slow down.

The outsider's knowledge is the real variable. Identification needed only what a colleague, a public profile or a review site might reveal. In a privacy review, ask what a motivated outsider could plausibly know about one person, not which columns are labeled as identifiers.

Dates are the most identifying field. In our simulation, two known items with dates within 14 days identified 96% of users, against 30% with ratings alone and 2% with items alone. Coarsening or dropping timestamps is the first step, and it is still not enough by itself.

Suppression works only by gutting the data. Our simulation removed items rated by fewer than 400 users, which threw away 45% of ratings and 91% of the catalog, before four known items stopped identifying anyone. Twelve known items still identified a quarter of the remaining users. Utility and anonymity pull directly against each other in this kind of data.

This shapes AI projects too. Fine-tuning or retrieval over customer behavior logs, sharing evaluation sets with a vendor, or publishing a benchmark from production data all create a release. Prefer aggregates, synthetic data checked for leakage, access-controlled environments over copies, or formal methods such as differential privacy when individual-level data must leave.

THE FULL BREAKDOWN

Understand the mechanism. Try it on a real problem.

Unlock this breakdown and 290 more papers.

Premium opens every paper in full, plus every answer, concept, course and guide on the site. One payment for six months of access.

6 months · One payment · No auto-renewal

Get Premium · ₹2,000 / $25
  • ◇1 architecture diagram
  • </>1 runnable code experiment
  • ▦2 results tables
  • ?5 interview questions with answers
  1. 03Key takeaways

    Sparsity, scoring and the eccentricity test, the results, the IMDb check and the policy lesson

    Free account
  2. 04How it works

    The formal model, the worst-case and sparse-data theorems, the scoring and the matching rule

    Premium
  3. 05The numbers that matter

    Dataset size and sample share, the identification rates, the entropy numbers and the IMDb matches

    Premium
  4. 06Try it yourself

    Recompute the release arithmetic and Theorem 1, then review a synthetic ratings table

    Premium
  5. 07Where it breaks

    Figure-only results, a tiny IMDb sample, no ground truth, and a 2006 dataset

    Premium
  6. 08Using it on a deployment

    Treat behavior logs as personal data, test uniqueness, prefer aggregates or controlled access

    Premium
  7. 09Interview angles

    Five questions this paper prepares you for, with answer hints

    Premium
Back to the paper library →