- General Background and Overview
- Probabilistic Data Structures for Web Analytics and Data Mining : A great overview of the space of probabilistic data structures and how they are used in approximation algorithm implementation.
- Models and Issues in Data Stream Systems
- Philippe Flajolet’s contribution to streaming algorithms : A presentation by Jérémie Lumbroso that visits some of the hostorical perspectives and how it all began with Flajolet
- Approximate Frequency Counts over Data Streams by Gurmeet Singh Manku & Rajeev Motwani : One of the early papers on the subject.
- Methods for Finding Frequent Items in Data Streams by Graham Cormode & Marios Hadjieleftheriou
- The space complexity of approximating the frequency moments by Noga Alon, Yossi Matias, Mario Szegedy : one of the most influential papers introducing succinctness in computing frequency moments
- Cuckoo Filter: Practically Better Than Bloom by Bin Fan, David G. Andersen, Michael Kaminsky, Michael D. Mitzenmacher
- A Simple Algorithm for Finding Frequent Elements in Streams and Bags by Karp, Shenker and Papadimitriou : used in Spark to find frequent items
-
Hyperloglog and MinHash : Implementation of a form of hyperloglog and adding capabilities of MinHash algorithm on to it which would enable to perform set intersections."While it does require extra processing power to deal with collecting all the minima, it’s possible to get satisfactory performance out of the structure for a relatively low storage or memory footprint"
-
Streaming/Sketching Conference from AK Tech : Contains links to videos and slides from the speakers like Muthukrishnan who spoke about Count Min Sketch
-
Q-digest
- Medians and Beyond: New Aggregation Techniques for Sensor Networks : The paper that introduced q-digest for range queries and quantile approximation
- Blog post on q-digest
- Blog post on approximate quantiles
- The Art of Approximating Distributions : Histograms and Quantiles at Scale - an alternative approach to q-digest
-
t-digest : A new data structure for accurate on-line accumulation of rank-based statistics such as quantiles and trimmed means. Ted Dunning's variant of Q-digest that does some improvements
-
Implementations
- stream-lib : A collection of Stream summarization and cardinality estimation algorithms like CM Sketch, Hyperloglog, Bloom Filters
- Algebird from Twitter
- streamDM - Data Mining for Spark Streaming
- Sketching library from Yahoo
- Count-Min Sketch
- An Improved Data Stream Summary: The Count-Min Sketch and its Applications - Cormode & Muthukrishnan : The paper that introduced count min sketch
- Collection of information on Count Min Sketch
- Count Min Sketch by Cormode : Introductory paper
- Streaming Algorithms and Sketches - Count Min Sketch on AK Tech Blog
- Muthukrishnan talking on Count Min Sketch at AK Tech conference
- Sketch Techniques for Approximate Query Processing by Cormode
- Sketching data structures - a good overview of Bloom Filters and Count Min Sketch
- Sketching can improve linear regression and the talk by David
- A Framework for Clustering Massive-Domain Data Streams by Charu Aggarwal
- Streaming Anomaly Detection Using Randomized Matrix Sketching by Huang & Kasiviswanathan
- Time adaptive sketches for summarizing data streams by Anshumali Shrivastava et. al from Microsoft Research
- Surveys
- References for Data Stream Algorithms by Graham Cormode : an exhaustive set of references with explanations
- Data Streams - Algorithms and Applications by S. Muthukrishnan : This is an excellent monograph with surveys of all algorithms related to data streams. Also a free copy of the book is available from Muthu's web site at http://www.cs.rutgers.edu/~muthu/
- Synopses for Massive Data: Samples, Histograms, Wavelets, Sketches by Graham Cormode1, Minos Garofalakis, Peter J. Haas and Chris Jermaine . Describes basic principles and recent developments in approximate query processing. It focuses on four key synopses: random samples, histograms, wavelets, and sketches. It considers issues such as accuracy, space and time efficiency, optimality, practicality, range of applicability, error bounds on query answers, and incremental maintenance. It also discusses the trade-offs between the different synopsis types.
-
Distributed Streams Algorithms for Sliding Windows by Phillip B. Gibbons and Srikanta Tirthapura
-
A Framework for Clustering Massive-Domain Data Streams by Charu C. Aggarwal
-
A framework for clustering evolving data streams by Charu C. Aggarwal et. al.
-
Unsupervised Feature Selection on Data Streams by Hao Huang
-
Presentations
- Spark Streaming Use Cases by Paco Nathan
- Tiny Batches in the wine, Shiny new bits in Spark Streaming by Paco Nathan
- Real time Data Analysis Patterns by Mikio Braun
- Streaming Big Data with Apache Spark, Kafka and Cassandra by Helena Edelson
- Streaming Data Analysis and Online Learning by John Myles White
- Algebra for Analytics by Oscar Boykin @posco
- Courses
- Alex Smola course at Berkeley SML: Data Streams
- Piotr Indyk course at MIT Sketching, Streaming and Sub-linear Space Algorithms
- Andrew McGregor course at UMass on Advanced Algorithms
- Amit Chakrabarti course at Dartmouth on Data Stream Algorithms and the entire course notes in a single document
- Moses Charikar course CS369G: Algorithmic Techniques for Big Data at Stanford Spring Quarter 2016
- Piotr Indyk (MIT) and Nelson (Harvard) course on Sketching Algorithms for Big Data - Fall 2017
- Nelson's course on Algorithms for Big Data at Harvard in Fall 2015. This includes videos as well.
- Incremental Learning with Decision Trees for Streamed Data
- Mining High-Speed Data Streams (Hoeffding Trees) by Pedro Domingos and Geoff Hulten
- Mining Time Changing Data Streams by G. Hulten, L. Spencer, and P. Domingos.
- Comprehensive study on techniques of Incremental learning with decision trees for streamed data by Prerana Gupta, Amit Thakkar, Amit Ganatra
- Use of Hoeffding trees in concept based data stream mining by Hoeglinger, S. and Pears, R.
- Clustering Data Streams
- Clustering Data Streams: Theory and Practice by Sudipto Guha, Adam Meyerson, Nina Mishra, Rajeev Motwani and Liadan O’Callaghan
- Online clustering of data streams by J. Beringer, E. Hüllermeier
- Conquering the divide: Continuous clustering of distributed data streams (2007) by Graham Cormode
- Clustering on Streams by Suresh Venkat
- Books
- Andrew McGregor is writing a book on sketching and data streaming algorithms, parts of the draft is available here