Count Sketch
Algorithm
Data Streams
Sketching Techniques
\`Hash\` Functions

Explaining The Count Sketch Algorithm

Data Structures & Algorithms practice on Codemia

Step through 300 algorithm problems with animated visualisers that show the data structure changing as the code runs.

Practice algorithms

Overview

The Count Sketch algorithm is a seminal technique in computer science, particularly useful in handling data streams and large-scale datasets where exact computation becomes infeasible due to space and time constraints. Count Sketch provides an efficient way to estimate the frequency of elements in a data stream, which is a common requirement in domains such as database systems, network monitoring, and machine learning.

Basic Idea

The Count Sketch algorithm uses a probabilistic approach to approximate the frequencies of various items in a stream. It employs hash functions to map items into a small number of "buckets," and maintains a summary of the data using these buckets. The algorithm leverages the principle of randomization to reduce memory usage, making it a valuable tool for data processing in constrained environments.

Technical Explanation

Sketch Structure

Count Sketch maintains multiple hash tables (or "sketches"), each containing a number of buckets:

  • Hash Functions: Two types of hash functions are used:
    • Index `Hash` Function: Maps each item to one of the buckets.
    • Sign `Hash` Function: Assigns a random sign (+1+1 or 1-1) for each occurrence of an item, which helps to cancel out noise.
  • Buckets: Each bucket in each hash table records the cumulative sum of item frequencies, with signs applied.

Algorithm Steps

  1. Initialization: Initialize dd hash tables, each containing ww buckets. Choose dd independent index hash functions hi(x)h_i(x) and dd sign hash functions si(x)s_i(x).
  2. Update: For each incoming item xx:
    • For each hash table ii:
      • Compute bucket index b=hi(x)b = h_i(x).
      • Update the bucket value: `buckets[i][b] += s_i(x)`.
  3. Query: To estimate the frequency of an item xx, use:
    • Evaluate all dd hash tables and compute the median:
  • Suppose the item `a` hashes to bucket `0` in Table 1 and bucket `1` in Table 2, with respective signs.
  • The update step will adjust these counts similarly for each occurrence.
  • Accuracy: The estimates converge to the actual frequencies as the number of hash tables (dd) increases, and the per-table size (ww) becomes larger.
  • Space Complexity: O(dw)O(dw), where typically dnd \ll n (number of unique items), making it highly efficient in terms of space usage.
  • Time Complexity: Both update and query operations can be performed in O(d)O(d) time.
  • Data Stream Processing: Count Sketch is used for frequency estimation in streaming data, where storing all items is impractical.
  • Heavy Hitters Identification: It effectively identifies the most frequently occurring items in large datasets.
  • Compressed Sensing: Utilized in the reconstruction of signals where direct measurement and storage would be otherwise overwhelming.

Related reading
Course
Intermediate
27 lessons
15 hours
DSA Fundamentals

Master algorithmic patterns and data structures through hands-on LeetCode-style problems - from arrays and hashing to dynamic programming and advanced graphs.

View the course
Track what you have practised

A free account saves your progress, solutions and study plan across every problem on Codemia.

Data Structures & Algorithms practice on Codemia

Step through 300 algorithm problems with animated visualisers that show the data structure changing as the code runs.

Practice algorithms

All Rights Reserved.