113
Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode [email protected]

Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode [email protected]

Embed Size (px)

Citation preview

Page 1: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms Intro, Sampling, Entropy

Graham Cormode [email protected]

Page 2: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms2

Outline

Introduction to Data Streams– Motivating examples and applications– Data Streaming models– Basic tail bounds

Sampling from data streams Sampling to estimate entropy

Page 3: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms3

Data is growing faster than our ability to store or index it

There are 3 Billion Telephone Calls in US each day, 30 Billion emails daily, 1 Billion SMS, IMs.

Scientific data: NASA's observation satellites generate billions of readings each per day.

IP Network Traffic: up to 1 Billion packets per hour per router. Each ISP has many (hundreds) routers!

Whole genome sequences for many species now available: each megabytes to gigabytes in size

Data is Massive

Page 4: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms4

Massive Data Analysis

Must analyze this massive data: Scientific research (monitor environment, species) System management (spot faults, drops, failures) Customer research (association rules, new offers) For revenue protection (phone fraud, service abuse)

Else, why even measure this data?

Page 5: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms5

Example: Network Data

Networks are sources of massive data: the metadata per hour per router is gigabytes

Fundamental problem of data stream analysis: Too much information to store or transmit

So process data as it arrives: one pass, small space: the data stream approach.

Approximate answers to many questions are OK, if there are guarantees of result quality

Page 6: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms6

IP Network Monitoring Application

24x7 IP packet/flow data-streams at network elements Truly massive streams arriving at rapid rates

– AT&T/Sprint collect ~1 Terabyte of NetFlow data each day

Often shipped off-site to data warehouse for off-line analysis

Source Destination Duration Bytes Protocol 10.1.0.2 16.2.3.7 12 20K http 18.6.7.1 12.4.0.3 16 24K http 13.9.4.3 11.6.8.2 15 20K http 15.2.2.9 17.1.2.1 19 40K http 12.4.3.8 14.8.7.4 26 58K http 10.5.1.3 13.0.0.1 27 100K ftp 11.1.0.6 10.3.4.5 32 300K ftp 19.7.1.2 16.5.5.8 18 80K ftp

Example NetFlow IP Session Data

DSL/CableNetworks

• Broadband Internet Access

Converged IP/MPLSCore

PSTNEnterpriseNetworks

• Voice over IP• FR, ATM, IP VPN

Network OperationsCenter (NOC)

SNMP/RMON,NetFlow records

Peer

Page 7: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms8

Network Monitoring Queries

DBMS(Oracle, DB2)

Back-end Data Warehouse

Off-line analysis – slow, expensive

DSL/CableNetworks

EnterpriseNetworks

Peer

Network OperationsCenter (NOC)

What are the top (most frequent) 1000 (source, dest) pairs seen over the last month?

SELECT COUNT (R1.source, R2.dest)FROM R1, R2WHERE R1.dest = R2.source

SQL Join Query

How many distinct (source, dest) pairs have been seen by both R1 and R2 but not R3?

Set-Expression Query

PSTN

Extra complexity comes from limited space and time Will introduce solutions for these and other problems

R1

R2

R3

Page 8: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms10

Other Streaming Applications

Sensor networks– Monitor habitat and environmental parameters– Track many objects, intrusions, trend analysis…

Utility Companies– Monitor power grid, customer usage patterns etc.– Alerts and rapid response in case of problems

Page 9: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms11

Streams Defining Frequency Dbns.

We will consider streams that define frequency distributions– E.g. frequency of packets from source A to source B

This simple setting captures many of the core algorithmic problems in data streaming– How many distinct (non-zero) values seen?– What is the entropy of the frequency distribution?– What (and where) are the highest frequencies?

More generally, can consider streams that define multi-dimensional distributions, graphs, geometric data etc.

But even for frequency distributions, several models are relevant

Page 10: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms12

Data Stream Models

We model data streams as sequences of simple tuples Complexity arises from massive length of streams Arrivals only streams:

– Example: (x, 3), (y, 2), (x, 2) encodesthe arrival of 3 copies of item x, 2 copies of y, then 2 copies of x.

– Could represent eg. packets on a network; power usage Arrivals and departures:

– Example: (x, 3), (y,2), (x, -2) encodes final state of (x, 1), (y, 2).

– Can represent fluctuating quantities, or measure differences between two distributions

xy

xy

Page 11: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms13

Approximation and Randomization

Many things are hard to compute exactly over a stream– Is the count of all items the same in two different streams?– Requires linear space to compute exactly

Approximation: find an answer correct within some factor– Find an answer that is within 10% of correct result– More generally, a (1 ) factor approximation

Randomization: allow a small probability of failure– Answer is correct, except with probability 1 in 10,000– More generally, success probability (1-)

Approximation and Randomization: (, )-approximations

Page 12: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms14

Basic Tools: Tail Inequalities General bounds on tail probability of a random variable

(probability that a random variable deviates far from its expectation)

Basic Inequalities: Let X be a random variable with expectation and variance Var[X]. Then, for any >0

Probabilitydistribution

Tail probability

Chebyshev:

22εμ

