Skip to content

Instantly share code, notes, and snippets.

@vmsmith
Created June 13, 2014 09:16
Show Gist options
  • Save vmsmith/ff511036e9abba7c3385 to your computer and use it in GitHub Desktop.
Save vmsmith/ff511036e9abba7c3385 to your computer and use it in GitHub Desktop.
Streaming Algorithms and Data Structures
1. *General Background and Overview*
* [Probabilistic Data Structures for Web Analytics and Data Mining](http://highlyscalable.wordpress.com/2012/05/01/probabilistic-structures-web-analytics-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](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.106.9846)
* [Philippe Flajolet’s contribution to streaming algorithms](https://speakerdeck.com/timonk/philippe-flajolets-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](http://www.vldb.org/conf/2002/S10P03.pdf) by Gurmeet Singh Manku & Rajeev Motwani : One of the early papers on the subject.
* [Methods for Finding Frequent Items in Data Streams](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.187.9800&rep=rep1&type=pdf) by Graham Cormode & Marios Hadjieleftheriou
* [The space complexity of approximating the frequency moments](http://www.tau.ac.il/~nogaa/PDFS/amsz4.pdf) by Noga Alon, Yossi Matias, Mario Szegedy : one of the most influential papers introducing succinctness in computing frequency moments
2. [Hyperloglog and MinHash](http://tech.adroll.com/blog/data/2013/07/10/hll-minhash.html) : 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"
3. [Streaming/Sketching Conference from AK Tech](http://blog.aggregateknowledge.com/2013/05/23/foundation-capital-and-aggregate-knowledge-sponsor-streamingsketching-conference/) : Contains links to videos and slides from the speakers like Muthukrishnan who spoke about Count Min Sketch
4. *Q-digest*
* [Medians and Beyond: New Aggregation Techniques for Sensor Networks](http://www.cs.virginia.edu/~son/cs851/papers/ucsb.sensys04.pdf) : The paper that introduced q-digest for range queries and quantile approximation
* [Blog post on q-digest](http://papercruncher.com/2011/07/31/q-digest/)
* [Blog post on approximate quantiles](http://www.prelert.com/blog/q-digest-an-algorithm-for-computing-approximate-quantiles-on-a-collection-of-integers/)
* [The Art of Approximating Distributions](http://metamarkets.com/2013/histograms/#) : Histograms and Quantiles at Scale - an alternative approach to q-digest
5. [t-digest](https://github.com/tdunning/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
6. *Implementations*
* [stream-lib](https://github.com/addthis/stream-lib) : A collection of Stream summarization and cardinality estimation algorithms like CM Sketch, Hyperloglog, Bloom Filters
* [Algebird from Twitter](https://github.com/twitter/algebird)
7. *Count-Min Sketch*
* [An Improved Data Stream Summary: The Count-Min Sketch and its Applications](http://dimacs.rutgers.edu/~graham/pubs/papers/cm-full.pdf) - Cormode & Muthukrishnan : The paper that introduced count min sketch
* [Collection of information on Count Min Sketch](https://sites.google.com/site/countminsketch/)
* [Count Min Sketch](http://dimacs.rutgers.edu/~graham/pubs/papers/cmencyc.pdf) by Cormode : Introductory paper
* [Streaming Algorithms and Sketches](http://blog.aggregateknowledge.com/2011/09/13/streaming-algorithms-and-sketches/) - Count Min Sketch on AK Tech Blog
* Muthukrishnan [talking](http://www.youtube.com/watch?v=OOZC4KCErN0) on Count Min Sketch at AK Tech conference
* [Sketch Techniques for Approximate Query Processing](http://people.cs.umass.edu/~mcgregor/711S12/sketches1.pdf) by Cormode
* [Sketching data structures](http://lkozma.net/blog/sketching-data-structures/) - a good overview of Bloom Filters and Count Min Sketch
* [Sketching can improve linear regression](https://speakerdeck.com/timonk/sketching-as-a-tool-for-numerical-linear-algebra) and the [talk](http://www.youtube.com/watch?v=-7S9jNeY_R0) by David
8. *Surveys*
* [References for Data Stream Algorithms](http://dimacs.rutgers.edu/~graham/pubs/papers/bristol.pdf) by Graham Cormode : an exhaustive set of references with explanations
* [Data Streams - Algorithms and Applications](http://www.amazon.com/Data-Streams-Applications-Foundations-Theoretical/dp/193301914X) 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](http://www.nowpublishers.com/articles/foundations-and-trends-in-databases/DBS-004) 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.
10. [Distributed Streams Algorithms for Sliding Windows](http://home.engineering.iastate.edu/~snt/pubs/tocs04.pdf) by Phillip B. Gibbons and Srikanta Tirthapura
11. [Frugal Streaming](http://blog.aggregateknowledge.com/2013/09/16/sketch-of-the-day-frugal-streaming/)
12. [A Framework for Clustering Massive-Domain Data Streams](http://charuaggarwal.net/cskrevise.pdf) by Charu C. Aggarwal
13. [A framework for clustering evolving data streams](http://dl.acm.org/citation.cfm?id=1315460) by Charu C. Aggarwal et. al.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment