On Sampling from Massive Graph Streams
Nesreen K. Ahmed

Nick Duffield

arXiv:1703.02625v1 [cs.SI] 7 Mar 2017

Intel Labs
Texas A&M University
nesreen.k.ahmed@intel.com duffieldng@tamu.edu

ABSTRACT

Ryan A. Rossi

Intel Labs
ted.willke@intel.com

Palo Alto Research Center
ryan.rossi@parc.com

book, Twitter, Youtube, Flickr). Graphs (networks) arise as a natural data representation in many of these application domains, where
the nodes represent individuals (or entities) and the edges represent
the interaction, communication, or connectivity among them.
These resulting interaction and activity networks carry a wealth
of behavioral, community, and relationship information. Modeling and analyzing these massive and dynamic interaction graphs
have become important in various domains. For example, detecting computer/terrorist attacks and anomalous behavior in computer
networks and social media [8, 1], identifying the behavior and interests of users in online social networks (e.g., viral marketing, online
advertising) [25, 41], monitoring and detecting virus outbreaks in
human contact networks [26], among many others. But the volume
and velocity of these graphs outpaces practitioners’ ability to analyze and extract knowledge from them. As a result, a common
practice is to analyze static windowed snapshots of these graphs
over time. However, this is costly and inefficient both in terms of
storage volumes, and management for future use.
To keep up with the growing pace of this data, we need efficient
methods to analyze dynamic interaction networks as the data arrives in streams, rather than static snapshots of graphs. In various
application domains, graph mining is rapidly shifting from mining static graph snapshots to mining an open-ended graph stream
of edges representing node interactions. We would like to have a
framework capable of operating continuously and efficiently, processing edges/links as they arrive and providing timely answers for
various network analysis tasks. This motivates the streaming graph
model in which the graph is presented as a stream of edges/links in
any arbitrary order, where each edge can be processed only once,
and any computation uses a small memory footprint (i.e., often sublinear in the size of the input stream) [29, 28, 5].
While studying dynamic interaction networks is important, other
applications require efficient methods for the analysis of static graphs
that are too large to fit in memory [35, 29]. In these cases traditional graph methods are not appropriate as they require random
disk accesses that incur large I/O costs. This naturally leads to the
question: how can we process massive static graphs sequentially
(one edge at a time). The streaming graph model would provide
an ideal framework for both massive static and dynamic graphs. It
would also apply to the case of graph data that is stored as a list
of edges streaming from storage. Thus, any algorithm designed to
process graph streams is also applicable for static graphs [5].
Despite the recent advances in high-performance graph analysis
tools and the availability of computational resources on the cloud,
running brute-force graph analytics is usually too costly, too inefficient, and too slow in practical scenarios. In many cases, the cost of
performing the exact computation is often not worth the extra accuracy. While an approximate answer to a query or an analysis task

We propose Graph Priority Sampling (GPS), a new paradigm for
order–based reservoir sampling from massive streams of graph edges.
GPS provides a general way to weight edge sampling according to
auxiliary and/or size variables so as to accomplish various estimation goals of graph properties. In the context of subgraph counting, we show how edge sampling weights can be chosen so as to
minimize the estimation variance of counts of specified sets of subgraphs. In distinction with many prior graph sampling schemes,
GPS separates the functions of edge sampling and subgraph estimation. We propose two estimation frameworks: (1) Post-Stream
estimation, to allow GPS to construct a reference sample of edges
to support retrospective graph queries, and (2) In-Stream estimation, to allow GPS to obtain lower variance estimates by incrementally updating the subgraph count estimates during stream processing. Unbiasedness of subgraph estimators is established through a
new Martingale formulation of graph stream order sampling, which
shows that subgraph estimators, written as a product of constituent
edge estimators are unbiased, even when computed at different
points in the stream. The separation of estimation and sampling
enables significant resource savings relative to previous work. We
illustrate our framework with applications to triangle and wedge
counting. We perform a large-scale experimental study on realworld graphs from various domains and types. GPS achieves high
accuracy with < 1% error for triangle and wedge counting, while
storing a small fraction of the graph with average update times of a
few microseconds per edge. Notably, for a large Twitter graph with
more than 260M edges, GPS accurately estimates triangle counts
with < 1% error, while storing only 40K edges.

1.

Theodore L. Willke

INTRODUCTION