Var[X]με)|μXPr(|

Markov:

ε1

1ε)μ)(1Pr(X

Page 13: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms15

Tail Bounds

Markov Inequality:For a random variable Y which takes only non-negative values.

Pr[Y k] E(Y)/k(This will be < 1 only for k > E(Y))

Chebyshev’s Inequality:For a random variable Y:

Pr[|Y-E(Y)| k] Var(Y)/k2

Proof: Set X = (Y – E(Y))2

E(X) = E(Y2+E(Y)2–2YE(Y)) = E(Y2)+E(Y)2-2E(Y)2= Var(Y)

So: Pr[|Y-E(Y)| k] = Pr[(Y – E(Y))2 k2].

Using Markov: E(Y – E(Y))2/k2 = Var(Y)/k2

Page 14: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms16

Outline

Introduction to Data Streams– Motivating examples and applications– Data Streaming models– Basic tail bounds

Sampling from data streams Sampling to estimate entropy

Page 15: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms17

Sampling From a Data Stream

Fundamental prob: sample m items uniformly from stream– Useful: approximate costly computation on small sample

Challenge: don’t know how long stream is – So when/how often to sample?

Two solutions, apply to different situations:– Reservoir sampling (dates from 1980s?)– Min-wise sampling (dates from 1990s?)

Page 16: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms18

Reservoir Sampling

Sample first m items Choose to sample the i’th item (i>m) with probability m/i If sampled, randomly replace a previously sampled item

Optimization: when i gets large, compute which item will be sampled next, skip over intervening items. [Vitter 85]

Page 17: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms19

Reservoir Sampling - Analysis

Analyze simple case: sample size m = 1 Probability i’th item is the sample from stream length n:

– Prob. i is sampled on arrival prob. i survives to end

1 i i+1 n-2 n-1 i i+1 i+2 n-1 n

= 1/n

Case for m > 1 is similar, easy to show uniform probability Drawbacks of reservoir sampling: hard to parallelize

Page 18: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms20

Min-wise Sampling

For each item, pick a random fraction between 0 and 1 Store item(s) with the smallest random tag [Nath et al.’04]

0.391 0.908 0.291 0.555 0.619 0.273

Each item has same chance of least tag, so uniform Can run on multiple streams separately, then merge

Page 19: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms21

Sampling Exercises

What happens when each item in the stream also has a weight attached, and we want to sample based on these weights?1. Generalize the reservoir sampling algorithm to draw a

single sample in the weighted case.

2. Generalize reservoir sampling to sample multiple weighted items, and show an example where it fails to give a meaningful answer.

3. Research problem: design new streaming algorithms for sampling in the weighted case, and analyze their properties.

Page 20: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms22

Outline

Introduction to Data Streams– Motivating examples and applications– Data Streaming models– Basic tail bounds

Sampling from data streams Sampling to estimate entropy

Page 21: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms23

Application of Sampling: Entropy

Given a long sequence of characters

S = <a1, a2, a3… am> each aj {1… n}

Let fi = frequency of i in the sequence Compute the empirical entropy:

H(S) = - i fi/m log fi/m = - i pi log pi

Example: S = < a, b, a, b, c, a, d, a>– pa = 1/2, pb = 1/4, pc = 1/8, pd = 1/8

– H(S) = ½ + ¼ 2 + 1/8 3 + 1/8 3 = 7/4 Entropy promoted for anomaly detection in networks

Page 22: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms24

Challenge

Goal: approximate H(S) in space sublinear (poly-log) in m (stream length), n (alphabet size)– (,) approx: answer is (1§)H(S) w/prob 1-

Easy if we have O(n) space: compute each fi exactly More challenging if n is huge, m is huge, and we have

only one pass over the input in order– (The data stream model)

Page 23: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms25

Sampling Based Algorithm

Simple estimator: – Randomly sample a position j in the stream

– Count how many times aj appears subsequently = r

– Output X = -(r log (r/m) – (r-1) log((r-1)/m))

Claim: Estimator is unbiased – E[X] = H(S)– Proof: prob of picking j = 1/m, sum telescopes correctly

Variance of estimate is not too large – Var[X] = O(log2 m)– Observe that |X| ≤ log m– Var[X] = E[(X – E[X])2] < (max(X) – min(X))2 = O(log2 m)

Page 24: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms26

Analysis of Basic Estimator

A general technique in data streams:– Repeat in parallel an unbiased estimator with bounded

variance, take average of estimates to improve variance

– Var[ 1/k (Y1 + Y2 + ... Yk) ] = 1/k Var[Y]

– By Chebyshev, need k repetitions to be Var[X]/2E2[X] – For entropy, this means space k = O(log2m/2H2(S))

Problem for entropy: when H(S) is very small?– Space needed for an accurate approx goes as 1/H2!

22εμ

Var[X]με)|μXPr(|

Page 25: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms27

Low Entropy

But... what does a low entropy stream look like? – aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaa

Very boring most of the time, we are only rarely surprised Can there be two frequent items?

– aabababababababaababababbababababababa– No! That’s high entropy (¼ 1 bit / character)

Only way to get H(S) =o(1) is to have only one character with pi close to 1

Page 26: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms28

Removing the frequent character

Write entropy as – -pa log pa + (1-pa) H(S’)

– Where S’ = stream S with all ‘a’s removed Can show:

– Doesn’t matter if H(S’) is small: as pa is large, additive error on H(S’) ensures relative error on (1-pa)H(S’)

– Relative error (1-pa) on pa gives relative error on pa log pa

– Summing both (positive) terms gives relative error overall

Page 27: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms29

Finding the frequency character

Ejecting a is easy if we know in advance what it is– Can then compute pa exactly

Can find online deterministically– Assume pa > 2/3 (if not, H(S) > 0.9, and original alg works)

– Run a ‘heavy hitters’ algorithm on the stream (see later)

– Modify analysis, find a and pa § (1-pa)

But... how to also compute H(S’) simultaneously if we don’t know a from the start... do we need two passes?

Page 28: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms30

Always have a back up plan...

Idea: keep two samples to build our estimator– If at the end one of our samples is ‘a’, use the other– How to do this and ensure uniform sampling?

Pick first sample with ‘min-wise sampling’: At end of the stream, if the sampled character = ‘a’, we

want to sample from the stream ignoring all ‘a’s This is just “the character achieving the smallest label

distinct from the one that achieves the smallest label” Can track information to do this in a single pass,

constant space

Page 29: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms31

Sampling Two Tokens

Repeats:

0.62

7

0.54

9

0.22

8

0.36

6

0.77

0

0.19

1

0.40

8

Tags:

BCDBBB

AAA

0.20

2

0.17

3

0.08

2

0.21

7

0.81

5

AAAAACStream:

min tag

Assign tags, choose first token as before Delete all occurrences of first token Choose token with min remaining tag; count repeats Implementation: keep track of two triples

(min tag, corresponding token, number of repeats)

second smallest tag, but we don’t want this; same

token as min tag!

min tag amongst remaining tokens

BBBB

Page 30: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms32

Putting it all together

Can combine all these pieces Build an estimator based on tracking this information,

deciding whether there is a frequent character or not A more involved Chernoff bounds argument improves

number of repetitions of estimator from O(-2Var[X]/E2[X]) to O(-2Range[X]/E[X]) = O(-2 log m)

In O(-2 log m log 1/) space (words) we can compute an (,) approximation to H(S) in a single pass

Page 31: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms33

Entropy Exercises

As a subroutine, we need to find an element that occurs more than 2/3 of the time and estimate its weight1. How can we find a frequently occurring item?

2. How can we estimate its weight p with (1-p) error?

3. Our algorithm uses O(-2 log m log 1/) space, could this be improved or is it optimal (lower bounds)?

4. Our algorithm updates each sampled pair for every update, how quickly can we implement it?

5. (Research problem) What if there are multiple distributed streams and we want to compute the entropy of their union?

Page 32: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms34

Outline

Introduction to Data Streams– Motivating examples and applications– Data Streaming models– Basic tail bounds

Sampling from data streams Sampling to estimate entropy

Page 33: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms Frequency Moments

Graham Cormode [email protected]

Page 34: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms36

Frequency Moments

Introduction to Frequency Moments and Sketches Count-Min sketch for Fand frequent items

AMS Sketch for F2

Estimating F0

Extensions: – Higher frequency moments– Combined frequency moments

Page 35: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms37

Last Time

Introduced data streams and data stream models– Focus on a stream defining a frequency distribution

Sampling to draw a uniform sample from the stream Entropy estimation: based on sampling

Page 36: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms38

This Time: Frequency Moments

Given a stream of updates, let fi be the number of times that item i is seen in the stream

Define Fk of the stream as i (fi)k – the k’th Frequency Moment

“Space Complexity of the Frequency Moments” by Alon, Matias, Szegedy in STOC 1996 studied this problem– Awarded Godel prize in 2005– Set the pattern for much streaming algorithms to follow– Frequency moments are at the core of many streaming

problems

Page 37: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms39

Frequency Moments

F0 : count 1 if fi 0 – number of distinct items

F1 : length of stream, easy

F2 : sum the squares of the frequencies – self join size

Fk : related to statistical moments of the distribution

F : (really lim k Fk1/k) dominated by the largest fk, finds

the largest frequency

Different techniques needed for each one.– Mostly sketch techniques, which compute a certain kind of

random linear projection of the stream

Page 38: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms40

Sketches

Not every problem can be solved with sampling– Example: counting how many distinct items in the stream– If a large fraction of items aren’t sampled, don’t know if

they are all same or all different Other techniques take advantage that the algorithm can

“see” all the data even if it can’t “remember” it all (To me) a sketch is a linear transform of the input

– Model stream as defining a vector, sketch is result of multiplying stream vector by an (implicit) matrix

linear projection

Page 39: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms41

Trivial Example of a Sketch

Test if two (asynchronous) binary streams are equal d= (x,y) = 0 iff x=y, 1 otherwise

To test in small space: pick a random hash function h Test h(x)=h(y) : small chance of false positive, no chance

of false negative. Compute h(x), h(y) incrementally as new bits arrive

(e.g. h(x) = xiti mod p for random prime p, and t < p) – Exercise: extend to real valued vectors in update model

1 0 1 1 1 0 1 0 1 …

1 0 1 1 0 0 1 0 1 …

Page 40: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms42

Frequency Moments

Introduction to Frequency Moments and Sketches Count-Min sketch for Fand frequent items

AMS Sketch for F2

Estimating F0

Extensions: – Higher frequency moments– Combined frequency moments

Page 41: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms43

Count-Min Sketch

Simple sketch idea, can be used for as the basis of many different stream mining tasks.

Model input stream as a vector x of dimension U Creates a small summary as an array of w d in size Use d hash function to map vector entries to [1..w] Works on arrivals only and arrivals & departures streams

W

dArray: CM[i,j]

Page 42: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms44

Count-Min Sketch Structure

Each entry in vector x is mapped to one bucket per row. Merge two sketches by entry-wise summation Estimate x[j] by taking mink CM[k,hk(j)]

– Guarantees error less than F1 in size O(1/ log 1/)– Probability of more error is less than 1-

+c

+c

+c

+c

h1(j)

hd(j)

j,+c

d=log 1/

w = 2/

[C, Muthukrishnan ’04]

Page 43: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms45

Approximation of Point Queries

Approximate point query x’[j] = mink CM[k,hk(j)]

Analysis: In k'th row, CM[k,hk(j)] = x[j] + Xk,j

– Xk,j = x[i] | hk(i) = hk(j)

– E(Xk,j) = i j x[i]*Pr[hk(i)=hk(j)] Pr[hk(i)=hk(k)] * i x[i]= F1/2 by pairwise independence of h

– Pr[Xk,j F1] = Pr[Xk,j 2E(Xk,j)] 1/2 by Markov inequality

So, Pr[x’[j] x[j] + F1] = Pr[ k. Xk,j > F1] 1/2log 1/ =

Final result: with certainty x[j] x’[j] and with probability at least 1-, x’[j] < x[j] + F1

Page 44: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms46

Applications of Count-Min to F

Count-Min sketch lets us estimate fi for any i (up to F1)

F asks to find maxi fi

Slow way: test every i after creating sketch Faster way: test every i after it is seen in the stream, and

remember largest estimated value Alternate way:

– keep a binary tree over the domain of input items, where each node corresponds to a subset

– keep sketches of all nodes at same level– descend tree to find large frequencies, discarding

branches with low frequency

Page 45: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms47

Count-Min Exercises

1. The median of a distribution is the item so that the sum of the frequencies of lexicographically smaller items is ½ F1. Use CM sketch to find the (approximate) median.

2. Assume the input frequencies follow the Zipf distribution so that the i’th largest frequency is (i-z) for z>1. Show that CM sketch only needs to be size -1/z to give same guarantee

3. Suppose we have arrival and departure streams where the frequencies of items are allowed to be negative. Extend CM sketch analysis to estimate these frequencies (note, Markov argument no longer works)

4. How to find the large absolute frequencies when some are negative? Or in the difference of two streams?

Page 46: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms48

Frequency Moments

Introduction to Frequency Moments and Sketches Count-Min sketch for Fand frequent items

AMS Sketch for F2

Estimating F0

Extensions: – Higher frequency moments– Combined frequency moments

Page 47: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms49

F2 estimation

AMS sketch (for Alon-Matias-Szegedy) proposed in 1996– Allows estimation of F2 (second frequency moment)

– Used at the heart of many streaming and non-streaming mining applications: achieves dimensionality reduction

Here, describe AMS sketch by generalizing CM sketch. Uses extra hash functions g1...glog 1/ {1...U} {+1,-1}

Now, given update (j,+c), set CM[k,hk(i)] += c*gk(j)

linear projection

AMS sketch

Page 48: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms50

F2 analysis

Estimate F2 = mediank i CM[k,i]2

Each row’s result is i g(i)2x[i]2 + h(i)=h(j) 2 g(i) g(j) x[i] x[j]

But g(i)2 = -12 = +12 = 1, and i x[i]2 = F2

g(i)g(j) has 1/2 chance of +1 or –1 : expectation is 0 …

+c*g1(j)

+c*g2(j)

+c*g3(j)

+c*g4(j)

h1(j)

hd(j)

j,+c

d=8log 1/

w = 4/

Page 49: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms51

F2 Variance

Expectation of row estimate Rk = i CM[k,i]2 is exactly F2

Variance of row k, Var[Rk], is an expectation:

– Var[Rk] = E[ (buckets b (CM[k,b])2 – F2)2 ]

– Good exercise in algebra: expand this sum and simplify– Many terms are zero in expectation because of terms like

g(a)g(b)g(c)g(d) (degree at most 4)– Requires that hash function g is four-wise independent: it

behaves uniformly over subsets of size four or smaller Such hash functions are easy to construct

Page 50: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms52

F2 Variance

Terms with odd powers of g(a) are zero in expectation– g(a)g(b)g2(c), g(a)g(b)g(c)g(d), g(a)g3(b)

Leaves Var[Rk] i g4(i) x[i]4

+ 2 j i g2(i) g2(j) x[i]2 x[j]2 + 4 h(i)=h(j) g2(i) g2(j) x[i]2 x[j]2 - (x[i]4 + j i 2x[i]2 x[j]2) F2

2/w Row variance can finally be bounded by F2

2/w– Chebyshev for w=4/2 gives probability ¼ of failure– How to amplify this to small probability of failure?

Page 51: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms53

Tail Inequalities for Sums We derive stronger bounds on tail probabilities for the sum

of independent Bernoulli trials via the Chernoff Bound:

– Let X1, ..., Xm be independent Bernoulli trials s.t. Pr[Xi=1] = p

(Pr[Xi=0] = 1-p).

– Let X = i=1m Xi ,and = mp be the expectation of X.

– Then, for any >0,

2

με2

2expμε)|μXPr(|

Page 52: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms54

Applying Chernoff Bound

Each row gives an estimate that is within relative error with probability p > ¾

Take d repetitions and find the median. Why the median?

– Because bad estimates are either too small or too large– Good estimates form a contiguous group “in the middle”– At least d/2 estimates must be bad for median to be bad

Apply Chernoff bound to d independent estimates, p=3/4– Pr[ More than d/2 bad estimates ] < 2exp(d/8)– So we set d = (ln ) to give probability of failure

Same outline used many times in data streams

Page 53: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms55

Aside on Independence Full independence is expensive in a streaming setting

– If hash functions are fully independent over n items, then we need (n) space to store their description

– Pairwise and four-wise independent hash functions can be described in a constant number of words

The F2 algorithm uses a careful mix of limited and full independence – Each hash function is four-wise independent over all n items– Each repetition is fully independent of all others – but there

are only O(log 1/) repetitions.

Page 54: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms56

AMS Sketch Exercises

1. Let x and y be binary streams of length n. The Hamming distance H(x,y) = |{i | x[i] y[i]}|Show how to use AMS sketches to approximate H(x,y)

2. Extend for strings drawn from an arbitrary alphabet

3. The inner product of two strings x, y is x y = i=1n

x[i]*y[i]Use AMS sketches to estimate x y– Hint: try computing the inner product of the sketches.

Show the estimator is unbiased (correct in expectation)– What form does the error in the approximation take?– Use Count-Min Sketches for the same problem and

compare the errors.– Is it possible to build a (1) approximation of x y?

Page 55: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms57

Frequency Moments

Introduction to Frequency Moments and Sketches Count-Min sketch for Fand frequent items

AMS Sketch for F2

Estimating F0

Extensions: – Higher frequency moments– Combined frequency moments

Page 56: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms58

F0 Estimation

F0 is the number of distinct items in the stream – a fundamental quantity with many applications

Early algorithms by Flajolet and Martin [1983] gave nice hashing-based solution– analysis assumed fully independent hash functions

Will describe a generalized version of the FM algorithm due to Bar-Yossef et. al with only pairwise indendence

Page 57: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms59

F0 Algorithm Let m be the domain of stream elements

– Each item in stream is from [1…m] Pick a random hash function h: [m] [m3]

– With probability at least 1-1/m, no collisions under h

For each stream item i, compute h(i), and track the t distinct items achieving the smallest values of h(i)– Note: if same i is seen many times, h(i) is same

– Let vt = t’th smallest value of h(i) seen.

If F0 < t, give exact answer, else estimate F’0 = tm3/vt

– vt/m3 fraction of hash domain occupied by t smallest

m30m3 vt

Page 58: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms60

Analysis of F0 algorithm

Suppose F’0 = tm3/vt > (1+) F0 [estimate is too high]

So for stream = set S 2[m], we have – |{ s S | h(s) < tm3/(1+)F0 }| > t

– Because < 1, we have tm3/(1+)F0 (1-/2)tm3/F0

– Pr[ h(s) < (1-/2)tm3/F0] 1/m3 * (1-/2)tm3/F0 = (1-/2)t/F0

– (this analysis outline hides some rounding issues)

m3tm3/(1+)F00m3 vt

Page 59: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms61

Chebyshev Analysis

Let Y be number of items hashing to under tm3/(1+)F0

– E[Y] = F0 * Pr[ h(s) < tm3/(1+)F0] = (1-/2)t

– For each item i, variance of the event = p(1-p) < p

– Var[Y] = s S Var[ h(s) < tm3/(1+)F0] < (1-/2)t We sum variances because of pairwise independence

Now apply Chebyshev: – Pr[ Y > t ] Pr[|Y – E[Y]| > t/2]

4Var[Y]/2t2 4t/(2t2)

– Set t=20/2 to make this Prob 1/5

Page 60: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms62

Completing the analysis

We have shownPr[ F’0 > (1+) F0 ] < 1/5

Can show Pr[ F’0 < (1-) F0 ] < 1/5 similarly– too few items hash below a certain value

So Pr[ (1-) F0 F’0 (1+)F0] > 3/5 [Good estimate]

Amplify this probability: repeat O(log 1/) times in parallel with different choices of hash function h– Take the median of the estimates, analysis as before

Page 61: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms63

F0 Issues

Space cost: – Store t hash values, so O(1/2 log m) bits– Can improve to O(1/2 + log m) with additional tricks

Time cost: – Find if hash value h(i) < vt

– Update vt and list of t smallest if h(i) not already present

– Total time O(log 1/ + log m) worst case

Page 62: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms64

Range Efficiency

Sometimes input is specified as a stream of ranges [a,b]– [a,b] means insert all items (a, a+1, a+2 … b)– Trivial solution: just insert each item in the range

Range efficient F0 [Pavan, Tirthapura 05]– Start with an alg for F0 based on pairwise hash functions

– Key problem: track which items hash into a certain range– Dives into hash fns to divide and conquer for ranges

Range efficient F2 [Calderbank et al. 05, Rusu,Dobra 06]– Start with sketches for F2 which sum hash values

– Design new hash functions so that range sums are fast

Page 63: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms65

F0 Exercises

Suppose the stream consists of a sequence of insertions and deletions. Design an algorithm to approximate F0 of the current set.– What happens when some frequencies are negative?

Give an algorithm to find F0 of the most recent W arrivals

Use F0 algorithms to approximate Max-dominance: given a stream of pairs (i,x(i)), approximate i max(i, x(i)) x(i)

Page 64: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms66

Frequency Moments

Introduction to Frequency Moments and Sketches Count-Min sketch for Fand frequent items

AMS Sketch for F2

Estimating F0

Extensions: – Higher frequency moments– Combined frequency moments

Page 65: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms67

Higher Frequency Moments

Fk for k>2. Use sampling trick as with Entropy [Alon et al 96]:– Uniformly pick an item from the stream length 1…n– Set r = how many times that item appears subsequently

– Set estimate F’k = n(rk – (r-1)k)

E[F’k]=1/n*n*[ f1k - (f1-1)k + (f1-1)k - (f1-2)k + … + 1k-0k]+…

= f1k + f2

k + … = Fk

Var[F’k]1/n*n2*[(f1k-(f1-1)k)2 + …]

– Use various bounds to bound the variance by k m1-1/k Fk2

– Repeat k m1-1/k times in parallel to reduce variance Total space needed is O(k m1-1/k) machine words

Page 66: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms68

Improvements

[Coppersmith and Kumar ‘04]: Generalize the F2 approach

– E.g. For F3, set p=1/m, and hash items onto {1-1/p, -1/p} with probability {1/p, 1-1/p} respectively.

– Compute cube of sum of the hash values of the stream

– Correct in expectation, bound variance O(mF32)

[Indyk, Woodruff ‘05, Bhuvangiri et al. ‘06]: Optimal solutions by extracting different frequencies– Use hashing to sample subsets of items and fi’s

– Combine these to build the correct estimator

– Cost is O(m1-2/k poly-log(m,n,1/)) space

Page 67: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms69

Combined Frequency Moments

Want to focus on number of distinct communication pairs, not size of communication

So want to compute moments of F0 values...

Consider network traffic data: defines a communication graph

eg edge: (source, destination)

or edge: (source:port, dest:port)

Defines a (directed) multigraph

We are interested in the underlying (support) graph on n nodes

Page 68: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms70

Multigraph Problems

Let G[i,j] = 1 if (i,j) appears in stream:edge from i to j. Total of m distinct edges

Let di = j=1n G[i,j] : degree of node i

Find aggregates of di’s:

– Estimate heavy di’s (people who talk to many)

– Estimate frequency moments:number of distinct di values, sum of squares

– Range sums of di’s (subnet traffic)

Page 69: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms71

F (F0) using CM-FM

Find i’s such that di > i di

Finds the people that talk to many others Count-Min sketch only uses additions, so can apply:

Page 70: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms72

Accuracy for F(F0)

Focus on point query accuracy: estimate di. Can prove estimate has only small bias in expectation

– Analysis is similar to original CM sketch analysis, but now have to take account of F0 estimation of counts

Gives an bound of O(1/3 poly-log(n)) space:– The product of the size of the sketches

Remains to fully understand other combinations of frequency moments, eg. F2(F0), F2(F2) etc.

Page 71: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms73

Exercises / Problems

1. (Research problem) What can be computed for other combinations of frequency moments, e.g. F2 of F2 values, etc.?

2. The F2 algorithm uses the fact that +1/-1 values square to preserve F2 but are 0 in expectation. Why won’t it work to estimate F4 with h {-1, +1, -i, +i}?

3. (Research problem) Read, understand and simplify analysis for optimal Fk estimation algorithms

4. Take the sampling Fk algorithm and combine it with F0 estimators to approximate Fk of node degrees

5. Why can’t we use the sketch approach for F2 of node degrees? Show there the analysis breaks down

Page 72: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms74

Frequency Moments

Introduction to Frequency Moments and Sketches Count-Min sketch for Fand frequent items

AMS Sketch for F2

Estimating F0

Extensions: – Higher frequency moments– Combined frequency moments

Page 73: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms Lower Bounds

Graham Cormode [email protected]

Page 74: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms76

Streaming Lower Bounds

Lower bounds for data streams– Communication complexity bounds– Simple reductions– Hardness of Gap-Hamming problem– Reductions to Gap-Hamming

1 0 1 1 1 0 1 0 1 …

Alice

Bob

Page 75: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms77

This Time: Lower Bounds

So far, have seen many examples of things we can do with a streaming algorithm

What about things we can’t do? What’s the best we could achieve for things we can do? Will show some simple lower bounds for data streams

based on communication complexity

Page 76: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms78

Streaming As Communication

Imagine Alice processing a stream Then take the whole working memory, and send to Bob Bob continues processing the remainder of the stream

1 0 1 1 1 0 1 0 1 …

Alice

Bob

Page 77: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms79

Streaming As Communication

Suppose Alice’s part of the stream corresponds to string x, and Bob’s part corresponds to string y...

...and that computing the function on the stream corresponds to computing f(x,y)...

...then if f(x,y) has communication complexity (g(n)), then the streaming computation has a space lower bound of (g(n))

Proof by contradiction: If there was an algorithm with better space usage, we could run it on x, then send the memory contents as a message, and hence solve the communication problem

Page 78: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms80

Deterministic Equality Testing

Alice has string x, Bob has string y, want to test if x=y Consider a deterministic (one-round, one-way) protocol

that sends a message of length m < n There are 2m possible messages, so some strings must

generate the same message: this would cause error So a deterministic message (sketch) must be (n) bits

– In contrast, we saw a randomized sketch of size O(log n)

1 0 1 1 1 0 1 0 1 …

1 0 1 1 0 0 1 0 1 …

Page 79: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms81

Hard Communication Problems

INDEX: x is a binary string of length ny is an index in [n]Goal: output x[y]Result: (one-way) (randomized) communication complexity of INDEX is (n) bits

DISJOINTNESS: x and y are both length n binary strings Goal: Output 1 if i: x[i]=y[i]=1, else 0Result: (multi-round) (randomized) communication complexity of DISJOINTNESS is (n) bits

Page 80: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms82

Simple Reduction to Disjointness

F: output the highest frequency in a stream Input: the two strings x and y from disjointness Stream: if x[i]=1, then put i in stream; then same for y Analysis: if F=2, then intersection; if F1, then disjoint.

Conclusion: Giving exact answer to F requires (N) bits– Even approximating up to 50% error is hard– Even with randomization: DISJ bound allows randomness

x: 1 0 1 1 0 1

y: 0 0 0 1 1 0

1, 3, 4, 6

4, 5

Page 81: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms83

Simple Reduction to Index

F: output the number of items in the stream Input: the strings x and index y from INDEX Stream: if x[i]=1, put i in stream; then put y in stream Analysis: if (1-)F’0(xy)>(1+)F’0(x) then x[y]=1, else it is 0

Conclusion: Approximating F0 for <1/N requires (N) bits– Implies that space to approximate must be (1/)– Bound allows randomization

x: 1 0 1 1 0 1

y: 5

1, 3, 4, 6

5

Page 82: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms84

Hardness Reduction Exercises

Use reductions to DISJ or INDEX to show the hardness of:

1. Frequent items: find all items in the stream whose frequency > N, for some .

2. Sliding window: given a stream of binary (0/1) values, compute the sum of the last N values– Can this be approximated instead?

3. Min-dominance: given a stream of pairs (i,x(i)), approximate i min(i, x(i)) x(i)

4. Rank sum: Given a stream of (x,y) pairs and query (p,q) specified after stream, approximate |{(x,y)| x<p, y<q}|

Page 83: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms85

Streaming Lower Bounds

Lower bounds for data streams– Communication complexity bounds– Simple reductions– Hardness of Gap-Hamming problem– Reductions to Gap-Hamming

1 0 1 1 1 0 1 0 1 …

Alice

Bob

Page 84: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms86

Gap Hamming

GAP-HAMM communication problem: Alice holds x {0,1}N, Bob holds y {0,1}N

Promise: H(x,y) is either N/2 - pN or N/2 + pN Which is the case? Model: one message from Alice to Bob

Requires (N) bits of one-way randomized communication [Indyk, Woodruff’03, Woodruff’04, Jayram, Kumar, Sivakumar ’07]

Page 85: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms87

Hardness of Gap Hamming

Reduction to an instance of INDEX Map string x to u by 1 +1, 0 -1 (i.e. u[i] = 2x[i] -1 ) Assume both Alice and Bob have access to public

random strings rj, where each bit of rj is iid {-1, +1} Assume w.l.o.g. that length of string n is odd (important!) Alice computes aj = sign(rj u)

Bob computes bj = sign(rj[y]) Repeat N times with different random strings, and

consider the Hamming distance of a1... aN with b1 ... bN

Page 86: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms88

Probability of a Hamming Error

Consider the pair aj= sign(rj u), bj = sign(rj[y])

Let w = i y u[i] rj[i]

– w is a sum of (n-1) values distributed iid uniform {-1,+1} Case 1: w 0. So |w| 2, since (n-1) is even

– so sign(aj) = sign(w), independent of x[y]

– Then Pr[aj bj] = Pr[sign(w) sign(rj[y]) = ½

Case 2: w = 0. So aj = sign(rju) = sign(w + u[y]rj[y]) = sign(u[y]rj[y])

– Then Pr[aj bj] = Pr[sign(u[y]rj[y]) = sign(rj[y])]

– This probability is 1 is u[y]=+1, 0 if u[y]=-1– Completely biased by the answer to INDEX

Page 87: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms89

Finishing the Reduction

So what is Pr[w=0]?– w is sum of (n-1) iid uniform {-1,+1} values– Textbook: Pr[w=0] = c/n, for some constant c

Do some probability manipulation:– Pr[aj = bj] = ½ + c/2n if x[y]=1

– Pr[aj = bj] = ½ - c/2n if x[y]=0

Amplify this bias by making strings of length N=4n/c2

– Apply Chernoff bound on N instances – With prob>2/3, either H(a,b)>N/2 + N or H(a,b)<N/2 - N

If we could solve GAP-HAMMING, could solve INDEX– Therefore, need (N) = (n) bits for GAP-HAMMING

Page 88: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms90

Streaming Lower Bounds

Lower bounds for data streams– Communication complexity bounds– Simple reductions– Hardness of Gap-Hamming problem– Reductions to Gap-Hamming

1 0 1 1 1 0 1 0 1 …

Alice

Bob

Page 89: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms91

Lower Bound for Entropy

Alice: x {0,1}N, Bob: y {0,1}N

Entropy estimation algorithm A Alice runs A on enc(x) = (1,x1), (2,x2), …, (N,xN) Alice sends over memory contents to Bob Bob continues A on enc(y) = (1,y1), (2,y2), …, (N,yN)

010011

(6,0)(5,1)(4,0)(3,0)(2,1)(1,1)Bob

(6,1)(5,1)(4,0)(3,0)(2,1)(1,0)

110010Alice

Page 90: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms92

Lower Bound for Entropy

Observe: there are– 2H(x,y) tokens with frequency 1 each– N-H(x,y) tokens with frequency 2 each

So, H(S) = log N + H(x,y)/N Thus size of Alice’s memory contents = (N).

Set = 1/(p(N) log N) to show bound of (/log 1/)-2)

010011

(6,0)(5,1)(4,0)(3,0)(2,1)(1,1)Bob

(6,1)(5,1)(4,0)(3,0)(2,1)(1,0)

110010Alice

Page 91: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms93

Lower Bound for F0

Same encoding works for F0 (Distinct Elements)– 2H(x,y) tokens with frequency 1 each– N-H(x,y) tokens with frequency 2 each

F0(S) = N + H(x,y) Either H(x,y)>N/2 + N or H(x,y)<N/2 - N

– If we could approximate F0 with < 1/N, could separate

– But space bound = (N) = (-2) bits

Dependence on for F0 is tight

Similar arguments show (-2) bounds for Fk, – Proof assumes k (and hence 2k) are constants

Page 92: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms94

Lower Bounds Exercises

1. Formally argue the space lower bound for F2 via Gap-Hamming

2. Argue space lower bounds for Fk via Gap-Hamming

3. (Research problem) Extend lower bounds for the case when the order of the stream is random or near-random

4. (Research problem) Kumar conjectures the multi-round communication complexity of Gap-Hamming is (n) – this would give lower bounds for multi-pass streaming

Page 93: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms95

Streaming Lower Bounds

Lower bounds for data streams– Communication complexity bounds– Simple reductions– Hardness of Gap-Hamming problem– Reductions to Gap-Hamming

1 0 1 1 1 0 1 0 1 …

Alice

Bob

Page 94: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms Extensions and Open Problems

Graham Cormode [email protected]

Page 95: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms97

This Time: Extensions

Have given “the basics” of streaming: streams of items, frequency moments, upper and lower bounds

Many variations with many open problems– Streams representing different combinatorial objects– Streams that are distributed, correlated, uncertain– Systems for processing streams– Different models of streams

See also “Open problems in Data Streams” [McGregor ’07]– Result of a workshop held at IIT Kanpur in Dec 2006

Page 96: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms98

Deterministic Streaming Algorithms

Focus so far has been on randomized algorithms Many important problems can be solved deterministically!

– Finding frequent items/ heavy hitters– Finding quantiles of a distribution

For many problems, lower bounds show randomization is necessary for sublinear space:– Anything involving equality testing as a special case– Frequency moments

When they are possible, deterministic algorithms are often faster and use less space: more practical to implement

Page 97: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms99

Clustering On Data Streams

Goal: output k cluster centers at end - any point can be classified using these centers.

Use divide and conquer approach [Guha et al. ’00]:– Buffer as many points as possible, then cluster them– Cluster the clusters– Cluster the cluster clusters, etc...– Each level of clustering gives up extra factors in quality

Input: Output:

Page 98: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms100

Geometric Streaming

Stream specifies a sequence of d-dimensional points Answer various geometric problems such as:

– Convex hull– Minimum spanning tree weight– Facility location– Minimum enclosing ball

Gridding approach reduces to Fk or related problems [Indyk ’03]

Core-set: keep a carefully chosen small subset of points and evaluate on them [Har-Peled 02, Chan’06]– Simple example: For minimum enclosing ball, keep

extremal points in evenly-space directions

Page 99: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms101

Sliding Window Computations

In a sliding window, we only consider the last W items– W still very large, so want poly-log(W) solutions

Exponential Histograms [Datar et al.02] and Waves [Gibbons Tirthapura’02]– Deterministic structure tracks counts in a window– Based on doubling bucket sizes to give relative error– Same structure + sketches solves for aggregates

Asynchronous streams: items not in timestamp order– Relative error counts possible [Busch, Tirthapura ’07]– Extend concept to other aggregates [C. et al. ’08]

Page 100: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms102

Time Decay

Assign a weight to each item as a function of its age– E.g. Exponential decay or polynomial decay– Implies “weighted” versions of problems

Cohen and Strauss [2003]: – Can reduce sum and counts to multiple

instances of sliding window queries C., Korn and Tirthapura [2008]:

– Same observations applies to othercomputations (quantiles, frequent items)

age

Page 101: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms103

Multi-Pass Algorithms

Some situations allow multiple passes of the stream– E.g. scanning over slow storage (tape):

random access not possible, but can scan multiple times Earliest work in streaming [Munro, Paterson ’78] studied the

pass/space tradeoff for finding medians Lower bounds can follow from multi-round

communication complexity bounds

1 0 1 1 1 0 1 0 1 …

Page 102: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms104

Other Massive Data Models

Massive Unordered Data (MUD) model [Feldman et al. ‘08] – Abstracts computations in MapReduce/Hadoop settings– Can provably simulate deterministic streaming algs– What about randomized computations, multiple passes?

Page 103: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms105

Skewed Streams

In practice, not all frequency distributions are worst case– Few items are frequent, then a long tail of infrequent items– Such skew is prevalent in network data, word frequency,

paper citations, city sizes, etc.– “Zipfian” distribution with skew z > 0 (z = [1..2] typical)

Analyze algorithms under assumption of skewed data– Improved F2 space cost = O(-2/(1+z) log 1/), provided z>1

items sorted by frequency

freq

uen

cy

log rank

log

freq

uenc

y

Page 104: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms106

Graph Streaming

Stream specifies a massive graph edge by edge– Most natural problems have (|V|) space lower bounds– Semi-streaming model: allow (|V|) but o(|E|) space

Therefore also o(|V|2) space also Allow one (or few) passes to approximate:

– Minimum Spanning Tree Weight– Graph Distances (based on spanners)– Maximum weight matching– Counting Triangles

(4,5) (2,3) (1,3) (3,5) (1,2) (2,4) (1,5) (3,4)1

2

3

4

5

Page 105: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms107

Matrix Streaming

Stream specifies a massive n n matrix– Either by giving entries in some

order, or updates to entries In one (or few) passes, find:

– CUR Decomposition– Page Rank Vector– Approximate Matrix product– Singular Vector Decomposition

Current methods take small constant number of passes, sample constant number of rows and columns by weight– Sketching methods don’t seem so useful here

( )( )( )=( )A C U R

O(1) Columns O(1) Rows

Carefully chosen U

Page 106: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms108

Permutation Streaming

Stream presents a permutation of items– Abstraction of several settings, more of theoretic interest

Approximate number of inversions in the stream– Locations where i > j but i appears before j in stream– Can be reduced to a variation of quantiles [Gupta, Zane’03]

Find length of longest increasing subsequence– Reduce (up to factor 2) to simpler function [Ergun, Jowhari ’08]– Approximate this using a different variation of quantiles– Deterministic lower bound (N1/2), randomized bound open

1 3 4 2 3 4 1 2

Page 107: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms109

Random Order Streaming

Lower bounds are sometimes based on carefully creating adversarial orders of streams

Random order streams: order is uniformly permuted– Can sometimes give much better upper bounds– prefix of

stream gives a good sample of dbn. to come– Lower bounds in random order give stronger evidence of

“robust” hardness, e.g. [Chakrabarti et al. ’08]– Hardness via communication complexity of random partitions

GAP-HAMMING still has linear lower bound t2-party DISJOINTNESS has (n/t) lower bound

Page 108: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms110

Probabilistic Streams

Instead of exact values, stream of discrete distributions– Specify exponentially many possible worlds

Adds complexity to previously studied problems– Sum and Count are easy (by linearity of expectation)– Avg=Sum/Count is hard! –because of ratio [McGregor et al. ’07]

Linearity of expectation, summation of variance– Allows estimation of Fk over streams [C, Garofalakis ’07]

Example: S = (x, ½, y, 1/3, y, ¼) Encodes 6 “possible worlds”:

G x y x,y y,y x,y,y

Pr[G] ¼ ¼ 5/24 5/24 1/24 1/24

Page 109: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms111

Distributed Streams

Motivated by Sensor Networks – large wireless nets– Communication drains battery: compute more, send less

Key problem: design stream summary data structures that can be combined to summarize the union of streams– Most sketches (AMS, Count-Min, F0) naturally distribute

– Similar results needed for other problems

base station(root, coordinator…)

http

://ww

w.in

tel.c

om/re

sear

ch/e

xplo

rato

ry/m

otes

.htm

Page 110: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms112

Continuous Distributed Model

Goal:: Continuously track (global) query over streams at the coordinator while bounding the communication– Large-scale network-event monitoring, real-time anomaly/

DDoS attack detection, power grid monitoring, …

Results known for quantiles, Fk, clustering...– Cost not much higher than one time computation [C et al. 08]

Coordinator

m sites

local stream(s) seen at each

site

S1 Sm

Track Q(S1,…,Sm)

Page 111: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms113

Extensions for P2P Networks

Much work focused on specifics of sensor and wired nets P2P and Grid computing present alternate models

– Structure of multi-hop overlay networks– “Controlled failure” model: nodes explicitly leave and join

Allows us to think beyond model of “highly resource constrained” sensors.

Implementations such as OpenDHT over PlanetLab [Rhea et al.’05]

Page 112: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms114

Authenticated Stream Aggregation

Wide-area query processing

– Possible malicious aggregators

– Can suppress or add spurious

information

Authenticate query results at the

querier?

– Perhaps, to within some

approximation error

Initial steps in [Garofalakis et al.’06], Sliding window: [Hadjieleftheriou et al. ’07]

Page 113: Data Stream Algorithms Intro, Sampling, Entropy Graham Cormode graham@research.att.com

Data Stream Algorithms115

Data Stream Algorithms

Slides are on the web on my website Long list of references also on the web http://dimacs.rutgers.edu/~graham