Helping Kinsey Compute Cynthia Dwork Microsoft Research The Problem • Exploit Data, eg, Medical Insurance Database — — — Does smoking contribute to heart disease? Was there a rise in asthma emergency room cases this month? What fraction of the admissions during 2004 were men 25-35? • …while preserving privacy of individuals Holistic Statistics • Is the dataset well clustered? • What is the single best predictor for risk of stroke? • How are attributes X and Y correlated; what is the cov(X,Y)? • Are the data inherently low-dimensional? Statistical Database Database Query (f,S) (D1, … Dn) f: row [0,1] Exact Answer f(row r) S µ [n] f f f f + noise Statistical Database Under control of interlocutor: Noise generation Number of queries T permitted f f f f + noise Why Bother With Noise? Limiting interface to queries about large sets is insufficient: A = {1, … , n} and B = {2, … , n} a2 A f(row a) - b2 B f(row b) = f(row 1) Previous (Modern) Work in this Model • Dinur, Nissim [2003] Single binary attribute (query function f = identity) Non-privacy: whp adversary guesses 1- rows — — Theorem: Polytime non-privacy if whp |noise| is o(√n) Theorem: Privacy with o(√n) noise if #queries is << n • Privacy “for free” ! Rows » samples from underlying distribution: Pr[row i = 1] = p E[# 1’s] = pn, Var = (n) Acutal #1’s » pn § (√n) |Privacy-preserving noise| is o(sampling error) Real Power in this Model • Dwork, Nissim [2004] Multiple binary attributes q=(S,f), f:{0,1}d ! {0,1} —Definition of privacy appropriate to enriched query set —Theorem: Privacy with o(√n) noise if #queries is << n —Coined term SuLQ • Vertically Partitioned Databases —Learn joint statistics from independently operated SuLQ databases: • • • Given SulQA, SuLQB learn if A implies B in probability Eg, heart disease risk increases with smoking Enables learning statistics for all Boolean fns of attributes Still More Power [Blum, Dwork, McSherry, Nissim 05] • Extend Privacy Proofs — — Real-valued functions f: [0,1]d ! [0,1] Per row analysis: drop dependence on n! • How many queries has THIS row participated in? • Our Data, Ourselves • Holistic Statistics: A Calculus of Noisy Computation — Beyond statistics: • (not too) noisy versions of k-means, perceptron, ID3 algs • (not too) noisy optimal projections SVD, PCA • All of STAT learning Towards Defining Privacy: “Facts of Life” vs Privacy Breach • Diabetes is more likely in obese persons — Does not imply THIS obese person has or will have diabetes • Sneaker color preference is correlated with political party — Does not imply THIS person in red sneakers is a Republican • Half of all marriages result in divorce — Does not imply Pr [ THIS marriage will fail ] = ½ (, T)-Privacy Power of adversary: • Phase 0: Specify a goal function g: row {0,1} Actually, a polynomial number of functions; Adversary will try to learn this information about someone • • Phase 1: Adaptively make T queries Phase 2: Choose a row i to attack; get entire database except for row i Privacy Breach: Occurs if adversary’s “confidence” in g( row i ) changes by Notes: • • Adversary chooses goal My privacy is preserved even if everybody else tells their secrets to the adversary Flavor of Privacy Proofs • Define confidence in value of g( row i ) — — c0 = log [p0/(1-p0)] 0 when p = ½, skyrockets as p moves toward 0 or 1 • Model evolution of confidence as a martingale — — — Argue expected difference at each step is small Compute absolute upper bound on difference Plug these two parameters into Azuma’s inequality Obtain probabilistic statement regarding change in confidence, equivalently, change from prior to posterior probabilities about value of g( row i ) c0 Remainder of This Talk • Description of SuLQ Algorithm + Statement of Main Theorem • Examples — — — — k means SVD, PCA Perceptron STAT learning • Vertically Partitioned Data — Determining if ) in probability: Pr[|] ¸ Pr[]+ and are in different SuLQ databases • Summary when The SuLQ Algorithm • Algorithm: — Input: query (S µ [n], f: [0,1]d ! [0,1]) — Output: i 2 Sf( row i ) + N(0, R) • Theorem: 8 , with probability at least 1-, choosing R > 32 log(2/) log (T/)T/2 ensures that for each (target, predicate) pair, after T queries the probability that the confidence has increased by more than is at most . • R is independent of n. Bigger n means better stats. k Means Clustering physics, OR, machine learning, data mining, etc. SuLQ k Means • Estimate size of each cluster • Estimate average of points in cluster — — Estimate their sum; and Divide estimated sum by estimated average Side by Side: k Means and SuLQ k-Means Basic step: Basic step: • • • • Input: data points p1,…,pn and k ‘centers’ c1,…,ck in [0,1]d Sj = points for which cj is the closest center Output: c’j = average of points in Sj, j=1, … k • Input: data points p1,…,pn and k ‘centers’ c1,…,ck in [0,1]d sj = SuLQ( f(di) := 1 if j = arg minj ||cj – di|| 0 otherwise) • ’j = SuLQ( f(di) := di if j = arg minj ||cj - di|| 0 otherwise) / sj k(1+d) queries total Small Error! For each 1 · j · k, if |Sj| >> R1/2 then with high probability ||’j – c’j|| is O( (||j|| + d1/2 ) R1/2/|Sj|). • Inaccuracies: — — Estimating |Sj| Summing points in Sj • Even with just the first: (1/sj - 1/|Sj|) I 2 Sjdi = (1/sj - 1/|Sj|) (j |Sj|) = ((|Sj| - sj)/sj ) j ¼ (noise/size) j Reducing Dimensionality • Reduce Dimensionality in a dataset while retaining those characteristics that contribute most to its variance • Find Optimal Linear Projections — Latent semantic indexing, spectral clustering, etc., employ best rank k approximations to A • Singular Value Decomposition uses top k eigenvectors of ATA • Principal Component Analysis uses top k eigenvectors of cov(A) • Approach — Approximate ATA and cov(A) using SuLQ, then compute eigenvectors Optimal Projections • ATA = i diT di • SuLQ (f(i) = diT di) = AT A + N(0,R)d £ d • • = (i di)/n • • ’ = SuLQ(f(i)=di)/n cov(A) = i(di - )T(di - ) SuLQ( f(i) = (di - ’)T (di - ’) ) d2 and d2+d queries, respectively Perceptron [Rosenblatt 57] • • • • • Input: n points p1,…,pn in [-1,1]d, and labels b1,…,bn in {-1,1} —Assumed linearly separable, with a plane through the origin Initialize w randomly h w, p i b > 0 iff label b agrees with sign of h w, p i While 9 labeled point (pi,bi) s.t. h wi, pi i bi · 0, set w = w + pi·bi Output: w pi w w SuLQ Perceptron • Initialize w = 0d and s= n. Repeat while s >> R1/2 • Count the misclassified rows (1 query) : s = SuLQ(f(di) := 1 if h di , w i bi · 0 and 0 ow) • Synthesize a misclassified vector (d queries) : v = SuLQ(f(di) := bi di if h di , w i ¢ bi · 0 and 0 ow) / s • Update w: Set w = w + v Return the final value of w. How Many Rounds? Theorem: If there exists a unit vector w’ and scalar such that for all i hw',dii bi ¸ and for all j, >> (dR)1/2/|Sj| then with high probability the algorithm terminates in at most 32 maxi |di|2 / rounds. |Sj| = number of misclassified vectors at iteration j In each round j, hw', wi increases by more than |w| does. Since hw', wi · |w'| ¢ |w| = |w|, this must stop. Otherwise hw', wi would overtake |w|. The Statistical Queries Learning Model [Kearns93] • • • Concept c: {0,1}d {0,1} Distribution D on {0,1}d STAT(c,D) Oracle —Query: (p, ) where p:{0,1}d+1 {0,1} and =1/poly(d) —Answer: PrxD[p(x,c(x))] + for || Capturing STAT Each row contains a labeled example (x, c(x)) Input: predicate p and accuracy • • Initialize tally = 0. Reduce variance: Repeat t ¸ R/ n2 times tally = tally + SuLQ(f(di) := p(di)) Output: tally / tn Capturing STAT Theorem: For any algorithm that -learns a class C using at most q statistical queries of accuracy {1, … , q}, the adapted algorithm can -learn C on a SuLQ database of n elements, provided that n2 ¸ R log(q / )}/(T-q) £ j · q 1/j Probabilistic Implication: Two SuLQ Databases • • implies in probability: Pr[|] ≥ Pr[]+ Construct a tester for distinguishing <1 from >2 (for constants 1 < 2) —Estimate by binary search • In the analysis we consider deviations from an expected value, of magnitude (√n) —As perturbation << √n, it does not mask out these deviations • Results generalize to functions and of attributes in two distinct SuLQ databases Key Insight: Test for Pr[|] ≥ Pr[]+ Assume T chosen so that noise = o(√n). 1. Find a “heavy” set S for : a subset of rows that have more than |S| a +[a(1-a) |S]1/2 ones in database. Here, a = Pr[] and |S| = (n). Find S s.t. aS, > |S| a + √ [|S|(a(1- a))]. Let excess= aS, - |S| a. Note that excess is (n1/2). 2. Query the SuLQ database for , on S If aS, ¸ |S| Pr[] + excess ( / (1 - a)) then return 1 else return 0 If is constant then noise is too small to hide the correlation. Summary • SuLQ framework for privacy-preserving statistical databases — — real-valued query functions Variance for noise depends (roughly linearly) on number of queries, not size of database • Examples of power of SuLQ calculus • Vertically Partitioned Databases Sources • C. Dwork and K. Nissim, Privacy-Preserving Datamining on Vertically Partitioned Databases • A. Blum, C. Dwork, F. McSherry, and K. Nissim, Practical Privacy: The SuLQ Framework • See http://research.microsoft.com/research/sv/DabasePrivacy