2. Definition
Support(e) in H: #triangles e is in
k-truss of G: largest subgraph H; each edge in H has support ≥ k-2 in H
Truss decomposition: find all k-trusses in graph G
Truss number of edge e: the maximum k, s.t., e is in the k-truss
a
b
c
e
d
l
f
g h
k
i
ja
b
c
e
d
l
f
g h
k
i
ja
b
c
e
d
l
f
g h
k
i
ja
b
c
e
d
l
f
g h
k
i
j
2-truss
3-truss
4-truss
5-trusskmax = 5
truss-number(fj) = 4
3. Advantages
Notions of cohesive subgraphs
n-clique, n-clan, k-plex, n-club
lambda set
k-core
(The largest subgraph H of graph G s.t. every vertex in H is
connected to at least k-1 vertices within H)
k-truss
NP-Hard
O(n^4)
“Seedbed”
Refines k-core
O(m^1.5)
Stronger ties
O(m+n)
7. In-memory Algorithm
Support computation by triangle listing
Bottom-up (from small to large k)
Remove edges with support less than k, update supports of others
repeat on the remaining graph
Remove isolated
vertices
Remove edges with
support less than 1
Remove edges with
support less than 2
Remove edges with
support less than 3 a
b
c
e
d
l
f
g h
k
i
ja
b
c
e
d
l
f
g h
k
i
ja
b
c
e
d
f
h i
ja
b
c
e
d
2-truss 3-truss 4-truss 5-truss
11. Graph Partitioning
Partition graph into a set of memory-resident subgraphs
a
b
c
e
d
l g d
f
g h
k
i
ja
b
c
e
d
l
f
g
hk
i
j
a
b
c
e
d
l
f
g h
k
i
j
12. a
b
c
e
d
l g
a
b
c
e
d
l
f
g
hk
i
j
d
f
g h
k
i
j
Lower-bounding Truss
Number
Truss decomposition locally
local truss number as lower bound
a
b
c
e
d
l g
a
b
c
e
d
l
f
g
hk
i
j
d
f
g h
k
i
ja
b
c
e
d
l g
a
b
c
e
d
l
f
g
hk
i
j
d
f
g h
k
i
ja
b
c
e
d
l g
a
b
c
e
d
l
f
g
hk
i
j
d
f
g h
k
i
j
35 4 2
Lower bounds
13. Truss Decomposition
Bottom-up decomposition from small to large k
Only on small candidate subgraph H: induced by
vertices connected to edges with lower-bound ≤ k
On H: remove edges with (global) truss number ≤ k
Added to k-truss of G
O(kmax) scans of the graph
(assume candidate graph fits in main memory)
16. Truss Decomposition
a
b
c
e
d
f
h i
j
a
b
c
e
d
l g
a
b
c
e
d
l
f
g
hk
i
j
d
f
g h
k
i
j
35 4
e
d
l
f
g h
k
Removed edges
have truss
number 3
Example
Lower bounds
Recursively
remove edges
with support
less than 4
24. Top-down Approach
We want top-t k-trusses in many applications
Core of the network
Small k implies sparse subgraph
Top-down approach for ONLY top-t k-trusses
avoid wasting time for sparser trusses
25. Overview
Partition graph into a set of memory-resident subgraphs
Upper-bound truss number locally using neighborhood info
Repeat for multiple rounds to refine the bounds
Top-down truss decomposition
k-truss in descending order of k on candidate subgraph H
H: induced by vertices connected to edges with upper-bound ≥ k
26. Compute k-truss Top-down
O(t) scans of the graph
(assume candidate graph fits in main memory)
Example: top-1 k-truss (kmax = 5)
a
b
c
e
d
l
f
g h
k
i
j a
b
c
e
d
Candidate
subgraph
34. Compare with MapReduce
Approach
Dataset |VG| |EG| Disk size
P2P 6.3K 41.6K 237K
HEP 9.9K 52.0K 317K
P2P HEP LJ BTC Web
Bottom-up < 1 < 1 664 1768 6314
MapReduce 4200 14700 - - -
Time (in seconds)
Datasets
35. Upper-bound truss number
Initial bound
Support (in G)
Further bound
Suppose edge e = (u,v)
If less than x edges with support at least x are connected to u: e
cannot be in (x+2)-truss (same for v)
Example: edge (e,d)
a
b
c
e
d
l
f
g h
k
i
j
Hinweis der Redaktion
James, from…
Definition of Support?
No 6-truss
Show how support can be used as upper bound
Decomposition by computing truss number
NP-hard to compute
Complexity of k-core
k-core compared to sample network
Triangle listing algorithm
smoother
How?
What’s decomposition?
Recall that truss decomposition is to …
Equivalently, since the k-truss consists of , we may instead compute …