The rapid growth of the Internet and the explosion in online social media has led to a data deluge. A growing set of online applications are continuously generating data at unprecedented rates
– these range from the Internet of things (e.g., connected devices,
routers), electronic communication (e.g., email, groups, IMs, SMS),
social media (e.g., blogs, web pages), to the vast collection of online social networks and content sharing applications (e.g., Face-

1

items from a stream of N > n items [24, 38]. The sample set
is maintained incrementally over the stream, and can be used at
any point in the stream to estimate the stream properties up to that
point. In general, items have associated weight variables wi that
determine non-uniform item inclusion probabilities pi . Our graph
priority sampling uses the reservoir sampling framework, to collect
fixed-size weighted random sample from an input stream of edges
using a single pass over the stream.

is usually sufficient, in particular when the approximation is performed with sufficient high-quality, unbiasedness, and confidence
guarantees.
Sampling provides an attractive approach to quickly and efficiently find an approximate answer to a query, or more generally,
any analysis objective. While previous work on sampling from
graph streams focused on sampling schemes for the estimation of
certain graph properties (i.e., in particular triangles) [23, 30, 10], in
this paper however, we focus on an adaptive general purpose framework for sampling from graph streams. From a high-volume stream
of edges, the proposed framework maintains a generic sample of
limited size that can be used at any time to accurately estimate the
total weight of arbitrary graph subsets (i.e., triangles, cliques, stars,
subgraph with particular attributes). In order to obtain an accurate estimation of various graph properties, we need to maintain a
weight sensitive sample that can devote sampling resources to edges
that are informative for those properties.
In addition, we want a sampling scheme that is capable of utilizing auxiliary information about the items in the stream. Most
of the previous work on stream sampling is either hard to adapt to
various estimation objectives, focused on specific graph properties,
or incapable of utilizing auxiliary information.

Probability Proportional to Size Sampling. In many real-world
applications, an auxiliary variable (also known as a size or weight)
is observed for each data item. Auxiliary variables correlated with
the population variable under study can be used as weights for nonuniform sampling. In probability proportional to size sampling
(PPS) the inclusion probability pi is proportional to the size (or
weight) wi . Variants of this scheme have been designed to fulfill
different estimation goals [37]. Inclusion Probability Proportional
to Size (IPPS) is variance minimizing for a given average sample
size. It has marginal inclusion probabilities pi = min{1, wi /τ },
so that all items of weight wi below the threshold τ are sampled
PPS, while larger items are always sampled [17]. Selected weights
are assigned a Horvitz-Thompson [22] inverse probability unbiased
estimator w
bi = wi /pi = max{wi , z} if wi is selected, and implicitly 0 otherwise. This property inspires the sampling weights used
in our edge sampling scheme, which minimize the incremental estimation variance in the graph properties under study.

Contributions. The main contributions of this paper are as follows.
• Framework. We propose graph priority sampling (GPS), the
first adaptive, general purpose, weight sensitive, one-pass, fixedsize without replacement sampling framework for massive graph
streams. GPS provides a general way to weight edge edge sampling according to auxiliary/size variables to estimate various
graph properties (Sec 3). We discuss antecedents to our approach
in Sec 2.
• Theoretical Analysis. We provide a new Martingale formulation for subgraph count estimation, and show how to compute
unbiased estimates of arbitrary subgraph counts from the sample at any point during the stream; we call this Post-Stream Estimation, which can be used to construct reference samples for
retrospective graph queries (Sec 3).
• In-Stream Estimation. We provide a second framework for
In-stream Estimation in which subgraph count estimates are incrementally updated during stream processing rather than computed at a selected point, which can be used to obtain accurate
estimates with lower variance (Sec 5).
• Algorithms. We provide efficient/parallel algorithms for triangle and wedge count estimation using GPS (Sec 4– 5).
• Accuracy. We test our framework on graphs from various domains and types. Our estimates are accurate with ≤ 1% error.
Notably, for a large Twiiter graph with more than 260M edges,
GPS obtains an accurate estimate of triangle counts with < 1%
error, while storing only 40K edges (Sec 6).
• Real-time Tracking. The proposed framework can maintain
accurate real-time estimates while the stream is evolving (Sec 6).
We survey related work in Section 7 before concluding in Section 8.
Proofs of the Theorems are deferred to Section 9.

2.

Order Sampling. In order (or rank-based) sampling, selection depends on random order variables generated for each item, a sample
of size m comprising the m items of highest order. The distribution of the order variables is chosen to fulfill different weighted
sampling objectives, including PPS sampling and Weighted Sampling without Replacement [31, 19, 13]. Priority Sampling [18] is
a PPS scheme in which an item of weight wi is assigned a priority
wi /ui , where the ui are IID uniform on (0, 1]. A priority sample of
size n consists of the n items of highest priority, and each selected
item is assigned an unbiased estimator w
bi = max{wi , z} of wi ,
where z is the (n + 1)st highest priority. Thus priority sampling
resembles IPPS sampling with a random threshold.
Most of the above methods are suitable mainly for sampling IID
data (e.g., streams of database transactions, IP network packets).
In this paper, however, we are dealing with graph data, that exhibit both structure and attributes. A few of the methods discussed
above have been extended to graph streams, in particular uniformbased reservoir sampling (see in Section 7). Graph priority sampling generalizes most of the above sampling schemes, and obtains
an adaptive, weight sensitive, general purpose, fixed-size sample
in one-pass, while including auxiliary/size variables representing
topology information that we wish to estimate.

3. GRAPH PRIORITY SAMPLING
This section establishes a methodological framework for graph
stream priority sampling. Section 3.1 sets up our notation and states
our estimation goals. Section 3.2 specifies the Graph Priority Sampling algorithm and states the properties that we will establish for
it. Section 3.3 established unbiasedness for our subgraph estimators, while Section 3.4 gives unbiased estimates for the variance of
these estimators. Section 3.5 shows how to choose sampling weight
to minimize estimation variance for target subgraphs.

ANTECEDENTS TO OUR WORK

In this section, we highlight how our proposed framework generalizes many of the known sampling schemes. We discuss general
statistical sampling schemes (reservoir sampling, probability proportional to size, order sampling), and highlight how graph priority
sampling exploits the properties of these schemes.

3.1 Proposed Framework
Notation and Problem Definition. Let G = (V, K) be a graph
with no self loops, where V is the set of nodes, and K is the set
of edges. For any node v ∈ V , let Γ(v) be the set of neighbors

Reservoir Sampling. Reservoir sampling is a class of single-pass
sampling schemes to sample a fixed number n (possibly weighted)
2

of node v and so deg(v) = |Γ(v)| is the degree of v. We call two
edges k, k′ ∈ K adjacent, k ∼ k′ , if they join at some node,
i.e., k ∩ k′ 6= ∅ [3]. In this paper, we are principally concerned
with estimating the frequency of occurrence of certain subgraphs
of G. Our proposed graph stream model comprises an input graph
G = (V, K) whose edges arrive for sampling in any arbitrary order [3]. We assume edges are unique and so we can identify each
edge in K with its arrival order in [|K|] = {1, 2, . . . , |K|}. Due to
the identity between edges and arrival order we will use the notation J ⊂ K and J ⊂ [|K|] interchangeably. Thus, we can
uniquely identify a subgraph J ∈ J with the corresponding ordered subset of edges J ⊂ [|K|], written as an ordered subset,
J = (i1 , i2 , ..., iℓ ) with i1 < i2 < ... < iℓ being the arrival order.
Thus, J ⊂ [t] if all the edges in J have arrived by time t.
We use the general notation J to denote the set of all subgraphs
of G whose count N (J ) = |J | we wish to estimate. As special
cases, △ will denote the set of triangles and Λ the set of wedges
(paths of length 2) in G, Let α = 3 · N (△)/N (Λ) denote the
global clustering coefficient of G. For a set of subgraphs J we
shall use the notation Jt = {J ∈ J : J ⊂ [t]} to denote those
members J of J all of whose edges have arrived by time t, The
number of these is denoted Nt (J ) = |Jt |

Algorithm 1 Family of Graph Priority Sampling Algorithms
procedure GPS(m)
b ← ∅; z ∗ ← 0
K
3
while new edge k do
4
GPS UPDATE(k, m)
b
5
GPS NORMALIZE(K)
1

2

6
7
8
9
10
11
12
13
14

procedure GPS UPDATE(k, m)
Generate u(k) ∼ U ni(0, 1]
b
w(k) ← W (k, K)
r(k) ← w(k)/u(k)
b ←K
b ∪ {k}
K
b
if |K|>
m then
′
k ∗ ← arg mink′ ∈K
b r(k )
z ∗ ← max{z ∗ , r(k ∗ )}
b ←K
b \ {k ∗ }
K

b
procedure GPS NORMALIZE(K)
b do
for k ′ ∈ K
17
p(k ′ ) ← min{1, w(k ′ )/z ∗ }

⊲ Priority of edge k
⊲ Provisionally include edge k
⊲ Lowest priority edge
⊲ New threshold
⊲ Remove lowest priority edge

15

16

⊲ HT Renormalize

Implementation and data structure. We implement the priority
queue as a min-heap [14], where each edge has a priority less than
or equal to its children in the heap, and the root position points to
the edge with the lowest priority. Thus, access to the lowest priority edge is performed in O(1). If edge k has a higher priority
than the root, edge k is initially inserted at the root position, then
moved downward to its correct position in the heap in O(log m)
time (worst case). Note that if the sample size is less than the reserb
voir capacity, i.e., |K|<
m, edge k is inserted in the next available
position in the heap, then moved upward to its correct position in
the heap in O(log m) time (worst case). The threshold z ∗ is the
(m + 1)st highest priority (see Line 13). To simplify the analysis,
we provisionally admit a new edge k to the reservoir, then one of
the m + 1 edges is discarded if it has the lowest priority. Finally, at
any time in the stream, we can call the procedure GPS NORMALIZE
to obtain the edge sampling probabilities. As shown in the proof of
Theorem 1, p(k′ ) = min{1, w(k′ )/z ∗ } (see Lines 16–17) is the
conditional sampling probability for k′ given z ∗ ; hence 1/p(k′ )
forms the Horvitz-Thompson estimator for the indicator of k′ . The
proposed framework GPS naturally leads to a family of sampling
algorithms that can be tuned for various graph sampling/analysis
b = 1 for every k, Alobjectives. For example, if we set W (k, K)
gorithm 1 leads to uniform sampling as in the standard reservoir
sampling (see [38]).

Algorithm and Intuition. The basic outline and intuition of the
proposed framework comprises of two steps. In the first step, we
b t ⊂ [t] from the set of all edges
select a small sample of edges K
b t | is the reservoir capacity. The
arriving by time t, with m = |K
second step allows us to estimate the count of general subgraphs
in G regardless of whether they were all sampled. We define the
subset indicator of a subset of edges J ⊂ [|K|] by the function,

1, J ⊂ [t]
SJ,t =
(1)
0, otherwise
Thus, SJ,t = 1 if and only if all the edges in J have arrived
P by time
t. In the above notation Sj,t = Nt ({j}) and Nt (J ) = J ∈J SJ,t
is the count of all members of J (i.e., subgraphs J ∈ J ) whose
edges have all arrived by time t. Our goal is to estimate Nt (J )
b t ⊂ [t].
from a selected sample of edges K

3.2 Algorithm Description & Properties

We formally state our main algorithm GPS(m) for Graph Prib of capacity m in Algorithm 1.
ority Sampling into a reservoir K
The main algorithm GPS(m) (see Algorithm 1) maintains a dyb of size m from a graph whose edges
namic reservoir/sample K
are streaming over time. When a new edge k arrives (Line 3),
we call the procedure GPS UPDATE. We assume a weight function
b that expresses the sampling weight for edge k as a funcW (k, K)
b (Line 8). For
tion of both k and the topology of the reservoir K
b
example, W (k, K) could be set to the number of sampled edges
b completed by k. In
adjacent to k, or the number of triangles in K
b can be set to include topology, atgeneral, the function W (k, K)
tributes, and/or any auxiliary information in the graph. Once the
b is computed, we assign edge k a priweight w(k) = W (k, K)
ority r(k) = w(k)/u(k) (Line 9), where u(k) is an independent
uniformly generated random number (Line 7). GPS maintains a prib is associated with
ority queue where each edge in the reservoir K
a priority (computed at arrival time) that defines its position in the
heap. When a new edge k arrives in the stream (and if the reservoir
is full, see Lines 11–14), its priority is computed and compared
with the lowest priority edge in the queue. If edge k has a lower
priority, then it is discarded. If edge k has a higher priority, then
the lowest priority edge is discarded and replaced by edge k.

Algorithm Properties. Graph Priority Sampling demonstrates the
bt
following properties: (S1) Fixed Size Sample. As seen above, K
b
is a reservoir sample of fixed size |Kt |= m for all t ≥ m.

(S2) Unbiased Subgraph Estimation. In Section 3.3 we construct
unbiased subgraph estimators SbJ,t of SJ,t for each subgraph J and
b t . Section 5
t > 0. The SJ,t is computable from the sample sets K
Q
extends our construction to new classes of estimators i∈J Sbi,ti
that are edge products over multiple times. These allow unbiased
estimation of subgraphs in new ways: as they arise in the sample, or
prior to discard, or on arrival of certain edges. These results follow
from a novel Martingale formulation of graph priority sampling.
(S3) Weighted Sampling and Variance Optimization. Graph priority sampling provides a mechanism to tune sampling weights to
the needs of applications. We accomplish this using edge weights
that express the role of an edge in the sampled graph. Examples include the number of edges in the currently sampled graph that are
3

the the corresponding variables) and obeys:
E[Xt |Ft−1 ] = Xt−1

