Problem
We study the problem of estimating the number of distinct elements in a stream S S S . WLOG, we assume that elements in S S S come from a domain [ d ] = { 1 , 2 , . . . , d } [d] = \{1, 2,..., d \} [ d ] = { 1 , 2 , ... , d } , and that each element in [ d ] [d] [ d ] appears in the S S S at least once. Hence, the problem is equivalent to the one of estimating d d d .
k Minimum Values
The algorithm of k k k -minimum values returns a ( 1 ± ϵ ) (1 \pm \epsilon) ( 1 ± ϵ ) estimate d ^ \hat d d ^ of d d d , with probability at least 1 − δ 1 - \delta 1 − δ .
The algorithm picks a pairwise independent hash function g : [ d ] → [ m ] g : [d] \rightarrow [m] g : [ d ] → [ m ] and uses a min heap h h h that keeps the k k k minimum hash values. When it stops, it outputs an estimate
d ^ ≐ k ⋅ m / v ,
\hat d \doteq k \cdot m / v,
d ^ ≐ k ⋅ m / v , where v v v is the maximum element in h h h . Observe that v v v is also the k k k -th minimum hash value of the set
{ g ( 1 ) , g ( 2 ) , . . . , g ( d ) } .
\{ g(1), g(2), ..., g(d) \}.
{ g ( 1 ) , g ( 2 ) , ... , g ( d )} .
Algorithm: k k k -minimum values.
Select a pair-wise independent hash function g : [ d ] → [ m ] g: [d] \rightarrow [m] g : [ d ] → [ m ] , where m ≥ d 2 / δ m \ge d^2 / \delta m ≥ d 2 / δ ;
Initialize a set h ← { } h \leftarrow \{ \} h ← { } ;
For s ∈ S s \in S s ∈ S do :
\qquad If g ( s ) ∈ h g(s) \in h g ( s ) ∈ h then continue;
\qquad h ← h ∪ { g ( s ) } h \leftarrow h \cup \{ g(s) \} h ← h ∪ { g ( s )} ;
\qquad If ∣ h ∣ > k |h| > k ∣ h ∣ > k then
\qquad \qquad remove the max element in h h h ;
Let v ← v \leftarrow v ← max element in h h h .
Return d ^ ≐ k ⋅ m / v \hat d \doteq k \cdot m / v d ^ ≐ k ⋅ m / v .
Theorem 1.
With probability at least 1 − δ 1 - \delta 1 − δ , there isn't hash collision.
Proof:
For i ≠ j ∈ [ d ] i \neq j \in [d] i = j ∈ [ d ] , as g g g is pair-wise independent, Pr [ g ( i ) = g ( j ) ] = 1 m \Pr[ g(i) = g(j) ] = \frac{1}{m} Pr [ g ( i ) = g ( j )] = m 1 . Therefore,
E [ ∑ i ≠ j ∈ [ d ] 1 [ g ( i ) = g ( j ) ] ] = ∑ i ≠ j ∈ [ d ] E [ 1 [ g ( i ) = g ( j ) ] ] ≤ d 2 m = δ ,
\mathbb{E} \left[ \sum_{i \neq j \in [d]} \mathbf{1} \big[ g(i) = g(j) \big] \right] = \sum_{i \neq j \in [d] } \mathbb{E} \left[ \mathbf{1} \big[ g(i) = g(j) \big] \right] \le \frac{d^2}{m} = \delta,
E i = j ∈ [ d ] ∑ 1 [ g ( i ) = g ( j ) ] = i = j ∈ [ d ] ∑ E [ 1 [ g ( i ) = g ( j ) ] ] ≤ m d 2 = δ , where 1 [ g ( i ) = g ( j ) ] \mathbf{1} \big[ g(i) = g(j) \big] 1 [ g ( i ) = g ( j ) ] is the indicator random variable of g ( i ) = g ( j ) g(i) = g(j) g ( i ) = g ( j ) .
By Markov's inequality,
Pr [ ∑ i ≠ j ∈ [ d ] 1 [ g ( i ) = g ( j ) ] ≥ 1 ] ≤ δ .
\Pr \left[ \sum_{ i \neq j \in [d] } \mathbf{1} \big[ g(i) = g(j) \big] \ge 1 \right] \le \delta.
Pr i = j ∈ [ d ] ∑ 1 [ g ( i ) = g ( j ) ] ≥ 1 ≤ δ . □ \square □
Theorem 2.
With probability at least 1 / ( k ϵ 2 ) 1 / (k\epsilon^2) 1/ ( k ϵ 2 ) ,
d ^ < d 1 − ϵ .
\hat d < \frac{d}{1 - \epsilon}.
d ^ < 1 − ϵ d . Proof: For i ∈ [ d ] i \in [d] i ∈ [ d ] , define the indicator random variable of X i = I [ g ( i ) ≤ ( 1 − ϵ ) ⋅ k / d ⋅ m ] X_i = \mathbb{I}\big[ g(i) \le (1 - \epsilon) \cdot k / d \cdot m \big] X i = I [ g ( i ) ≤ ( 1 − ϵ ) ⋅ k / d ⋅ m ] . Recall that
v ≐ The k -th smallest element of { g ( 1 ) , g ( 2 ) , . . . , g ( d ) } .
v \doteq \text{The } k\text{-th smallest element of } \{ g(1), g(2), ..., g(d) \}.
v ≐ The k -th smallest element of { g ( 1 ) , g ( 2 ) , ... , g ( d )} . The event that
{ v ≤ ( 1 − ϵ ) ⋅ k / d ⋅ m } ≡ { d 1 − ϵ ≤ k ⋅ m v }
\left\{ v \le (1 - \epsilon) \cdot k / d \cdot m \right\} \equiv \left\{ \frac{d}{1 - \epsilon} \le \frac{ k \cdot m }{ v } \right\}
{ v ≤ ( 1 − ϵ ) ⋅ k / d ⋅ m } ≡ { 1 − ϵ d ≤ v k ⋅ m } happens if only ∑ i ∈ [ d ] X i ≥ k \sum_{i \in [d] } X_i \ge k ∑ i ∈ [ d ] X i ≥ k .
By definition of X i X_i X i ,
p ≐ Pr [ X i ] = ( 1 − ϵ ) ⋅ k d .
p \doteq \Pr \left[ X_i \right] = (1 - \epsilon) \cdot \frac{ k }{d}.
p ≐ Pr [ X i ] = ( 1 − ϵ ) ⋅ d k . By linearity of expectation, we have
E [ ∑ i ∈ [ d ] X i ] = d ⋅ p = ( 1 − ϵ ) ⋅ k .
\mathbb{E} \left[ \sum_{i \in [d] } X_i \right] = d \cdot p = (1 - \epsilon) \cdot k.
E i ∈ [ d ] ∑ X i = d ⋅ p = ( 1 − ϵ ) ⋅ k . As g g g is pair-wise independent, so are the X i X_i X i 's. It follows that
σ 2 = V a r [ ∑ i ∈ [ d ] X i ] < d ⋅ p = ( 1 − ϵ ) ⋅ k .
\begin{aligned}
\sigma^2 =\mathbb{Var} \left[ \sum_{i \in [d] } X_i \right] < d \cdot p = (1 - \epsilon) \cdot k.
\end{aligned}
σ 2 = V a r i ∈ [ d ] ∑ X i < d ⋅ p = ( 1 − ϵ ) ⋅ k . By monotonicity of probability and by Chebyshev's inequality,
Pr [ ∑ i ∈ [ d ] X i ≥ k ] ≤ Pr [ ∣ ∑ i ∈ [ d ] X i − ( 1 − ϵ ) ⋅ k ∣ ≥ ϵ k ] < ( 1 − ϵ ) ⋅ k ϵ 2 k 2 < 1 ϵ 2 k .
\begin{aligned}
\Pr\left[ \sum_{i \in [d] } X_i \ge k \right]
&\le
\Pr\left[ \left| \sum_{i \in [d] } X_i - (1 - \epsilon) \cdot k \right| \ge \epsilon k \right]
<
\frac{ (1- \epsilon) \cdot k }{ \epsilon^2 k^2 }
< \frac{1}{\epsilon^2 k}.
\end{aligned}
Pr i ∈ [ d ] ∑ X i ≥ k ≤ Pr i ∈ [ d ] ∑ X i − ( 1 − ϵ ) ⋅ k ≥ ϵ k < ϵ 2 k 2 ( 1 − ϵ ) ⋅ k < ϵ 2 k 1 . □ \square □
Theorem 3.
With probability at least ( 1 + ϵ ) / ( k ϵ 2 ) (1 + \epsilon) / (k\epsilon^2) ( 1 + ϵ ) / ( k ϵ 2 ) ,
d ^ ≥ d 1 + ϵ .
\hat d \ge \frac{d}{1 + \epsilon}.
d ^ ≥ 1 + ϵ d . Proof: For i ∈ [ d ] i \in [d] i ∈ [ d ] , define the indicator random variable of Y i = I [ g ( i ) ≤ ( 1 + ϵ ) ⋅ k / d ⋅ m ] Y_i = \mathbb{I}\left[ g(i) \le (1 + \epsilon) \cdot k / d \cdot m \right] Y i = I [ g ( i ) ≤ ( 1 + ϵ ) ⋅ k / d ⋅ m ] . Recall that
v ≐ The k -th smallest element of { g ( 1 ) , g ( 2 ) , . . . , g ( d ) } .
v \doteq \text{The } k\text{-th smallest element of } \{ g(1), g(2), ..., g(d) \}.
v ≐ The k -th smallest element of { g ( 1 ) , g ( 2 ) , ... , g ( d )} . The event that
{ v > ( 1 + ϵ ) ⋅ k / d ⋅ m } ≡ { d 1 + ϵ > k ⋅ m v } ≡ { d 1 + ϵ > d ^ }
\left\{ v \ > \ (1 + \epsilon) \cdot k / d \cdot m \right\} \equiv \left\{ \frac{d}{1 + \epsilon} > \frac{ k \cdot m }{ v } \right\} \equiv \left\{ \frac{d}{1 + \epsilon} > \hat d \right\}
{ v > ( 1 + ϵ ) ⋅ k / d ⋅ m } ≡ { 1 + ϵ d > v k ⋅ m } ≡ { 1 + ϵ d > d ^ } happens if only ∑ i ∈ [ d ] Y i < k \sum_{i \in [d] } Y_i < k ∑ i ∈ [ d ] Y i < k .
By definition of Y i Y_i Y i ,
q ≐ Pr [ Y i ] = ( 1 + ϵ ) ⋅ k d .
q \doteq \Pr \left[ Y_i \right] = (1 + \epsilon) \cdot \frac{ k }{d}.
q ≐ Pr [ Y i ] = ( 1 + ϵ ) ⋅ d k . By linearity of expectation, we have
E [ ∑ i ∈ [ d ] Y i ] = d ⋅ q = ( 1 + ϵ ) ⋅ k .
\mathbb{E} \left[ \sum_{i \in [d] } Y_i \right] = d \cdot q = (1 + \epsilon) \cdot k.
E i ∈ [ d ] ∑ Y i = d ⋅ q = ( 1 + ϵ ) ⋅ k . As g g g is pair-wise independent, so are the X i X_i X i 's. It follows that
σ 2 = V a r [ ∑ i ∈ [ d ] Y i ] = ∑ i ∈ [ d ] V a r [ Y i ] = d ⋅ q ⋅ ( 1 − q ) = ( 1 + ϵ ) ⋅ k ⋅ ( 1 − q ) .
\begin{aligned}
\sigma^2 =\mathbb{Var} \left[ \sum_{i \in [d] } Y_i \right]
&= \sum_{i \in [d] } \mathbb{Var} \left[ Y_i \right] \\
&= d \cdot q \cdot ( 1 - q) \\
&= (1 + \epsilon) \cdot k \cdot (1 - q).
\end{aligned}
σ 2 = V a r i ∈ [ d ] ∑ Y i = i ∈ [ d ] ∑ V a r [ Y i ] = d ⋅ q ⋅ ( 1 − q ) = ( 1 + ϵ ) ⋅ k ⋅ ( 1 − q ) . By monotonicity of probability and by Chebyshev's inequality,
Pr [ ∑ i ∈ [ d ] Y i < k ] ≤ Pr [ ∣ ∑ i ∈ [ d ] Y i − ( 1 + ϵ ) ⋅ k ∣ ≥ ϵ k ⋅ 1 − q ] ≤ ( 1 + ϵ ) ⋅ k ϵ 2 k 2 ≤ 1 ϵ 2 k .
\begin{aligned}
\Pr\left[ \sum_{i \in [d] } Y_i < k \right]
&\le
\Pr\left[ \left| \sum_{i \in [d] } Y_i - (1 + \epsilon) \cdot k \right| \ge \epsilon k \cdot \sqrt{ 1 - q } \right] \\
&\le
\frac{ (1 + \epsilon) \cdot k }{ \epsilon^2 k^2 } \\
&\le \frac{1}{\epsilon^2 k}.
\end{aligned}
Pr i ∈ [ d ] ∑ Y i < k ≤ Pr i ∈ [ d ] ∑ Y i − ( 1 + ϵ ) ⋅ k ≥ ϵ k ⋅ 1 − q ≤ ϵ 2 k 2 ( 1 + ϵ ) ⋅ k ≤ ϵ 2 k 1 . □ \square □
Reference
[1] G. Cormode and K. Yi, Small Summaries for Big Data, 1st ed. Cambridge University Press, 2020.
← Back to all notes Back to top ↑