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 List-decoding – Attain list-decoding capacity Beyond – Local list-decoding, pseudorandom constructions, …
Error-correcting codes Codewords c r
Local decoding/correction
Encoding Raw data Codeword Corrupted
Decoding Corrupted Codeword Original data What if we want to see the original data? Decoder
What if we are only interested in one bit (or a few bits) of the original data?
Decoding 1 bit Corrupted Codeword Message bit number i What if we want only message bit number i? Decoder
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 F q 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 F q 2 Rate ¼ (d 2 /2)/q 2 = (1- ± ) 2 /2 Distance = ± – Two low degree polynomials cannot agree on many points of F q 2 Fq2Fq2
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 ¼ k 0.5 Fq2Fq2 (a,b) L
More variables Generalization: – m variables – Now m-variate polynomials with degree · (1- ± ) q = d Distance = ± Rate ¼ (d m /m!)/q m = (1- ± ) m /m! Local correction via lines again – Decoding time ¼ q ¼ O(k 1/m )
Multiplicity codes [KSY ’11]
Derivatives Given a polynomial P(X, Y) 2 F[X,Y] Define P X = dP/dX, P Y = dP/dY, P XX, P XY, … – Everything formally If F has small characteristic: – then use “Hasse derivatives” Multiplicity P(X,Y) vanishes at (a,b) with mult ¸ s if for all i,j with i+j < s, P X i Y j (a,b) = 0 Notation: Mult(P, (a,b)) Mult(P, (a,b)) ¸ 1, P(a,b) = 0
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 Fq2Fq2
Distance of multiplicity codes How many (a,b) s.t. – P(a,b) = Q(a,b), P X (a,b) = Q X (a,b), P Y (a,b) = Q Y (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: E x 2 F m [ 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 F q 2 ) 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, P X, P Y 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), P X (a,b), P Y (a,b) Pick another random line L’ – dP/dL and dP/.dL’ are enough to give P X and P Y Fq2Fq2 (a,b) L
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(k 0.5 )
More variables, many derivatives
L x
Local decodability of multiplicity codes [KSY ‘11]
List-Decoding Multiplicity Codes [K’12]
List-Decoding Multiplicity Codes Codewords c r
Two theorems on list-decoding multiplicity codes
List-Decoding Univariate Multiplicity Codes
List-Decoding Univariate Polynomial Codes [Sudan, Guruswami-Sudan] Given r: F q F q, – 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
List-Decoding Multivariate Multiplicity Codes
List-decoding multivariate multiplicity codes
Other results
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?