adjacent to an arriving edge, and the number of subgraphs bearing
a given motif that would be created by inclusion of the edge in the
sample. Section 3.5 shows how to choose weights to minimize the
variance of estimated counts of specific target subgraphs. Weights
may also express intrinsic properties that do not depend explicitly on the graph structure. Examples include endpoint node/edge
identities, attributes, and other auxiliary variables, such as user age,
gender, interests, or relationship types in social networks, and bytes
associated with communication links in technological/IP networks.
(S4) Computational Feasibility. For each arriving edge k = (v1 , v2 ),
b of cathe GPS framework calls GPS UPDATE to update reservoir K
pacity m. The processing time for a new arrival comprises of the
b and the cost to update
cost to compute the weight (i.e., W (k, K)
the heap (if the new edge is inserted). We use a binary heap implemented by storing the edges in a standard array and using their
relative positions within that array to represent heap (parent-child)
relationships. The worst case cost of binary heap insertion/deletion
b is problem-specific and deis O(log m). The cost of W (k, K)
pends on the sampling objective and the function that computes the
b
sampling weight for edge k. We use the number of triangles in K
b = |Γ(v
b 1 ) ∩ Γ(v
b 2 )|. This can be
completed by k, i.e., W (k, K)
achieved in O(min{deg(v1 ), deg(v2 )}), if a hash table or a bloom
b 1 ), Γ(v
b 2 ) and looping over the sampled
filter is used for storing Γ(v
neighborhood of the vertex with minimum degree and querying the
hash table of the other vertex. The space requirements of GPS is:
O(|Vb |+m), where |Vb | is the number of nodes in the reservoir, and
m is the reservoir capacity. In general, there is a trade-off between
space and time, and GPS could limit the space to O(m), however,
the cost update per edge would require a pass over the reservoir
(O(m) in the worst case). On the other hand, if we increase the
space to O(|Vb |+m), then we can achieve a sub-linear time for
edge updates.

3.3 A Martingale for Subgraph Counting
b and anaWe now axiomatize the dependence of w on k and K
lyze the statistical properties of estimates based on the sample set.
b t ⊂ [t] denote the
We index edge arrivals by t ∈ N, and let K
set of indices in the sample after arrival t has been processed and
b t−1 ∪ {t} denote the index set after t has been provisionb t′ = K
K
ally included in the sample. Let wt denote the weight assigned to
arrival t and ut be IID uniform on (0, 1]. The priority of arrival t
b t′ is selected if it does not have
is then rt = wt /ut . An edge i ∈ K
′
b
the smallest priority in Kt , i.e., if
(2)
ri > zi,t = min rj

(4)

Martingales provide a framework within which to express unbiased
estimation in nested sequences of random variables.
We express GPS within this framework. For J ⊂ N let zJ,t =
(0)
minj∈Kb ′ \J rj . Let Fi,t denote the σ-algebra generated by the
t
variables {Bj (z{ij},s ) : j 6= i, s ≤ t}, let Fi,t be the σ-algebra
(0)
generated by Fi,t and the variables Zi,t = {zi,s : s ≤ t} and
{Bi (zi,t ), i ≤ s ≤ t}, and let Fi be the filtration {Fi,t : t ≥
i − 1}.
∗
Set zi,t
= maxi≤s≤t zi,s and define

∗
I(Bi (zi,t
))
∗
Ri,t = min{1, wi /zi,t
} and Sbi,t =
Ri,t
for t ≥ i and Sbi,t = 0 for 0 ≤ t < i.

(5)

T HEOREM 1 (E DGE E STIMATION ). Assume wi,t is Fi,t−1 measurable. Then {Sbi,t : t ≥ i} is a Martingale w.r.t. the filtration
Fi , and hence E[Sbi,t ] = Si,t for all t ≥ 0

The measurability condition on wi means that it is determined by
the previous arrivals, including the case that an edge weight depends on the sampled topology that it encounters on arrival.
b t , then (i) ri > zi,t
To compute Sbi we observe that when i ∈ K
and hence zi,t = zt ; and (ii) zi,i > maxs≤i zi,s since otherwise
the minimizing j for zi,i could not have been selected. Hence for
t ≥ i with zt∗ = maxs≤t zs :
bt)
I(i ∈ K
Sbi,t =
(6)
min{1, wi /zt∗ }
Q
It is attractive to posit the product SbJ = i∈J Sbi as a subgraph
estimator J when J ⊂ [t]. While this estimator would be unbiased for independent sampling, the constraint of fixed-size introduces dependence between samples and hence bias of the prodQ
uct. For example, VarOpt sampling [12] obeys only E[ i∈J Sbi ] ≤
Q
b
i∈J E[Si ]. We now show that the edge estimators for Graph Priority Sampling, while dependent, have zero correlation. This is a
consequence of the property, that we now establish, that the edge
product estimator is a Martingale.
Fix a subgraph as J ⊂ N, set Jt = J ∩ [t] and for k ∈ [t] ∩ J c
b t′
define zJ,k,t = maxi∈Kb ′ \(Jt ∪{k}) ri , i.e., the maximal rank in K
t

(0)

apart from k and those in Jt . Let FJ,t denote the conditioning w.r.t
{Bk (zJ,k,s ) : k ∈
/ J, s ≤ t}, and let FJ,t denote conditioning w.r.t
(0)
FJ,s , ZJ,t = {zJ,s : s ≤ t} and {Bi (zJ,s ) : i ∈ J, s ≤ t} and let
FJ denote the corresponding filtration.

T HEOREM 2 (S UBGRAPH
E STIMATION ).
(i) For J ⊂ N
Q
define SJ,t = i∈J Sbi,t . Then {SbJ,t : t ≥ max J} is a
Q
Martingale w.r.t. the filtration FJ and hence E[ i∈J Sbi,t ] =
SJ,t for t ≥ 0.
bt (J ) = P
(ii) For any set J of subgraphs of G, N
Sb
J ∈J
P:J ⊂Kt J,t
is an unbiased estimator of Nt (J ) = |Jt |=
S
J ∈J J,t ,
and the sum can be restricted to those J ∈ J for which
b t , i.e., entirely within the sample set at t.
J ⊂K

b ′ \{i}
j∈K
t

b t′ then ri,t is equal to the unrestricted
When i is selected from K
minimum priority zt = maxj∈Kb ′ rj since the discarded edge takes
t
the minimum. For t < i, zi,t = zt since i has not yet appeared.
Defining Bi (x) = {ri > x}, we write the event that i is in the
sample at time t ≥ i as
b t } = ∩ti=s Bi (zi,s )
{i ∈ K
(3)

We now construct for each edge i a sequence of Edge Estimators Sbi,t that are unbiased estimators of the corresponding edge indicators. We prove unbiasedness by establishing that the sequence
is a Martingale [39]. A sequence of random variables {Xt : t ∈
N} is a Martingale with respect to a filtration F = {Ft : t ∈ N}
of increasing σ-algebra (these can be regarded as variables for conditioning) if each Xt is measurable w.r.t. Ft (i.e. it is function of
4

The proof of Theorem 2(i) mirrors that of
Q Theorem 1, and follows from the fact that the expectation of j∈J Bj (zJ,t ), conditional on FJ,t−1 , is a product over J; we omit the details. Part (ii)
follows by linearity of expectation, and the restriction of the sum
bt.
follows since SbJ,t = 0 unless J ⊂ K

3.4 Variance and Covariance Estimation

4. TRIANGLE & WEDGE COUNTING

Theorem 2 also allows us to establish unbiased estimators for
the variance and covariance amongst subgraph estimators. Conb t . We use the following as an
sider two edge subsets J1 , J2 ⊂ K
estimator of Cov(SbJ1 ,t , SbJ2 ,t ):

In this section we apply the framework of Section 3 to triangle
and wedge counting, and detail the computations involved for the
unbiased subgraph count estimates and their variance estimates.

bJ1 ,J2 ,t = SbJ1 ,t SbJ2 ,t − SbJ \J ,t SbJ \J ,t SbJ1 ∩J2 ,t
C
1
2
2
1


= SbJ1 \J2 ,t SbJ2 \J1 ,t SbJ1 ∩J2 ,t SbJ1 ∩J2 ,t − 1


= SbJ1 ∪J2 ,t SbJ1 ∩J2 ,t − 1

Unbiased Estimation of Triangle/Wedge Counts. From the notation in Sec. 3, let △t denote the set of triangles whose all edges have
b t ⊂△t be the subset of such triangles that
arrived by time t, and △
b
bt (△) is the Horvitz-Thompson
appear in the sample Kt . Then, N
estimator of the count of members (i.e., triangles) in △t . We write
τ ∈△t as a subset (k1 , k2 , k3 ) ordered by edge arrival (i.e., k3 is
the last edge). Similarly, Λt denote the set of wedges whose all
bt (Λ) is the Horvitz-Thompson
edges have arrived by time t. So N
estimator of the count of wedges in Λt , and λ ∈ Λt is written as
an ordered subset (k1 , k2 ) with k2 the last edge. The following are
direct corollaries of Theorem 2:
bt (△) = P
C OROLLARY 1 (T RIANGLE C OUNT ). N
Sbτ,t

(7)

bJ1 ,J2 ,t is an esT HEOREM 3 (C OVARIANCE E STIMATION ). C
b
b
timator of Cov(SJ1 ,t , SJ2 ,t ).
bJ1 ,J2 ,t is an unbiased estimator of Cov(SbJ1 ,t , SbJ2 ,t ).
(i) C

bJ1 ,J2 ,t ≥ 0 and hence Cov(SbJ1 ,t , SbJ2 ,t ) ≥ 0.
(ii) C

bt (Λ) = P
b
C OROLLARY 2 (W EDGE C OUNT ). N
λ∈Λt Sλ,t is
an unbiased estimator of Nt (Λ).
bt (△)/N
bt (Λ) as an estimator for
Additionally, we use α
bt = 3N
the global clustering coefficient αt .
bt (△
Variance Estimation of Triangle/Wedge Counts. Let Var[N
)] denote the variance of the unbiased estimator of triangle count at
bt (Λ)] the variance of the unbiased estimator of
time t, and Var[N
wedge count at time t, given by Corollaries 1 and 2 respectively.
Expressions for unbiased estimates of these variances are direct
corollaries from Theorem 3, which itself follows from Theorem 5.
C OROLLARY 3 (VARIANCE OF T RIANGLE C OUNT ). Vbt (△) is
bt (△)], where
an unbiased estimator of Var[N
X X
X
b
b
bτ,τ ′ ,t
b
Sτ,t (Sτ,t − 1) + 2
C
(9)
Vt (△) =

(iii) SbJ,t (SbJ,t − 1) is an unbiased estimator of Var(SbJ,t ).

bJ1 ,J2 ,t = 0 if and only if SbJ1 ,t = 0 or SbJ2 ,t = 0, or
(iv) C
J1 ∩ J2 = ∅, i.e., covariance estimators are computed only
from edge sets that have been sampled and their intersection
is non-empty.

We do not provide the proof since these results are a special case
of a more general result that we establish in Section 5 product form
graph estimators in which the edges are sampled at different times.

3.5 Optimizing Subgraph Variance
How should the ranks ri,t be distributed in order to minimize
bt (J ) in Theorem 2 ? This
the variance of the unbiased estimator N
is difficult to formulate directly because the variances of the Sbj,t
cannot be computed simply from the candidate edges. Instead, we
minimize the conditional variance of the increment in Nt (J ) incurred by admitting the new edge to the sample:
To be precise:

τ ∈△t τ ′ <τ
τ ′ ∈△t

τ ∈△t

C OROLLARY 4 (VARIANCE OF W EDGE C OUNT ). Vbt (Λ) is an
bt (Λ)], where
unbiased estimator
X of Var[N
X X
bλ,λ′ ,t
Vbt (Λ) =
Sbλ,t (Sbλ,t − 1) + 2
C
(10)

1. For each arriving edge i find the marginal selection probability
bi (J )|Fi,i−1 ).
for i that minimizes the conditional variance Var(N

λ∈Λt λ′ <λ
λ′ ∈Λt

λ∈Λt

2. Edges are priority order sampled using weights that implement
the variance-minimizing selection probabilities.

Our approach is inspired by the cost minimization approach of
b t′ we define N
bi,t (J ) = #{J ∈
IPPS sampling [17]. When i ∈ K
′
b
J : i ∈ J ∧ J ⊂ Kt } i.e., the number of members J of J that are
b t′ and that contain i. Put ansubsets of the set of candidate edges K
bi,t (J ) is the number of members of J that are created
other way, N
b t . Suppose i is sampled with probability p,
by including i within K
conditional on Fi,i−1 . The expected space cost of the sampled
is proportional to p, while the sampling variance associated with
bi,t (J ) is
Horvitz-Thompson estimation of the increment n = N
n2 (1/p − 1). Following [17], we form a composite cost
C(z) = z 2 p + n2 (1/p − 1)
(8)
where z is a coefficient expressing the relative scaling of the two
components in the cost. C(z) is minimized by p = min{1, n/z},
corresponding to IPPS sampling with threshold z and weight n.
By comparison with the relation between threshold sampling and
bi,t (J ) as the weight
priority sampling, this suggests using n = N
for graph stream order sampling. We also add a default weight for
each edge so that an arriving edge k that does not currently intersect
bt (J )) can be sampled.
with the target class (i.e. k 6= J ⊂ N

τ ∈△t

is an unbiased estimator of Nt (△).

Variance Estimation for Global Clustering Coefficient. We use
bt (△)/N
bt (Λ) as an estimate of the global clustering coefα
b = 3N
ficient α = 3N (△)/N (Λ). While this estimate is biased, asymptotic convergence to the true value for large graphs would follow
bt (△) and N
bt (Λ). This motivates using a
form the property for N
Taylor expansion of the estimator, using the asymptotic form of the
well-known delta-method [36] in order to approximate its variance;
see [3] for a similar approach for Graph Sample and Hold. The resulting approximation is:
2
b
b
b
b (△)/N
b (Λ)) ≈ Var(N (△)) + N (△) Var(N (Λ)) (11)
Var(N
2
4
b
b
N (Λ)
N (Λ)
−2

b (△) Cov(N
b (△), N
b (Λ))
N
b (Λ)3
N

b (△), N
b (Λ)) is estiFollowing Theorem 3, the covariance Cov(N


X
mated as
Sbτ ∪λ Sbτ ∩λ − 1
Vb (△, Λ) =
(12)
b
b
τ ∈△,λ∈
Λ
τ ∩λ6=∅

Efficiency. The basic intuition of Algorithm 2 is that the subgraph
estimation problem is localized. Hence, all computations can be efficiently performed by exploring the local neighborhood of an edge
5

(or a node) [6]. In this section, we discuss how the estimators can
be adapted to make the computations more efficient and localized,
while still remaining unbiased.
By linearity of expectation, we express the unbiased estimator
bt (△) (from Theorem 1) as N
bt (△) = 1/3 P b N
bk,t (△) where
N
k∈Kt
b
Nk,t (△) is the conditional estimator of triangle counts for edge
k normalized by the number of edges in a triangle. Similarly,
bt (Λ) (from Theorem 2) as
we express the unbiased estimator N
bt (Λ) = 1/2 P b N
bk,t (Λ) where N
bk,t (Λ) is the conditional
N
k∈Kt
estimator of wedge counts for edge k normalized by the number of
edges in a wedge.
b t . From TheConsider any two distinct edge subsets J1 , J2 ⊂ K
bJ1 ,J2 ,t = 0 if J1 and J2 are
orem 3, the covariance estimator C
bJ1 ,J2 ,t > 0 if and only
disjoint (i.e., |J1 ∩ J2 |= 0). Otherwise, C
if their intersection is non-empty (i.e., |J1 ∩ J2 |> 1). If J1 , J2
are triangles (or wedges), then |J1 ∩ J2 |≤ 1, since any two distinct triangles (or wedges) could never overlap in more than one
edge. Thus, the unbiased variance estimators can also be computed
locally for each edge, as we show next.
By linearity of expectation, we re-write Equation 9 as follows:
Vbt (△)
+

= 1/3

X

X

X

b t τ ∈△t (k)
k∈K

X

τ ′ <τ
τ ′ ∈△t (k)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

b t τ ∈△t (k)
k∈K

X

Algorithm 2 Unbiased Estimation of Triangle & Wedge Counts

Sbτ,t (Sbτ,t − 1)

21

(13)

22



Sbτ \τ ′ ,t Sbτ ′ \τ,t Sbτ ∩τ ′ ,t Sbτ ∩τ ′ ,t − 1

23
24
25
26
27

b t , we have
Note that for any two distinct triangles τ, τ ′ ⊂ K
bt.
Sbτ ∩τ ′ ,t > 0 if and only if τ ∩ τ ′ = {k} for some edge k ∈ K
Similarly, we could re-write Equation 10 as follows:
Vbt (Λ) =
+

X

1/2
X

X

X

b t λ∈Λ(k)
k∈K

b t λ∈Λt (k)
k∈K

X

λ′ <λ
λ′ ∈Λt (k)

Sbλ,t (Sbλ,t − 1)

28
29
30
31

(14)

32
33



Sbλ\λ′ ,t Sbλ′ \λ,t Sbλ∩λ′ ,t Sbλ∩λ′ ,t − 1

34
35
36
37

Algorithm Description. To simplify the presentation of Algorithm 2, we drop the variable t that denote the arrival time in the
stream, however the algorithm is valid for any t ∈ N. We start by
b of capacity m
calling Algorithm 1 to collect a weighted sample K
b
b
b (k)|+1
edges. For each edge k ∈ K, we use W (k, K) = 9 ∗ |△
b (k)| is the number of triangles completed by edge k and
where |△
b Then, we call Algorithm 2 at any time t in
whose edges in K.
the stream to obtain unbiased estimates of triangle/wedge counts,
global clustering, and their unbiased variance.
b Alg. 2 searches the neighFor each edge k = (v1 , v2 ) ∈ K,
b 1 ) of the node with minimum degree (i.e., deg(v1 ) ≤
borhood Γ(v
deg(v2 ) for triangles (Line 5). Lines 9–15 compute the estimates
for each triangle (k1 , k2 , k) incident to edge k. Lines 17–20 compute the estimates for each wedge (k1 , k) incident to edge k (and
centered on node v1 ). Then, Lines 25–28 compute the estimates for
each wedge (k2 , k) incident to edge k (and centered on node v2 ).
Finally, the individual edge estimators are summed in Lines 32–36,
and returned in Line 37.
We state two key observations in order: First, the estimators of
triangle/wedge counts can be computed locally for each sampled
b while still remaining unbiased. Thus, Algorithm 2
edge k ∈ K,
is localized. Second, since the estimators of triangle/wedge counts
b independently in
can be computed for each sampled edge k ∈ K

b
procedure GPS ESTIMATE(K)
Initialize all variables to zero
b do
parallel for edge k = (v1 , v2 ) ∈ K
q ← min{1, w(k)/z ∗ }
b 1 ) do
for each v3 ∈ Γ(v
⊲ found wedge
k1 ← (v1 , v3 )
q1 ← min{1, w(k1 )/z ∗ }
/*Compute triangle estimates*/
b 2 ) then
if v3 ∈ Γ(v
⊲ found triangle
k2 ← (v2 , v3 )
q2 ← min{1, w(k2 )/z ∗ }
bk (△) += (qq1 q2 )−1
N
⊲ triangle count
Vbk (△) += (qq1 q2 )−1 ((qq1 q2 )−1 − 1)
⊲ tri. var.
bk (△) += c△ ∗ (q1 q2 )−1
C
⊲ triangle covariance
c△ = c△ + (q1 q2 )−1
/*Compute wedge estimates for wedges (v3 , v1 , v2 )*/
bk (Λ) += (qq1 )−1
N
⊲ wedge count
b
Vk (Λ) += (qq1 )−1 ((qq1 )−1 − 1)
⊲ wedge variance
bk (Λ) += cΛ ∗ q −1
C
⊲ wedge covariance
1
cΛ = cΛ + q1−1
/*Compute wedge estimates for wedges (v3 , v2 , v1 )*/
b 2 ) do
for each v3 ∈ Γ(v
k2 ← (v2 , v3 )
q2 ← min{1, w(k2 )/z ∗ }
bk (Λ) += (qq2 )−1
N
⊲ wedge count
b
Vk (Λ) += (qq2 )−1 ((qq2 )−1 − 1)
⊲ wedge variance
bk (Λ) += cΛ ∗ q −1
⊲ wedge covariance
C
2
cΛ = cΛ + q2−1
bk (△) = C
bk (△) ∗ 2 ∗ q −1 ∗ (q −1 − 1)
C
bk (Λ) = C
bk (Λ) ∗ 2 ∗ q −1 ∗ (q −1 − 1)
C
/*Compute total
triangle/wedge estimates*/ P
bk (△), N
b (Λ) ← 1 ∗
b
b (△) ← 1 ∗ P b N
N
b Nk (Λ)
3
2
P k∈K
P k∈K
1
1
b
b
b
b
V (△) ← 3 ∗ k∈K
b Vk (△), V (Λ) ← 2 ∗
b Vk (Λ)
k∈K
P
P
b
b
b
bk (Λ)
C(△)
← k∈K
C
b Ck (△), C(Λ) ←
b
k∈K
b
Vb (△) ← Vb (△) + C(△)
b
Vb (Λ) ← Vb (Λ) + C(Λ)
b (△), N
b (Λ), Vb (△), Vb (Λ)
return N

parallel, Algorithm 2 already has abundant parallelism.
Complexity. Algorithm 2 has a total runtime of O(m3/2 ). This is
P
b
achieved by (v1 ,v2 )∈Kb min{deg(v1 ), deg(v2 )}) = O(a(K)m),
b is the arboricity of the reservoir graph. This comwhere a(K)
b
plexity can be tightly bounded by O(m3/2 ) since O(a(K)m)
≤

O(m3/2 ) for any sampled graph [11, 6].

5. IN-STREAM ESTIMATION
The foregoing analysis enables retrospective subgraph queries:
after any number t of stream arrivals have taken place, we can compute an unbiased estimator Sbt (J) for any subgraph J. We term this
Post-Stream Estimation. We now describe a second estimation
framework that we call In-Stream Estimation. In this paradigm,
we can take “snapshots” of specific sampled subgraphs at arbitrary
times during the stream, and preserve them as unbiased estimators. These can be used or combined to form desired estimators.
These snapshots are not subject to further sampling; their estimates
are not updated. However their original subgraphs remain in the
graph sample and are subject to sampling in the normal way. Thus
we do not change the evolution of the graph sample, we only ex6

to the product stopped process
Y T
Y
T
SbJ,t
=
Sbj,tj =
Sbj,min{Tj ,t}

tract information from it that does not change after extraction. The
snapshot times need not be deterministic. For example, each time a
subgraph that matches a specified motif appears (e.g. a triangle or
other clique) we take a snapshot of the subgraph estimator. If we
only need to estimate the number of such subgraphs, it suffices to
add the inverse probability of each matching subgraph to a counter.

j∈J

Although in-steam estimates use snapshots whose edges have the
same stopping time, variance estimation involves products of snapshots with distinct stopping times. Unbiasedness then follows from
the following result that applies to any snapshot of the form (16).

Algorithm 3 In-Stream Estimation of Triangle & Wedge Counts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

(16)

j∈J

T
T HEOREM 4.
(i) {SbJ,t
: t ≥ max J} is Martingale with
T
respect to FJ and hence E[SbJ,t
] = SJ,t .

procedure I NSTREAM GPS(K)
b ← ∅; z ∗ ← 0
K
while new edge k do
GPS ESTIMATE(k)
GPS UPDATE(k,m)
e (△), N
e (Λ), Ve (△), Ve (Λ), Ve (△, Λ)
return N

(ii) For any set J of subgraphs of G, each J ⊂ J equipped
P
TJ
with an FJ -measurable stoppong time TJ , then J ∈Tj SbJ,t
is an unbiased estimator of |Jt |.

5.2 Variance Estimation for Snapshots

procedure GPS ESTIMATE(k)
parallel for Triangle (k1 , k2 , k) completed by k do
if (z ∗ == 0) then q1 ← q2 ← 1
else
q1 ← min{1, w(k1 )/z ∗ }
q2 ← min{1, w(k2 )/z ∗ }
e (△) += 1/(q1 q2 )
N
⊲ Triangle Count
Ve (△) += ((q1 q2 )−1 − 1)/(q1 q2 )
⊲ Triangle Var.
ek (△) + C
ek (△))/(q1 q2 )
Ve (△) += 2(C
1
2
ek (Λ) + C
ek (Λ))/(q1 q2 )⊲ Tri.-Wedge Cov.
Ve (△, Λ) += (C
1
2
ek (△) += (q −1 − 1)/q2
C
⊲ Triangle Covariance
1
1
ek (△) += (q −1 − 1)/q1
C
2
2
b adjacent to k do
parallel for Wedge j ∈ K
if (z ∗ == 0) then q ← 1
else q ← min{1, w(j)/z ∗ }
e (Λ) += q −1
N
⊲ Wedge Count
e
V (Λ) += q −1 (q −1 − 1)
⊲ Wedge Variance
ej (Λ)/q
Ve (Λ) += 2C
ej (△)/q
Ve (△, Λ) += C
e
Cj (Λ) += 1/q − 1
⊲ Wedge Covariance

In this section we show how the variance and covariances of
snapshots can be estimated as sums of other snapshots involving the
stopping times of both constituents. The Martingale formulation is
a powerful tool to establish the unbiasedness of the estimates, since
the otherwise statistical properties of the product of correlated edge
estimators drawn at different times are not evident.
Consider two edge sets J1 and J2 each equipped with families
(i)
stopping times T (i) = {Tj : j ∈ Ji }, with i = 1, 2, for the
purpose of snapshots. Thus each j ∈ J1 ∩ J2 is equipped with
(1)
(2)
two generally distinct stopping times Tj and Tj , according to
(1)
(2)
its occurence in the snapshots SbJT ,t and SbJT ,t . As an estimator of
(1)

1

(2)

2

Cov(SJT1 ,t , SJT2 ,t ) we will use:
(1)

(2)

b T ,T
C
J1 ,J2 ,t

(1)

(1)

(2)

(1)

(1)

(2)

(2)

= SbJT1 ,t SbJT2 ,t − SbJT1 \J2 ,t SbJT2 \J1 ,t SbJT1 ∩J∨T
2 ,t

(17)

(1)
(2)
{max{Tj , Tj }

(2)

where T ∨ T
=
: j ∈ J1 ∩ J2 }, i.e., we
use the earlier stopping time for edges common to both subsets.
b T (1) ,T (2) is an unbiased estimator of
T HEOREM 5.
(i) C
J1 ,J2 ,t
(1)
(2)
Cov(SbJT ,t , SbJT ,t ).

procedure GPS UPDATE(k,m)
Generate u(k) uniformly on (0, 1]
b
w(k) ← W (k, K)
r(k) ← w(k)/u(k)
⊲ Priority of edge k
b ←K
b ∪ {k}
K
⊲ Provisionally include edge k
ek (△) ← C
ek (Λ) ← 0
C
b
if |K|>
m then
′
k ∗ ← arg mink′ ∈K
⊲ Lowest priority edge
b r(k )
∗
∗
∗
z ← max{z , r(k )}
⊲ New threshold
b ←K
b \ {k ∗ }
K
⊲ Remove lowest priority edge
e
e
ek∗ (△)
⊲ Remove covariances of k ∗
C(△)
← C(△)
\C
e
e
ek∗ (Λ)
C(Λ)
← C(Λ)
\C

1

(1)

(2)

b T ,T
(ii) C
J1 ,J2 ,t

2

(1)

(2)

≥ 0 and hence Cov(SbJT1 ,t , SbJT2 ,t ) ≥ 0.

T
T
T
(iii) SbJ,t
(SbJ,t
− 1) is an unbiased estimator of Var(SbJ,t
).
(1)

(2)

(1)
(2)
b T ,T
(iv) C
= 0 if and only if SbJT1 ,t = 0 or SbJT2 ,t = 0,
J1 ,J2 ,t
i.e., covariance estimators are computed only from snapshots
that have been sampled.

Covariance Estimation for Post-Stream Sampling. Post-stream
sampling is a special case of in-stream sampling with all Tj = ∞.
We recover the corresponding Thm 3 concerning covariances from
Theorem 5 by omitting all stopping times Tj from the notation.

5.1 Unbiased Estimation with Snapshots

5.3 In-Stream Triangle & Wedge Counts

In-stream estimation can be described within the framework of
stopped Martingales [39]. Return for the moment to our general
description in Section 3 of a Martingale {Xt : t ∈ N} with respect
to a filtration F = {Ft : t ∈ N}. A random time T is called a
stopping time w.r.t F if the event T ≤ t is Ft -measurable, i.e.,
we can decide at time t whether the event has occurred yet. The
corresponding stopped Martingale is
X T = {XtT : t ∈ N} where XtT = Xmin{T,t}
(15)
Thus, the value of Xt is frozen at T .
We define a snapshot as an edge subset J ⊂ N and a family
T = {Tj : j ∈ J} for FJ -measurable stopping times, giving rise

We now describe an application of In-Stream Estimation to Triangle Sampling and Counting. We sample from the stream based
on the previous triangle count weighting, but the triangle counting
is performed entirely in-stream. The full process is described in Algorithm 3. In this section we state and prove the form of estimators
for triangle count and its variance, and describe the corresponding
steps in the algorithm. Space limitations preclude giving a similar
level of detail for wedge counting and triangle-wedge covariance.
Unbiased In-Stream Estimation of Triangle Count. Using our
previous notation △t to denote the set of triangles all of whose
7

1.006

-sna

p

skitter

tech-as-

9

00

d-2

oo

w
olly

r

soc-flick

-h

1

ca

kStan

web-Ber

0.998

diana69

socfb-In

is an unbi-

com-amazon

0.996

0.994
0.994

0.996

0.998

84

xas

-Te

fb
soc

1

1.002

ork

netw

cial-

s-so

higg

web-google

1.004

1.006

Figure 1: Comparing xb/x of triangles and wedges. The closer
the points are to the intersection of the red lines (actual) the
better. Points are colored by graph type. Results are from the
in-stream estimation method at 100K.

{k1 ,k2 }

(random) subset of all triangles in △t that have positive snapshot.
b [t] such
b (2) (k) denote the set of pairs (j ′ , k′ ) of edges in K
Let K
[t]
′
′
that each of the edge pairs (k, j ) and (k, k ) are the first two edges
b t , and with (j ′ , k′ ) ordered by their stopin distinct triangles in △
ping time of the third edges in these triangles, i.e., Tk,j ′ < Tk,k′ .

once): both GPS post and in-stream estimation randomly select the
same set of edges with the same random seeds. Thus, the two methods only differ in the estimation procedure. For these experiments,
we used a server with two Intel Xeon E5-2687W 3.1GHz CPUs.
Each processor has 8 cores with 20MB of L3 cache and 256KB of
L2 cache. The experimental setup is executed independently for
each sample size as follows:
b ⊂ K.
1. For each sample size m, Alg 1 collects an edge sample K
2. We use Alg 2 for post stream estimation, where the estimates are
obtained only from the sample. We use Alg 3 for in-stream estimation, where the estimates are updated incrementally in a single pass
during the sampling process. Thus, both GPS post and in-stream
estimation use the same sample.
b ⊂ K, we use the absolute relative error
3. Given a sample K
b − X|/X to measure the deviation between the ex(ARE) |E[X]
b and the actual statistics X. We use
pected value of the estimates X
X to refer to triangle, wedge counts, or global clustering.
q
b
b ±1.96 Var[X].
4. We compute the 95% confidence bounds as X

