SLIDE 1
Today. Cuckoo hashing. Today. Cuckoo hashing. - - PowerPoint PPT Presentation
Today. Cuckoo hashing. Today. Cuckoo hashing. - - PowerPoint PPT Presentation
Today. Cuckoo hashing. Today. Cuckoo hashing. Johnson-Lindenstrass. Cuckoo hashing. Hashing with two choices: max load O ( loglog n ) . Cuckoo hashing. Hashing with two choices: max load O ( loglog n ) . Cuckoo hashing: Cuckoo hashing.
SLIDE 2
SLIDE 3
Cuckoo hashing.
Hashing with two choices: max load O(loglogn).
SLIDE 4
Cuckoo hashing.
Hashing with two choices: max load O(loglogn). Cuckoo hashing:
SLIDE 5
Cuckoo hashing.
Hashing with two choices: max load O(loglogn). Cuckoo hashing: Array.
SLIDE 6
Cuckoo hashing.
Hashing with two choices: max load O(loglogn). Cuckoo hashing:
- Array. Two hash functions h1, h2.
SLIDE 7
Cuckoo hashing.
Hashing with two choices: max load O(loglogn). Cuckoo hashing:
- Array. Two hash functions h1, h2.
Insert x: place in h1(x) or h2(x) if space.
SLIDE 8
Cuckoo hashing.
Hashing with two choices: max load O(loglogn). Cuckoo hashing:
- Array. Two hash functions h1, h2.
Insert x: place in h1(x) or h2(x) if space. Else bump elt y in hi(x) u.a.r. for i ∈ [1,2].
SLIDE 9
Cuckoo hashing.
Hashing with two choices: max load O(loglogn). Cuckoo hashing:
- Array. Two hash functions h1, h2.
Insert x: place in h1(x) or h2(x) if space. Else bump elt y in hi(x) u.a.r. for i ∈ [1,2]. Bump y,x: place y in hj(y) where j = i if space.
SLIDE 10
Cuckoo hashing.
Hashing with two choices: max load O(loglogn). Cuckoo hashing:
- Array. Two hash functions h1, h2.
Insert x: place in h1(x) or h2(x) if space. Else bump elt y in hi(x) u.a.r. for i ∈ [1,2]. Bump y,x: place y in hj(y) where j = i if space. Else bump y′ in hj(y).
SLIDE 11
Cuckoo hashing.
Hashing with two choices: max load O(loglogn). Cuckoo hashing:
- Array. Two hash functions h1, h2.
Insert x: place in h1(x) or h2(x) if space. Else bump elt y in hi(x) u.a.r. for i ∈ [1,2]. Bump y,x: place y in hj(y) where j = i if space. Else bump y′ in hj(y). And so on.
SLIDE 12
Cuckoo hashing.
Hashing with two choices: max load O(loglogn). Cuckoo hashing:
- Array. Two hash functions h1, h2.
Insert x: place in h1(x) or h2(x) if space. Else bump elt y in hi(x) u.a.r. for i ∈ [1,2]. Bump y,x: place y in hj(y) where j = i if space. Else bump y′ in hj(y). And so on.
SLIDE 13
Cuckoo hashing.
Hashing with two choices: max load O(loglogn). Cuckoo hashing:
- Array. Two hash functions h1, h2.
Insert x: place in h1(x) or h2(x) if space. Else bump elt y in hi(x) u.a.r. for i ∈ [1,2]. Bump y,x: place y in hj(y) where j = i if space. Else bump y′ in hj(y). And so on. If go too long.
SLIDE 14
Cuckoo hashing.
Hashing with two choices: max load O(loglogn). Cuckoo hashing:
- Array. Two hash functions h1, h2.
Insert x: place in h1(x) or h2(x) if space. Else bump elt y in hi(x) u.a.r. for i ∈ [1,2]. Bump y,x: place y in hj(y) where j = i if space. Else bump y′ in hj(y). And so on. If go too long. Fail.
SLIDE 15
Cuckoo hashing.
Hashing with two choices: max load O(loglogn). Cuckoo hashing:
- Array. Two hash functions h1, h2.
Insert x: place in h1(x) or h2(x) if space. Else bump elt y in hi(x) u.a.r. for i ∈ [1,2]. Bump y,x: place y in hj(y) where j = i if space. Else bump y′ in hj(y). And so on. If go too long. Fail. Rehash entire hash table.
SLIDE 16
Cuckoo hashing.
Hashing with two choices: max load O(loglogn). Cuckoo hashing:
- Array. Two hash functions h1, h2.
Insert x: place in h1(x) or h2(x) if space. Else bump elt y in hi(x) u.a.r. for i ∈ [1,2]. Bump y,x: place y in hj(y) where j = i if space. Else bump y′ in hj(y). And so on. If go too long. Fail. Rehash entire hash table. Fails if cycle for insert.
SLIDE 17
Cuckoo hashing.
Hashing with two choices: max load O(loglogn). Cuckoo hashing:
- Array. Two hash functions h1, h2.
Insert x: place in h1(x) or h2(x) if space. Else bump elt y in hi(x) u.a.r. for i ∈ [1,2]. Bump y,x: place y in hj(y) where j = i if space. Else bump y′ in hj(y). And so on. If go too long. Fail. Rehash entire hash table. Fails if cycle for insert. Cℓ - event of cycle of length ℓ at a vertex.
SLIDE 18
Cuckoo hashing.
Hashing with two choices: max load O(loglogn). Cuckoo hashing:
- Array. Two hash functions h1, h2.
Insert x: place in h1(x) or h2(x) if space. Else bump elt y in hi(x) u.a.r. for i ∈ [1,2]. Bump y,x: place y in hj(y) where j = i if space. Else bump y′ in hj(y). And so on. If go too long. Fail. Rehash entire hash table. Fails if cycle for insert. Cℓ - event of cycle of length ℓ at a vertex. Pr[Cℓ] ≤ m ℓ n ℓ ℓ n 2(ℓ) ≤ e2 8 ℓ (1)
SLIDE 19
Cuckoo hashing.
Hashing with two choices: max load O(loglogn). Cuckoo hashing:
- Array. Two hash functions h1, h2.
Insert x: place in h1(x) or h2(x) if space. Else bump elt y in hi(x) u.a.r. for i ∈ [1,2]. Bump y,x: place y in hj(y) where j = i if space. Else bump y′ in hj(y). And so on. If go too long. Fail. Rehash entire hash table. Fails if cycle for insert. Cℓ - event of cycle of length ℓ at a vertex. Pr[Cℓ] ≤ m ℓ n ℓ ℓ n 2(ℓ) ≤ e2 8 ℓ (1) Probability that an insert hits a cycle of length ℓ ≤ ℓ
n
- e2
8
ℓ
SLIDE 20
Cuckoo hashing.
Hashing with two choices: max load O(loglogn). Cuckoo hashing:
- Array. Two hash functions h1, h2.
Insert x: place in h1(x) or h2(x) if space. Else bump elt y in hi(x) u.a.r. for i ∈ [1,2]. Bump y,x: place y in hj(y) where j = i if space. Else bump y′ in hj(y). And so on. If go too long. Fail. Rehash entire hash table. Fails if cycle for insert. Cℓ - event of cycle of length ℓ at a vertex. Pr[Cℓ] ≤ m ℓ n ℓ ℓ n 2(ℓ) ≤ e2 8 ℓ (1) Probability that an insert hits a cycle of length ℓ ≤ ℓ
n
- e2
8
ℓ Rehash every Ω(n) inserts (if ≤ n/8 items in table.)
SLIDE 21
Cuckoo hashing.
Hashing with two choices: max load O(loglogn). Cuckoo hashing:
- Array. Two hash functions h1, h2.
Insert x: place in h1(x) or h2(x) if space. Else bump elt y in hi(x) u.a.r. for i ∈ [1,2]. Bump y,x: place y in hj(y) where j = i if space. Else bump y′ in hj(y). And so on. If go too long. Fail. Rehash entire hash table. Fails if cycle for insert. Cℓ - event of cycle of length ℓ at a vertex. Pr[Cℓ] ≤ m ℓ n ℓ ℓ n 2(ℓ) ≤ e2 8 ℓ (1) Probability that an insert hits a cycle of length ℓ ≤ ℓ
n
- e2
8
ℓ Rehash every Ω(n) inserts (if ≤ n/8 items in table.) O(1) time on average.
SLIDE 22
Johnson-Lindenstrass
Points: x1,...,xn ∈ Rd.
SLIDE 23
Johnson-Lindenstrass
Points: x1,...,xn ∈ Rd. Random k = c logn
ε2
dimensional subspace.
SLIDE 24
Johnson-Lindenstrass
Points: x1,...,xn ∈ Rd. Random k = c logn
ε2
dimensional subspace. Claim: with probability 1−
1 nc−2 ,
(1−ε)
- k
d |xi −xj| ≤ |yi −yj| ≤ (1+ε)
- k
d |xi −xj|
SLIDE 25
Johnson-Lindenstrass
Points: x1,...,xn ∈ Rd. Random k = c logn
ε2
dimensional subspace. Claim: with probability 1−
1 nc−2 ,
(1−ε)
- k
d |xi −xj| ≤ |yi −yj| ≤ (1+ε)
- k
d |xi −xj| “Projecting and scaling by
- d
k preserves all pairwise distances w/in
factor of 1±ε.”
SLIDE 26
Random subspace.
Method 1:
SLIDE 27
Random subspace.
Method 1: Pick unit v1
SLIDE 28
Random subspace.
Method 1: Pick unit v1 ,
SLIDE 29
Random subspace.
Method 1: Pick unit v1 , v2 orthogonal to v1,
SLIDE 30
Random subspace.
Method 1: Pick unit v1 , v2 orthogonal to v1, ...
SLIDE 31
Random subspace.
Method 1: Pick unit v1 , v2 orthogonal to v1, ... vk orthogonal to previous vectors...
SLIDE 32
Random subspace.
Method 1: Pick unit v1 , v2 orthogonal to v1, ... vk orthogonal to previous vectors... Method 2:
SLIDE 33
Random subspace.
Method 1: Pick unit v1 , v2 orthogonal to v1, ... vk orthogonal to previous vectors... Method 2: Choose k vectors v1,...,vk
SLIDE 34
Random subspace.
Method 1: Pick unit v1 , v2 orthogonal to v1, ... vk orthogonal to previous vectors... Method 2: Choose k vectors v1,...,vk Gram Schmidt orthonormalization of k ×d matrix where rows are vi.
SLIDE 35
Random subspace.
Method 1: Pick unit v1 , v2 orthogonal to v1, ... vk orthogonal to previous vectors... Method 2: Choose k vectors v1,...,vk Gram Schmidt orthonormalization of k ×d matrix where rows are vi. remove projection onto previous subspace.
SLIDE 36
Projections.
Project x into subspace spanned by v1,v2,··· ,vk.
SLIDE 37
Projections.
Project x into subspace spanned by v1,v2,··· ,vk. y1 = x ·v1,y2 = x·,v2,··· ,yk = x ·vk
SLIDE 38
Projections.
Project x into subspace spanned by v1,v2,··· ,vk. y1 = x ·v1,y2 = x·,v2,··· ,yk = x ·vk Projection: (y1,...,yk).
SLIDE 39
Projections.
Project x into subspace spanned by v1,v2,··· ,vk. y1 = x ·v1,y2 = x·,v2,··· ,yk = x ·vk Projection: (y1,...,yk). Have: Arbitrary vector, random k-dimensional subspace.
SLIDE 40
Projections.
Project x into subspace spanned by v1,v2,··· ,vk. y1 = x ·v1,y2 = x·,v2,··· ,yk = x ·vk Projection: (y1,...,yk). Have: Arbitrary vector, random k-dimensional subspace. View As: Random vector, standard basis for k dimensions.
SLIDE 41
Projections.
Project x into subspace spanned by v1,v2,··· ,vk. y1 = x ·v1,y2 = x·,v2,··· ,yk = x ·vk Projection: (y1,...,yk). Have: Arbitrary vector, random k-dimensional subspace. View As: Random vector, standard basis for k dimensions. Orthogonal U - rotates v1,...,vk onto e1,...,ek
SLIDE 42
Projections.
Project x into subspace spanned by v1,v2,··· ,vk. y1 = x ·v1,y2 = x·,v2,··· ,yk = x ·vk Projection: (y1,...,yk). Have: Arbitrary vector, random k-dimensional subspace. View As: Random vector, standard basis for k dimensions. Orthogonal U - rotates v1,...,vk onto e1,...,ek yi
SLIDE 43
Projections.
Project x into subspace spanned by v1,v2,··· ,vk. y1 = x ·v1,y2 = x·,v2,··· ,yk = x ·vk Projection: (y1,...,yk). Have: Arbitrary vector, random k-dimensional subspace. View As: Random vector, standard basis for k dimensions. Orthogonal U - rotates v1,...,vk onto e1,...,ek yi = vi|x
SLIDE 44
Projections.
Project x into subspace spanned by v1,v2,··· ,vk. y1 = x ·v1,y2 = x·,v2,··· ,yk = x ·vk Projection: (y1,...,yk). Have: Arbitrary vector, random k-dimensional subspace. View As: Random vector, standard basis for k dimensions. Orthogonal U - rotates v1,...,vk onto e1,...,ek yi = vi|x = Uvi|Ux
SLIDE 45
Projections.
Project x into subspace spanned by v1,v2,··· ,vk. y1 = x ·v1,y2 = x·,v2,··· ,yk = x ·vk Projection: (y1,...,yk). Have: Arbitrary vector, random k-dimensional subspace. View As: Random vector, standard basis for k dimensions. Orthogonal U - rotates v1,...,vk onto e1,...,ek yi = vi|x = Uvi|Ux = ei|Ux
SLIDE 46
Projections.
Project x into subspace spanned by v1,v2,··· ,vk. y1 = x ·v1,y2 = x·,v2,··· ,yk = x ·vk Projection: (y1,...,yk). Have: Arbitrary vector, random k-dimensional subspace. View As: Random vector, standard basis for k dimensions. Orthogonal U - rotates v1,...,vk onto e1,...,ek yi = vi|x = Uvi|Ux = ei|Ux = ei|z
SLIDE 47
Projections.
Project x into subspace spanned by v1,v2,··· ,vk. y1 = x ·v1,y2 = x·,v2,··· ,yk = x ·vk Projection: (y1,...,yk). Have: Arbitrary vector, random k-dimensional subspace. View As: Random vector, standard basis for k dimensions. Orthogonal U - rotates v1,...,vk onto e1,...,ek yi = vi|x = Uvi|Ux = ei|Ux = ei|z Inverse of U maps ei to random vector vi
SLIDE 48
Projections.
Project x into subspace spanned by v1,v2,··· ,vk. y1 = x ·v1,y2 = x·,v2,··· ,yk = x ·vk Projection: (y1,...,yk). Have: Arbitrary vector, random k-dimensional subspace. View As: Random vector, standard basis for k dimensions. Orthogonal U - rotates v1,...,vk onto e1,...,ek yi = vi|x = Uvi|Ux = ei|Ux = ei|z Inverse of U maps ei to random vector vi
SLIDE 49
Projections.
Project x into subspace spanned by v1,v2,··· ,vk. y1 = x ·v1,y2 = x·,v2,··· ,yk = x ·vk Projection: (y1,...,yk). Have: Arbitrary vector, random k-dimensional subspace. View As: Random vector, standard basis for k dimensions. Orthogonal U - rotates v1,...,vk onto e1,...,ek yi = vi|x = Uvi|Ux = ei|Ux = ei|z Inverse of U maps ei to random vector vi z = Ux is uniformly distributed on d sphere for unit x ∈ Rd.
SLIDE 50
Projections.
Project x into subspace spanned by v1,v2,··· ,vk. y1 = x ·v1,y2 = x·,v2,··· ,yk = x ·vk Projection: (y1,...,yk). Have: Arbitrary vector, random k-dimensional subspace. View As: Random vector, standard basis for k dimensions. Orthogonal U - rotates v1,...,vk onto e1,...,ek yi = vi|x = Uvi|Ux = ei|Ux = ei|z Inverse of U maps ei to random vector vi z = Ux is uniformly distributed on d sphere for unit x ∈ Rd. yi is ith coordinate of random vector z.
SLIDE 51
Expected value of yi.
Random projection: first k coordinates of random unit vector, zi.
SLIDE 52
Expected value of yi.
Random projection: first k coordinates of random unit vector, zi. E[∑i∈[d] z2
i ] = 1.
SLIDE 53
Expected value of yi.
Random projection: first k coordinates of random unit vector, zi. E[∑i∈[d] z2
i ] = 1. Linearity of Expectation.
SLIDE 54
Expected value of yi.
Random projection: first k coordinates of random unit vector, zi. E[∑i∈[d] z2
i ] = 1. Linearity of Expectation.
By symmetry, each zi is identically distributed.
SLIDE 55
Expected value of yi.
Random projection: first k coordinates of random unit vector, zi. E[∑i∈[d] z2
i ] = 1. Linearity of Expectation.
By symmetry, each zi is identically distributed. E[∑i∈[k] z2
i ] = k d .
SLIDE 56
Expected value of yi.
Random projection: first k coordinates of random unit vector, zi. E[∑i∈[d] z2
i ] = 1. Linearity of Expectation.
By symmetry, each zi is identically distributed. E[∑i∈[k] z2
i ] = k d . Linearity of Expectation.
SLIDE 57
Expected value of yi.
Random projection: first k coordinates of random unit vector, zi. E[∑i∈[d] z2
i ] = 1. Linearity of Expectation.
By symmetry, each zi is identically distributed. E[∑i∈[k] z2
i ] = k d . Linearity of Expectation.
Expected length is
- k
d .
SLIDE 58
Expected value of yi.
Random projection: first k coordinates of random unit vector, zi. E[∑i∈[d] z2
i ] = 1. Linearity of Expectation.
By symmetry, each zi is identically distributed. E[∑i∈[k] z2
i ] = k d . Linearity of Expectation.
Expected length is
- k
d .
Johnson-Lindenstrass: close to expectation.
SLIDE 59
Expected value of yi.
Random projection: first k coordinates of random unit vector, zi. E[∑i∈[d] z2
i ] = 1. Linearity of Expectation.
By symmetry, each zi is identically distributed. E[∑i∈[k] z2
i ] = k d . Linearity of Expectation.
Expected length is
- k
d .
Johnson-Lindenstrass: close to expectation. k is large enough →
SLIDE 60
Expected value of yi.
Random projection: first k coordinates of random unit vector, zi. E[∑i∈[d] z2
i ] = 1. Linearity of Expectation.
By symmetry, each zi is identically distributed. E[∑i∈[k] z2
i ] = k d . Linearity of Expectation.
Expected length is
- k
d .
Johnson-Lindenstrass: close to expectation. k is large enough → ≈ (1±ε)
- k
d with decent probability.
SLIDE 61
Concentration Bounds.
z is uniformly random unit vector.
SLIDE 62
Concentration Bounds.
z is uniformly random unit vector. Random point on the unit sphere. E[∑i∈[k] z2
i ] = k d .
SLIDE 63
Concentration Bounds.
z is uniformly random unit vector. Random point on the unit sphere. E[∑i∈[k] z2
i ] = k d .
Claim: Pr[|z1| >
t √ d ] ≤ e−t2/2
SLIDE 64
Concentration Bounds.
z is uniformly random unit vector. Random point on the unit sphere. E[∑i∈[k] z2
i ] = k d .
Claim: Pr[|z1| >
t √ d ] ≤ e−t2/2
Sphere view: surface “far” from equator defined by e1.
SLIDE 65
Concentration Bounds.
z is uniformly random unit vector. Random point on the unit sphere. E[∑i∈[k] z2
i ] = k d .
Claim: Pr[|z1| >
t √ d ] ≤ e−t2/2
Sphere view: surface “far” from equator defined by e1. ∆
SLIDE 66
Concentration Bounds.
z is uniformly random unit vector. Random point on the unit sphere. E[∑i∈[k] z2
i ] = k d .
Claim: Pr[|z1| >
t √ d ] ≤ e−t2/2
Sphere view: surface “far” from equator defined by e1. ∆ |z1| ≥ ∆ if
SLIDE 67
Concentration Bounds.
z is uniformly random unit vector. Random point on the unit sphere. E[∑i∈[k] z2
i ] = k d .
Claim: Pr[|z1| >
t √ d ] ≤ e−t2/2
Sphere view: surface “far” from equator defined by e1. ∆ |z1| ≥ ∆ if z ≥ ∆ from equator of sphere.
SLIDE 68
Concentration Bounds.
z is uniformly random unit vector. Random point on the unit sphere. E[∑i∈[k] z2
i ] = k d .
Claim: Pr[|z1| >
t √ d ] ≤ e−t2/2
Sphere view: surface “far” from equator defined by e1. ∆ |z1| ≥ ∆ if z ≥ ∆ from equator of sphere. Point on “∆-spherical cap”.
SLIDE 69
Concentration Bounds.
z is uniformly random unit vector. Random point on the unit sphere. E[∑i∈[k] z2
i ] = k d .
Claim: Pr[|z1| >
t √ d ] ≤ e−t2/2
Sphere view: surface “far” from equator defined by e1. ∆ |z1| ≥ ∆ if z ≥ ∆ from equator of sphere. Point on “∆-spherical cap”. Area of caps
SLIDE 70
Concentration Bounds.
z is uniformly random unit vector. Random point on the unit sphere. E[∑i∈[k] z2
i ] = k d .
Claim: Pr[|z1| >
t √ d ] ≤ e−t2/2
Sphere view: surface “far” from equator defined by e1. ∆ |z1| ≥ ∆ if z ≥ ∆ from equator of sphere. Point on “∆-spherical cap”. Area of caps ≤ S.A. of sphere of radius √ 1−∆2
SLIDE 71
Concentration Bounds.
z is uniformly random unit vector. Random point on the unit sphere. E[∑i∈[k] z2
i ] = k d .
Claim: Pr[|z1| >
t √ d ] ≤ e−t2/2
Sphere view: surface “far” from equator defined by e1. ∆ |z1| ≥ ∆ if z ≥ ∆ from equator of sphere. Point on “∆-spherical cap”. Area of caps ≤ S.A. of sphere of radius √ 1−∆2 ∝ r d =
- 1−∆2d/2
SLIDE 72
Concentration Bounds.
z is uniformly random unit vector. Random point on the unit sphere. E[∑i∈[k] z2
i ] = k d .
Claim: Pr[|z1| >
t √ d ] ≤ e−t2/2
Sphere view: surface “far” from equator defined by e1. ∆ |z1| ≥ ∆ if z ≥ ∆ from equator of sphere. Point on “∆-spherical cap”. Area of caps ≤ S.A. of sphere of radius √ 1−∆2 ∝ r d =
- 1−∆2d/2
∝
- 1− t2
d
d/2
SLIDE 73
Concentration Bounds.
z is uniformly random unit vector. Random point on the unit sphere. E[∑i∈[k] z2
i ] = k d .
Claim: Pr[|z1| >
t √ d ] ≤ e−t2/2
Sphere view: surface “far” from equator defined by e1. ∆ |z1| ≥ ∆ if z ≥ ∆ from equator of sphere. Point on “∆-spherical cap”. Area of caps ≤ S.A. of sphere of radius √ 1−∆2 ∝ r d =
- 1−∆2d/2
∝
- 1− t2
d
d/2 ≈ e
−t2 2
SLIDE 74
Concentration Bounds.
z is uniformly random unit vector. Random point on the unit sphere. E[∑i∈[k] z2
i ] = k d .
Claim: Pr[|z1| >
t √ d ] ≤ e−t2/2
Sphere view: surface “far” from equator defined by e1. ∆ |z1| ≥ ∆ if z ≥ ∆ from equator of sphere. Point on “∆-spherical cap”. Area of caps ≤ S.A. of sphere of radius √ 1−∆2 ∝ r d =
- 1−∆2d/2
∝
- 1− t2
d
d/2 ≈ e
−t2 2
Constant of ∝ is unit sphere area.
SLIDE 75
Concentration Bounds.
z is uniformly random unit vector. Random point on the unit sphere. E[∑i∈[k] z2
i ] = k d .
Claim: Pr[|z1| >
t √ d ] ≤ e−t2/2
Sphere view: surface “far” from equator defined by e1. ∆ |z1| ≥ ∆ if z ≥ ∆ from equator of sphere. Point on “∆-spherical cap”. Area of caps ≤ S.A. of sphere of radius √ 1−∆2 ∝ r d =
- 1−∆2d/2
∝
- 1− t2
d
d/2 ≈ e
−t2 2
Constant of ∝ is unit sphere area. Pr[any z2
i > (2logd)E[z2 i ]] is small.
SLIDE 76
Many coordinates.
Argued Pr[any z2
i > (2logd)E[z2 i ]] is small.
SLIDE 77
Many coordinates.
Argued Pr[any z2
i > (2logd)E[z2 i ]] is small.
Total Length?
SLIDE 78
Many coordinates.
Argued Pr[any z2
i > (2logd)E[z2 i ]] is small.
Total Length? z =
- z2
1 +z2 2 +···z2 k .
SLIDE 79
Many coordinates.
Argued Pr[any z2
i > (2logd)E[z2 i ]] is small.
Total Length? z =
- z2
1 +z2 2 +···z2 k .
Pr[
- (z2
1 +z2 2 +···+z2 k )−
- k
d
- > t] ≤ e−t2d/2
SLIDE 80
Many coordinates.
Argued Pr[any z2
i > (2logd)E[z2 i ]] is small.
Total Length? z =
- z2
1 +z2 2 +···z2 k .
Pr[
- (z2
1 +z2 2 +···+z2 k )−
- k
d
- > t] ≤ e−t2d/2
Substituting t = ε
- k
d , k = c logn ε2 .
SLIDE 81
Many coordinates.
Argued Pr[any z2
i > (2logd)E[z2 i ]] is small.
Total Length? z =
- z2
1 +z2 2 +···z2 k .
Pr[
- (z2
1 +z2 2 +···+z2 k )−
- k
d
- > t] ≤ e−t2d/2
Substituting t = ε
- k
d , k = c logn ε2 .
Pr[
- z2
1 +z2 2 +···+z2 k −
- k
d
SLIDE 82
Many coordinates.
Argued Pr[any z2
i > (2logd)E[z2 i ]] is small.
Total Length? z =
- z2
1 +z2 2 +···z2 k .
Pr[
- (z2
1 +z2 2 +···+z2 k )−
- k
d
- > t] ≤ e−t2d/2
Substituting t = ε
- k
d , k = c logn ε2 .
Pr[
- z2
1 +z2 2 +···+z2 k −
- k
d
- > ε
- k
d ]
SLIDE 83
Many coordinates.
Argued Pr[any z2
i > (2logd)E[z2 i ]] is small.
Total Length? z =
- z2
1 +z2 2 +···z2 k .
Pr[
- (z2
1 +z2 2 +···+z2 k )−
- k
d
- > t] ≤ e−t2d/2
Substituting t = ε
- k
d , k = c logn ε2 .
Pr[
- z2
1 +z2 2 +···+z2 k −
- k
d
- > ε
- k
d ] ≤ e−ε2k
SLIDE 84
Many coordinates.
Argued Pr[any z2
i > (2logd)E[z2 i ]] is small.
Total Length? z =
- z2
1 +z2 2 +···z2 k .
Pr[
- (z2
1 +z2 2 +···+z2 k )−
- k
d
- > t] ≤ e−t2d/2
Substituting t = ε
- k
d , k = c logn ε2 .
Pr[
- z2
1 +z2 2 +···+z2 k −
- k
d
- > ε
- k
d ] ≤ e−ε2k = e−c logn = 1 nc
SLIDE 85
Many coordinates.
Argued Pr[any z2
i > (2logd)E[z2 i ]] is small.
Total Length? z =
- z2
1 +z2 2 +···z2 k .
Pr[
- (z2
1 +z2 2 +···+z2 k )−
- k
d
- > t] ≤ e−t2d/2
Substituting t = ε
- k
d , k = c logn ε2 .
Pr[
- z2
1 +z2 2 +···+z2 k −
- k
d
- > ε
- k
d ] ≤ e−ε2k = e−c logn = 1 nc
Johnson-Lindenstraus: For n points, x1,...,xn, all distances preserved to within 1±ε under
- k
d -scaled projection above.
SLIDE 86
Many coordinates.
Argued Pr[any z2
i > (2logd)E[z2 i ]] is small.
Total Length? z =
- z2
1 +z2 2 +···z2 k .
Pr[
- (z2
1 +z2 2 +···+z2 k )−
- k
d
- > t] ≤ e−t2d/2
Substituting t = ε
- k
d , k = c logn ε2 .
Pr[
- z2
1 +z2 2 +···+z2 k −
- k
d
- > ε
- k
d ] ≤ e−ε2k = e−c logn = 1 nc
Johnson-Lindenstraus: For n points, x1,...,xn, all distances preserved to within 1±ε under
- k
d -scaled projection above.
View one pair xi −xj as vector.
SLIDE 87
Many coordinates.
Argued Pr[any z2
i > (2logd)E[z2 i ]] is small.
Total Length? z =
- z2
1 +z2 2 +···z2 k .
Pr[
- (z2
1 +z2 2 +···+z2 k )−
- k
d
- > t] ≤ e−t2d/2
Substituting t = ε
- k
d , k = c logn ε2 .
Pr[
- z2
1 +z2 2 +···+z2 k −
- k
d
- > ε
- k
d ] ≤ e−ε2k = e−c logn = 1 nc
Johnson-Lindenstraus: For n points, x1,...,xn, all distances preserved to within 1±ε under
- k
d -scaled projection above.
View one pair xi −xj as vector. Scale to unit.
SLIDE 88
Many coordinates.
Argued Pr[any z2
i > (2logd)E[z2 i ]] is small.
Total Length? z =
- z2
1 +z2 2 +···z2 k .
Pr[
- (z2
1 +z2 2 +···+z2 k )−
- k
d
- > t] ≤ e−t2d/2
Substituting t = ε
- k
d , k = c logn ε2 .
Pr[
- z2
1 +z2 2 +···+z2 k −
- k
d
- > ε
- k
d ] ≤ e−ε2k = e−c logn = 1 nc
Johnson-Lindenstraus: For n points, x1,...,xn, all distances preserved to within 1±ε under
- k
d -scaled projection above.
View one pair xi −xj as vector. Scale to unit. Projection fails to preserve |xi −xj|
SLIDE 89
Many coordinates.
Argued Pr[any z2
i > (2logd)E[z2 i ]] is small.
Total Length? z =
- z2
1 +z2 2 +···z2 k .
Pr[
- (z2
1 +z2 2 +···+z2 k )−
- k
d
- > t] ≤ e−t2d/2
Substituting t = ε
- k
d , k = c logn ε2 .
Pr[
- z2
1 +z2 2 +···+z2 k −
- k
d
- > ε
- k
d ] ≤ e−ε2k = e−c logn = 1 nc
Johnson-Lindenstraus: For n points, x1,...,xn, all distances preserved to within 1±ε under
- k
d -scaled projection above.
View one pair xi −xj as vector. Scale to unit. Projection fails to preserve |xi −xj| with probability ≤ 1
nc
SLIDE 90
Many coordinates.
Argued Pr[any z2
i > (2logd)E[z2 i ]] is small.
Total Length? z =
- z2
1 +z2 2 +···z2 k .
Pr[
- (z2
1 +z2 2 +···+z2 k )−
- k
d
- > t] ≤ e−t2d/2
Substituting t = ε
- k
d , k = c logn ε2 .
Pr[
- z2
1 +z2 2 +···+z2 k −
- k
d
- > ε
- k
d ] ≤ e−ε2k = e−c logn = 1 nc
Johnson-Lindenstraus: For n points, x1,...,xn, all distances preserved to within 1±ε under
- k
d -scaled projection above.
View one pair xi −xj as vector. Scale to unit. Projection fails to preserve |xi −xj| with probability ≤ 1
nc
Scaled vector length also preserved.
SLIDE 91
Many coordinates.
Argued Pr[any z2
i > (2logd)E[z2 i ]] is small.
Total Length? z =
- z2
1 +z2 2 +···z2 k .
Pr[
- (z2
1 +z2 2 +···+z2 k )−
- k
d
- > t] ≤ e−t2d/2
Substituting t = ε
- k
d , k = c logn ε2 .
Pr[
- z2
1 +z2 2 +···+z2 k −
- k
d
- > ε
- k
d ] ≤ e−ε2k = e−c logn = 1 nc
Johnson-Lindenstraus: For n points, x1,...,xn, all distances preserved to within 1±ε under
- k
d -scaled projection above.
View one pair xi −xj as vector. Scale to unit. Projection fails to preserve |xi −xj| with probability ≤ 1
nc
Scaled vector length also preserved. ≤ n2 pairs
SLIDE 92
Many coordinates.
Argued Pr[any z2
i > (2logd)E[z2 i ]] is small.
Total Length? z =
- z2
1 +z2 2 +···z2 k .
Pr[
- (z2
1 +z2 2 +···+z2 k )−
- k
d
- > t] ≤ e−t2d/2
Substituting t = ε
- k
d , k = c logn ε2 .
Pr[
- z2
1 +z2 2 +···+z2 k −
- k
d
- > ε
- k
d ] ≤ e−ε2k = e−c logn = 1 nc
Johnson-Lindenstraus: For n points, x1,...,xn, all distances preserved to within 1±ε under
- k
d -scaled projection above.
View one pair xi −xj as vector. Scale to unit. Projection fails to preserve |xi −xj| with probability ≤ 1
nc
Scaled vector length also preserved. ≤ n2 pairs plus union bound
SLIDE 93
Many coordinates.
Argued Pr[any z2
i > (2logd)E[z2 i ]] is small.
Total Length? z =
- z2
1 +z2 2 +···z2 k .
Pr[
- (z2
1 +z2 2 +···+z2 k )−
- k
d
- > t] ≤ e−t2d/2
Substituting t = ε
- k
d , k = c logn ε2 .
Pr[
- z2
1 +z2 2 +···+z2 k −
- k
d
- > ε
- k
d ] ≤ e−ε2k = e−c logn = 1 nc
Johnson-Lindenstraus: For n points, x1,...,xn, all distances preserved to within 1±ε under
- k
d -scaled projection above.
View one pair xi −xj as vector. Scale to unit. Projection fails to preserve |xi −xj| with probability ≤ 1
nc
Scaled vector length also preserved. ≤ n2 pairs plus union bound → prob any pair fails to be preserved with ≤
1 nc−2 .
SLIDE 94
Locality Preserving Hashing
Find nearby points in high dimensional space.
SLIDE 95
Locality Preserving Hashing
Find nearby points in high dimensional space. Points could be images!
SLIDE 96
Locality Preserving Hashing
Find nearby points in high dimensional space. Points could be images! Hash function h(·) s.t. h(xi) = h(xj) if d(xi,xj) ≤ δ.
SLIDE 97
Locality Preserving Hashing
Find nearby points in high dimensional space. Points could be images! Hash function h(·) s.t. h(xi) = h(xj) if d(xi,xj) ≤ δ. Low dimensions: grid cells give √ d-approximation.
SLIDE 98
Locality Preserving Hashing
Find nearby points in high dimensional space. Points could be images! Hash function h(·) s.t. h(xi) = h(xj) if d(xi,xj) ≤ δ. Low dimensions: grid cells give √ d-approximation. Not quite a solution.
SLIDE 99
Locality Preserving Hashing
Find nearby points in high dimensional space. Points could be images! Hash function h(·) s.t. h(xi) = h(xj) if d(xi,xj) ≤ δ. Low dimensions: grid cells give √ d-approximation. Not quite a solution. Why?
SLIDE 100
Locality Preserving Hashing
Find nearby points in high dimensional space. Points could be images! Hash function h(·) s.t. h(xi) = h(xj) if d(xi,xj) ≤ δ. Low dimensions: grid cells give √ d-approximation. Not quite a solution. Why? Close to grid boundary.
SLIDE 101
Locality Preserving Hashing
Find nearby points in high dimensional space. Points could be images! Hash function h(·) s.t. h(xi) = h(xj) if d(xi,xj) ≤ δ. Low dimensions: grid cells give √ d-approximation. Not quite a solution. Why? Close to grid boundary. Find close points to x:
SLIDE 102
Locality Preserving Hashing
Find nearby points in high dimensional space. Points could be images! Hash function h(·) s.t. h(xi) = h(xj) if d(xi,xj) ≤ δ. Low dimensions: grid cells give √ d-approximation. Not quite a solution. Why? Close to grid boundary. Find close points to x: Check grid cell and neighboring grid cells.
SLIDE 103
Locality Preserving Hashing
Find nearby points in high dimensional space. Points could be images! Hash function h(·) s.t. h(xi) = h(xj) if d(xi,xj) ≤ δ. Low dimensions: grid cells give √ d-approximation. Not quite a solution. Why? Close to grid boundary. Find close points to x: Check grid cell and neighboring grid cells.
SLIDE 104
Locality Preserving Hashing
Find nearby points in high dimensional space. Points could be images! Hash function h(·) s.t. h(xi) = h(xj) if d(xi,xj) ≤ δ. Low dimensions: grid cells give √ d-approximation. Not quite a solution. Why? Close to grid boundary. Find close points to x: Check grid cell and neighboring grid cells. Project high dimensional points into low dimensions.
SLIDE 105
Locality Preserving Hashing
Find nearby points in high dimensional space. Points could be images! Hash function h(·) s.t. h(xi) = h(xj) if d(xi,xj) ≤ δ. Low dimensions: grid cells give √ d-approximation. Not quite a solution. Why? Close to grid boundary. Find close points to x: Check grid cell and neighboring grid cells. Project high dimensional points into low dimensions. Use grid hash function.
SLIDE 106
Implementing Johnson-Lindenstraus
Random vectors
SLIDE 107
Implementing Johnson-Lindenstraus
Random vectors have many bits
SLIDE 108
Implementing Johnson-Lindenstraus
Random vectors have many bits Use random bit vectors: {−1,+1}d instead.
SLIDE 109
Implementing Johnson-Lindenstraus
Random vectors have many bits Use random bit vectors: {−1,+1}d instead. Almost orthogonal.
SLIDE 110
Implementing Johnson-Lindenstraus
Random vectors have many bits Use random bit vectors: {−1,+1}d instead. Almost orthogonal. Project z.
SLIDE 111
Implementing Johnson-Lindenstraus
Random vectors have many bits Use random bit vectors: {−1,+1}d instead. Almost orthogonal. Project z. Coordinate for bit vector b.
SLIDE 112
Implementing Johnson-Lindenstraus
Random vectors have many bits Use random bit vectors: {−1,+1}d instead. Almost orthogonal. Project z. Coordinate for bit vector b. Cl =
1 √ d ∑i bizi
SLIDE 113
Implementing Johnson-Lindenstraus
Random vectors have many bits Use random bit vectors: {−1,+1}d instead. Almost orthogonal. Project z. Coordinate for bit vector b. Cl =
1 √ d ∑i bizi
E[C2
l ] =
SLIDE 114
Implementing Johnson-Lindenstraus
Random vectors have many bits Use random bit vectors: {−1,+1}d instead. Almost orthogonal. Project z. Coordinate for bit vector b. Cl =
1 √ d ∑i bizi
E[C2
l ] = E[ 1 d ∑i,j bibjzizj]
SLIDE 115
Implementing Johnson-Lindenstraus
Random vectors have many bits Use random bit vectors: {−1,+1}d instead. Almost orthogonal. Project z. Coordinate for bit vector b. Cl =
1 √ d ∑i bizi
E[C2
l ] = E[ 1 d ∑i,j bibjzizj] = 1 d ∑i,j E[bibj]zizj = 1 d ∑i z2 i
SLIDE 116
Implementing Johnson-Lindenstraus
Random vectors have many bits Use random bit vectors: {−1,+1}d instead. Almost orthogonal. Project z. Coordinate for bit vector b. Cl =
1 √ d ∑i bizi
E[C2
l ] = E[ 1 d ∑i,j bibjzizj] = 1 d ∑i,j E[bibj]zizj = 1 d ∑i z2 i = 1 d
SLIDE 117
Implementing Johnson-Lindenstraus
Random vectors have many bits Use random bit vectors: {−1,+1}d instead. Almost orthogonal. Project z. Coordinate for bit vector b. Cl =
1 √ d ∑i bizi
E[C2
l ] = E[ 1 d ∑i,j bibjzizj] = 1 d ∑i,j E[bibj]zizj = 1 d ∑i z2 i = 1 d
SLIDE 118
Implementing Johnson-Lindenstraus
Random vectors have many bits Use random bit vectors: {−1,+1}d instead. Almost orthogonal. Project z. Coordinate for bit vector b. Cl =
1 √ d ∑i bizi
E[C2
l ] = E[ 1 d ∑i,j bibjzizj] = 1 d ∑i,j E[bibj]zizj = 1 d ∑i z2 i = 1 d
E[∑l C2
l ] = k d
SLIDE 119
Binary Johnson-Lindenstrass
Project onto [−1,+1] vectors.
SLIDE 120
Binary Johnson-Lindenstrass
Project onto [−1,+1] vectors. E[C] = E[∑l C2
l ] = k d
SLIDE 121
Binary Johnson-Lindenstrass
Project onto [−1,+1] vectors. E[C] = E[∑l C2
l ] = k d
Concentration?
SLIDE 122
Binary Johnson-Lindenstrass
Project onto [−1,+1] vectors. E[C] = E[∑l C2
l ] = k d
Concentration? Pr
- |C − k
d | ≥ ε k d
- ≤ e−ε2k
SLIDE 123
Binary Johnson-Lindenstrass
Project onto [−1,+1] vectors. E[C] = E[∑l C2
l ] = k d
Concentration? Pr
- |C − k
d | ≥ ε k d
- ≤ e−ε2k
Choose k = c logn
ε2 .
SLIDE 124
Binary Johnson-Lindenstrass
Project onto [−1,+1] vectors. E[C] = E[∑l C2
l ] = k d
Concentration? Pr
- |C − k
d | ≥ ε k d
- ≤ e−ε2k
Choose k = c logn
ε2 .
→ failure probability ≤ 1/nc.
SLIDE 125
Analysis Idea.
Pr
- |C − k
d | ≥ ε k d
- ≤ e−ε2k
SLIDE 126
Analysis Idea.
Pr
- |C − k
d | ≥ ε k d
- ≤ e−ε2k
Variance of C2?
SLIDE 127
Analysis Idea.
Pr
- |C − k
d | ≥ ε k d
- ≤ e−ε2k
Variance of C2? Recall Cl =
1 √ d ∑i bizi
SLIDE 128
Analysis Idea.
Pr
- |C − k
d | ≥ ε k d
- ≤ e−ε2k
Variance of C2? Recall Cl =
1 √ d ∑i bizi
Var(C) ≤
- k
d2
- (∑i zi 4 +4∑i,j z2
i z2 j )
SLIDE 129
Analysis Idea.
Pr
- |C − k
d | ≥ ε k d
- ≤ e−ε2k
Variance of C2? Recall Cl =
1 √ d ∑i bizi
Var(C) ≤
- k
d2
- (∑i zi 4 +4∑i,j z2
i z2 j ) ≤
- k
d2
- 2(∑i z2
i )2
SLIDE 130
Analysis Idea.
Pr
- |C − k
d | ≥ ε k d
- ≤ e−ε2k
Variance of C2? Recall Cl =
1 √ d ∑i bizi
Var(C) ≤
- k
d2
- (∑i zi 4 +4∑i,j z2
i z2 j ) ≤
- k
d2
- 2(∑i z2
i )2 ≤ 2k d2 .
SLIDE 131
Analysis Idea.
Pr
- |C − k
d | ≥ ε k d
- ≤ e−ε2k
Variance of C2? Recall Cl =
1 √ d ∑i bizi
Var(C) ≤
- k
d2
- (∑i zi 4 +4∑i,j z2
i z2 j ) ≤
- k
d2
- 2(∑i z2
i )2 ≤ 2k d2 .
Roughly normal (gaussian):
SLIDE 132
Analysis Idea.
Pr
- |C − k
d | ≥ ε k d
- ≤ e−ε2k
Variance of C2? Recall Cl =
1 √ d ∑i bizi
Var(C) ≤
- k
d2
- (∑i zi 4 +4∑i,j z2
i z2 j ) ≤
- k
d2
- 2(∑i z2
i )2 ≤ 2k d2 .
Roughly normal (gaussian): Density ∝ e−t2/2 for t std deviations away.
SLIDE 133
Analysis Idea.
Pr
- |C − k
d | ≥ ε k d
- ≤ e−ε2k
Variance of C2? Recall Cl =
1 √ d ∑i bizi
Var(C) ≤
- k
d2
- (∑i zi 4 +4∑i,j z2
i z2 j ) ≤
- k
d2
- 2(∑i z2
i )2 ≤ 2k d2 .
Roughly normal (gaussian): Density ∝ e−t2/2 for t std deviations away. So, assuming normality
SLIDE 134
Analysis Idea.
Pr
- |C − k
d | ≥ ε k d
- ≤ e−ε2k
Variance of C2? Recall Cl =
1 √ d ∑i bizi
Var(C) ≤
- k
d2
- (∑i zi 4 +4∑i,j z2
i z2 j ) ≤
- k
d2
- 2(∑i z2
i )2 ≤ 2k d2 .
Roughly normal (gaussian): Density ∝ e−t2/2 for t std deviations away. So, assuming normality σ =
√ 2k d ,
SLIDE 135
Analysis Idea.
Pr
- |C − k
d | ≥ ε k d
- ≤ e−ε2k
Variance of C2? Recall Cl =
1 √ d ∑i bizi
Var(C) ≤
- k
d2
- (∑i zi 4 +4∑i,j z2
i z2 j ) ≤
- k
d2
- 2(∑i z2
i )2 ≤ 2k d2 .
Roughly normal (gaussian): Density ∝ e−t2/2 for t std deviations away. So, assuming normality σ =
√ 2k d , t = ε k
d √ 2k d
SLIDE 136
Analysis Idea.
Pr
- |C − k
d | ≥ ε k d
- ≤ e−ε2k
Variance of C2? Recall Cl =
1 √ d ∑i bizi
Var(C) ≤
- k
d2
- (∑i zi 4 +4∑i,j z2
i z2 j ) ≤
- k
d2
- 2(∑i z2
i )2 ≤ 2k d2 .
Roughly normal (gaussian): Density ∝ e−t2/2 for t std deviations away. So, assuming normality σ =
√ 2k d , t = ε k
d √ 2k d
= ε √ k/ √ 2.
SLIDE 137
Analysis Idea.
Pr
- |C − k
d | ≥ ε k d
- ≤ e−ε2k
Variance of C2? Recall Cl =
1 √ d ∑i bizi
Var(C) ≤
- k
d2
- (∑i zi 4 +4∑i,j z2
i z2 j ) ≤
- k
d2
- 2(∑i z2
i )2 ≤ 2k d2 .
Roughly normal (gaussian): Density ∝ e−t2/2 for t std deviations away. So, assuming normality σ =
√ 2k d , t = ε k
d √ 2k d
= ε √ k/ √ 2. Probability of failure roughly ≤ e−t2/2
SLIDE 138
Analysis Idea.
Pr
- |C − k
d | ≥ ε k d
- ≤ e−ε2k
Variance of C2? Recall Cl =
1 √ d ∑i bizi
Var(C) ≤
- k
d2
- (∑i zi 4 +4∑i,j z2
i z2 j ) ≤
- k
d2
- 2(∑i z2
i )2 ≤ 2k d2 .
Roughly normal (gaussian): Density ∝ e−t2/2 for t std deviations away. So, assuming normality σ =
√ 2k d , t = ε k
d √ 2k d
= ε √ k/ √ 2. Probability of failure roughly ≤ e−t2/2 → eε2k/4
SLIDE 139
Analysis Idea.
Pr
- |C − k
d | ≥ ε k d
- ≤ e−ε2k
Variance of C2? Recall Cl =
1 √ d ∑i bizi
Var(C) ≤
- k
d2
- (∑i zi 4 +4∑i,j z2
i z2 j ) ≤
- k
d2
- 2(∑i z2
i )2 ≤ 2k d2 .
Roughly normal (gaussian): Density ∝ e−t2/2 for t std deviations away. So, assuming normality σ =
√ 2k d , t = ε k
d √ 2k d
= ε √ k/ √ 2. Probability of failure roughly ≤ e−t2/2 → eε2k/4 “Roughly normal.”
SLIDE 140
Analysis Idea.
Pr
- |C − k
d | ≥ ε k d
- ≤ e−ε2k
Variance of C2? Recall Cl =
1 √ d ∑i bizi
Var(C) ≤
- k
d2
- (∑i zi 4 +4∑i,j z2
i z2 j ) ≤
- k
d2
- 2(∑i z2
i )2 ≤ 2k d2 .
Roughly normal (gaussian): Density ∝ e−t2/2 for t std deviations away. So, assuming normality σ =
√ 2k d , t = ε k
d √ 2k d
= ε √ k/ √ 2. Probability of failure roughly ≤ e−t2/2 → eε2k/4 “Roughly normal.” Chernoff, Berry-Esseen, Central Limit Theorems.
SLIDE 141
Analysis Idea.
Pr
- |C − k
d | ≥ ε k d
- ≤ e−ε2k
Variance of C2? Recall Cl =
1 √ d ∑i bizi
Var(C) ≤
- k
d2
- (∑i zi 4 +4∑i,j z2
i z2 j ) ≤
- k
d2
- 2(∑i z2
i )2 ≤ 2k d2 .
Roughly normal (gaussian): Density ∝ e−t2/2 for t std deviations away. So, assuming normality σ =
√ 2k d , t = ε k
d √ 2k d
= ε √ k/ √ 2. Probability of failure roughly ≤ e−t2/2 → eε2k/4 “Roughly normal.” Chernoff, Berry-Esseen, Central Limit Theorems.
SLIDE 142
Summary
Cuckoo hashing.
SLIDE 143
Summary
Cuckoo hashing. Two hash functions.
SLIDE 144
Summary
Cuckoo hashing. Two hash functions. Few cycles in random sparse graph.
SLIDE 145
Summary
Cuckoo hashing. Two hash functions. Few cycles in random sparse graph. Chaining works!
SLIDE 146
Summary
Cuckoo hashing. Two hash functions. Few cycles in random sparse graph. Chaining works! Johnson-Lindenstrass.
SLIDE 147