340 likes | 546 Views
Multiplicity Codes. Swastik Kopparty (Rutgers) (based on [K- Saraf - Yekhanin ’11], [K ‘12], [K ‘14]). This talk. Multiplicity codes Generalize polynomial-evaluation codes Based on evaluating polynomials & derivatives Local decoding Gave first locally decodable codes with rate 1
E N D
Multiplicity Codes SwastikKopparty (Rutgers) (based on [K-Saraf-Yekhanin ’11], [K ‘12], [K ‘14])
This talk • Multiplicity codes • Generalize polynomial-evaluation codes • Based on evaluating polynomials & derivatives • Local decoding • Gave first locally decodable codes with rate 1 • List-decoding • Attain list-decoding capacity • Beyond • Local list-decoding, pseudorandom constructions, …
Error-correcting codes n • Metric space: (n, Hamming distance) • Code C µn • Codewords at least ± apart • Given received word r 2n • s.t. for some codeword c, M(r, c) < ± /2, • Then c is uniquely determined • Decoding: Find this c efficiently. r c Codewords
Local decoding/correction • Classically: • Today we know explicit codes with: • Rate = log |C| / n = k / n = • Distance • Correctable from - fraction errors in time poly(n) • Even linear time! • Can we correct a single bit in less time? • Suggested in the context of program-checking/PCPs • vigorously pursued ever since • Today, this problem is very well motivated • Defn:Locally correctable code • Given codeword corrupted in < °n coordinates, and given i2 [n], • Find symbol i of the original codeword in o(k) time/queries • Randomized algorithm, works with high probability
Encoding Raw data Corrupted Codeword
Decoding What if we want to see the original data? Corrupted Codeword Decoder Original data
What if we are only interested in one bit (or a few bits) of the original data?
Decoding 1 bit What if we want only message bit number i? Corrupted Codeword Decoder Message bit number i
Locally Decoding 1 bit Corrupted Codeword Original bit number i
Locally Decoding 1 bit(slow motion) Corrupted Codeword Original bit number i
A multivariate polynomial code • Large finite field Fq of size q • ± > 0 • Interpret original data as a polynomial P(X,Y) • degree(P) · d = (1-±) q • Encoding: • Evaluate P at each point of Fq2 • Rate ¼ (d2/2)/q2 = (1-±)2/2 • Distance = ± • Two low degree polynomials cannotagree on many points of Fq2 Fq2
Locally correcting polynomial codes • Main idea: • Restricting a low-degree multivariate polynomial to a line gives a low-degree univariate polynomial • So: • The value of P(a,b) can be recovered from the values of P on any line L through (a,b) • Even if there are errors • Picking the line L at random • Less than ±/2 errors on the line (univariate polynomial decoding) • Decoding queries: • # points on a line = q ¼k0.5 (a,b) L Fq2
More variables • Generalization: • m variables • Now m-variate polynomials with degree · (1-±) q = d • Distance = ± Rate ¼ (dm/m!)/qm = (1-±)m/m! • Local correction via lines again • Decoding time ¼ q ¼ O(k1/m)
Multiplicity codes [KSY ’11]
Derivatives Multiplicity P(X,Y) vanishes at (a,b) with mult¸ s if for all i,j with i+j < s, PXiYj(a,b) = 0 Notation: Mult(P, (a,b)) Mult(P, (a,b)) ¸ 1 , P(a,b) = 0 • Given a polynomial P(X, Y) 2 F[X,Y] • Define PX = dP/dX, PY = dP/dY, PXX, PXY , … • Everything formally • If F has small characteristic: • then use “Hasse derivatives”
Agreement multiplicity • Defn: If all derivatives of P and Q of order < s agree on (a,b) • then P and Q agree on (a,b) with multiplicity s. • Mult(P-Q, (a,b)) ¸ s
Multiplicity codes • Interpret original data as polynomial P(X,Y) • degree(P) d = 2 (1 - ±) q • Encoding: • Evaluate P, PX, PY at eachpoint of Fq2 • Rate (d2/2)/(3q2) = 2/3*(1-±)2 • Distance = ?? Fq2
Distance of multiplicity codes • How many (a,b) s.t. • P(a,b) = Q(a,b), PX(a,b) = QX(a,b), PY(a,b) = QY(a,b) • “P and Q have a multiplicity 2 agreement at (a,b)” • Lemma (see [Dvir-K-Saraf-Sudan 09]): “Even high degree polynomials cannot have too many high-multiplicity zeroes” • For every P of degree at most d: Ex2 Fm[ mult(P, x) ] · d/q • ) two polynomials P and Q cannot agree with multiplicity s in more than d/sq fraction of the points of Fq2 • ) the previous multiplicity code has distance ±
Locally correcting multiplicity codes • Main idea: • Restricting a multivariate polynomial along with its derivatives to a line gives a univariate polynomial along with its derivative • As before: • Pick random line L through (a,b) • Looking at P, PX, PY restricted to L is enough to give the univariate poly P|L • Even if there are errors • Univariate multiplicity decoding! • Nielsen, Rosenbloom-Tsfasman • This gives P(a,b) and dP/dL (a,b) • We want P(a,b), PX(a,b), PY(a,b) • Pick another random line L’ • dP/dL and dP/.dL’ are enough to give PX and PY (a,b) L Fq2
Higher multiplicities • Consider 2-variable polynomials of degree s(1-±)q • Evaluate all derivatives upto order s • Rate = s/(s+1) (1-±)2 • This approaches 1 ! • Decoding: • s random lines through (a,b) • Decoding time ¼ s q ¼ O(k0.5)
More variables, many derivatives • m – variate, derivatives upto order s • Polynomials of degree (1-±)sq • Rate ¸ (s/ (m+s))m¢ (1-±)m • can approach 1! • Distance
More variables, many derivatives • Local Decoding: • picking many random lines through a fixed point • for polynomial P, line L through x: • order j derivative of P|L at x= some linear combination of order j derivatives of P at x • totally about sm derivatives of order s • picking about sm lines give enough information to decode • (by solving a linear system) • #queries = O(smq) = O(k1/m) time • #errors correctable = • (requires some extra “robustification”) x L
Local decodability of multiplicity codes[KSY ‘11] • Error-correcting codes with: • Arbitrarily high rate • Sublinear time decoding • Theorem • For every R < 1 • (earlier: R < ½) • For every “decoding exponent” ² > 0 • (earlier: ) • There are codes : • encoding k bits to n bits at rate R • k = R n • locally decodable in O(k²) time • from ±(R, ²) ¼ (1-R)2²2 fraction errors. • Subsequent constructions of high rate LDCs: • [Guo-K-Sudan] – “lifted” Reed-Solomon codes • [Hemenway-Ostrovsky-Wootters ] - expander codes • [Meir] – generic conversion of any of the above to meet the Singleton bound: R = 1 - !
List-Decoding Multiplicity Codes • List-decoding: finding all codewords within a given distance from recv’d word • Multiplicity code of distance • Uniquely decodable from errors • Johnson bound guarantees polynomial size lists for radius • Algorithmic versions known for the classical codes (s = 1) • Univariate: • Sudan, Guruswami-Sudan • Multivariate: • Sudan, Arora-Sudan, Sudan-Trevisan-Vadhan, Pelikaan-Wu • Multivariate + Local: • Arora-Sudan, Sudan-Trevisan-Vadhan, Brander-K • Known for univariate multiplicity codes (m = 1) • Nielsen n r c Codewords
Two theorems on list-decoding multiplicity codes • Theorem 1:Multiplicity codes of distance can be list-decoded from fraction errors in time poly(qm). • Theorem 2: Over prime q, there are univariate multiplicity codes list-decodable from () fraction errors.
List-Decoding Univariate Multiplicity Codes • Theorem 2 Over prime q, there are univariate multiplicity codes list-decodable from () fraction errors. • (i.e., they have rate R and list-decoding radius = 1-R-) • Approaches “list-decoding capacity” (decoding from 1-R-errors) • Matches the list decodability of Folded Reed-Solomon codes[Parvaresh-Vardy, Guruswami-Rudra] • Independently, Guruswami-Wang show list decodability of univariate multiplicity codes from slightly smaller # errors.
List-Decoding Univariate Polynomial Codes [Sudan, Guruswami-Sudan] • Given r: Fq Fq, • find f(X) of degree at most d which is close to r. • Based on Interpolation + Root-finding • Step 1: Interpolation: find Q(X,Y) s.t. Q(x, r(x)) = 0 for each x • Claim: any f(X) which is close to r satisfies Q(X, f(X)) = 0 • Step 2: Solving a polynomial equation: • Solve Q(X, f(X)) = 0 (as a formal polynomial equation) • Find all such f with degree at most d. (can be done by standard algorithms)
List-Decoding Univariate Multiplicity Codes • Given • find f(X) of degree at most d s.t. (f(x), f’(x), f’’(x), … ) is close to (r, r’, r’’, …). • Weighted-multiplicity interpolation + solving differential equations • Step 1: t-variate “weighted-multiplicity” interpolation • Find Q(X, Y0, Y1, …, Yt) s.t. for each • Claim: any f(X) which is close to r satisfies Q(X, f(X), f(1)(X), f(2)(X), …, f(t)(X)) = 0 • Step 2: Solving a polynomial-differential equation: • Q(X, f(X), f(1)(X), f(2)(X), …, f(t)(X)) = 0 • Find all such f with degree at most d.
List-Decoding Multivariate Multiplicity Codes • Classical (s = 1): • Pelikaan-Wu reduce list-decoding RM code over Fqm to list-decoding (univariate) RS code over Fqm • Decodes from error in time poly(qm) • Key fact: There is a bijective “low degree curve” So multivariate Q of degree < q becomes unique univariate
List-decoding multivariate multiplicity codes • Theorem:Multiplicity codes of distance can be list-decoded from fraction errors in time poly(qm). • Key fact for larger s:There are t bijective low-degree curves s.t. multivariate Q of degree < sq is uniquely determined by the univariate polynomials for t = • Thus multivariate multiplicity code decoding reduces tot instances of univariate multiplicity code decoding
Other results • Local list decoding [K’12]:There is a poly(q) time local list-decoding algorithm from fraction errors. • In particular: local decoding from fraction errors • [K’14] Reducing # of lines needed for local-decoding of multiplicity codes • 2m lines instead of sm lines • extracting more information from each line • [K’14] Encoding, exact unique decoding can be done in near-linear time • [Guruswami-K’ 13]: Multiplicity codes can be used to construct “pseudorandom subspace families”
Summary and Questions • Codes of rate approaching 1 • Decodable in O(k²) time • List-decodable beyond half the minimum distance in O(k²) time • Alternative construction of codes achieving list-decoding capacity • For all we know, there exist codes with: • Rate approaching 1 • Decodable in polylog(k) time • List-decoding upto capacity with constant list-size? • Use multiplicity codes in practice? • Already theoretically practical • Further applications/generalizations?