et (△)) has unbiased estimator
T HEOREM 7. Var(N
!
X
1
1
Vet (△) =
− 1 (18)
pk1 ,Tk3 pk2 ,Tk3 pk1 ,Tk3 pk2 ,Tk3
bt
(k1 ,k2 ,k3 )∈△
!
X X
1
1
+2
−1
pk′ ,Tk,k′ pj ′ ,Tk,j′ pk,Tk,k′ pk,Tk,j′
′ ′
(j ,k )∈
b
k∈K
[t]
c(2) (k)
K
[t]

Description of Algorithm 3. We now describe the portions of Ale (△) and Ve (△). When
gorithm 3 relating the in-stream estimator N
an edge k arrives, an update is performed for each triangle that k
completes (line 9). These updates can be performed in parallel
because each such triangle must have distinct edges other than k.
e (△) is updated with the current inverse probabilTriangle count N
ities of its first two edges k1 and k2 (line 14). The variance Ve (△)
is updated first with the variance term for the current triangle (line
bk (△) and
15) then secondly with its cumulative contributions C
1
b
Ck1 (△) to the covariances with all previous triangles whose first
two edges include k1 or k2 (line 16). These cumulative terms are
then updated by the current triangle (lines 18 and 19). Wedge
count variables are updated in a similar manner in lines 20–27. The
edge-wedge covariance Ve (△, Λ) used for estimation of the global
clustering coefficient α is updated using the cumulative triangle and
wedge covariances in lines 17 and 26.

Error Analysis and Confidence Bounds. Table 1 summarizes the
main graph properties and provides a comparison between GPS post
stream and in-stream estimation for a variety of graphs at sample
size m = 200K edges. First, we observe that GPS in-stream estimation has on average < 1% relative error across most graphs. In
addition, GPS post stream estimation has on average ≤ 2%. Thus,
both methods provide accurate estimates for large graphs with a
small sample size. Table 1 also shows that the upper and lower
bounds of GPS in-stream estimation are smaller than those obtained
using GPS post stream estimation. We note that both methods are
using the same sample. However, a key advantage for GPS instream estimation versus GPS post stream estimation is its ability
to minimize the variance of the estimators. Thus, GPS in-stream
estimates are not only accurate but also have a small variance and
tight confidence bounds.
Second, we observe that the GPS framework provides high quality general samples to accurately estimate various properties simultaneously. For example, Table 1 shows consistent performance
across all graphs for the estimation of triangle/wedge counts and
global clustering with the same sample. Similarly, in Figure 1,
we observe that GPS accurately estimates both triangle and wedge
counts simultaneously with a single sample, with a relative error of
0.6% for for both triangle and wedge counts.
Finally, we investigate the properties of the sampling distribution

EXPERIMENTS AND RESULTS

We test the performance of graph priority sampling on a large
set of 50 graphs with hundreds of millions of nodes/edges, selected
from a variety of domains and types, such as social, web, among
others. All graph data sets are available for download 1 [33, 34].
For all graph datasets, we consider an undirected, unweighted, simplified graph without self loops. We generate the graph stream by
randomly permuting the set of edges in each graph. For each graph,
we perform ten different experiments with sample sizes in the range
of 10K–1M edges. We test GPS as well as baseline methods using a
single pass over the edge stream (such that each edge is processed
1

tube

n94

1.002

Estimation of Triangle Count Variance. We add some further
et (△). Let
notation in preparation for estimating the variance of N
b
b
K[t] = ∪t>0 Kt denote the set of edges that are sampled at any time
T
b t = {(k1 , k2 , k3 ) ∈△t : Sb k3
> 0} denote the
up to t. Let △

6.

-you

1
F2

bTk3
(k1 ,k2 ,k3 )∈△t S{k1 ,k2 },t

soc

1.004

U
bcf
so

et (△) =
T HEOREM 6. N
ased estimator of Nt (△).

P

socfb

-Pen

edges have arrived by t, we write each such triangle in the form
(k1 , k2 , k3 ) with k3 the last edge to arrive. If k1 and k2 are present
b when k3 arrives, we take a snapshot of the wedge
in the sample K
(k1 , k2 ) prior to the sampling step for k3 . Formally, we let Tk3
denote the slot immediately prior the arrival of k3 and form the
Tk
snapshot Sb{k13,k2 } . Note Tk3 is a stopping time because the edge
arrival process is deterministic.

www.networkrepository.com
8

Table 1: Estimates of expected value and relative error using 200K edges for a representative set of 11 graphs. The graphlet statistic
for the full graph is shown in the third column. LB and UB are 95% confidence lower and upper bounds, respectively.
GPS IN - STREAM

ACTUAL

TRIANGLES
WEDGES
CLUSTERING COEFF . ( CC )

b
X

LB

UB

b
X

c
|X−X|
X

LB

UB

4.9B
667.1K
83M
83.5M
627.5M
17.2B
3M
7.2M
11.1M
28.7M
13.3M

4.9B
667.2K
82.6M
83.1M
625.8M
17.3B
3M
7.1M
11.1M
28.5M
13.4M

0.0009
0.0001
0.0043
0.0043
0.0028
0.0009
0.0004
0.0063
0.0011
0.0081
0.0034

4.8B
658.5K
80.8M
80.6M
601.4M
16.8B
2.9M
7M
10.9M
27.7M
13.2M

5B
675.8K
84.4M
85.7M
650.1M
17.7B
3.1M
7.2M
11.3M
29.3M
13.6M

4.8B
666.8K
83.2M
81.5M
614.8M
17.3B
3M
7.1M
11.1M
28.3M
13.4M

0.0036
0.0004
0.0031
0.0244
0.0203
0.0027
0.0003
0.0044
0.0013
0.0141
0.0078

4.6B
653.6K
79.5M
72M
396M
13.3B
2.9M
6.8M
10.4M
26.5M
13.1M

5.1B
680K
87M
91M
833.7M
21.3B
3.1M
7.5M
11.9M
30.1M
13.8M

0.0036
0.216
0.016
0.0072
0.0017
0.0008
0.0669
0.1468
0.1257
0.018
0.0463

47.6B
9.7M
28.7B
1.7B
45.6B
1.8T
1.4B
220.1M
335.7M
16B
727.4M

47.5B
9.7M
28.7B
1.7B
45.5B
1.8T
1.4B
219.9M
334.9M
16B
728.8M

0.0011
0.0002
0.001
0.0005
0.0016
0.0002
0.0035
0.001
0.0022
0.0005
0.002

47.3B
9.7M
28.5B
1.7B
45B
1.8T
1.4B
217.7M
331.4M
15.8B
721M

47.8B
9.8M
28.9B
1.8B
46B
1.8T
1.4B
222.1M
338.5M
16.1B
736.7M

47.5B
9.7M
28.7B
1.8B
45.5B
1.8T
1.4B
219M
335.1M
15.9B
732.2M

0.0026
0.0021
0.0008
0.0008
0.0009
0.0016
0.0084
0.0051
0.0017
0.0016
0.0066

46.9B
9.6M
28.1B
1.7B
44.3B
1.7T
1.4B
211.7M
323M
15.6B
711.8M

48.1B
9.9M
29.3B
1.8B
46.8B
1.8T
1.5B
226.3M
347.2M
16.3B
752.5M

0.0036
0.216
0.016
0.0072
0.0017
0.0008
0.0669
0.1468
0.1257
0.018
0.0463

0.31
0.205
0.009
0.139
0.041
0.028
0.006
0.098
0.1
0.005
0.055

0.31
0.205
0.009
0.139
0.041
0.028
0.006
0.098
0.1
0.005
0.055

0.002
<10−4
0.0034
0.0039
0.0012
0.0012
0.0032
0.0053
0.0012
0.0076
0.0014

0.306
0.203
0.008
0.135
0.04
0.028
0.006
0.096
0.098
0.005
0.054

0.315
0.208
0.009
0.143
0.043
0.029
0.006
0.099
0.102
0.006
0.056

0.309
0.205
0.009
0.136
0.04
0.028
0.006
0.098
0.1
0.005
0.055

0.0009
0.0025
0.0039
0.0252
0.0193
0.0004
0.0088
0.0008
0.0031
0.0124
0.0013

0.295
0.201
0.008
0.12
0.026
0.022
0.006
0.093
0.093
0.005
0.053

0.323
0.209
0.009
0.151
0.055
0.035
0.007
0.104
0.107
0.006
0.057

|K|

X

ca-hollywood-2009
com-amazon
higgs-social-network
soc-livejournal
soc-orkut
soc-twitter-2010
soc-youtube-snap
socfb-Penn94
socfb-Texas84
tech-as-skitter
web-google

56.3M
925.8K
12.5M
27.9M
117.1M
265M
2.9M
1.3M
1.5M
11M
4.3M

0.0036
0.216
0.016
0.0072
0.0017
0.0008
0.0669
0.1468
0.1257
0.018
0.0463

ca-hollywood-2009
com-amazon
higgs-social-network
soc-livejournal
soc-orkut
soc-twitter-2010
soc-youtube-snap
socfb-Penn94
socfb-Texas84
tech-as-skitter
web-google

56.3M
925.8K
12.5M
27.9M
117.1M
265M
2.9M
1.3M
1.5M
11M
4.3M

ca-hollywood-2009
com-amazon
higgs-social-network
soc-livejournal
soc-orkut
soc-twitter-2010
soc-youtube-snap
socfb-Penn94
socfb-Texas84
tech-as-skitter
web-google

56.3M
925.8K
12.5M
27.9M
117.1M
265M
2.9M
1.3M
1.5M
11M
4.3M

graph

Table 2: Baseline Comparison at sample size ≈100K
N SAMP TRIEST

Table 2 summarizes the results of the comparison. Our implementation of the N SAMP [30] algorithm follows the description in the
paper, which achieves a near-linear total time if and only if running
in bulk-processing. Otherwise the algorithm is too slow and not
practical even for medium size graphs with a total time of O(|K|r).
Overall, GPS post stream estimation achieves 98%–99% accuracy,
while N SAMP achieves only 80%–84% accuracy for most graphs
and 92% accuracy for higgs-soc-net graph. Our implementation of
the TRIEST [16] algorithm follows the main approach in the paper. TRIEST was unable to produce a reasonable estimate showing only 60%–82% accuracy. Similarly, MASCOT achieves only
35%–79% accuracy. Thus, GPS post stream estimation outperforms
the three baseline methods. Table 2 also shows the average update
time per edge (in microseconds). We note that GPS post stream estimation achieves an average update time that is 35x–56x faster than
N SAMP with bulk-processing (for cit-Patents and infra-roadNetCA graphs and at least 2x faster for higgs-soc-net). TRIEST and
MASCOT use an average of 3 and 2 microseconds/edge respectively. Note that we have also compared to other methods in [23]
and [10] (results omitted for brevity). Even though the method in
[10] is fast, it fails to find a triangle most of the time, producing low
quality estimates (mostly zero estimates). On the other hand, the
method of [23] is too slow for extensive experiments with O(m)
update complexity per edge (where m is the reservoir size). GPS
post stream estimation achieves at least 10x accuracy improvement
compared to their method. For this comparison, we first run MASCOT with approximately 100K edges, then we observe the actual
sample size used by MASCOT and run all other methods with the
observed sample size.

MASCOT GPS POST

Absolute Relative Error (ARE)
cit-Patents
higgs-soc-net
infra-roadNet-CA

0.192
0.079
0.165

cit-Patents
higgs-soc-net
infra-roadNet-CA

34.2
26.08
28.72

GPS POST STREAM

c
|X−X|
X

c
|K|
|K|

0.401
0.174
0.301

0.65
0.209
0.39

0.008
0.011
0.013

Average Time (µs /edge)
3.01
4.40
2.81

2.02
2.02
2.05

0.63
11.74
0.831

and the convergence of the estimates as the sample size increases
between 10K–1M edges (See Figure 2). We used graphs from various domains and types. We observe that the confidence intervals
of triangle counts are small in the range 0.90–1.10 for most graphs
at 40K sample size. Notably, for a large Twitter graph with more
than 260M edges (soc-twitter-10), GPS in-stream estimation accurately estimates the triangle count with < 1% error, while storing
40K edges, which is only a fraction of 0.00015 of the total number
of edges in the graph. Due to space limitations, we removed the
confidence plots for wedges and clustering coefficient. However,
we observe that the confidence interval are very small in the range
of 0.98–1.02 for wedges, and 0.90–1.10 for global clustering coefficient.
Baseline Study. The state-of-the-art algorithms for triangle count
estimation in adjacency graph streams are due to the neighborhood
sampling (N SAMP) in [30] and the triangle sampling (TRIEST)
in [16]. We discuss their performance in turn compared with GPS
post stream estimation. We also compare with MASCOT [27].
9

socfb-Texas84

soc-twitter-2010

socfb-Penn94

soc-youtube-snap

1.4

1.4

1.3

1.1

1.3

1.1

1.2

1.2

1.05
1.05

1.1

1

0.95

1.1

b
x/x

b
x/x

b
x/x

b
x/x

1

1
0.9

1
0.9

0.95

0.8

0.9

0.8

0.7

0.9

0.7

0.85
4

10

5

10

6

4

10

10

b
Sample Siz e | K|

5

0.6
4
10

6

10

10

soc-orkut

4

soc-livejournal

higgs-social-network

cit-Patents

1.6

1.2
1.1
1

b
x/x

1

1.4

1.1

b
x/x

b
x/x

1.2

1.8

1.2

1.3

1

0.9
0.8

0.8

0.6

0.7

0.6
0.4

0.8

0.2

0.5
5

10

6

4

10

5

10

6

10

b
Sample Siz e | K|

4

10

5

10

web-BerkStan

6

10

4

10

1.25

1.4

1.15

1.2

1.1

1
0.95

1

0.85

0.6

0.8
5

b
Sample Siz e | K|

6

10

1

0.9

0.8

0.85

10

1.05

0.95

0.9

0.8

0.7
4
10

b
x/x

1.2

b
x/x

b
x/x

b
x/x

1.1

1.05

0.9

10

web-google

1.6

1.15

1.2

1

6

10

b
Sample Siz e | K|

tech-as-skitter

com-amazon
1.2

1.1

5

10

b
Sample Siz e | K|

b
Sample Siz e | K|

1.3

1
0.8

0.6

4

1.2

0.9

0.4
10

10

2

1.4

1.4

6

10

b
Sample Siz e | K|

1.3

1.5

1.6

5

10

b
Sample Siz e | K|

b
Sample Siz e | K|

1.8

b
x/x

5

10

4

10

5

6

10

10

0.8
4

5

10

0.75

6

10

10

4

5

10

6

10

b
Sample Siz e | K|

b
Sample Siz e | K|

10

b
Sample Siz e | K|

Figure 2: Confidence bounds for Graph Priority Sampling with instream estimation of triangle counts. We used graphs from a
variety of domains and types. The properties of the sampling distribution and convergence of the estimates are investigated as the
sample size increases. The circle ( ) represents Xb/X (y-axis) whereas N and H are LB/X and U B/X , respectively. Dashed vertical line
(grey) refers to the sample at 40K edges. Notably, the proposed framework has excellent accuracy even at this small sample size.
Unbiased Estimation Vs. Time. We now track the estimates as
the graph stream progresses one edge at a time, starting from an
empty graph. Figure 3 shows GPS estimates for triangle counts and
clustering coefficient as the stream is evolving overtime. Notably,
the estimates are indistinguishable from the actual values. Figure 3
also shows the 95% confidence upper and lower bounds. These
results are for a sample of 80K edges (a small fraction ≤ 1% of the
size of soc-orkut and tech-as-skitter graphs) using GPS in-stream
Given the slow execution of N SAMP, we compare against TRIEST and its improved estimation procedure (TRIEST-I MPR). Note
that TRIEST and TRIEST-I MPR are both using the same sample and random seeds. The two approaches are based on reservoir sampling [38]. We used graphs from a variety of domains
and types for this comparison, and all methods are using the same
sample size. We measure the error using the Mean Absolute RelP
b
t|
ative Error (MARE) T1 Tt=1 |XtX−X
, where T is the number of
t

soc-orkut

8

x 10

5

Clustering Coeff. at time t ( xbt)

Triangles at time t ( xbt)

soc-orkut

Actual
Estimate
Upper Bound
Lower Bound

5.5

4.5
4
3.5
3
2.5
2
1.5
1

0.035

0.03

0.025

0.02

0.015

0.01

0.005

0.5

0

2

4

6

8

10

St r e am Siz e at t ime t ( |K t|)

12

0

5.5

Clustering Coeff. at time t ( xbt)

Triangles at time t ( xbt)

b

4

2

1.5

1

0.5

6

8

10

St r e am Siz e at t ime t ( |K t|)

12
7

x 10

tech-as-skitter

-3

Actual
Estimate
Upper Bound
Lower Bound

2.5

2

7

x 10

tech-as-skitter

7

x 10

t|
time-stamps. We also report the maximum error maxTt=1 |XtX−X
.
t
Table 3 summarizes the comparison results. For all graphs, GPS
with in-stream estimation outperforms both TRIEST and its improved estimation procedure TRIEST-I MPR. We note that indeed
TRIEST-I MPR significantly improves the quality of the estimation
of TRIEST. However, in comparison with GPS we observe that
GPS with post stream estimation is orders of magnitude better than
TRIEST, which shows that the quality of the sample collected by
GPS is much better than TRIEST (regardless the estimation procedure used, whether it is post or in-stream estimation).

Actual
Estimate
Upper Bound
Lower Bound

0.04

x 10

Actual
Estimate
Upper Bound
Lower Bound

5
4.5
4
3.5
3
2.5
2
1.5
1
0.5

0

2

4

6

8

St r e am Siz e at t ime t ( |K t|)

10

12
6

x 10

0

2

4

6

8

10

St r e am Siz e at t ime t ( |K t|)

12
6

x 10

Figure 3: Graph Priority Sampling with in-stream estimation
versus time. Results for social and tech networks at sample
size 80K edges for triangle counts and global clustering with
95% confidence lower and upper bounds. Notably, the proposed framework accurately estimates the statistics while the
stream is progressing.
10

Table 3: Mean absolute relative error for estimates of triangle
counts vs. time (sample size = 80K).
graph

Algorithm

proposed for local (node/edge) triangle count estimation in graph
streams [27]. Other methods extend reservoir sampling to graph
streams. For example, reservoir sampling has been used for detecting outliers in graph streams [1], estimating the distribution of
various graph properties (e.g., path length, clustering) [5], and estimating triangle counts in dynamic graph streams with insertions
and deletions [16].

Max. ARE MARE

TRIEST
TRIEST-I MPR
ca-hollywood-2009
GPS POST
GPS IN -STREAM

0.492
0.066
0.049
0.016

0.211
0.018
0.020
0.003

tech-as-skitter

TRIEST
TRIEST-I MPR
GPS POST
GPS IN -STREAM

0.628
0.134
0.087
0.032

0.249
0.048
0.035
0.014

infra-roadNet-CA

TRIEST
TRIEST-I MPR
GPS POST
GPS IN -STREAM

0.98
0.33
0.15
0.058

0.47
0.09
0.05
0.02

soc-youtube-snap

TRIEST
TRIEST-I MPR
GPS POST
GPS IN -STREAM

0.362
0.049
0.022
0.020

0.119
0.016
0.009
0.008

8. CONCLUSION
In this paper, we presented graph priority sampling, a new framework for order-based reservoir sampling from massive graph streams.
GPS provides a general way to weight edge sampling according to
auxiliary variables to estimate various graph properties. We showed
how edge sampling weights can be chosen so as to minimize the
estimation variance of counts of subgraphs, such as triangles and
wedges. Unlike previous graph sampling algorithms, GPS differentiates between the functions of sampling and estimation. We
proposed two estimation approaches: (1) Post-stream estimation,
to allow GPS to construct a reference sample of edges to support
retrospective graph queries, and (2) In-stream estimation, to allow
GPS to obtain lower variance estimates by incrementally updating
the count estimates during stream processing. We provided a novel
Martingale formulation for subgraph count estimation. We performed a large-scale experimental analysis. The results show that
GPS achieves high accuracy with < 1% error on large real-world
graphs from a variety of domains and types, while storing a small
fraction of the graph and average update times of a few microseconds per edge. In future work, we aim to extend the proposed approach to adaptive-weight sampling schemes and its applications in
massive streaming analytics.

Scalability and Runtime. Our Algorithm 2 for post steam estimation uses a scalable parallel approach from [6, 7] with strong
scaling properties; we omit the scalability results for brevity.

7.

RELATED WORK

The research related to this paper can be grouped into: (a) Sampling from graph streams, (b) Sampling/Estimation of subgraphs.
Sampling from graph streams. Recently, there has been considerable interest in designing algorithms for mining massive and dynamic graphs from data streams, motivated by applications. Many
were based on sampling and approximation techniques. An early
such work [21] concerned problems of following paths and connectivity in directed graphs. Much of the earlier work on graph streams
focused on graph problems in the semi-streaming model [29, 20],
where the algorithm is allowed to use O(n polylog n) space to
solve graph problems that are provably intractable in sub-linear
space. More recent work focused on graph mining problems such
as finding common neighbors [9], estimation of pagerank [35],
clustering and outlier detection [1], characterizing degree sequences
in multigraph streams [15], link prediction [41], community detection [40], among others [28, 32, 2, 4]. See [5] for further details.

9. PROOFS OF THEOREMS
L EMMA 5. For each t, the events {{j ∈ Kt } : j ≤ t} are measurable w.r.t Fi,t .
P ROOF OF L EMMA 5. The proof is by induction. It is trivially
true fot t = i. Assume true for t − 1, then membership of Kt−1 is
′
Fi,t−1 measurable, and hence so is membership of Kt−1
. Selection of i is clearly Fi,t -measurable, and if i is selected, the remain(0)
ing selections are Fi,t -measurable since then z{ij},t = zj,t .

Sampling and Estimation of Subgraphs. Subgraph counting (in
particular triangle counting) has gained significant attention due to
its applications in social, information, and web networks. Early
work in this direction [10] provides a space-bounded algorithm for
the estimation of triangle counts and clustering coefficient in the
incidence graph stream model. However, it has been shown that
these guarantees will no longer hold in the case of the adjacency
stream model, where the edges arrive in arbitrary order. A single
pass streaming algorithm incurring O(m∆/T )-space, where ∆ is
the maximum degree is proposed in [30]. However, this algorithm
requires both large storage and update overhead to provide accurate
results. For example, their algorithm needs at least 128 estimators (i.e., storing more than 128K edges) and uses large batch sizes
(e.g., a million
√ edges) to obtain accurate/efficient results. A singlepass O(m/ T )-space streaming algorithm was proposed in [23]
specifically for transitivity estimation with arbitrary additive error
guarantees. This algorithm maintains two reservoirs, the first to select a uniform sample of edges from the stream, and the second to
select a uniform sample of wedges created by the edge reservoir.
Other approaches focused on maintaining a set of edges sampled
randomly from the graph stream. graph sample-and-hold [3] is a
framework for unbiased an accurate estimation of subgraph counts
(e.g., edges, triangles, wedges). A similar approach was recently

P ROOF OF T HEOREM 1. Lemma 5 established measurability.
For t ≥ i, since Ri,t is Zi,t -measurable, conditioning first on zi,t :
1
∗
E[I(Bi (zi,t
))|zi,t , Fi,t−1 ]
(19)
E[Sbi,t |zi,t , Fi,t−1 ] =
Ri,t
∗
∗
∗
Since Bi (zi,t
) = Bi (zi,t )∩Bi (zi,t−1
) and I(Bi (zt−1
)) is Fi,t−1 measurable, then for any event on which the conditional expectation (19) is positive, we have
(0)

∗
∗
E[I(Bi (zi,t
))|zi,t , Fi,t−1 ] = P[Bi (zi,t )|Bi (zi,t−1
), Zi,t , Fi,t−1 ]
∗
∗
P[Bi (zi,t
)|Zi,t , wi ]/P[Bi (zi,t−1
)|Zi,t , wi ]
∗
∗
P[wi /ui > zi,t |Zi,t , wi ]/P[wi /ui > zi,t−1
|Zi,t , wi ]

=
=
= Ri,t /Ri,t−1
(20)
where we have used the fact that once we have conditioned on
(0)
∗
Bi (zi,t−1
) and Zi,t , then Fi,t−1 conditions only through the dependence of wi on the sample set Ki−1 . Thus we have established
that E[Sbi,t |zi,t , Fi,t−1 ] = Sbi,t−1 regardless of zi,t , and hence
E[Sbi,t |Fi,t−1 ] = Sbi,t−1 .

11

P ROOF OF T HEOREM 4. (ii) follows from (i) by linearity of exT
Tj
pectation. For (i), observe that Sbj,tj = Sj,t−1
+ I(T ≥ t)(Sbj,t −

Sbj,t−1 ); one checks that this reproduces Sbj,min{t,Tj } . Thus
Y T
Y
XY T
T
j
ℓ
I(Tj ≥ t)(Sbj,t − Sbj,t−1 )
SbJ,t
=
Sj,ℓ−1
Sbj,t−1
+
j∈J

L(J ℓ∈L

[2] N. K. Ahmed, F. Berchmans, J. Neville, and R. Kompella.
Time-based sampling of social network activity graphs. In
MLG, pages 1–9, 2010.
[3] N. K. Ahmed, N. Duffield, J. Neville, and R. Kompella.
Graph sample and hold: A framework for big-graph
analytics. In SIGKDD, 2014.
[4] N. K. Ahmed, J. Neville, and R. Kompella. Network
sampling designs for relational classification. In ICWSM,
pages 1–4, 2012.
[5] N. K. Ahmed, J. Neville, and R. Kompella. Network
sampling: From static to streaming graphs. In TKDD,
8(2):1–56, 2014.
[6] N. K. Ahmed, J. Neville, R. A. Rossi, and N. Duffield.
Efficient graphlet counting for large networks. In In ICDM.
[7] N. K. Ahmed, J. Neville, R. A. Rossi, N. Duffield, and T. L.
Willke. Graphlet decomposition: framework, algorithms, and
applications. In KAIS, pages 1–32, 2016.
[8] L. Becchetti, P. Boldi, C. Castillo, and A. Gionis. Efficient
semi-streaming algorithms for local triangle counting in
massive graphs. In Proc. of KDD, pages 16–24, 2008.
[9] A. Buchsbaum, R. Giancarlo, and J. Westbrook. On finding
common neighborhoods in massive graphs. Theoretical
Computer Science, 299(1):707–718, 2003.
[10] L. Buriol, G. Frahling, S. Leonardi,
A. Marchetti-Spaccamela, and C. Sohler. Counting triangles
in data streams. In PODS.
[11] N. Chiba and T. Nishizeki. Arboricity and subgraph listing
algorithms. SIAM J. on Computing, 14(1):210–223, 1985.
[12] E. Cohen, N. Duffield, H. Kaplan, C. Lund, and M. Thorup.
Efficient stream sampling for variance-optimal estimation of
subset sums. SIAM J. Comput., 40(5):1402–1431, Sept. 2011.
[13] E. Cohen and H. Kaplan. Summarizing data using bottom-k
sketches. In PODC, 2007.
[14] T. H. Cormen, C. Stein, R. L. Rivest, and C. E. Leiserson.
Introduction to Algorithms. 2nd edition, 2001.
[15] G. Cormode and S. Muthukrishnan. Space efficient mining
of multigraph streams. In PODS, pages 271–282, 2005.
[16] L. De Stefani, A. Epasto, M. Riondato, and E. Upfal. Tri\est:
Counting local and global triangles in fully-dynamic streams
with fixed memory size. In KDD, 2016.
[17] N. Duffield, C. Lund, and M. Thorup. Learn more, sample
less, control of volume and variance in network
measurement. IEEE Trans. in Information Theory,
51(5):1756–1775, 2005.
[18] N. Duffield, C. Lund, and M. Thorup. Priority sampling for
estimation of arbitrary subset sums. JACM, 54(6):32, 2007.
[19] P. S. Efraimidis and P. G. Spirakis. Weighted random
sampling with a reservoir. IPL, 97(5):181–185, 2006.
[20] J. Feigenbaum, S. Kannan, A. McGregor, S. Suri, and
J. Zhang. On graph problems in a semi-streaming model.
Theoretical Computer Science, 348(2):207–216, 2005.
[21] M. Henzinger, P. Raghavan, and S. Rajagopalan. Computing
on data streams. In External Memory Algorithms: Dimacs
Workshop External Memory and Visualization, volume 50,
page 107, 1999.
[22] D. G. Horvitz and D. J. Thompson. A generalization of
sampling without replacement from a finite universe. J. of the
American Stat. Assoc., 47(260):663–685, 1952.
[23] M. Jha, C. Seshadhri, and A. Pinar. A space efficient
streaming algorithm for triangle counting using the birthday
paradox. In In ACM SIGKDD, pages 589–597, 2013.

j∈J \L

Observe that I(Tj ≥ t) = 1 − I(Tj ≤ t − 1) is in fact FJ,t−1 measurable. Hence taking expectations w.r.t. FJ,t−1 then the product form from Theorem 2 tells us that for any L ( J
Y
I(Tj ≥ t)(Sbj,t − Sbj,t−1 )|FJ,t−1 ]
E[
j∈J \L

=

Y

j∈J \L

I(Tj ≥ t)E[Sbj,t − Sbj,t−1 |FJ,t−1 ] = 0 (21)

T
and hence E[SbJ,t
|FJ,t−1 ] =

Q

Tj
T
Sbj,t−1
= SbJ,t−1

j∈J

P ROOF OF T HEOREM 5. (i)
(1)

(2)

Cov(SbJT1 ,t , SbJT2 ,t ) =

(1)

(2)

(1)

(2)

(1)

(2)

E[SbJT1 ,t SbJT2 ,t ] − E[SbJT1 ,t ]E[SbJT2 ,t ]

= E[SbJT1 ,t SJT2 ,t ] − 1
Hence the results follows because
(1)
(2)
(1)
(2)
E[SbJT \J ,t SbJT \J ,t SbJT ∩J∨T,t ] = 1
1

2

2

1

1

(22)
(23)

2

from Theorem 4 since J1 \ J2 , J2 \ J1 and J1 ∩ J2 are disjoint.
(2)
(1)
(2)
(1)
(2)
b T (1) ,T (2) = SbJT (1)
(ii)C
SbT
(SbJT1 ∩J2 SbJT1 ∩J2 −SbJT1 ∩J∨T
).
J1 ,J2 ,t
2 ,t
1 \J2 ,t J2 \J1 ,t
which is nonnegative since each j ∈ J1 ∩ J2 brings a factor of the
(1)
(2)
form 1/(p(1) p(2) ) to SbJT1 ∩J2 SbJT1 ∩J2 , where p(i) = pj,max{t,T (i) } .
j

(1)
(2)
This exceeds the matching term in SbJT1 ∩J∨T
, i.e., 1/min{p1 , p2 }.
2 ,t
(iii) Follows from (i) upon setting J1 = J2 = J.
(iv) The equivalence clearly applies to the first monomial in (17).
(2)
(1)
For the second monomial, note that (SbJT1 ,t = 0) ∧ (SbJT2 ,t = 0)
(1)
(2)
T
T
if and only if Sbj,t
= 0 for some j ∈ J1 or Sbj,t
= 0 for some
j ∈ J2 . If this condition holds for some j ∈ J1 ∆J2 we are done.
(i)

T
Otherwise, we require Sbj,tj

= 0 for some j ∈ J1 ∩ J2 and some
T

(i)

i ∈ {1, 2}. But for j ∈ J1 ∩J2 , Sbj,tj

= Sb

= 0 means

(i)

j,min{Tj ,t}
(i)
that j has not survived until min{Tj , t} and hence it also not
(1) (2)
present at the later or equal time min{max{Tj Tj }, t}. Hence
(1)

max{Tj
Sbj,t

(2)

,Tj

}

= 0 and we are done

Tk
P ROOF OF T HEOREM 6. Sb{k13,k2 },t > 0 only if (k1 , k2 , k3 ) ∈
∆t , and by Theorem 4 has unit expectation.

P ROOF OF T HEOREM 7. Distributing the covariance over the
et (△) in Theorem 6, Var(N
et (△)) has unbiased estimator
sum N
X

Tk
Tk
Sb{k13,k2 },t (Sb{k13,k2 },t −1)+2

(k1 ,k2 ,k3 )∈△t

X

Tk3 ,Tk′

3
C{k1 ,k2 },{k
′ ,k′ },t (24)

(k1 ,k2 ,k3 )≺
′ ,k′ ,k′ )
(k1
2 3

1

2

Where ≺ denotes k3 < k3′ in arrival order. Each variance term is
of the form 1/q(1/q − 1) for q = pk1 ,T3 pk2 ,T3 . Each covariance
term is zero unless {k1 , k2 } ∩ {k1′ , k2′ } =
6 ∅. (The sets cannot be
equal for then k3 = k3′ if both form triangles). The stated form the
follows by rewriting the sum of covariance terms in (24) as a sum
e t of the covariances of all pairs snapshots that
over edges k ∈ K
contain k as a sampled edge.

10. REFERENCES
[1] C. Aggarwal, Y. Zhao, and P. Yu. Outlier detection in graph
streams. In ICDE, pages 399–409, 2011.
12

[24] D. E. Knuth. The Art of Computer Programming, Vol. 2:
Seminumerical Algorithms. Addison-Wesley, 1997.
[25] J. Leskovec, L. A. Adamic, and B. A. Huberman. The
dynamics of viral marketing. In TWEB, 1(1):5, 2007.
[26] J. Leskovec, A. Krause, C. Guestrin, C. Faloutsos,
J. VanBriesen, and N. Glance. Cost-effective outbreak
detection in networks. In KDD, pages 420–429, 2007.
[27] Y. Lim and U. Kang. Mascot: Memory-efficient and accurate
sampling for counting local triangles in graph streams. In
Proc. of SIGKDD, pages 685–694. ACM, 2015.
[28] A. McGregor. Graph mining on streams. Encyclopedia of
Database Systems, pages 1271–1275, 2009.
[29] S. Muthukrishnan. Data streams: Algorithms and
applications. Now Publishers Inc, 2005.
[30] A. Pavan, K. Tangwongsan, S. Tirthapura, and K.-L. Wu.
Counting and sampling triangles from a graph stream. Proc.
of VLDB, 6(14):1870–1881, 2013.
[31] B. Rosén. Asymptotic theory for successive sampling with
varying probabilities without replacement, I. The Annals of
Mathematical Statistics, 43(2):373–397, 1972.
[32] R. Rossi and N. Ahmed. Role discovery in networks. TKDE,
2015.
[33] R. A. Rossi and N. K. Ahmed. The network data repository
with interactive graph analytics and visualization. In AAAI,
2015.
[34] R. A. Rossi and N. K. Ahmed. An interactive data repository
with visual analytics. SIGKDD Explor., 17(2):37–41, 2016.
[35] A. D. Sarma, S. Gollapudi, and R. Panigrahy. Estimating
PageRank on Graph Streams. In PODS, pages 69–78, 2008.
[36] M. J. Schervish. Theory of Statistics. Springer, 1995.
[37] Y. Tillé. Sampling Algorithms. Springer-Verlag.
[38] J. S. Vitter. Random sampling with a reservoir. ACM
Transactions on Mathematical Software, 11:37–57, 1985.
[39] D. Williams. Probability with Martingales. Cambridge
University Press, 1991.
[40] A. Zakrzewska and D. A. Bader. Tracking local communities
in streaming graphs with a dynamic algorithm. SNAM,
6(1):65, 2016.
[41] P. Zhao, C. Aggarwal, and G. He. Link prediction in graph
streams. In ICDE, pages 553–564, 2016.

13

