Uploaded by anshul1508 namdeo

DATA MINING Notes

advertisement
VLDB Database School (China) 2010
August 3-7, 2010, Shenyang
Lecture Notes
Part 1
Mining and Searching Complex
Structures
Anthony K.H. Tung(邓锦浩)
School of Computing
National University of Singapore
www.comp.nus.edu.sg/~atung
Mining and Searching Complex Structures
Contents
Chapter 1: Introduction ------------------------------------------ 1
Chapter 2: High Dimensional Data ------------------------- 34
Chapter 3: Similarity Search on Sequences ------------ 110
Chapter 4: Similarity Search on Trees ------------------- 156
Chapter 5: Graph Similarity Search ---------------------- 175
Chapter 6: Massive Graph Mining ------------------------ 234
Mining and Searching Complex Structures
Chapter 1 Introduction
Mining and Searching Complex
Structures
Introduction
Anthony K. H. Tung(鄧锦浩)
School of Computing
National University of Singapore
www.comp.nus.edu.sg/~atung
Research Group Link: http://nusdm.comp.nus.edu.sg/index.html
Social Network Link: http://www.renren.com/profile.do?id=313870900
What is data mining?
Really nothing different from what scientists had been doing for
Correct,
useful
model
Generate
data
Real World
Collect data and verify or
construct model of real world
Nobel
Prize
Output most likely model
based on some statistical
measure
Feed in data
What’s new?
Systematically and
efficiently test
many statistical
models
1
Mining and Searching Complex Structures
Chapter 1 Introduction
Components of data mining
Structure of model
geneA=high and geneB=low ===> cancer
geneA, geneB and geneC exhibit strong correlation
Statistical Score for the model
Accuracy of rule 1 is 90%
Similarity function: Are they sufficiently similar group of records
that support a certain model or hypothesis?
Search method for the correct model parameters
Given 200 genes, there could be 2^200 rules. Which rule give the
best prediction power?
Database access method
Given 1 million records, how to quickly find relevant records to
compute the accuracy of a rule?
The Apriori Algorithm
• Bottom-up, breadth first
search
• Only read is perform on
the databases
• Store candidates in
memory to simulate the
lattice search
• Iteratively follow the two
steps:
–generate candidates
–count and get actual
frequent items
a,b,c,e
a,b,c a,b,e a,c,e b,c,e
a,b
a,c
a,e
a
start
4
2
b
b,c
b,e
c
e
{}
c,e
Mining and Searching Complex Structures
Chapter 1 Introduction
The K-Means Clustering Method
• Given k, the k-means algorithm is implemented in 4
steps:
–Partition objects into k nonempty subsets
–Compute seed points as the centroids of the clusters of the
current partition. The centroid is the center (mean point) of the
cluster.
–Assign each object to the cluster with the nearest seed point.
–Go back to Step 2, stop when no more new assignment.
5
The K-Means Clustering Method
• Example
10
10
9
9
8
8
7
7
6
6
5
5
4
4
3
3
2
2
1
1
0
0
0
1
2
3
4
5
6
7
8
9
10
0
10
10
9
9
8
8
7
7
6
6
5
5
4
4
3
3
2
2
1
1
2
3
4
5
6
7
8
9
10
1
0
0
0
1
2
3
4
5
6
7
8
9
10
0
6
3
1
2
3
4
5
6
7
8
9
10
Mining and Searching Complex Structures
Chapter 1 Introduction
Training Dataset (Decision Tree)
Outlook
Temp
Humid
Wind
PlayTennis
Sunny
Sunny
Overcast
Rain
Rain
Rain
Overcast
Sunny
Sunny
Rain
Sunny
Overcast
Overcast
Rain
Hot
Hot
Hot
Mild
Cool
Cool
Cool
Mild
Cool
Mild
Mild
Mild
Hot
Mild
High
High
High
High
Normal
Normal
Normal
High
Normal
Normal
Normal
High
Normal
High
7
Weak
Strong
Weak
Weak
Weak
Strong
Strong
Weak
Weak
Weak
Strong
Strong
Weak
Strong
No
No
Yes
Yes
Yes
No
Yes
No
Yes
Yes
Yes
Yes
Yes
No
Selecting the Next Attribute
S=[9+,5-]
E=0.940
S=[9+,5-]
E=0.940
Humidity
Wind
High
[3+, 4-]
E=0.985
Normal
Weak
[6+, 1-]
[6+, 2-]
E=0.592
Gain(S,Humidity)
=0.940-(7/14)*0.985
– (7/14)*0.592
=0.151
8
4
Strong
[3+, 3-]
E=0.811
E=1.0
Gain(S,Wind)
=0.940-(8/14)*0.811
– (6/14)*1.0
=0.048
Mining and Searching Complex Structures
Chapter 1 Introduction
Selecting the Next Attribute
S=[9+,5-]
E=0.940
Outlook
Over
cast
Sunny
Rain
[2+, 3-]
[4+, 0]
[3+, 2-]
E=0.971
E=0.0
E=0.971
Gain(S,Outlook)
=0.940-(5/14)*0.971
-(4/14)*0.0 – (5/14)*0.0971
=0.247
9
ID3 Algorithm
[D1,D2,…,D14]
[9+,5-]
Outlook
Sunny
Overcast
Ssunny=[D1,D2,D8,D9,D11]
[2+,3-]
?
Rain
[D3,D7,D12,D13] [D4,D5,D6,D10,D14]
[4+,0-]
[3+,2-]
Yes
?
Gain(Ssunny , Humidity)=0.970-(3/5)0.0 – 2/5(0.0) = 0.970
Gain(Ssunny , Temp.)=0.970-(2/5)0.0 –2/5(1.0)-(1/5)0.0 = 0.570
Gain(Ssunny , Wind)=0.970= -(2/5)1.0 – 3/5(0.918) = 0.019
10
5
Mining and Searching Complex Structures
Chapter 1 Introduction
Decision Tree for PlayTennis
Outlook
Sunny
Overcast
Humidity
High
Rain
Yes
Wind
Normal
No
Strong
Yes
Weak
No
Yes
11
Can we fit what we learn into the framework?
Apriori
K-means
ID3
rule pattern discovery clustering
task
clusters
structure of the model association rules
or pattern
choice of any k
lattice of all possible
search space
classification
decision tree
combination of items
size= 2m
points as center
size=infinity
score function
support, confidence
square error
search /optimization
method
data management
technique
breadth first with
pruning
gradient descent
all possible
combination of
decision tree
size= potentially
infinity
accuracy,
information gain
greedy
TBD
TBD
TBD
12
6
Mining and Searching Complex Structures
Chapter 1 Introduction
Components of data mining(II)
Models Enumeration
Algorithm
Statistical Score Function
Similarity/Search Function
Database Access Method
Database
Background knowledge
• We assume you have some basic knowledge about data
mining, some of the slides here will be very useful for this
purpose
• Association Rule Mining
http://www.comp.nus.edu.sg/~atung/Renmin56.pdf
• Classification and Regression
http://www.comp.nus.edu.sg/~atung/Renmin67.pdf
• Clustering
http://www.comp.nus.edu.sg/~atung/Renmin78.pdf
7
Mining and Searching Complex Structures
Chapter 1 Introduction
IT Trend
Processors are cheap and will become cheaper(multi-core processor,
graphic cards)
Storage will be cheap but might not be fast
Bandwidth will be growing
What can we do with this?
Play more realistic games!
Not exactly a joke since any technologies that speed up games can speed up scientific
simulation
Smarter (more intensive) computation
Can store more personal semantic/ontology
People can collaborate more over the Internet (Flickr, Wikipedia) to make
things more intelligent
The AI dream now have the support of much better hardwares
Essentially, data mining can be made much more simple for the man
on the street
Data mining should be human-centered, not machine centered
2010-7-31
15
What is complex data?
What
is “simple” data?
zWhat are complex data?
tabular table, with small number of attributes (of the same type),
no
Test1 Regular
Gene1
Progress
comments
Pos missing
2.0
Fever
……
values.
Neg
-0.3
N.A
5.7
Unconscious
High dimensional data: Lots of attributes with different data types with missing values
Sequences/ time series
Trees
8
Graphs
Mining and Searching Complex Structures
Chapter 1 Introduction
Why complex data?
They come naturally in many applications. Bring research nearer to real
world
Lots of challenges which mean more fun!
Some fundamental challenges:
How do you compare complex objects effectively and efficiently?
How
do you
find special subset in the data that is interesting?
Test1
Gene1
Progress
Pos What
2.0 new
Fever
type of models and score function must you used?
Neg
-0.3
Unconscious
How
do you
handle noise and error ?
N.A
comments
……
5.7
a
a
d
d
c
b
e
c
d
b
c
c
d
d
b
e
T2
T1
Personalized Semantic for Personal Data Management
everyone will own terabytes of data soon
improve query/search interface by mining and extracting personalized semantics like
entities and their relationship etc. by comparing them against high quality tagged databases
Query by
documents
Query by
audio/music
Query by video
Query by
photographs/images
Wikipedia
High Quality
Data
Sources
singers
authors
actor/actress
songs
papers
semantic
layer
places
movies
Personal Data
documents
audio
music
video
9
photographs/i
mages
Webpage/Blogs/Bookmarks
Mining and Searching Complex Structures
Chapter 1 Introduction
Integrated Approach to Mining Software Engineering Data
software engineering data: code base, change history, bug reports, runtime trace
integrated into a data warehouse to support decision making and mining,
Example: Which code module should I modify to create a new function? Which
module need maintenance?
programming
defect detection
testing
debugging
maintenance
…
software engineering tasks helped by data mining
classification
association/
patterns
clustering
…
Data Warehouse
code
bases
change
history
program
states
structural
entities
bug
reports/nl
…
software engineering data
WikiScience
Web 2.0: Facebook for scientists
Collaborative platform for scientist to build scientific models/hypothesis and share
data, applications
Based on some
articles, I make some
changes to Model A
to create Model B
Model
ModelAA
supporting
articles tagged to
Model B
Centralized,
Centralized,
Hybrid
HybridModel
Model
CCConstructed
Constructed
by
bySystem
System
supporting
dataset tagged to
Model A
Model
ModelBB
This is my model of
the solar system base
on my supporting
dataset
10
Mining and Searching Complex Structures
Chapter 1 Introduction
Hey, why not Cloud Computing, Map/Reduce?
• These are platform for scaling up services to large
number of users on large amount of data
• But what exactly do you want to scale up?
• Services that provide useful and semantically
correct information to the users
• We have too many scalable data mining
algorithms that find nothing or too many things
• Let’s focus on finding useful things first
(assuming we have lot’s of processing power) and
then try to scale it up
Schedule of the Course
Date/Time
Content
Lesson 1
Introduction
Lesson 2
Mining and Search High Dimensional Data I
Lesson 3
Mining and Search High Dimensional Data II
Lesson 4
Mining and Search High Dimensional Data III
Lesson 5
Similarity Search for Sequences and Trees I
Lesson 6
Similarity Search for Sequences and Trees III
Lesson 7
Similarity Search for Graph I
Lesson 8
Similarity Search for Graph II
Lesson 9
Similarity Search for Graph III
Lesson 10
Mining Massive Graph I
Lesson 11
Mining Massive Graph II
Lesson 12
Mining Massive Graph III
11
Mining and Searching Complex Structures
Chapter 1 Introduction
Focus of the course
• Techniques that can handle high dimensional, complex
structures
–Providing semantics to similarity search
–Shotgun and Assembly: Column/Feature Wise Processing using
Inverted Index
–Row-wise Enumeration
–Using local properties to infer global properties
• Throughout the course, please try to think of how these
techniques are applicable across different type of complex
structures
Databases Queries
z
z
z
z
z
To start off, we will consider something very basic call
ranking queries since we need ranking any similarity search
(usually from most similar to most dissimilar)
In relational database, SQL returns all results at one go
How many tuples can be fitted in one screen?
How many tuples can you remember?
Options:
z
z
z
Summarize the results
Display representative tuples
How to select representative tuples?
12
Mining and Searching Complex Structures
Chapter 1 Introduction
Retrieve Relevant Information
z
z
z
z
z
Search videos related to Shanghai Expo
Too many results: as long as you click “next”, there are 20
more new results
Are we interested in all results?
No, only most relevant ones
Search engines have to rank the results, out of which they
make money from
Question: How to Select a Small Result Set
z
z
Selecting the most representative or most interesting results
is not trivial
Find an apartment with rental cheaper than 1000, the
cheaper the better
z
z
The result tuples can be sorted in the ascending order of rental prices,
those in front are more favorable
Find an apartment with rental cheaper than 1000 near NEU,
the lower the better, the nearer the better
z
z
Apartment with lower rent may not be near, nearer one may not be
cheap
Order by prices? Order by distances?
13
Mining and Searching Complex Structures
Chapter 1 Introduction
Top-k Queries
z
z
z
z
z
z
Define a scoring function, which maps a tuple to a real
number, as a score
The higher the score is, the more favorable the tuple is
Define an integer k
Answer: k objects with highest scores
Different scoring function may give different top-k result
Price
Distance to NEU
Apartment A
$800
500 meter
Apartment B
$1200
200 meters
Given k = 1, if the score function is defined as the sum of
price and distance, the first tuple is better; if it is defined as
the product, the second tuple is better
Brute Force Top-k
z
z
z
z
z
z
Compute scores for each result tuple
Sort the tuples according to the descending order of the
scores
Select the first k tuples
What if the number of tuples is unlimited? Search engines
can give unlimited number of results
Even if the number of tuples is limited, it is too slow to
compute score for each tuple
We have to do it efficiently
14
Mining and Searching Complex Structures
Chapter 1 Introduction
Outline
z
z
Two well-known top-k algorithms
z
Fagin's Algorithm (FA)
z
The Threshold Algorithm (TA)
Take random access into consideration
z
No Random Access Algorithm (NRA)
z
The Combined Algorithm (CA)
Monotonicity
z
z
A score function f is monotone if f(x1,x2,...,xm)≤f(y1,y2,...,ym)
whenever xi≤yi for every i
Select top-3 students with highest total score in mathematics,
physics and computer science:
•
select name, math+phys+comp as score
from student
order by score desc limit 3
z
sum(x.math,x.phys,x.comp)≤sum(y.math,y.phys,y.comp) if
x.math≤y.math and x.phys≤y.phys and x.comp≤y.comp
15
Mining and Searching Complex Structures
Chapter 1 Introduction
Sorted Lists
z
We shall think of a database consisting of m sorted lists L1,
L2, … Lm
Lmath
Lphys
Ann
98
Hugh
97
z
Kurt
96
Ben
96
Ryan
94
Ann
95
Kurt
93
Ann
92
Jane
95
Hugh
91
Kurt
91
Ben
93
Carl
90
Jane
89
Hugh
92
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Outline
z
Lcomp
Two well-known top-k algorithms
z
Fagin's Algorithm (FA)
z
The Threshold Algorithm (TA)
Take random access into consideration
z
No Random Access Algorithm (NRA)
z
The Combined Algorithm (CA)
16
Mining and Searching Complex Structures
Chapter 1 Introduction
Fagin's Algorithm (I)
z
z
Do sequential access until there are at least k matches
Ann
98
Hugh
97
Kurt
96
Ben
96
Ryan
94
Ann
95
Kurt
93
Ann
92
Jane
95
Hugh
91
Kurt
91
Ben
93
Carl
90
Jane
89
Hugh
92
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Sequential accesses are stopped when 3 students are seen, i.e.
Ann, Hugh and Kurt
Fagin's Algorithm (II)
z
z
For each object that has been seen, do random accesses on
other lists to compute its score
Ann
98
Hugh
97
Kurt
96
Ben
96
Ryan
94
Ann
95
Kurt
93
Ann
92
Jane
95
Hugh
91
Kurt
91
Ben
93
Carl
90
Jane
89
Hugh
92
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Random accesses need to be done for Ben, Carl, Jane and
Ryan
17
Mining and Searching Complex Structures
Chapter 1 Introduction
Fagin's Algorithm (III)
z
Select the k objects with highest score as top-k result
Ann
98
Hugh
97
Kurt
96
Ben
96
Ryan
94
Ann
95
Kurt
93
Ann
92
Jane
95
Hugh
91
Kurt
91
Ben
93
Carl
90
Jane
89
Hugh
92
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Why is FA correct? (I)
z
z
There are at least k objects seen on all attributes when
sequential access is stopped
By monotonicity, those objects that are not seen do not have
higher score than the above k objects
Ann
98
Hugh
97
Kurt
96
Ben
96
Ryan
94
Ann
95
Kurt
93
Ann
92
Jane
95
Hugh
91
Kurt
91
Ben
93
Carl
90
Jane
89
Hugh
92
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
18
Mining and Searching Complex Structures
Chapter 1 Introduction
Why is FA correct? (II)
z
z
For those that have been seen, it is either all attributes has
been seen, or random accesses are performed to know all
attributes
The k objects with highest scores are therefore the top-k
result
Ann
98
Hugh
97
z
96
Ben
96
Ryan
94
Ann
95
Kurt
93
Ann
92
Jane
95
Hugh
91
Kurt
91
Ben
93
Carl
90
Jane
89
Hugh
92
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Outline
z
Kurt
Two well-known top-k algorithms
z
Fagin's Algorithm (FA)
z
The Threshold Algorithm (TA)
Take random access into consideration
z
No Random Access Algorithm (NRA)
z
The Combined Algorithm (CA)
19
Mining and Searching Complex Structures
Chapter 1 Introduction
The Threshold Algorithm (I)
z
z
Do sequential access on all lists. If an object is seen, do
random access to the other lists to compute its score
Ann
98
Hugh
97
Kurt
96
Ben
96
Ryan
94
Ann
95
Kurt
93
Ann
92
Jane
95
Hugh
91
Kurt
91
Ben
93
Carl
90
Jane
89
Hugh
92
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Random accesses on Ann, Hugh and Kurt first, then on Ben
and Ryan
The Threshold Algorithm (II)
z
z
Remember the k objects with highest scores, together with
their scores
Ann
98
Hugh
97
Kurt
96
Ben
96
Ryan
94
Ann
95
Kurt
93
Ann
92
Jane
95
Hugh
91
Kurt
91
Ben
93
Carl
90
Jane
89
Hugh
92
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Score (Ann) = 285
Score (Hugh) = 280
Score (Kurt) = 280
20
Mining and Searching Complex Structures
Chapter 1 Introduction
The Threshold Algorithm (III)
• Let threshold value τ be the function value on last seen values
on all sorted lists
• As soon as at least k objects with score at least τ, then halt
Ann
98
Hugh
97
Kurt
96
Ben
96
Ryan
94
Ann
95
Kurt
93
Ann
92
Jane
95
Hugh
91
Kurt
91
Ben
93
Carl
90
Jane
89
Hugh
92
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
τ(1) = 291
τ(2) = 285
τ(3) = 280
Why is TA correct?
• By monotonicity, those unseen objects do not have higher
score than τ
• For those that have been seen, random accesses are
performed, the k objects with highest scores are therefore the
top-k result
Ann
98
Hugh
97
Kurt
96
Ben
96
Ryan
94
Ann
95
Kurt
93
Ann
92
Jane
95
Hugh
91
Kurt
91
Ben
93
Carl
90
Jane
89
Hugh
92
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
21
τ(1) = 291
τ(2) = 285
τ(3) = 280
Mining and Searching Complex Structures
Chapter 1 Introduction
Comparing TA with FA
• Number of sequential accesses
z
At the time FA stops sequential accesses, τ is guaranteed not
higher than the k objects seen on all sorted lists
• Number of random accesses
z
TA requires m-1 random accesses for each object
z
But FA is expected to random access more objects
• Size of buffers used
z
Buffer used by FA can be unbounded
z
TA only needs to remember k objects with k scores, and the
threshold value τ
Outline
z
z
Two well-known top-k algorithms
z
Fagin's Algorithm (FA)
z
The Threshold Algorithm (TA)
Take random access into consideration
z
No Random Access Algorithm (NRA)
z
The Combined Algorithm (CA)
22
Mining and Searching Complex Structures
Chapter 1 Introduction
Random Access
z
z
z
Random accesses are impossible
z
Text retrieval: sorted lists are results of search engines
Random accesses are expensive
z
Sequential accesses on disk are orders of magnitude faster
than random accesses
We need to consider not using random accesses or using
them as few as possible
No Random Access
z
Without random access, all we know are the upper bounds
Lmath
z
Lphys
Ann
98
Hugh
97
Lcomp
Kurt
96
Ben
96
Ryan
94
Ann
95
Kurt
93
Ann
92
Jane
95
Hugh
91
Kurt
91
Ben
93
Carl
90
Jane
89
Hugh
92
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Carl’s scores on physics and computer science are not higher
than 89 and 92 respectively
23
Mining and Searching Complex Structures
Chapter 1 Introduction
Lower and Upper Bounds
z
z
If an object has not been seen on one attribute
z
Lower bound is 0
z
Upper bound is the last seen value
Ann
98
Hugh
97
Kurt
96
Ben
96
Ryan
94
Ann
95
Kurt
93
Ann
92
Jane
95
Hugh
91
Kurt
91
Ben
93
Carl
90
Jane
89
Hugh
92
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
The lower bound of Carl’s score on physics is 0
The upper bound of Carl’s score on physics is 89
Worse and Best Scores (I)
z
z
z
W (R): The worst possible score of tuple R
B (R): The best possible score of tuple R
Ann
98
Hugh
97
Kurt
96
Ben
96
Ryan
94
Ann
95
Kurt
93
Ann
92
Jane
95
Hugh
91
Kurt
91
Ben
93
Carl
90
Jane
89
Hugh
92
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
W (Carl) = 90
B (Carl) = 90 + 89 + 92
24
Mining and Searching Complex Structures
Chapter 1 Introduction
Worse and Best Scores (II)
z
z
W (R) ≤ Score of R ≤ B (R)
W (R) and B (R) get updated as its value gets sequential
accessed
Ann
98
Hugh
97
Kurt
96
Ben
96
Ryan
94
Ann
95
Kurt
93
Ann
92
Jane
95
Hugh
91
Kurt
91
Ben
93
Carl
90
Jane
89
Hugh
92
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Ann
Hugh
Kurt
W
98
97
96
B
291
291
291
Worse and Best Scores (II)
z
z
W (R) ≤ Score of R ≤ B (R)
W (R) and B (R) get updated as its value gets sequential
accessed
Ann
98
Hugh
97
Kurt
96
Ben
96
Ryan
94
Ann
95
Kurt
93
Ann
92
Jane
95
Hugh
91
Kurt
91
Ben
93
Carl
90
Jane
89
Hugh
92
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Ann
Hugh
Kurt
Ben
Ryan
W
98→193
97
96
96
94
B
291→287
291→288
291→286
285
285
25
Mining and Searching Complex Structures
Chapter 1 Introduction
Worse and Best Scores (II)
z
z
W (R) ≤ Score of R ≤ B (R)
W (R) and B (R) get updated as its value gets sequential
accessed
Ann
98
Hugh
97
Kurt
96
Ben
96
Ryan
94
Ann
95
Kurt
93
Ann
92
Jane
95
Hugh
91
Kurt
91
Ben
93
Carl
90
Jane
89
Hugh
92
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Ann
W 193→285
Hugh
Kurt
Ben
Ryan
Jane
97
96→189
96
94
95
B 287→285 288→285 286→281 285→283 285→282
Outline
z
z
Two well-known top-k algorithms
z
Fagin's Algorithm (FA)
z
The Threshold Algorithm (TA)
Take random access into consideration
z
No Random Access Algorithm (NRA)
z
The Combined Algorithm (CA)
26
280
Mining and Searching Complex Structures
Chapter 1 Introduction
No Random Access Algorithm (I)
z
z
Maintain the last-seen values x1,x2,…,xm
For every seen object, maintain its worst possible score, its
known attributes and their values
Ann
98
Hugh
97
Kurt
96
Ben
96
Ryan
94
Ann
95
Kurt
93
Ann
92
Jane
95
Hugh
91
Kurt
91
Ben
93
Carl
90
Jane
89
Hugh
92
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
z
xmath = 96; xphys = 94; xcomp = 95
z
Ann:193:{<Math:98>;<Comp:95>}
No Random Access Algorithm (II)
z
Why not maintain the best possible score for each objects
Ann
98
Hugh
97
Kurt
96
Ben
96
Ryan
94
Ann
95
Kurt
93
Ann
92
Jane
95
Hugh
91
Kurt
91
Ben
93
Carl
90
Jane
89
Hugh
92
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Ann
W 193→285
Hugh
Kurt
Ben
Ryan
Jane
97
96→189
96
94
95
B 287→285 288→285 286→281 285→283 285→282
Too Frequently Updated!
27
280
Mining and Searching Complex Structures
Chapter 1 Introduction
No Random Access Algorithm (III)
z
z
Let M be the kth largest W value
An object R is viable if B (R) ≥ M
Ann
98
Hugh
97
Kurt
96
Ben
96
Ryan
94
Ann
95
Kurt
93
Ann
92
Jane
95
Hugh
91
Kurt
91
Ben
93
Carl
90
Jane
89
Hugh
92
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Hugh
Kurt
Ben
Ryan
Jane
W 285
Ann
97→188
189→280
96→189
94
95
B
285→280 281→280 283→280 282→278 280→277
285
M = 189
No Random Access Algorithm (III)
z
z
Let M be the kth largest W value
An object R is viable if B (R) ≥ M
Ann
98
Hugh
97
Kurt
96
Ben
96
Ryan
94
Ann
95
Kurt
93
Ann
92
Jane
95
Hugh
91
Kurt
91
Ben
93
Carl
90
Jane
89
Hugh
92
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Ann
Hugh
Kurt
W
285
188→280
280
B
285
285→280
280
Ben
Ryan
Jane
188
94
95→184
280→278 278→276 277→274
28
M = 280
Mining and Searching Complex Structures
Chapter 1 Introduction
No Random Access Algorithm (IV)
z
z
z
Let set T contain objects with W (R) ≥ M
Halt when
z
There are at least k objects seen on all sorted lists
z
No viable objects left outside set T
Ann
Hugh
Kurt
W
285
188→280
280
B
285
285→280
280
Ben
Ryan
Jane
188
94
95→184
M = 280
280→278 278→276 277→274
T = {Ann, Hugh, Kurt}
Why is NRA correct?
z
z
z
W (R) ≤ Score of R ≤ B (R) always holds
If an object R is not viable, Score of R ≤ B (R) ≤ M, then
there are at least k objects with scores not lower than R
Therefore, if there is no viable object outside T and T
contains at least k objects, T is the set of top-k result
29
Mining and Searching Complex Structures
Chapter 1 Introduction
Comparing NRA with TA
• Number of sequential accesses
z
The number of sequential accesses of NRA is at least the last
position of top-k result on all attributes
• Number of random accesses
z
NRA is obviously 0
• Size of buffers used
z
TA remembers k objects with k scores, and the threshold
value τ
z
NRA remembers all viable objects with its scores on all seen
attributes, and the last-seen value on all attributes
How deep can NRA go?
z
z
Ann
98
Hugh
97
Kurt
96
Hugh
97
Kurt
96
Ann
95
Ben
60
Ryan
60
Jane
60
Ryan
60
Ben
60
Ben
60
Carl
60
Jane
60
Carl
60
...
...
...
...
...
...
Jane
60
Carl
60
Ryan
60
Kurt
0
Ann
0
Hugh
0
The set T can be identified quickly, but their scores will only
be certain at the end of lists
If we allow relatively fewer number of random accesses,
scanning the entire lists can be avoided
30
Mining and Searching Complex Structures
Chapter 1 Introduction
Outline
z
z
Two well-known top-k algorithms
z
Fagin's Algorithm (FA)
z
The Threshold Algorithm (TA)
Take random access into consideration
z
No Random Access Algorithm (NRA)
z
The Combined Algorithm (CA)
The Combined Algorithm (I)
z
z
z
z
z
z
CA combines TA and NRA
cR: the cost of a random access
cS: the cost of a sequential access
h=
Run NRA, but every h steps to run random accesses, like TA
h = ∞ → never do random access, CA is then NRA
31
Mining and Searching Complex Structures
Chapter 1 Introduction
The Combined Algorithm (II)
z
Ann
98
Hugh
97
Kurt
96
Hugh
97
Kurt
96
Ann
95
Ben
60
Ryan
60
Jane
60
Ryan
60
Ben
60
Ben
60
Carl
60
Jane
60
Carl
60
...
...
...
...
...
...
Jane
60
Carl
60
Ryan
60
Kurt
0
Ann
0
Hugh
0
Random accesses for Ann, Hugh and Kurt quickly find out
the scores for Ann, Hugh and Kurt
The Combined Algorithm (III)
z
z
In CA, by doing random accesses, we wish to either
z
Confirm an object is a top-k result, or
z
Prune a viable object
As the number of random accesses in CA is limited, various
heuristics can be made to optimize CA in terms of total cost
32
Mining and Searching Complex Structures
Chapter 1 Introduction
Reference
• Ronald Fagin, Amnon Lotem, Moni Naor: Optimal
aggregation algorithms for middleware. J. Comput. Syst.
Sci. 66(4): 614-656 (2003)
33
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Mining and Searching Complex
Structures
High Dimensional Data
Anthony K. H. Tung(鄧锦浩)
School of Computing
National University of Singapore
www.comp.nus.edu.sg/~atung
Research Group Link: http://nusdm.comp.nus.edu.sg/index.html
Social Network Link: http://www.renren.com/profile.do?id=313870900
Outline
• Sources of HDD
• Challenges of HDD
• Searching and Mining Mixed Typed Data
–Similarity Function on k-n-match
–ItCompress
• Bregman Divergence: Towards Similarity Search on Non-metric
Distance
• Earth Mover Distance: Similarity Search on Probabilistic Data
• Finding Patterns in High Dimensional Data
Mining and Searching Complex Structures
34
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Sources of High Dimensional Data
•
•
•
•
•
Microarray gene expression
Text documents
Images
Features of Sequences, Trees and Graphs
Audio, Video, Human Motion Database (spatiotemporal as well!)
Mining and Searching Complex Structures
Challenges of High Dimensional Data
• Indistinguishable
–Distance between two nearest points and two furthest points
could be almost the same
• Sparsity
–As a result of the above, data distribution are very sparse
giving no obvious indication on where the interesting
knowledge is
• Large number of combination
–Efficiency: How to test the number of combinations
–Effectiveness: How do we understand and interpret so many
combinations?
Mining and Searching Complex Structures
35
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Outline
• Sources of HDD
• Challenges of HDD
• Searching and Mining Mixed Typed Data
–Similarity Function on k-n-match
–ItCompress
• Bregman Divergence: Towards Similarity Search on Non-metric
Distance
• Earth Mover Distance: Similarity Search on Probabilistic Data
• Finding Patterns in High Dimensional Data
Mining and Searching Complex Structures
Similarity Search : Traditional Approach
•
Objects represented by multidimensional vectors
Elevation
Aspect
Slope
Hillshade (9am)
Hillshade (noon)
Hillshade (3pm)
2596
51
3
221
232
148
…
…
•
The traditional approach to similarity search: kNN query
Q = ( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
ID
d1
d2
d3
d4
d5
d6
d7
d8
d9
d10
Dist
P1
1.1
1
1.2
1.6
1.1
1.6
1.2
1.2
1
1
0.93
P2
1.4
1.4
1.4
1.5
1.4
1
1.2
1.2
1
1
0.98
P3
1
1
1
1
1
1
2
1
2
2
1.73
P4
20
20
21
20
22
20
20
19
20
20
57.7
P5
19
21
20
20
20
21
18
20
22
20
60.5
P6
21
21
18
19
20
19
21
20
20
20
59.8
Mining and Searching Complex Structures
36
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Deficiencies of the Traditional Approach
•
Deficiencies
–Distance is affected by a few dimensions with high dissimilarity
–Partial similarities can not be discovered
•
The traditional approach to similarity search: kNN query
Q = ( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
ID
d1
d2
d3
d4
d5
d6
d7
d8
d9
d10
Dist
P1
1.1
1
100
1.2
1.6
1.1
1.6
1.2
1.2
1
1
0.93
99.0
P2
1.4
1.4
1.4
1.5
1.4
1
100
1.2
1.2
1
1
99.0
0.98
P3
1
1
1
1
1
1
2
1
100
2
2
1.73
99.0
P4
20
20
21
20
22
20
20
19
20
20
57.7
P5
19
21
20
20
20
21
18
20
22
20
60.5
P6
21
21
18
19
20
19
21
20
20
20
59.8
Mining and Searching Complex Structures
Thoughts
• Aggregating too many dimensional differences into a single value
result in too much information loss. Can we try to reduce that loss?
• While high dimensional data typically give us problem when in
come to similarity search, can we turn what is against us into
advantage?
• Our approach: Since we have so many dimensions, we can
compute more complex statistics over these dimensions to
overcome some of the “noise” introduce due to scaling of
dimensions, outliers etc.
Mining and Searching Complex Structures
37
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
The N-Match Query : Warm-Up
•
Description
–Matches between two objects in n dimensions. (n ≤ d)
–The n dimensions are chosen dynamically to make the two objects match best.
•
How to define a “match”
–Exact match
–Match with tolerance δ
•
The similarity search example
Q = ( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
ID
d1
d2
d3
d4
P1
1.1
1
100
1.2
1.6
P2
1.4
1.4
1.4
1.5
n=6
d5
d6
d7
d8
d9
d10
Dist
1.1
1.6
1.2
1.2
1
1
0.2
1.4
1
100
1.2
1.2
1
1
0.4
0.98
P3
1
1
1
1
1
1
2
1
100
2
2
1.73
0
P4
20
20
21
20
22
20
20
19
20
20
19
P5
19
21
20
20
20
21
18
20
22
20
19
P6
21
21
18
19
20
19
21
20
20
20
19
Mining and Searching Complex Structures
The N-Match Query : The Definition
•
The n-match difference
Given two d-dimensional points P(p1, p2, …, pd) and Q(q1, q2, …, qd), let δi
= |pi - qi|, i=1,…,d. Sort the array {δ1 , …, δd} in increasing order and let
the sorted array be {δ1’, …, δd’}. Then δn’ is the n-match difference
y
between P and Q.
•
The n-match query
Given a d-dimensional database DB, a query point Q and an
integer n (n≤d), find the point P ∈ DB that has the smallest
n-match difference to Q. P is called the n-match of Q.
10
E
8
D
1-match=A
2-match=B
6
4
A
B
•
C
2
The similarity search example
n=8
6
7
Q = ( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
Q
2
4
6
8
ID
d1
d2
d3
d4
d5
d6
d7
d8
d9
d10
Dist
P1
1.1
1
100
1.2
1.6
1.1
1.6
1.2
1.2
1
1
0.2
0.6
P2
1.4
1.4
1.4
1.5
1.4
1
100
1.2
1.2
1
1
0.4
0.98
P3
1
1
1
1
1
1
2
1
100
2
2
1.73
0
1
P4
20
20
21
20
22
20
20
19
20
20
19
P5
19
21
20
20
20
21
18
20
22
20
19
P6
21
21
18
19
20
19
21
20
20
20
19
Mining and Searching Complex Structures
38
10
x
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
The N-Match Query : Extensions
•
The k-n-match query
Given a d-dimensional database DB, a query point Q, an integer k, and an
integer n, find a set S which consists of k points from DB so that for any
point P1 ∈ S and any point P2∈ DB-S, P1’s n-match difference is smaller
y
than P2’s n-match difference. S is called the k-n-match of Q.
•
The frequent k-n-match query
•
Given a d-dimensional database DB, a query point Q, an integer
k, and an integer range [n0, n1] within [1,d], let S0, …, Si be
the answer sets of k-n0-match, …, k-n1-match, respectively,
find a set T of k points, so that for any point P1 ∈ T and any point
P2 ∈ DB-T, P1’s number of appearances in S0, …, Si is larger
than or equal to P2’s number of appearances in S0, …, Si .
10
E
8
D
The similarity search example
Q
2-1-match={A,D}
2-2-match={A,B}
6
4
A
B
C
2
2
4
6
8
n=6
Q = ( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
ID
d1
d2
d3
d4
d5
d6
d7
d8
d9
d10
P1
1.1
1
100
1.2
1.6
1.1
1.6
1.2
1.2
1
1
Dist
0.2
P2
1.4
1.4
1.4
1.5
1.4
1
100
1.2
1.2
1
1
0.4
0.98
P3
1
1
1
1
1
1
2
1
100
2
2
1.73
0
P4
20
20
21
20
22
20
20
19
20
20
19
P5
19
21
20
20
20
21
18
20
22
20
19
P6
21
21
18
19
20
19
21
20
20
20
19
Mining and Searching Complex Structures
Cost Model
•
The multiple system information retrieval model
–Objects are stored in different systems and scored by each system
–Each system can sort the objects according to their scores
–A query retrieves the scores of objects from different systems and then combine them using some
aggregation function
Q : color=“red” & shape=“round” & texture “cloud”
System 1: Color
•
System 2: Shape
Object ID
Score
Object ID
Score
Object ID
Score
1
0.4
0.4
1
1.0
1.0
1
1.0
1.0
2
2.8
2.8
5
2
1.5
5.5
2
2.0
2.0
3
5
3.5
6.5
2
3
5.5
7.8
3
5.0
5.0
3
4
6.5
9.0
3
4
7.8
9.0
4
5
8.0
9.0
4
5
9.0
3.5
4
5
9.0
1.5
5
4
9.0
8.0
The cost
–Retrieval of scores – proportional to the number of scores retrieved
•
System 3: Texture
The goal
–To minimize the scores retrieved
Mining and Searching Complex Structures
39
10
x
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
The AD Algorithm
•
The AD algorithm for the k-n-match query
–Locate the query’s attributes value in every dimension
–Retrieve the objects’ attributes value from the query’s attributes in both directions
–The objects’ attributes are retrieved in Ascending order of their Differences to the query’s attributes. An n-match is found
when it appears n times.
Q : color=“red”
2-2-match
&Qshape=“round”
: (of
3.0
Q ,:7.0
( 3.0
, 4.0
, 7.0
&) texture
, 4.0 ) “cloud”
Systemd11: Color
Systemd2
2: Shape
Object ID
Score
Attr
Object ID
Score
Attr
Object ID
Score
Attr
1
0.4
1
1.0
1
1.0
2
2.8
5
1.5
2
2.0
5
3.5
2
5.5
3
5.0
3
6.5
3
7.8
5
8.0
4
9.0
4
9.0
4
9.0
3.0
Auxiliary structures
„
Next attribute to retrieve g[2d]
„
Number of appearances appear[c]
„
System d3
3: Texture
7.0
d1
2 ,, 2.6
0.2
1
d2
0.5
35 ,, 3.5
Answer set S
2 , 1.5
4.0
d3
3
0.8
4 ,, 2.0
2 , 2.0
1.0
53 ,, 4.0
1
2
3
4
5
0
20
1
2
10
0
1
0
{ 3 , {2{3} }
Mining and Searching Complex Structures
The AD Algorithm : Extensions
•
The AD algorithm for the frequent k-n-match query
–The frequent k-n-match query
• Given an integer range [n0, n1], find k-n0-match, k-(n0+1)-match, ... , k-n1match of the query, S0, S1, ... , Si.
• Find k objects that appear most frequently in S0, S1, ... , Si.
–Retrieve the same number of attributes as processing a k-n1-match query.
•
Disk based solutions for the (frequent) k-n-match query
–Disk based AD algorithm
• Sort each dimension and store them sequentially on the disk
• When reaching the end of a disk page, read the next page from disk
–Existing indexing techniques
• Tree-like structures: R-trees, k-d-trees
• Mapping based indexing: space-filling curves, iDistance
• Sequential scan
• Compression based approach (VA-file)
Mining and Searching Complex Structures
40
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Experiments : Effectiveness
•
Searching by k-n-match
–COIL-100 database
–54 features extracted, such as color histograms, area moments
k-n-match query, k=4
n
Images returned
5
36, 42, 78, 94
10
„
Searching by frequent k-nmatch
„
„
UCI Machine learning repository
Competitors:
„
IGrid
„
Human-Computer Interactive NN
search (HCINN)
27, 35, 42, 78
15
3, 38, 42, 78
20
27, 38, 42, 78
25
35, 40, 42, 94
30
10, 35, 42, 94
35
35, 42, 94, 96
40
35, 42, 94, 96
45
35, 42, 94, 96
50
35, 42, 94, 96
13, 35, 36, 40, 42
64, 85, 88, 94, 96
Freq. k-n-match
Data sets (d)
IGrid
HCINN
80.1%
86%
87.5%
Segmentation (19)
79.9%
83%
87.3%
Wdbc (30)
87.1%
N.A.
92.5%
Glass (9)
58.6%
N.A.
67.8%
Iris (4)
88.9%
N.A.
89.6%
Experiments : Efficiency
Disk based algorithms for the Frequent k-n-mach query
–Texture dataset (68,040 records); uniform dataset (100,000 records)
–Competitors:
• The AD algorithm
• VA-file
• Sequential scan
Mining and Searching Complex Structures
41
Images returned
10
Ionosphere (34)
Mining and Searching Complex Structures
•
kNN query
k
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Experiments : Efficiency (continued)
•
Comparison with other similarity search techniques
–Texture dataset ; synthetic dataset
–Competitors:
• Frequent k-n-match query using the AD algorithm
• IGrid
• scan
Mining and Searching Complex Structures
Future Work(I)
• We now have a natural way to handle similarity search for
data with categorical , numerical and attributes. Investigating
k-n-match performance on such mixed-type data is currently
under way
• Likewise, applying k-n-match on data with missing or
uncertain attributes will be interesting
• Query={1,1,1,1,1,1,1,M,No,R}
ID
d1
d2
d3
d4
d5
d6
d7
d8
d9
d10
P1
1.1
1
1.2
1.6
1.1
1.6
1.2
M
Yes
R
P2
1.4
1.4
1.4
1.5
1.4
1
1.2
F
No
B
P3
1
1
1
1
1
1
2
M
No
B
P4
20
20
21
20
22
20
20
M
Yes
G
P5
19
21
20
20
20
21
18
F
Yes
R
P6
21
21
18
19
20
19
21
F
Yes
Y
Mining and Searching Complex Structures
42
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Future Work(I)
• We now have a natural way to handle similarity search for
data with categorical , numerical and attributes. Investigating
k-n-match performance on such mixed-type data is currently
under way
• Likewise, applying k-n-match on data with missing or
uncertain attributes will be interesting
• Query={1,1,1,1,1,1,1,M,No,R}
ID
d1
P1
P2
1.4
d2
d3
d4
d5
d6
d7
d8
1
1.2
1.6
1.1
1.6
1.2
M
1
1.2
F
No
2
M
No
20
20
M
1.4
P3
1
1
P4
20
20
P5
19
21
P6
21
1.5
1
20
1
1
20
22
20
20
18
20
21
18
F
d9
d10
R
B
B
G
Yes
R
Yes
Y
Mining and Searching Complex Structures
Future Work(II)
• In general, three things affect the result from a similarity search:
noise, scaling and axes orientation. K-n-match reduce the effect of
noise. Ultimate aim is to have a similarity function that is robust
to noise, scaling and axes orientation
• Eventually will look at creating mining algorithms using k-nmatch
Mining and Searching Complex Structures
43
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Outline
• Sources of HDD
• Challenges of HDD
• Searching and Mining Mixed Typed Data
–Similarity Function on k-n-match
–ItCompress
• Bregman Divergence: Towards Similarity Search on Non-metric
Distance
• Earth Mover Distance: Similarity Search on Probabilistic Data
• Finding Patterns in High Dimensional Data
Mining and Searching Complex Structures
Motivation
query
Large
Data Sets
results
Ever-increasing data collection rates of modern
enterprises and the need for effective, guaranteedquality approximate answers to queries
Concern: compress as much as possible.
Mining and Searching Complex Structures
44
22
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Conventional Compression Method
• Try to find the optimal encoding of arbitrary strings for
the input data:
–Huffman Coding
–Lempel-Ziv Coding (gzip)
• View the whole table as a large byte string
• Statistical or dictionary based
• Operate at the byte level
Mining and Searching Complex Structures
23
Why not just “syntactic”?
• Do not exploit the complex dependency patterns in the table
• Individual retrieval of tuple is difficult
• Do not utilize lossy compression
Mining and Searching Complex Structures
45
24
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Semantic compression methods
• Derive a descriptive model M
• Identify the data values which can be derived from M (within
some error tolerance), which are essential for deriving, and
which are the outliers
• Derived values need not to be stored, only the outliers need
Mining and Searching Complex Structures
25
Advantages
• More Complex Analysis
–Example: detect correlation among columns
• Fast Retrieval
–Tuple-wise access
• Query Enhancement
–Possible to answer query directly from discover semantic
–Compress in way which enhanced answering of some complex
queries, eg. “Go Green: Recycle and Reuse Frequent Patterns”, C.
Gao, B. C. Ooi, K. L. Tan and A. K. H. Tung. ICDE’2004.
Choose a combination of compression methods
based on semantic and syntactic information
Mining and Searching Complex Structures
46
26
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Fascicles
• Key observation
–Often, numerous subsets of records in T have similar values for
many attributes
Protocol
http
http
http
http
http
ftp
ftp
ftp
Duration
12
16
15
19
26
27
32
18
Bytes Packets
20K
3
24K
5
20K
8
40K
11
58K
18
100K
24
300K
35
80K
15
• Compress data by storing
representative values (e.g.,
“centroid”) only once for each
attribute cluster
• Lossy compression:
information loss is controlled by
the notion of “similar values” for
attributes (user-defined)
Mining and Searching Complex Structures
27
ItCompress: Compression Format
Representative Rows (Patterns)
Original Table
RRid age salary
age salary credit sex
credit
sex
1
30
90k
good
F
2
70
35k
poor
M
20
30k
poor
M
25
76k
good
F
30
90k
good
F
40
100k
poor
M
50
110k
good
F
2
0111
60
50k
good
M
1
1111
70
35k
poor
F
1
1111
75
15k
poor
M
1
0100
40, poor, M
1
0111
50
1
0010
60, 50k, M
2
1110
F
2
1111
Compressed Table
RRid bitmap
Error Tolerance:
age salary credit sex
5
25k
0
0
Mining and Searching Complex Structures
47
Outlying
value
20
28
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Some definitions
• Error tolerance
–Numeric attributes
• The upper bound that x’ can be different from x
• x ∈ [ x’-ei, x’+ei ]
–Categorical attributes
• The upper bound on the probability that the compressed
value differs from actual value
• Given an actual value x and its error tolerance ei, the
compressed value x’ should satisfy: Prob( x=x’ ) ≥ 1 - ei
Mining and Searching Complex Structures
29
Some definitions
• Coverage
–Let R be a row in the table T, and Pi be a pattern
–The coverage of Pi on R :
cov( Pi , R ) = number of attributes X i in which
R[ X i ] is match by Pi [ X i ]
• Total coverage
–Let P be a set of patterns P1,…,Pk; and the table T
contains n rows R1,…,Rn
–
totalcov ( P, T ) =
∑ cov( P
i =1..n
max
( Ri ), Ri )
30
Mining and Searching Complex Structures
48
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
ItCompress: basic algorithm
• First randomly choose k rows as initial patterns
• Scan the table T:
Phase1
–For each row R, compute the coverage of each pattern on it,
then try to find Pmax(R)
–Allocate R to its most covered pattern
• After each iteration, re-compute all patterns’ Phase2
attributes, always using the most frequent values
• Iterate until sum of total coverage does not increase
Mining and Searching Complex Structures
31
Example: the 1st iteration begins
RRid age salary
age salary credit
sex
20
30k
poor
M
1
20
25
76k
good
F
2
25
30
90k
good
F
40
100k
poor
M
50
110k
good
F
60
50k
good
M
70
35k
poor
F
75
15k
poor
M
age salary credit
sex
credit
sex
30k
poor
M
76k
good
F
Error Tolerance:
5
25k
0
0
32
Mining and Searching Complex Structures
49
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Example: Phase 1
RRid age salary
credit
sex
30k
poor
M
76k
good
F
age salary
credit
sex
20
30k
poor
M
40
100k
poor
M
60
50k
good
M
70
35k
poor
F
75
15k
poor
M
age salary credit
sex
age salary credit
sex
1
20
20
30k
poor
M
2
25
25
76k
good
F
30
90k
good
F
40
100k
poor
M
50
110k
good
F
60
50k
good
M
70
35k
poor
F
75
15k
poor
M
Error Tolerance:
age salary credit
5
25k
0
sex
0
25
76k
good
F
30
90k
good
F
50
110k
good
F
33
Mining and Searching Complex Structures
Example: Phase 2
RRid
age
salary credit
sex
1
20
70
30k
poor
M
M
2
25
25
90k
76k
good
FF
age salary credit
sex
20
30k
poor
M
25
76k
good
F
30
90k
good
F
age salary
credit
sex
40
100k
poor
M
20
30k
poor
M
50
110k
good
F
40
100k
poor
M
60
50k
good
M
60
50k
good
M
70
35k
poor
F
70
35k
poor
F
75
15k
poor
M
75
15k
poor
M
age salary credit
sex
Error Tolerance:
age salary credit
5
25k
0
sex
0
25
76k
good
F
30
90k
good
F
50
110k
good
F
Mining and Searching Complex Structures
50
34
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Convergence(I)
• Phase 1:
–When we assign the rows to their most coverage patterns:
• For each row, the coverage increases or maintain
ÎSo the total coverage also increases or maintain
• Phase 2:
–When we re-compute the attribute values for the patterns:
• For each pattern, the coverage increases or maintains
ÎSo the total coverage also increases or maintains
Mining and Searching Complex Structures
35
Convergence(II)
• In both Phase 1&2, the total coverage is either increased
or maintained, and it has a obvious upper bound (cover
the whole table)
Î The algorithm will converge eventually
Mining and Searching Complex Structures
51
36
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Complexity
• Phase 1:
–In l iterations, we need to go through the n rows in the table and
match each row against the k patterns(2m comparisons,)
ÎThe running time complexity is O(kmnl) where m is the
number of attributes
• Phase 2:
–Computing each new pattern Pi will require going through all
the domain values/intervals of each value
ÎAssuming the total number of domain values/intervals is d, the
running time complexity is O(kdl)
ÎThe total time complexity is O(kmnl+kdl)
Mining and Searching Complex Structures
37
Advantages of ItCompress
• Simplicity and Directness
–Two phases process of Fascicle and Spartan
• Find rules/patterns
• Compress database using discovered rules/patterns
–ItCompress optimize the compression directly without finding
rules/patterns that may not be useful (a.k.a microeconomic approach)
• Less constraints
–Do not need patterns to be matched completely or rules that apply
globally
• Easily tuned parameters
Mining and Searching Complex Structures
52
38
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Performance Comparison
• Algorithms
–ItCompress, ItCompress+gzip
–Fascicles, Fascicles+gzip
–SPARTAN+gzip
• Platform
–ItCompress,Fascicles: AMD Duron 700Mhz, 256MB Memory
–SPARTAN: Four 700Mhz Pentium CPU, 1GB Memory)
• Datasets
–Corel: 32 numeric attributes, 35000 rows, 10.5MB
–Census: 7 numeric, 7 categorical, 676000 rows, 28.6MB
–Forest-cover: 10 numeric, 44 categorical, 581000 rows, 75.2MB
Mining and Searching Complex Structures
39
Effectiveness (Corel)
Mining and Searching Complex Structures
53
40
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Effectiveness (Census)
Mining and Searching Complex Structures
41
Effectiveness (Forest Cover)
Mining and Searching Complex Structures
54
42
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Efficiency
Mining and Searching Complex Structures
43
Mining and Searching Complex Structures
44
Varying k
55
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Varying Sample Ratio
Mining and Searching Complex Structures
45
Adding Noises (Census)
Mining and Searching Complex Structures
56
46
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
20%
Corruption?
Effect of Corruption
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10 A11 A12
47
Mining and Searching Complex Structures
Effect of Corruption
A1
A2
A3
A4
A5
A6
20%
Corruption?
A7
A8
A9
A10 A11 A12
48
Mining and Searching Complex Structures
57
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Findings
•
ItCompress is
–More efficient than SPARTAN
–More effective than Fascicles
–Insensitive to parameter setting
–Robust to noises
Mining and Searching Complex Structures
49
Future work
• Can we perform mining on the compressed datasets using
only the patterns and the bitmap ?
–Example: Building Bayesian Belief Network
• Is ItCompress a good “bootstrap” semantic compression
algorithm ?
ItCompress
database
Compressed
database
Other Semantic
Compression Algorithms
50
Mining and Searching Complex Structures
58
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Outline
• Sources of HDD
• Challenges of HDD
• Searching and Mining Mixed Typed Data
–Similarity Function on k-n-match
–ItCompress
• Bregman Divergence: Towards Similarity Search on Non-metric
Distance
• Earth Mover Distance: Similarity Search on Probabilistic Data
• Finding Patterns in High Dimensional Data
Mining and Searching Complex Structures
Metric v.s. Non-Metric
• Euclidean distance dominates DB queries
• Similarity in human perception
• Metric distance is not enough!
2010-7-31
Mining and Searching Complex Structures
59
52
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Bregman Divergence
h
(q,f(q))
convex function f(x)
(p,f(p))
Bregman divergence
Df(p,q)
q
p
Euclidean dist.
2010-7-31
Mining and Searching Complex Structures
53
Bregman Divergence
• Mathematical Interpretation
–The distance between p and q is defined as the difference
between f(p) and the first order Taylor expansion at q
f(x) at p
2010-7-31
first order Taylor expansion at q
Mining and Searching Complex Structures
60
54
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Bregman Divergence
• General Properties
–Non-Negativity
• Df(p,q)≥0 for any p, q
–Identity of Indiscernible
• Df(p,p)=0 for any p
–Symmetry and Triangle Inequality
• Do NOT hold any more
Mining and Searching Complex Structures
2010-7-31
55
Examples
2010-7-31
Distance
f(x)
Df(p,q)
Usage
KL-Divergence
x logx
p log (p/q)
distribution,
color histogram
Itakura-Saito
Distance
-logx
p/q-log (p/q)-1
signal, speech
Squared
Euclidean
x2
(p-q)2
Euclidean space
Von-Nuemann
Entropy
tr(X log X – X)
tr(X logX – X
logY – X + Y)
symmetric matrix
Mining and Searching Complex Structures
61
56
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Why in DB system?
• Database application
–Retrieval of similar images, speech signals, or time series
–Optimization on matrices in machine learning
–Efficiency is important!
• Query Types
–Nearest Neighbor Query
–Range Query
2010-7-31
Mining and Searching Complex Structures
57
Euclidean Space
• How to answer the queries
–R-Tree
2010-7-31
Mining and Searching Complex Structures
62
58
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Euclidean Space
• How to answer the queries
–VA File
2010-7-31
Mining and Searching Complex Structures
59
Our goal
• Re-use the infrastructure of existing DB system to support
Bregman divergence
–Storage management
–Indexing structures
–Query processing algorithms
2010-7-31
Mining and Searching Complex Structures
63
60
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Basic Solution
• Extended Space
–Convex function f(x) = x2
point
D1
D2
point
D1
D2
D3
p
0
1
p+
0
1
1
q
0.5
0.5
q+
0.5
0.5
0.5
r
1
0.8
r+
1
0.8
1.64
t
1.5
0.3
t+
1.5
0.3
3.15
2010-7-31
Mining and Searching Complex Structures
61
Basic Solution
• After the extension
–Index extended points with R-Tree or VA File
–Re-use existing algorithms with lower and upper bounds on
the rectangles
2010-7-31
Mining and Searching Complex Structures
64
62
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
How to improve?
• Reformulation of Bregman divergence
• Tighter bounds are derived
• No change on index construction or query processing
algorithm
Mining and Searching Complex Structures
2010-7-31
63
A New Formulation
h
h’
query vector vq
Df(p,q)+Δ
q
p
D*f(p,q)
2010-7-31
Mining and Searching Complex Structures
65
64
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Math. Interpretation
• Reformulation of similarity search queries
–k-NN query: query q, data set P, divergence Df
• Find the point p, minimizing
–Range query: query q, threshold θ, data set P
• Return any point p that
2010-7-31
Mining and Searching Complex Structures
65
Naïve Bounds
• Check the corners of the bounding rectangles
2010-7-31
Mining and Searching Complex Structures
66
66
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Tighter Bounds
• Take the curve f(x) into consideration
2010-7-31
Mining and Searching Complex Structures
67
Query distribution
• Distortion of rectangles
–The difference between maximum and minimum distances
from inside the rectangle to the query
2010-7-31
Mining and Searching Complex Structures
67
68
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Can we improve it more?
• When Building R-Tree in Euclidean space
–Minimize the volume/edge length of MBRs
–Does it remain valid?
2010-7-31
Mining and Searching Complex Structures
69
Query distribution
• Distortion of bounding rectangles
–Invariant in Euclidean space (triangle inequality)
–Query-dependent for Bregman Divergence
2010-7-31
Mining and Searching Complex Structures
68
70
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Utilize Query Distribution
• Summarize query distribution with O(d) real number
• Estimation on expected distortion on any bounding
rectangle in O(d) time
• Allows better index to be constructed for both R-Tree and
VA File
Mining and Searching Complex Structures
2010-7-31
71
Experiments
• Data Sets
–KDD’99 data
• Network data, the proportion of packages in 72 different
TCP/IP connection Types
–DBLP data
• Use co-authorship graph to generate the probabilities of the
authors related to 8 different areas
2010-7-31
Mining and Searching Complex Structures
69
72
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Experiment
• Data Sets
–Uniform Synthetic data
• Generate synthetic data with uniform distribution
–Clustered Synthetic data
• Generate synthetic data with Gaussian Mixture Model
2010-7-31
Mining and Searching Complex Structures
73
Experiments
• Methods to compare
Basic
Improved
Bounds
Query
Distribution
R-Tree
R
R-B
R-BQ
VA File
V
V-B
V-BQ
Linear Scan
LS
BB-Tree
BBT
2010-7-31
Mining and Searching Complex Structures
70
74
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Existing Solution
• BB-Tree (L. Clayton, ICML 2009)
–Memory-based indexing tree
–Construct with k-means clustering
–Hard to update
–Ineffective in high-dimensional space
2010-7-31
Mining and Searching Complex Structures
75
Experiments
• Index Construction Time
2010-7-31
Mining and Searching Complex Structures
71
76
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Experiments
• Varying dimensionality
2010-7-31
Mining and Searching Complex Structures
77
Experiments
• Varying dimensionality (cont.)
2010-7-31
Mining and Searching Complex Structures
72
78
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Experiments
• Varying data cardinality
2010-7-31
Mining and Searching Complex Structures
79
Conclusion
• A general technique on similarity for Bregman Divergence
• All techniques are based on existing infrastructure of
commercial database
• Extensive experiments to compare performances with RTree and VA File with different optimizations
2010-7-31
Mining and Searching Complex Structures
73
80
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Outline
• Sources of HDD
• Challenges of HDD
• Searching and Mining Mixed Typed Data
–Similarity Function on k-n-match
–ItCompress
• Bregman Divergence: Towards Similarity Search on Non-metric
Distance
• Earth Mover Distance: Similarity Search on Probabilistic Data
• Finding Patterns in High Dimensional Data
Mining and Searching Complex Structures
Motivation
• Probabilistic data is ubiquitous
–To represent the data uncertainty (WSN, RFID, moving
object monitoring)
–To compress data (image processing)
• Histogram is a good way to represent the prob. data
–Easy to capture
–Is very useful in image representation
•
•
•
•
Colors
Textures
Gradient
Depth
Mining and Searching Complex Structures
74
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Motivation
• Similarity search is important for managing prob. data
–Given a threshold θ, can answer which sensors’ readings
are similar with sensor A (range query)
–Can answer which k pictures are similar (top-k query)
• Similarity function for prob. data should be carefully
chosen
–Bin by bin methods
• L1 and L2 norms
• χ2 distance
–Cross-bin methods
• Earth Mover’s Distance (EMD)
• Quadratic form
Mining and Searching Complex Structures
Outline
•
•
•
•
•
•
Motivation
Introduction to Earth Mover’s Distance (EMD)
Related works
Indexing the probabilistic data based on EMD
Experimental results
Conclusion and future work
Mining and Searching Complex Structures
75
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Introduction to Earth Mover’s Dist
• Bin by bin vs. cross bin
Bin-by-bin
Not good!
Cross bin
Good!
Can handle
distribution shift
Mining and Searching Complex Structures
Introduction to Earth Mover’s Dist
• What is EMD?
–Earth (泥土)
–Mover (搬运)
–Distance (代价)
–Can be understood as 搬运泥土的代价
• See an example…
Mining and Searching Complex Structures
76
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Moving Earth
≠
Mining and Searching Complex Structures
Moving Earth
≠
Mining and Searching Complex Structures
77
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Moving Earth
=
Mining and Searching Complex Structures
The Difference?
(amount moved)
=
Mining and Searching Complex Structures
78
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
The Difference?
Difference
(amount moved) * (distance moved)
=
Mining and Searching Complex Structures
Linear programming
P
m bins
(distance moved) * (amount moved)
Q
All movements
n bins
Mining and Searching Complex Structures
79
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Linear programming
P
m clusters
(distance moved) * (amount moved)
Q
n clusters
Mining and Searching Complex Structures
Linear programming
P
m clusters
* (amount moved)
Q
n clusters
Mining and Searching Complex Structures
80
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Linear programming
P
m clusters
Q
n clusters
Mining and Searching Complex Structures
Constraints
1. Move “earth” only from P to Q
P
m clusters
P’
n clusters
Q’
Q
Mining and Searching Complex Structures
81
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Constraints
2. Cannot send more “earth” than
there is
P
m clusters
P’
n clusters
Q’
Q
Mining and Searching Complex Structures
Constraints
3. Q cannot receive more “earth”
than it can hold
P
m clusters
P’
n clusters
Q’
Q
Mining and Searching Complex Structures
82
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Constraints
4. As much “earth” as possible
must be moved
P
m clusters
P’
n clusters
Q’
Q
Mining and Searching Complex Structures
The Formal Definition of EMD
• Earth Mover’s Distance (EMD)
–the minimum amount of work needed to change one
histogram into another
• Challenge of EMD
–O(N^3logN)
Mining and Searching Complex Structures
83
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Related Works
•
Filter-and-refine framework
–[1] Approximation Techniques for
Indexing the Earth Mover's Distance in
Multimedia Databases. ICDE 2006
• Cannot handle high
dimensional histograms
–[2] Efficient EMD-based Similarity
Search in Multimedia Databases via
Flexible Dimensionality Reduction.
SIGMOD 2008
• Based on scan framework and
influence the scalability
•
Use scanning scheme to
process queries
–Merit: can obtain a good order to access
when execute the k-NN queries and thus
can minimize the number of candidates
–Demerit: need to scan the whole dataset
to obtain the order and thus low algo.
scalability
Mining and Searching Complex Structures
Related Works
•
•
Related works
–Based on the filter-and-refine framework
–Based on scanning method and low scalability
Our work
–Also based on the filter-and-refine method
–But avoid to scan the whole data set
• Use B+ trees
• And thus can obtain high scalability
•
Our contributions
–To the best of our knowledge, the 1st paper to index the high
dimensional prob. data based on the EMD
–Proposed algorithms of processing the similarity query based on B+ tree
filter
–Improve the efficiency and scalability of EMD-based similarity search
Mining and Searching Complex Structures
84
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Indexing the probabilistic data
based on EMD
•
Our intuition:
–primal-dual theory in linear programming
•
Primal problem (EMD)
•
Dual problem
Mining and Searching Complex Structures
Indexing the probabilistic data based on
EMD
•
Good properties of dual space
–Constrains of dual space are independent of prob. data points (i.e., p and
q in this example)
• Thus, give any feasible solution (π, Ф) in dual space we can derives a
lower bound for EMD(p, q)
• Lower bound can help to filter out the not-hit histograms.
–given any feasible solution (π, Ф) in dual space, a histogram p can be
mapped as a value, using the operation of
• Can index histograms using B+ tree
Mining and Searching Complex Structures
85
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Indexing the probabilistic data based on EMD
• 1. Mapping Construction
–Key and counter key
Key
Counter key
–Assuming p is a histogram in DB, given a feasible solution
(π, Ф), we calculate the Key for each record in DB
–We can index those keys using B+ tree
–For each feasible solution (π, Ф), a B+ tree can be
constructed
Mining and Searching Complex Structures
Answering Range Query
• Range query based on B+ index
–Given any feasible solution (π, Ф) , we construct a B+ tree
using keys of histograms
–Given a query histogram, we calculate its counter key using
the operation of
–Given a similarity search threshold θ, we have proved that
all candidate histogram’s key can be bounded by
–To further filter the candidates, we use L B+ tree and make
an intersection among their candidate results
Mining and Searching Complex Structures
86
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Answering KNN Query
•
K-NN query based on B+ index
–Given a query q, we issue search on
each B+ tree Tl with key(q, Фl)
–We create two cursors for each tree and
let them to fetch records from different
directions (one left and one right)
–Whenever record r has already been
accessed by all B+ tree, it can be output
as a candidate for k-NN query
Mining and Searching Complex Structures
Experimental Setup
• 3 real data set
–RETINA1
• an image data set consists of 3932 feline retina scans labeled
with various antibodies.
–IRMA
• contains 10000 radiography images from the Image Retrieval
in Medical Application (IRMA) project
–DBLP
• With parameter setting
Mining and Searching Complex Structures
87
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Experimental Results on
Query CPU Time
Mining and Searching Complex Structures
Experimental Results on
Scalability
sigmod
our
Mining and Searching Complex Structures
88
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Conclusions
• We present a new indexing scheme for the general
purposes of similarity search on Earth Mover's Distance
• Our index method relies on the primal-dual theory to
construct mapping functions from the original
probabilistic space to one-dimensional domain
• Our B+ tree-based index framework has
–High scalability
–High efficiency
–can handle High dimensional data
Mining and Searching Complex Structures
Outline
• Sources of HDD
• Challenges of HDD
• Searching and Mining Mixed Typed Data
–Similarity Function on k-n-match
–ItCompress
• Bregman Divergence: Towards Similarity Search on Non-metric
Distance
• Earth Mover Distance: Similarity Search on Probabilistic Data
• Finding Patterns in High Dimensional Data
Mining and Searching Complex Structures
89
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
A Microarray Dataset
1000 - 100,000 columns
Class
100500
rows
Gene1
Sample1
Cancer
Sample2
Cancer
Gene2
Gene3
Gene4
Gene
5
Gene
6
.
.
.
SampleN-1
~Cance
r
SampleN
~Cance
r
• Find closed patterns which occur frequently among genes.
• Find rules which associate certain combination of the
columns that affect the class of the rows
–Gene1,Gene10,Gene1001 -> Cancer
Mining and Searching Complex Structures
Challenge I
• Large number of patterns/rules
–number of possible column combinations is extremely high
• Solution: Concept of a closed pattern
–Patterns are found in exactly the same set of rows are grouped together
and represented by their upper bound
• Example: the following patterns are found in row 2,3 and 4
aeh
ae
upper
bound
(closed
pattern)
ah
eh
e
h
i
1
2
3
4
5
ri
a ,b,c,l,o,s
a ,d, e , h ,p,l,r
a ,c, e , h ,o,q,t
a , e ,f, h ,p,r
b,d,f,g,l,q,s,t
Class
C
C
C
~C
~C
“a” however not part of
the group
lower bounds
Mining and Searching Complex Structures
90
Ge
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Challenge II
• Most existing frequent pattern discovery algorithms perform
searches in the column/item enumeration space i.e. systematically
testing various combination of columns/items
• For datasets with 1000-100,000 columns, this search space is
enormous
• Instead we adopt a novel row/sample enumeration algorithm for
this purpose. CARPENTER (SIGKDD’03) is the FIRST
algorithm which adopt this approach
Mining and Searching Complex Structures
Column/Item Enumeration Lattice
• Each nodes in the lattice represent
a combination of columns/items
• An edge exists from node A to B if
A is subset of B and A differ from
B by only 1 column/item
• Search can be done
breadth first
i
1
2
3
4
5
ri
a,b,c,l,o,s
a,d,e,h,p,l,r
a,c,e,h,o,q,t
a,e,f,h,p,r
b,d,f,g,l,q,s,t
a,b,c,e
a,b,c a,b,e a,c,e b,c
a,b
Class
C
C
C
~C
~C
Mining and Searching Complex Structures
91
a,c
a,e
a
start
b
b,c
c
{}
b
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Column/Item Enumeration Lattice
• Each nodes in the lattice represent
a combination of columns/items
• An edge exists from node A to B if
A is subset of B and A differ from
B by only 1 column/item
• Search can be done depth first
• Keep edges from parent to child
only if child is the prefix of parent
i
1
2
3
4
5
ri
a,b,c,l,o,s
a,d,e,h,p,l,r
a,c,e,h,o,q,t
a,e,f,h,p,r
b,d,f,g,l,q,s,t
a,b,c,e
a,b,c a,b,e a,c,e b,c
a,b
Class
C
C
C
~C
~C
a,c
a,e
a
b,c
b
start
c
{}
Mining and Searching Complex Structures
General Framework for Column/Item Enumeration
Read-based
Write-based
Point-based
Association Mining
Apriori[AgSr94],
DIC
Eclat,
MaxClique[Zaki01],
FPGrowth [HaPe00]
Hmine
Sequential Pattern
Discovery
GSP[AgSr96]
SPADE
[Zaki98,Zaki01],
PrefixSpan
[PHPC01]
Iceberg Cube
Apriori[AgSr94]
BUC[BeRa99], HCubing [HPDW01]
Mining and Searching Complex Structures
92
b
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
A Multidimensional View
types of data
or knowledge
others
other interest
measure
associative
pattern
constraints
pruning method
sequential
pattern
iceberg
cube
compression method
closed/max
pattern
lattice transversal/
main operations
read
write
point
Mining and Searching Complex Structures
Sample/Row Enumeration Algorihtms
• To avoid searching the large column/item enumeration space, our
mining algorithm search for patterms/rules in the sample/row
enumeration space
• Our algorithms does not fitted into the column/item enumeration
algorithms
• They are not YAARMA (Yet Another Association Rules Mining
Algorithm)
• Column/item enumeration algorithms simply does not scale for
microarray datasets
Mining and Searching Complex Structures
93
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Existing Row/Sample Enumeration Algorithms
• CARPENTER(SIGKDD'03)
–Find closed patterns using row enumeration
• FARMER(SIGMOD’04)
–Find interesting rule groups and building classifiers based on them
• COBBLER(SSDBM'04)
–Combined row and column enumeration for tables with large
number of rows and columns
• Topk-IRG(SIGMOD’05)
–Find top-k covering rules for each sample and build classifier
directly
• Efficiently Finding Lower Bound Rules(TKDE’2010)
–Ruichu Cai, Anthony K. H. Tung, Zhenjie Zhang, Zhifeng Hao.
What is Unequal among the Equals? Ranking Equivalent Rules from
Gene Expression Data. Accepted in TKDE
Mining and Searching Complex Structures
Concepts of CARPENTER
ij R (ij )
i
1
2
3
4
5
ri
a,b,c,l,o,s
a,d,e,h,p,l,r
a,c,e,h,o,q,t
a,e,f,h,p,r
b,d,f,g,l,q,s,t
Class
C
C
C
~C
~C
Example Table
a
b
c
d
e
f
g
h
l
o
p
q
r
s
t
C
1,2,3
1
1,3
2
2,3
2,3
1,2
1,3
2
3
2
1
3
~C
4
5
5
4
4,5
5
4
5
4
5
4
5
5
Transposed Table,TT
Mining and Searching Complex Structures
94
a
e
h
C
1,2,3
2,3
2,3
TT|{2,3}
~C
4
4
4
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
ij
Row Enumeration
123
{a}
12
{al}
124
{a}
125
{l}
13
{aco}
14
{a}
1
{abclos}
2
{adehplr}
{}
3
{acehoqt}
134
{a}
15
{bls}
135
{}
23
{aeh}
145
{}
24
{aehpr}
234
{aeh}
25
{dl}
4
{aefhpr}
1235
{}
ij
1245
{}
a
TT|{1} b
c
l
o
s
1345
{}
R (ij )
C
~C
1,2,3 4
1
5
1,3
1,2 5
1,3
1
5
2345
{}
ij
a
TT|{12} l
ij
TT|{124}
{123}
345
{}
35
{q}
5
{bdfglqst}
12345
{}
1234
{a}
235
{}
245
{}
34
{aeh}
a
b
c
d
e
f
g
h
l
o
p
q
r
s
t
a
R (ij )
C
~C
1,2,3 4
1
5
1,3
2
5
2,3
4
4,5
5
2,3
4
1,2
5
1,3
2
4
3
5
2
4
1
5
3
5
R (ij )
C
~C
1,2,3 4
1,2 5
R (ij )
C
~C
1,2,3 4
45
{f}
Mining and Searching Complex Structures
Pruning Method 1
•
Removing rows that appear in all tuples
of transposed table will not affect results
a
e
h
r2 r3
{aeh}
r2 r3 r4
{aeh}
r4 has 100% support in the conditional table of
“r2r3”, therefore branch “r2 r3r4” will be
pruned.
Mining and Searching Complex Structures
95
C
1,2,3
2,3
2,3
TT|{2,3}
~C
4
4
4
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Pruning method 2
123
{a}
12
{al}
1
{abclos}
2
{adehplr}
{}
3
{acehoqt}
4
{aefhpr}
5
{bdfglqst}
13
{aco}
14
{a}
124
{a}
125
{l}
134
{a}
15
{bls}
135
{}
23
{aeh}
145
{}
24
{aehpr}
234
{aeh}
25
{dl}
34
{aeh}
35
{q}
1235
{}
1245
{}
1345
{}
2345
{}
235
{}
245
{}
345
{}
• if a rule is discovered
before, we can prune
enumeration below this
node
12345
{}
1234
{a}
a
e
h
C
1,2,3
2,3
2,3
45
{f}
–Because all rules below
this node has been
discovered before
–For example, at node 34, if
we found that {aeh} has
been found, we can prune
~Coff all branches below it
4
4
4
TT|{3,4}
Mining and Searching Complex Structures
Pruning Method 3: Minimum Support
• Example: From TT|{1}, we can see
that the support of all possible
pattern below node {1} will be at
most 5 rows.
TT|{1}
Mining and Searching Complex Structures
96
ij R (ij )
C ~C
a 1,2,3 4
b 1 5
c 1,3
l 1,2 5
o 1,3
s 1 5
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
From CARPENTER to FARMER
• What if classes exists ? What more can we
do ?
• Pruning with Interestingness Measure
–Minimum confidence
–Minimum chi-square
• Generate lower bounds for classification/
prediction
Mining and Searching Complex Structures
Interesting Rule Groups
• Concept of a rule group/equivalent class
–rules supported by exactly the same set of rows are grouped together
• Example: the following rules are derived from row 2,3 and 4 with
66% confidence
i
aeh--> C(66%)
ae-->C (66%)
ah--> C(66%)
e-->C (66%)
upper
bound
eh-->C (66%)
h-->C (66%)
lower bounds
1
2
3
4
5
ri
a ,b,c,l,o,s
a ,d, e , h ,p,l,r
a ,c, e , h ,o,q,t
a , e ,f, h ,p,r
b,d,f,g,l,q,s,t
a-->C however is not in
the group
Mining and Searching Complex Structures
97
Class
C
C
C
~C
~C
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Pruning by Interestingness Measure
• In addition, find only interesting rule groups (IRGs) based
on some measures:
–minconf: the rules in the rule group can predict the class on
the RHS with high confidence
–minchi: there is high correlation between LHS and RHS of
the rules based on chi-square test
• Other measures like lift, entropy gain, conviction etc. can
be handle similarly
Mining and Searching Complex Structures
ij
Ordering of Rows: All Class C before ~C
123
{a}
12
{al}
1
{abclos}
2
{adehplr}
{}
3
{acehoqt}
4
{aefhpr}
5
{bdfglqst}
13
{aco}
14
{a}
124
{a}
125
{l}
134
{a}
15
{bls}
135
{}
23
{aeh}
145
{}
24
{aehpr}
234
{aeh}
25
{dl}
34
{aeh}
35
{q}
1234
{a}
12345
{}
1235
{}
1245
{}
ij
a
TT|{1} b
c
l
o
s
1345
{}
R (ij )
C
~C
1,2,3 4
1
5
1,3
1,2 5
1,3
1
5
2345
{}
a
ij
TT|{124}
{123}
a
R (ij )
C
~C
1,2,3 4
45
{f}
Mining and Searching Complex Structures
98
ij
TT|{12} l
235
{}
245
{}
345
{}
a
b
c
d
e
f
g
h
l
o
p
q
r
s
t
R (ij )
C
~C
1,2,3 4
1
5
1,3
2
5
2,3
4
4,5
5
2,3
4
1,2
5
1,3
2
4
3
5
2
4
1
5
3
5
R (ij )
C
~C
1,2,3 4
1,2 5
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Pruning Method: Minimum Confidence
• Example: In TT|{2,3} on the right,
the maximum confidence of all rules
below node {2,3} is at most 4/5
a
e
h
C
1,2,3,6
2,3,7
2,3
~C
4,5
4,9
4
TT|{2,3}
Mining and Searching Complex Structures
Pruning method: Minimum chi-square
„
Same as in computing
maximum confidence
a
e
h
C
~C
Total
A
max=5
min=1
Computed
~A
Computed
Computed
Computed
Constant
Constant
Constant
Mining and Searching Complex Structures
99
C
1,2,3,6
2,3,7
2,3
TT|{2,3}
~C
4,5
4,9
4
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Finding Lower Bound, MineLB
a,b,c,d,e
ad ae
abc
a
b
bd
be
cde
c
e
d
–Example: An upper bound
rule with antecedent A=abcde
and two rows (r1 : abcf ) and
(r2 : cdeg)
–Initialize lower bounds {a, b,
c, d, e}
–add “abcf”--- new lower
{d ,e}
–Add “cdeg”--- new lower
bound{ad, bd, ae, be}
Candidate
Candidatelower
lowerbound:
bound:ad,
ad,ae,
ae,bd,
bd,bebe, cd, ce
Kept
Removed
since no
since
lower
d,ebound
are stilloverride
lower bound
them
Mining and Searching Complex Structures
Implementation
• In general, CARPENTER FARMER can be
implemented in many ways:
–FP-tree
–Vertical format
• For our case, we assume the dataset can be
fitted into the main memory and used
pointer-based algorithm similar to BUC
Mining and Searching Complex Structures
100
ij
a
b
c
d
e
f
g
h
l
o
p
q
r
s
t
R (ij )
C
~C
1,2,3 4
1
5
1,3
2
5
2,3
4
4,5
5
2,3
4
1,2
5
1,3
2
4
3
5
2
4
1
5
3
5
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Experimental studies
• Efficiency of FARMER
–On five real-life dataset
• lung cancer (LC), breast cancer (BC) , prostate cancer (PC), ALLAML leukemia (ALL), Colon Tumor(CT)
–Varying minsup, minconf, minchi
–Benchmark against
• CHARM [ZaHs02] ICDM'02
• Bayardo’s algorithm (ColumE) [BaAg99] SIGKDD'99
• Usefulness of IRGs
–Classification
Mining and Searching Complex Structures
Example results--Prostate
100000
FA RM ER
10000
Co lumnE
1000
CHA RM
100
10
1
3
4
5
6
7
mi ni mum sup p o r t
Mining and Searching Complex Structures
101
8
9
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Example results--Prostate
1200
FA RM ER:minsup=1:minchi=10
1000
FA RM ER:minsup =1
800
600
400
200
0
0
50
70
80
85
90
99
minimum confidence(%)
Mining and Searching Complex Structures
Top k Covering Rule Groups
• Rank rule groups (upper bound) according to
– Confidence
– Support
• Top k Covering Rule Groups for row r
– k highest ranking rule groups that has row r as support and support
> minimum support
• Top k Covering Rule Groups =
TopKRGS for each row
Mining and Searching Complex Structures
102
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Usefulness of Rule Groups
•
•
•
•
Rules for every row
Top-1 covering rule groups sufficient to build CBA classifier
No min confidence threshold, only min support
#TopKRGS = k x #rows
Mining and Searching Complex Structures
Top-k covering rule groups
• For each row, we find the most
significant k rule groups:
–based on confidence first
–then support
• Given minsup=1, Top-1
–row 1: abcÆC1(sup = 2, conf= 100%)
–row 2: abcÆC1
• abcdÆC1(sup=1,conf = 100%)
–row 3: cdÆC1(sup=2, conf = 66.7%)
• If minconf = 80%, ?
–row 4: cdeÆC2 (sup=1, conf = 50%)
class
Items
C1
a,b,c
C1
a,b,c,d
C1
c,d,e
C2
c,d,e
Mining and Searching Complex Structures
103
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Main advantages of Top-k coverage rule group
• The number is bounded by the product of k and the number
of samples
• Treat each sample equally Æ provide a complete description
for each row (small)
• The minimum confidence parameter-- instead k.
• Sufficient to build classifiers while avoiding excessive
computation
Mining and Searching Complex Structures
Top-k pruning
• At node X, the maximal set of rows covered by rules to
be discovered down X-- rows containing X and rows
ordered after X.
– minconf Å MIN confidence of the discovered TopkRGs for all rows in the above
set
– minsup Å the corresponding minsup
• Pruning
–If the estimated upper bound of confidence down X < minconf Æ prune
–If same confidence and smaller support Æ prune
• Optimizations
Mining and Searching Complex Structures
104
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Classification based on association rules
• Step 1: Generate the complete set of association rules
for each class ( minimum support and minimum
confidence.)
–CBA algorithm adopts apriori-like algorithm -fails at this step on microarray
data.
• Step 2:Sort the set of generated rules
• Step 3: select a subset of rules from the sorted rule
sets to form classifiers.
Mining and Searching Complex Structures
Features of RCBT classifiers
Problems
RCBT
To discover, store, retrieve and
sort a large number of rules
Mine those rules to be used for
classification.e.g.Top-1 rule group
is sufficient to build CBA classifier
Default class not convincing for
biologists
Main classifier + some back-up
classifiers
Rules with the same
discriminating ability, how to
integrate?
Upper bound rules: specific
Lower bound rules: general
A subset of lower bound rules—
integrate using a score
considering both confidence and
support.
Mining and Searching Complex Structures
105
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Experimental studies
• Datasets: 4 real-life data
• Efficiency of Top-k Rule mining
–Benchmark: Farmer, Charm, Closet+
• Classification Methods:
–CBA (build using top-1 rule group)
–RCBT (our proposed method)
–IRG Classifier
–Decision trees (single, bagging, boosting)
–SVM
Mining and Searching Complex Structures
Runtime v.s. Minimum support on ALL-AML dataset
10000
FARMER
FARMER(minconf=0.9)
FARMER+prefix(minconf=0.9)
TOP1
TOP100
Runtime(s)
1000
100
10
1
0.1
0.01
17
19
21
22
Minimum Support
Mining and Searching Complex Structures
106
23
25
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Scalability with k
100
Runtime(s)
PC
ALL
10
1
0.1
100
300
500
600
800
1000
k
Mining and Searching Complex Structures
Biological meaning –Prostate Cancer Data
Frequncy of Occurrence
1800
W72186
1600
1400
1200
AF017418
1000
AI635895
800
X14487
600
AB014519
M61916
400
Y13323
200
0
0
200
400
600
800
1000
1200
Gene Rank
Mining and Searching Complex Structures
107
1400
1600
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
Classification results
Mining and Searching Complex Structures
Classification results
Mining and Searching Complex Structures
108
Mining and Searching Complex
Chapter 2 Structures High Dimensional Data
References
•
Anthony K. H. Tung, Rui Zhang, Nick Koudas, Beng Chin Ooi. "Similarity Search:
A Matching Based Approach", VLDB'06
H. V. Jagadish, Raymond T. Ng, Beng Chin Ooi, Anthony K. H. Tung, "ItCompress:
An Iterative Semantic Compression Algorithm". International Conference on Data
Engineering (ICDE'2004), Boston, 2004.
Zhenjie Zhang, Beng Chin Ooi, Srinivasan Parthasarathy, Anthony K. H. Tung.
Similarity Search on Bregman Divergence: Towards Non-Metric Indexing. In the
Proceedings of the 35th International Conference on Very Large Data Bases(VLDB),
Lyon, France August 24-28, 2009.
Jia Xu, Zhenjie Zhang, Anthony K. H. Tung, and Ge Yu. "Efficient and Effective
Similarity Search over Probabilistic Data Based on Earth Mover's Distance". to
appear in VLDB 2010, a preliminary version on Technical Report TRA5-10,
National University of Singapore. [Codes & Data]
Gao Cong, Kian-Lee Tan, Anthony K. H. Tung, Xin Xu. "Mining Top-k Covering
Rule Groups for Gene Expression Data". In Proceedings SIGMOD'05,Baltimore,
Maryland 2005
Ruichu Cai, Anthony K. H. Tung, Zhenjie Zhang, Zhifeng Hao. What is Unequal
among the Equals? Ranking Equivalent Rules from Gene Expression Data.
Accepted in TKDE
•
•
•
•
•
Mining and Searching Complex Structures
Optional References:
•
•
•
•
•
Feng Pan, Gao Cong, Anthony K. H. Tung, Jiong Yang, Mohammed Zaki,
"CARPENTER: Finding Closed Patterns in Long Biological Datasets",
In Proceedings KDD'03, Washington, DC, USA, August 24-27, 2003.
Gao Cong, Anthony K. H. Tung, Xin Xu, Feng Pan, Jiong Yang.
"FARMER: Finding Interesting Rule Groups in Microarray Datasets".
Iin SIGMOD'04, June 13-18, 2004, Maison de la Chimie, Paris, France.
Feng Pang, Anthony K. H. Tung, Gao Cong, Xin Xu. "COBBLER:
Combining Column and Row Enumeration for Closed Pattern
Discovery". SSDBM 2004 Santorini Island Greece.
Gao Cong, Kian-Lee Tan, Anthony K.H. Tung, Feng Pan. “Mining
Frequent Closed Patterns in Microarray Data”. In IEEE International
Conference on Data Mining, (ICDM). 2004
Xin Xu, Ying Lu, Anthony K.H. Tung, Wei Wang. "Mining Shifting-andScaling Co-Regulation Patterns on Gene Expression Profiles". ICDE
2006.
Mining and Searching Complex Structures
109
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Searching and Mining Complex
Structures
Similarity Search on Sequences
Anthony K. H. Tung(鄧锦浩)
School of Computing
National University of Singapore
www.comp.nus.edu.sg/~atung
Research Group Link: http://nusdm.comp.nus.edu.sg/index.html
Social Network Link: http://www.renren.com/profile.do?id=313870900
Types of sequences
Symbolic vs Numeric
We only touch discrete symbols here. Sequences of number are called time
series and is a huge topic by itself!
Single dimension vs multi-dimensional
Example: Yueguo Chen, Shouxu Jiang, Beng Chin Ooi, Anthony K. H. Tung.
"Querying Complex Spatial-Temporal Sequences in Human Motion Databases"
accepted and to appear in 24th IEEE International Conference on Data Engineering
(ICDE) 2008
Single long sequence vs multiple sequences
2010-7-31
110
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Outline
• Searching based on a disk based suffix tree
• Approximate Matching Using Inverted List (Vgrams)
• Approximate Matching Based on B+ Tree (BED Tree)
2010-7-31
Suffix
Suffixes of acacag$:
1.
2.
3.
4.
5.
6.
7.
acacag$
cacag$
acag$
cag$
ag$
g$
$
2010-7-31
111
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Suffix Trie
E.g. consider the string S = acacag$
$
Suffix Trie: a ties of
all possible suffices of S
7
1
2
3
4
5
6
7
Suffix
acacag$
cacag$
acag$
cag$
ag$
g$
$
a
c
g
6
a
$
5
a
c
g
$
4
a
$
g
$
g
a
c
g
c
g
3
$
1
$
2
2010-7-31
Suffix Tree (I)
Suffix tree for S=acacag$: merge nodes with only one child
1 2 3 4 5 6 7
S= a c a c a g $
$
a
c
7
g
$
c
a
Path-label of
node v is “aca”
Denoted as α(v)
v
c
ga
$
1
5
g
$
a
c
a
g
$
2
3
2010-7-31
112
g $
6
g
$
4
“ca” is an
edge label
This is a
leaf edge
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Suffix Tree (II)
Suffix tree has exactly n leaves and at most n edges
The label of each edge can be represented using 2 indices
Thus, suffix tree can be represented using O(n log n) bits
$
7
1 2 3 4 5 6 7
7,7
1,1 a
a
g
$
c
a
4,7c
6,7
4,7
a
g
$
2
5
6,7
g
$
S= a c a c a g $
6
2,3
2,3
c
ga
$
1
c
g$
6,7
Note: The end index of every
leaf edge should be 7, the last
index of S. Thus, for leaf edges,
we only need to store the start
index.
g 6,7
$
4
3
2010-7-31
Generalized suffix tree
Build a suffix tree for two or more strings
E.g. S1 = acgat#, S2 = cgt$
#
6
$
4
a
c t
#
g
a
#t
1
4
c
g
g
a
t t$
#
2
1
2010-7-31
113
t
a
t
#
3
t
$
#
2
5
$
3
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Straightforward construction of suffix tree
Consider S = s1s2…sn where sn=$
Algorithm:
Initialize the tree we only a root
For i = n to 1
Includes S[i..n] into the tree
Time: O(n2)
2010-7-31
Example of construction
S=acca$
Init
For-loop
a c
c
$
$
a
$
c
$ a$ a
$
5
5 4
5 4 3
5 4 3 2
I4
I3
I2
I5
$ $a
a ca
$ $
2010-7-31
114
c
$ ca $a
$
4
1 3
5
$
I1
c
a
$
2
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Construction of generalized suffix tree
S’= c#
Init
For-loop
a c
a c
c
a c
$ ca $ a$
$
5 4 1 3 2
#$ c
a c
$ ca $ a$
$
5 4 1 3 2
$
2
I1
J2
a c
2
#$ c
ac
$ ca $ a$ #
$
5 4 1 3 2 1
J1
2010-7-31
Property of suffix tree
Fact: For any internal node v in the suffix tree, if
the path label of v is α(v)=ap, then
there exists another node w in the suffix tree such that
α(w)=p.
Proof: Skip the proof.
Definition of Suffix Link:
For any internal node v, define its suffix link sl(v) = w.
2010-7-31
115
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Suffix Link example
S=acacag$
$
a
7
g
$
c
a
c
ga
$
1
c
a
c
a
g
$
2
5
g
$
g $
6
g
$
4
3
2010-7-31
Can we construct a suffix tree in O(n)
time?
Yes. We can construct it in O(n) time and O(n) space
Weiner’s algorithm [1973]
Linear time for constant size alphabet, but much space
McGreight’s algorithm [JACM 1976]
Linear time for constant size alphabet, quadratic space
Ukkonen’s algorithm [Algorithmica, 1995]
Online algorithm, linear time for constant size alphabet, less space
Farach’s algorithm [FOCS 1997]
Linear time for general alphabet
Hon,Sadakane, and Sung’s algorithm [FOCS 2003]
O(n) bit space O(n logen) time for 0<e<1
O(n) bit space O(n) time for suffix array construction
But they are all in-memory algorithm that does not
guarantee locality of processing
2010-7-31
116
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Trellis Algorithm
A novel disk-based suffix tree construction
algorithm designed specifically for DNA
sequences
Scales gracefully for very large genome sequences
(i.e. human genome)
Unlike existing algorithms,
Trellis exhibits no data skew problem
Trellis recovers suffix links quickly
Trellis has fast construction and query time
Trellis is a 4-step algorithm
2010-7-31
Trellis: Algorithm Overview
1. Variable-length prefixes: e.g. AA, ACA, ACC, …
R0
R1
Rr-1
S
TR0
TR1
TRr-1
2. Prefixed Suffix Sub-trees
TPi
TR1,Pm-1
TR0,P0
Disk
4. Suffix Link Recovery (optional)
2010-7-31
117
TR0,Pi
3. Tree
Merging
TRr-1,Pi
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
1. Variable-length Prefix Creation
Goal: Separate the complete suffix tree by prefixes of
suffixes, such that each subtree can reside entirely in the
available memory
Frequency of Length-2 Prefixes for
Human Genome
300,000,000
Frequency
200,000,000
AG
150,000,000
Main Idea:
Expand prefixes
only as needed
TT
AA
250,000,000
AT
CA
CT
CC
AC
GC
100,000,000
50,000,000
TA
GA
GGGT
TG
TC
CG
0
0
5
10
15
20
Prefixes
2010-7-31
2. Suffix Tree
Partitioning
1. Variable-length prefixes: e.g. AA, ACA, ACC, …
R0
R1
Rr-1
S
TR0
TR1
TRr-1
2. Prefixed Suffix Sub-trees
TR1,Pm-1
TR0,P0
Disk
2010-7-31
118
• Use Ukkonen’s method because
of Its efficiency: O(n) time &space
• Discard suffix links when store the
subtrees on disk
• Store enough information so that a
subtree can be rebuilt quickly, e.g. edge
starting index, edge length, node parent,
etc.
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
3. Suffix Tree Merging
1. Variable-length prefixes: e.g. AA, ACA, ACC, …
R0
R1
Rr-1
S
TR0
TR1
TRr-1
2. Prefixed Suffix Sub-trees
TPi
TR1,Pm-1
TR0,P0
Disk
2010-7-31
Merge Algorithm
T1
A
T2
C
G
T
Case 1: No common prefix
2010-7-31
119
TR0,Pi
3. Tree
Merging
TRr-1,Pi
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Merge Algorithm
T1
A
T2
C
T
G
Case 1: No common prefix
2010-7-31
Merge Algorithm
T1
A
C
T
A
G
Case 1: No common prefix
T2
T1
T2
CAAT
CAGGC
Case 2: Has common prefix
2010-7-31
120
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Merge Algorithm
T1
A
T1
T2
C
T
A
G
Case 1: No common prefix
T2
CA
AT
GGC
Case 2: Has common prefix
2010-7-31
4. Suffix Link Recovery
Some internal nodes have suffix links from the
Ukkonen’s algorithm in Step #1
Some internal nodes are created in the merging
step and do not have suffix links
Discard all suffix link information from step #1
and stored suffix trees on disk (does not help
speed this step up, so discard to simplify)
Should suffix links are required, use the suffix
link recovery algorithm to rebuild them
2010-7-31
121
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
4. Suffix Link Recovery (cont.)
For each prefixed suffix tree, recursively call this function
from the tree’s root.
x: an internal node
L: be edge label between x and parent(x)
RECOVER(x, L)
if (x == root) sl(x)
x;
else {
1. p = parent(x);
2. q = sl(p); //get suffix link of p, and load the prefix tree
for q from disk if not in memory
3. Skip/count using L to locate sl(x) under q; }
for (each internal child y of x)
RECOVER(y, edge-label(x,y));
2010-7-31
Experimental Results
Construction and Link Recovery Time
Trellis vs TDD
1000
Time (mins)
Time (mins)
Construction Time
Trellis vs TOP-Q and DynaCluster
100
10
1
0
20
40
60
80
100
120
400
300
200
100
0
200
400
Sequence Length (Mbp)
TOP-Q (mins)
DynaCluster (mins)
600
800
1000
Sequence Length (Mbp)
Trellis (mins)
TDD
Trellis
Link Recovery
Total Trellis
• Memory: 512MB
• Memory: 512 MB
• TOP-Q and DynaCluster parameters were
set as recommended in their papers
Human genome suffix tree
(size ~3Gbp, using 2GB of memory)
Trellis
TDD: 12.8hr
• Without
links: 4.2hr
• With links:
5.9hr
2010-7-31
122
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Experimental Results (cont.)
Disk Space Usage
Disk-based Suffix Tree Size
Trellis vs TDD
On average, Trellis uses about
27 bytes per character indexed while
TDD uses about 9.7 bytes.
Size (GB)
30
20
10
0
200
400
600
800
1000
Sequence Length (Mbp)
Trellis
Human Genome
Trellis
72GB
TDD
For the human genome, TDD uses
about 19.3 bytes/char because it
requires 64-bit environment to index
larger sequences.
Trellis remains at 27 bytes/char for
the human genome.
TDD
54GB
Disk-space vs query time tradeoff
2010-7-31
Experimental Results (cont.)
Query time (without suffix links)
TDD
Trellis vs TDD
Query Times on the Human Genome Suffix Tree
Query Length (bp)
8000
Trellis
TDD
4000
1000
600
200
80
40
0.000
0.050
0.100
0.150
0.200
Query Time (secs)
Hence, faster query time!
2010-7-31
123
• smaller suffix trees
• edge length must be determined
by examining all children nodes
• each internal node only has a
pointer to its first child, i.e. children
must be linearly scanned during
a query search
Trellis
• larger suffix trees
• edge length stored locally with its
respective node
• all children locations stored locally,
so each child can be accessed in a
constant time, i.e. no linear scan
needed
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Experimental Results
(cont.)
S[150]
xαG
C
Query length = 100
α
xα
v
A
• Uses suffix links to move
across the tree to search for
the next query
• Mimics the behavior of
exact match anchor search
during a genome alignment
sf(v)
G
G
A
CA
2010-7-31
Experiment Results (cont.)
Query time (with suffix links)
Trellis: Without Suffix Links vs With Suffix Links
Query Times on the Human Genome Suffix Tree
Query Length (bp)
8000
With Suffix Links
Without Suffix Links
4000
1000
600
200
80
40
0.000
0.010
0.020
0.030
Query Time (secs)
2010-7-31
124
0.040
0.050
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Summary
Trellis builds a disk-based suffix tree based on
A partitioning method via variable-length prefixes
A suffix subtree merging algorithm
Trellis is both time and space efficient
Trellis quickly recovers suffix links
Faster than existing leading methods in both
construction and query time
2010-7-31
Outline
• Searching based on a disk based suffix tree
• Approximate Matching Using Inverted List (Vgrams)
• Approximate Matching Based on B+ Tree (BED Tree)
2010-7-31
125
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Example 1: a movie database
Tom
Find movies starred Samuel Jackson
Year
Genre
Keanu Reeves
Star
The Matrix
Title
1999
Sci-Fi
Samuel Jackson
2005
Sci-Fi
Schwarzenegger
Star Wars: Episode III - Revenge
of the Sith
The Terminator
1984
Sci-Fi
Samuel Jackson
Goodfellas
1990
Drama
…
…
…
…
2010-7-31
How about Schwarrzenger?
The user doesn’t know the exact spelling!
Year
Genre
Keanu Reeves
Star
The Matrix
Title
1999
Sci-Fi
Samuel Jackson
2005
Sci-Fi
Schwarzenegger
Star Wars: Episode III - Revenge
of the Sith
The Terminator
1984
Sci-Fi
Samuel Jackson
Goodfellas
1990
Drama
…
…
…
…
2010-7-31
126
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Relax Condition
Find movies with a star “similar to” Schwarrzenger.
Year
Genre
Keanu Reeves
Star
The Matrix
Title
1999
Sci-Fi
Samuel Jackson
2005
Sci-Fi
Schwarzenegger
Star Wars: Episode III - Revenge
of the Sith
The Terminator
1984
Sci-Fi
Samuel Jackson
Goodfellas
1990
Drama
…
…
…
…
2010-7-31
Edit Distance
Given two strings A and B, edit A to B with the
minimum number of edit operations:
Replace a letter with another letter
Insert a letter
Delete a letter
E.g.
A = interestings
B = bioinformatics
_i__nterestings
bioinformatic_s
101101101100110
Edit distance = 9
2010-7-31
127
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Edit Distance Computation
Instead of minimizing the number of edge operations, we
can associate a cost function to the operations and
minimize the total cost. Such cost is called edit distance.
For the previous example, the cost function is as follows:
A= _i__nterestings
B= bioinformatic_s
101101101100110
_
Edit distance = 9
_
Delete i times
2010-7-31
128
T
1
1
1
1
0
1
1
1
C
1
1
0
1
1
G
1
1
1
0
1
T
1
1
1
1
0
Consider two strings S[1..n] and T[1..m].
Define V(i, j) be the score of the optimal
alignment between S[1..i] and T[1..j]
Basis:
V(i, 0) = V(i-1, 0) + δ(S[i], _)
G
1
Needleman-Wunsch algorithm (I)
Insert j times
C
A
2010-7-31
V(0, 0) = 0
V(0, j) = V(0, j-1) + δ(_, T[j])
A
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Needleman-Wunsch algorithm (II)
Recurrence: For i>0, j>0
⎧V (i − 1, j − 1) + δ ( S [i ], T [ j ])
⎪
V (i, j ) = max ⎨ V (i − 1, j ) + δ ( S [i ], _)
⎪ V (i, j − 1) + δ (_, T [ j ])
⎩
Match/mismatch
Delete
Insert
In the alignment, the last pair must be either
match/mismatch, delete, insert.
xxx…xx
|
xxx…yy
xxx…xx
|
yyy…y_
match/mismatch
delete
xxx…x_
|
yyy…yy
insert
2010-7-31
Example (I)
_
A
G
_
0
-1 -2 -3 -4 -5 -6 -7
A
-1
C
-2
A
-3
A
-4
T
-5
C
-6
C
-7
2010-7-31
129
C
A
T
G
C
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Example (II)
_
A
G
C
A
T
G
C
_
0
-1 -2 -3 -4 -5 -6 -7
A
-1
2
1
0
C
-2
1
1
?3
2
A
-3
A
-4
T
-5
C
-6
C
-7
_
A
G
C
A
_
0
-1 -2 -3 -4 -5 -6 -7
A
-1
2
1
0
-1 -2 -3 -4
C
-2
1
1
3
2
1
0
-1
A
-3
0
0
2
5
4
3
2
A
-4 -1 -1
1
4
4
3
2
T
-5 -2 -2
0
3
6
5
4
C
-6 -3 -3
0
2
5
5
7
C
-7 -4 -4 -1
1
4
4
7
-1 -2 -3 -4
2010-7-31
Example (III)
2010-7-31
130
T
G
C
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
“q-grams” of strings
universal
2-grams
2010-7-31
q-gram inverted lists
id
0
1
2
3
4
strings
rich
stick
stich
stuck
static
2-grams
at
ch
ck
ic
ri
st
ta
ti
tu
uc
4
2010-7-31
131
0
2
1
0
0
1
4
1
3
3
3
1
2
4
2
3
4
2
4
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Searching using inverted lists
Query: “shtick”, ED(shtick, ?)≤1
sh ht ti ic ck
id
0
1
2
3
4
strings
rich
stick
stich
stuck
static
2-grams
at
ch
ck
ic
ri
st
ta
ti
tu
uc
# of common grams >= 3
4
0
2
1
0
0
1
4
1
3
3
3
1
2
4
2
3
4
2
4
2010-7-31
2-grams -> 3-grams?
Query: “shtick”, ED(shtick, ?)≤1
sht hti tic ick
id
0
1
2
3
4
2010-7-31
strings
rich
stick
stich
stuck
static
3-grams
ati
ich
ick
ric
sta
sti
stu
tat
tic
tuc
uck
# of common grams >= 1
4
0
1
0
4
1
3
4
1
3
3
132
2
2
2
4
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Observation 1: dilemma of choosing “q”
Increasing “q” causing:
Longer grams Shorter lists
Smaller # of common grams of similar strings
4
at
2
ch
0
id strings
ck
1
3
0
rich
ic
0
1
2
4
2-grams
1
stick
ri
0
2
stich
st
4
2
3
1
3
stuck
ta
4
4
static
ti
1
2
4
tu
3
uc
3
2010-7-31
Observation 2: skew distributions of gram
frequencies
DBLP: 276,699 article titles
Popular 5-grams: ation (>114K times), tions, ystem, catio
2010-7-31
133
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
VGRAM: Main idea
Grams with variable lengths (between qmin and qmax)
zebra
ze(123)
corrasion
co(5213), cor(859), corr(171)
Advantages
Reduce index size ☺
Reducing running time ☺
Adoptable by many algorithms ☺
2010-7-31
Challenges
Generating variable-length grams?
Constructing a high-quality gram dictionary?
Relationship between string similarity and their
gram-set similarity?
Adopting VGRAM in existing algorithms?
2010-7-31
134
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Challenge 1: String
Variable-length grams?
Fixed-length 2-grams
universal
Variable-length grams
[2,4]-gram dictionary
universal
ni
ivr
sal
uni
vers
2010-7-31
Representing gram dictionary as
a trie
ni
ivr
sal
uni
vers
2010-7-31
135
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Challenge 2: Constructing gram
dictionary
Step 1: Collecting frequencies of grams with length in [qmin,
qmax]
st
sti
stu
stic
stuc
0, 1, 3
0, 1
3
0, 1
3
Gram trie with frequencies
2010-7-31
Step 2: selecting grams
Pruning trie using a frequency threshold T (e.g., 2)
2010-7-31
136
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Step 2: selecting grams (cont)
Threshold T = 2
2010-7-31
Final gram dictionary
[2,4]-grams
2010-7-31
137
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Challenge 3: Edit operation’s effect on grams
universal
Fixed length: q
k operations could affect k * q grams
2010-7-31
Deletion affects variable-length grams
Not affected
i-qmax+1
Affected
i
Deletion
2010-7-31
138
Not affected
i+qmax- 1
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Grams affected by a deletion
Affected?
i
Deletion
i-qmax+1
i+qmax- 1
[2,4]-grams
ni
ivr
sal
uni
vers
Deletion
universal
Affected?
2010-7-31
Grams affected by a deletion (cont)
Affected?
i-qmax+1
i
Deletion
Trie of grams
i+qmax- 1
Trie of reversed grams
2010-7-31
139
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
# of grams affected by each operation
Deletion/substitution
Insertion
0 1 1 1 1 2 1 2 2 2 1 1 1 2 1 1 1 1 0
_u_n_i_v_e_r_s_a_l_
2010-7-31
Max # of grams affected by k operations
Vector of s = <2,4,6,8,9>
With 2 edit operations, at most 4 grams can be affected
Called NAG vector (# of affected grams)
Precomputed and stored
2010-7-31
140
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Summary of VGRAM index
2010-7-31
Challenge 4: adopting VGRAM
Easily adoptable by many algorithms
Basic interfaces:
String s grams
String s1, s2 such that ed(s1,s2) <= k
common grams
2010-7-31
141
min # of their
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Lower bound on # of common grams
Fixed length (q)
universal
If ed(s1,s2) <= k, then their # of common grams
>=:
(|s1|- q + 1) – k * q
Variable lengths: # of grams of s1 – NAG(s1,k)
2010-7-31
Example: algorithm using inverted lists
Query: “shtick”, ED(shtick, ?)≤1
sh
ht
tick
2-grams
…
ck
ic
…
ti
…
2010-7-31
2-4 grams
Lower bound = 3
1
0
3
1
2
1
2
4
id
0
1
2
3
4
4
strings
rich
stick
stich
stuck
static
142
…
ck
ic
ich
…
tic
tick
…
1
1
0
3
4
2
2
1
4
Lower bound = 1
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
PartEnum + VGRAM
PartEnum, fixed q-grams:
ed(s1,s2) <= k
hamming(grams(s1),grams(s2)) <= k * q
VGRAM:
ed(s1,s2) <= k
hamming(VG (s1),VG(s2)) <= NAG(s1,k) +
NAG(s2,k)
2010-7-31
PartEnum + VGRAM (naïve)
R
S
Bm(S) = max(NAG(s,k))
Bm(R) = max(NAG(r,k))
• Both are using the same gram dictionary.
• Use Bm(R) + Bm(S) as the new hamming bound.
2010-7-31
143
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
PartEnum + VGRAM (optimization)
R
S
R1 with Bm(R1)
R2 with Bm(R2)
R3 with Bm(R3)
Bm(S) = max(NAG(s,k))
• Group R based on the NAG(r,k) values
• Join(R1,S) using Bm(R1) + Bm(S)
• Similarly, Join(R2,S), Join(R3,S)
• Local bounds tighter
better signatures generated
• Grouping
S
also
possible.
2010-7-31
Outline
• Searching based on a disk based suffix tree
• Approximate Matching Using Inverted List (Vgrams)
• Approximate Matching Based on B+ Tree (BED Tree)
2010-7-31
144
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Approximate String Search
Information Retrieval
Web search query with string “Posgre SQL” instead of
“Postgre SQL”
Data Cleaning
“13 Computing Road” is the same as “#13 Comput’ng Rd”?
Bioinformatics
Find out all protein sequences similar to
“ACBCEEACCDECAAB”
2010-7-31
71
Edit Distance
Edit distance on strings
13 Computing Drive
3 deletions
Edit distance: 5
13 Computing Dr
1 replacement
13 Comput’ng Dr
1 insertion
#13 Comput’ng Dr
Normalized edit distance
ED(s1,s2)
5
MaxLength(s1,s2)
18
2010-7-31
72
145
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Existing Solution
Q-Gram
Q=3
Postgre
##P #Po Pos ost stg tgr gre re# e##
Posgre
##P #Po Pos osg sgr gre re#
e##
Observation: If ED(s1,s2)=d, they agree on at least
min(|s1|,|s2|)+Q-1-d*(Q+1) grams
2010-7-31
73
Existing Solution
Inverted List
Postgre
##P
#Po
Pos
osg
sgr
gre
re$
e$$
Posgre
2010-7-31
74
146
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Limitations
Inverted List Method
Limited queries supported
Range Query Join Query
Top-K Query
Top-K Join
Edit Distance
N
N
Normalized ED
N
N
Y
Y
Uncontrollable memory
consumption
N
N
Concurrency protocol
2010-7-31
75
Our Contributions
Bed-Tree
Wide support on different queries and distances
Range Query Join Query
Edit Distance
Y
Normalized
EDbuffer size
Y
Adjustable
Y
Y cost
and low I/O
Top-K Query
Top-K Join
Y
Y
Y
Y
Highly concurrent
Easy to implement
Competitive performance
2010-7-31
76
147
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Basic Index Framework
Bed-Tree Framework
Index Construction
follows standard B+
tree
Estimate the minimal
distance to query and
prune B+ tree nodes
Query: Posgre
Map all strings to a
1D domain
Refine the result by exact
edit distance
Result: Postgre
2010-7-31
77
String Order Properties
P1: Comparability
Given two string s1 and s2, we know the order of s1 and s2
under the specified string order
P2: Lower Bounding
Given an interval [L,U] on the string order, we know a
lower bound on edit distance to the query string
Query: Posgre
Candidates in the
sub-tree?
2010-7-31
78
148
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
String Order Properties
P3: Pairwise Lower Bounding
Given two intervals [L,U] and [L’,U’], we know the lower
bound of edit distance between s1 from [L,U] and s2 from
[L’,U’]
P4: Length Bounding
Given an interval [L,U] on the string order, we know the
minimal length of the strings in the interval
Potential join results?
2010-7-31
79
String Order Properties
Properties v.s. supported queries and distances
Range Query Join Query
Top-K Query
Top-K Join
Edit Distance
P1, P2
P1, P3
P1, P2
P1, P3
Normalized ED
P1, P2, P4
P1, P3, P4
P1, P2, P4
P1, P3, P4
Description
P1
Comparability
P2
Lower Bounding
P3
Pair-wise Lower Bounding
P4
Length Bounding
2010-7-31
80
149
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Dictionary Order
All strings are ordered alphabetically, satisfying P1, P2 and
P3
Search: Posgre with ED=1
Insertion: Postgre
pose
powder
It’s between “pose”
and “powder”
sit
2010-7-31
81
Dictionary Order
All strings are ordered alphabetically, satisfying P1, P2 and
P3
Search: Posgre with ED=1
pose
powder
power
Not pruning
anything!
sit
put
sad
Pruning happens
only when long
prefix exists
2010-7-31
82
150
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Gram Counting Order
Jim Gray
Hash all grams to
4 buckets
2010-7-31
Count the grams
in binary
1 1
1 0
0 1
1 1
Gram Counting Order
Transform the count vector to a bit string with z-order
Encode with zorder
Order the strings
with this signature
2010-7-31
84
151
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Gram Counting Order
Query: Jim Gary
Lower Bounding
“11011011” to “11011101”
Prefix: “11011???”
signature:
(4,1,2,2)
Minimal edit
distance: 1
2010-7-31
85
Gram Location Order
Extension of Gram Counting Order
Include positional information of the grams
Jim Gray
Grace Hopper
Allow better estimation of mismatch grams
Harder to encode
2010-7-31
86
152
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Experiment Settings
Data
Five Index Schemes
Bed-Tree: BD, BGC, BGL
Inverted List: Flamingo, Mismatch
Default Setting
Q=2, Bucket=4, Page Size=4KB
2010-7-31
87
Empirical Observations
How good is Bed-Tree?
With small threshold, Inverted Lists are better
When threshold increases, Bed-Tree is not worse
153
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
Empirical Observations
Which string order is better?
Gram counting order is generally better
Gram Location order: tradeoff between gram content
information and position information
Conclusion
A new B+ tree index scheme
All similarity queries supported
Both edit distance and normalized distance
General transaction and concurrency protocol
competitive efficiencies
2010-7-31
90
154
Mining and Searching Complex Structures
Chapter 3 Similarity Search on Sequences
References
Benjarath Phoophakdee, Mohammed J. Zaki:
"Genome-scale disk-based suffix tree indexing".
SIGMOD Conference 2007: 833-844
Chen Li, Bin Wang, and Xiaochun Yang . "VGRAM:
Improving Performance of Approximate Queries on
String Collections Using Variable-Length Grams". In
VLDB 2007.
• Zhenjie Zhang, Marios Hadjieleftheriou, Beng Chin Ooi,
and Divesh Srivastava, "B^{ed}-Tree: An All-Purpose
Tree Index for String Similarity Search on Edit
Distance". SIGMOD 2010.
155
Mining and Searching Complex
Chapter 4 Structures Similarity Search on Trees
Searching and Mining Complex
Structures
Similarity Search on Trees
Anthony K. H. Tung(鄧锦浩)
School of Computing
National University of Singapore
www.comp.nus.edu.sg/~atung
Research Group Link: http://nusdm.comp.nus.edu.sg/index.html
Social Network Link: http://www.renren.com/profile.do?id=313870900
Outline
Importance of Trees
Distance between Trees
Fast Edit Distance Approximation for Trees
2
156
Mining and Searching Complex
Chapter 4 Structures Similarity Search on Trees
Importance of Trees
Between sequences and graphs
Equivalent to acyclic graph
Represents hierarchal structures
Examples
XML documents
Programs
RNA structure
3
Types of Trees
Is there a root?
Are the nodes labeled?
Are the children of a node ordered?
4
157
Mining and Searching Complex
Chapter 4 Structures Similarity Search on Trees
Outline
Importance of Trees
Distance between Trees
Fast Edit Distance Approximation for Trees
5
Distance Measure
Many ways to define distance
Convert to standard types and adopt the distance metric there
How many operations to transform one tree to another? (Edit
distance)
Inverse of similarity
dist(S, T) = maxSim – sim(S,T)
Relationship between different definitions?
6
158
Mining and Searching Complex
Chapter 4 Structures Similarity Search on Trees
Operations on Trees
Relabel
Delete
Insert
7
Remarks on Edit Distance
Ordered trees are tractable
Approach based on dynamic programming
NP-hard for unordered trees
Approach is to impose restrictions so that DP can be used
8
159
Mining and Searching Complex
Chapter 4 Structures Similarity Search on Trees
Edit Script
Edit script(S, T): sequence of operations to transform S to T
Example
1. S=
2. Delete c
3. Insert c
Relabel f → a
Relabel e → d
9
Edit Distance Mapping
Edit distance mapping(S, T): alternative representation of edit
operations
relabel: v → w
delete: v → $
insert: $ → w
Mapping corresponding to the script
10
160
Mining and Searching Complex
Chapter 4 Structures Similarity Search on Trees
Edit Distance for Ordered Trees
Generalize the problem to forests.
C(φ, φ) = 0
C(S, φ) = C(S – v, φ) + cost(v → $)
C(φ, T) = C(φ, T – w) + cost($ → w)
C(S, T) = minimum of
1. C(S – v, T) + cost(v → $)
[deleting v]
2. C(S, T – w) + cost($ → w) [inserting w]
3. C(S – tree(v), T – tree(w)) +
C(S(v) - v, T(w)) + cost(v → w)[relabel v → w]
11
Illustration of Case 3
C(S – tree(v), T – tree(w)) +
C(S(v), T(w)) + cost(v → w) [relabel v → w]
S - tree(v)
...
T - tree(w)
v
...
w
T(w)
S(v)
12
161
Mining and Searching Complex
Chapter 4 Structures Similarity Search on Trees
Algorithm Complexity
Number of subproblems bounded by O(|S|2|T|2)
Zhang and Shasha, 1989 showed that the number of relevant
subproblems is
O(|S||T|min(SD, SL) min(TD, TL)) and space is O(|S||T|)
Further improvements, required decomposition of a rooted tree
into disjoint paths
13
Decomposition into Paths
Concept of heavy and light nodes/edges
(Harel and Tarjan, 1984)
Root is light, child with max size is heavy
Removal of light edges partitions T into disjoint heavy paths
Important property: light depth(v) ≤ log|T| + O(1)
Complexity can be reduced to O(|S|2|T|log|T|)
14
162
Mining and Searching Complex
Chapter 4 Structures Similarity Search on Trees
Unordered Edit Distance
NP-hard
Special cases (in P)
T is a sequence
Number of leaves in T is logarithmic
Impose additional constraints
Disjoint subtrees map to disjoint subtrees
15
Tree Inclusion
Is there a sequence of deletion operations on S which can
transform it to T?
Special case of edit distance which only allows deletions
16
163
Mining and Searching Complex
Chapter 4 Structures Similarity Search on Trees
Complexity of Tree Inclusion
Ordered trees
Concept of embeddings (restriction of mappings)
O(|S||T|) using the algorithm of
Kilpelainen and Mannila
Unordered trees
NP-complete (what did you expect ?)
Special cases
17
Related Problems on Trees
Tree Alignment (covered in the survey paper)
Robinson-Fould's Distance for leaf labeled trees, where edge =
bipartition of leaves
Tree Pattern Matching
Maximum Agreement Subtree
Largest Common Subtree
Smallest Common Supertree
Many are generalizations of problems on strings
18
164
Mining and Searching Complex
Chapter 4 Structures Similarity Search on Trees
Summary of Tree Distance
Edit distance
Concept of edit mapping
Dynamic programming for ordered trees
Constrained edit distance for unordered trees
Tree inclusion
Special case of edit distance
Specialized algorithms are more efficient
Useful for determining embedded trees
19
Outline
Importance of Trees
Distance between Trees
Fast Edit Distance Approximation for Trees
20
165
Mining and Searching Complex
Chapter 4 Structures Similarity Search on Trees
Similarity Measurement
„
Edit Distance EDist(T1, T2)
e; cost γ(e),
Edit Operation
b->λ
a->b
λ->b
a
a
si(ei1,ei2,…,eik) : T1->T2; cost(si)= ∑j γ(eij)
EDist(T1,T2)=mini(cost(si)) unit cost: EDist(T1,T2)=min(k)
Computational Complexity:
O (| T1 | × | T2 | × min(depth(T1 ), leaves(T1 )) × min(depth(T2 ), leaves(T2 )))
7/31/2010
21
Edit Operation Mapping
„
Edit operations mapping
„
„
„
One-to-one
Preserve sibling order
Preserve ancestor order
a
a
d
M(T1,T2)
c
b
e
c
d
b
c
d
T1
7/31/2010
c
d
d
b
e
T2
22
166
Mining and Searching Complex
Chapter 4 Structures Similarity Search on Trees
Observation
Edit operations do not change many sibling
relationship
a
a
c->λ
c
b
d
e
f
b
g
f
h
d
i
e
Sibling relation:
(b,c)->(b,f)
(c,d)->(i,d)
i
h
g
Node: Varying number of children v.s. at most 2 siblings
7/31/2010
23
Binary Tree Representation
a
Binary Tree Representation
Left-child, right sibling
Normalized Binary Tree
b
c
a(1,8)
b(2,3)
ε
e(8,7)
c(6,4)
d(4,2)
ε
ε
ε
d(7,5)
ε
c
d
T1
c(3,1)
ε
d
d
a
d
e
b
b
b
d
b
c
b … c … c … c … e … ε … ε …ε … ε … ε
e
b
e
ε
ε b
ε
ε d
c
ε
b(5,6)
e
b
1 …1 …0 … 1 … 0 … 2
…0 …0 … 2 … 1
T2
ε
1 …0 …1 … 0 … 1 … 2
ε
…0 …1 … 0 … 1
1
|Γ |
BBDist (T1 , T2 ) = ∑ | b1i − b2i | = 8
i =1
Triangular Inequality
7/31/2010
24
167
Mining and Searching Complex
Chapter 4 Structures Similarity Search on Trees
One Edit Operation Effect
v’
...
w2
w1
v’
...
...
wl
...
...
w l+m+1
w l+m
w1
...
...
...
v
wl
w2
w l+m+1
...
...
Each node appears in
at most two binary
branches
...
w l+1
v’
v’
...
w1
...
w2
w l+m
...
w2
...
wl
w l+1
...
...
w1
...
...
...
w l+m
wl
v ...
w l+m+1
w l+1
w l+m+1
...
w l+2
...
...
w l+m
...
ε
7/31/2010
25
Theorem
1 insertion/deletion incurs at most 5 difference on BBDist
1 rellabeling incurs at most 4 difference on BBDist
T, T’, EDIST(T, T’) = k = ki + kd + kr ,
BDist(T,T’) <= 4kr+5ki+5kd <= 5k;
1/5 BDist is a lower
bound of edit distance;
7/31/2010
26
168
Mining and Searching Complex
Chapter 4 Structures Similarity Search on Trees
Positional Binary Branch
a(1,8)
a(1,8)
b(2,3)
ε
b(5,6)
ε
ε
e(8,7)
c(6,4)
d(4,2)
ε
ε
ε
d(7,5)
ε
ε
c(3,1)
c(3,1)
c(7,6)
ε
d(4,2)
ε
ε
ε
ε
d
b
e
c
d
b
c
d
d(8,7)
ε
b(5,4)
e(6,3)
ε
a
a
b(2,5)
ε
c
d
c
ε
b
T2
T1
ε
d
e
B(T2)
B(T1)
a
Incurs 0 difference for
BBDist(T1,T2)
c
d
T’2
Positional binary branch: PosBiB(T(u))
PosBiB(T1(e))=(BiB(e,ε,ε),8,7)
≠
e
PosBib(T2(e))=(BiB(e,ε,ε),6,3)
Positional Binary Branch Distance
7/31/2010
27
Computational Complexity
D: dataset; |D|: dataset size;
Vector construction part:
Traverse the data trees for once
Optimistic bound computation:
time: each binary search O(|Ti|+|Tq|),
| D|
time, space : O(∑ | Ti |)
i =1
| D|
O (∑ (| Ti | + | Tq |) log(min(| Ti |,| Tq |)))
totally:
i =1
| D|
space:
O (∑ (| Ti | + | Tq |))
i =1
7/31/2010
28
169
Mining and Searching Complex
Chapter 4 Structures Similarity Search on Trees
Generalized Study
Extend the sliding window to q level
The images vector gives multiple level binary
branch profiles.
BDist_q(T,T’
(T,T’) <= [4*(q[4*(q-1)+1]*EDist(T,T’
1)+1]*EDist(T,T’)
v’
v’
...
w1
...
w2
...
w2
...
wl
w l+1
...
...
w1
...
...
...
w l+m
wl
v ...
w l+m+1
w l+1
w l+m+1
...
w l+2
...
...
w l+m
...
7/31/2010
29
Query Processing Strategy
Filter-and-refine frameworks
Lower bound distances filter out most objects
The lower bound computation is much succinct
Lower bound distance is a close approximation of
the real dist
Remaining objects be validated by real distance
7/31/2010
30
170
Mining and Searching Complex
Chapter 4 Structures Similarity Search on Trees
Experimental Settings
Compare with histogram methods[KKSS04]
Lower bound: feature vector distance (Leaf Distance Height
histogram vector, Degree histogram vector, Label histogram
vector)
Synthetic dataset:
Tree size, Fanout, Label, Decay factor
Real dataset: dblp XML document
Performance measure:
Percentage of data accessed:
| false positive | + | true positive |
× 100%
| dataset |
CPU time consumed
Space requirement
7/31/2010
31
Sensitivity to the Data Properties
Sensitivity test
Range: N{}N{50,2.0}L8D0.05
20
0.3
15
0.2
10
0.1
5
0
0
2
4
BiBranch %
BiBranch
6
Fanout
Histo %
8
Result %
3
80
70
60
50
40
30
20
10
0
2.5
2
1.5
1
0.5
0
25
Sequ
CPU Cost (Second)
0.4
25
% of Accessed Data
30
CPU Cost (Second)
% of Accessed Data
Range: N{4,0,5}N{}L8D0.05
0.5
35
50
BiBranch %
BiBranch
75
Tree Size
His to %
125
Result %
Sequ
KNN: N{}N{50,2.0}L8D0.05
0.5
0.2
0.1
0
2
BiBranch %
4
Fanout
Histo %
6
8
BiBranch
3
2.5
80
2
60
1.5
40
1
20
0.5
0
0
25
Sequ
BiBranch %
mean(fanout): 2 Æ 8;
mean(|T|): 50;
size(label): 8
CPU Cost (Second)
0.3
100
% of Accessed Data
0.4
CPU Cost (Second)
% of Accessed Data
KNN: N{4,0.5}N{}L8D0.05
8
7
6
5
4
3
2
1
0
50
75
Tree Size
Histo %
125
BiBranch
Sequ
mean(|T|): 25 Æ 125;
mean(fanout): 4;
size(label): 8
7/31/2010
32
171
Mining and Searching Complex
Chapter 4 Structures Similarity Search on Trees
Sensitivity test (cont.)
Range: N{4,0.5}N{50,2.0}L{}D0.05
0.4
25
20
0.3
15
0.2
10
0.1
5
% of Accessed Data
30
7
0
0
8
16
32
Label Number
BiBranch %
Histo %
BiBranch
Sequ
0.45
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
6
5
4
3
2
1
0
64
8
16
32
Label Number
Result %
BiBranch %
Histo %
CPU Cost (Second)
KNN: N{4,0.5}N{50,2.0}L{}D0.05
0.5
CPU Cost (Second)
% of Accessed Data
35
64
BiBranch
Sequ
size(label): 8 Æ 64; mean(|T|): 50; mean(fanout): 4
7/31/2010
33
Queries with Different Parameters
„
„
„
Dblp data (avg. distance: 5.031)
Range queries
KNN (k:5-20)
Range: DBLP
KNN: DBLP
0.2
40
0.15
0.1
20
0.05
0
0
1
2
3
4
5
7
10
Range
BiBranch %
BiBranch
Histo %
Sequ
6
0.35
5
0.3
0.25
4
0.2
3
0.15
2
0.1
1
0.05
0
0
Result %
5
7
BiBranch %
7/31/2010
CPU Cost (second)
0.25
60
% of Accessed Data
% of Accessed Data
0.3
80
CPU Cost (second)
0.35
100
10
12
k
Histo %
15
17
BiBranch
20
Sequ
34
172
Mining and Searching Complex
Chapter 4 Structures Similarity Search on Trees
Pruning Power of Different Level
Data distribution according to distances
Edit distance
Histogram distance
Binary branch distance: 2, 3, 4 level
DBLP
2000
Data Distribution
1500
1000
500
0
1
2
Edit
BiBranch(3)
3
4
5
6
7
Distance
Histo
BiBranch(4)
8
9
10
11
12
BiBranch(2)
7/31/2010
35
Citations on the Paper
Surprisingly, attract citations and questions from software
engineering! Expect more impact along software mining
direction soon.
DECKARD: Scalable and Accurate Tree-Based Detection of Code Clones - all 2
versions »
L Jiang, G Misherghi, Z Su, S Glondu - Proceedings of the 29th International
Conference on Software …, 2007 - portal.acm.org
Detecting code clones has many software engineering applications. Existing
approaches either do not scale to large code bases or are not robust against minor
code modifications. In this paper, we present an efficient ...
Fast Approximate Matching of Programs for Protecting Libre/Open Source Software
by Using Spatial … - all 2 versions »
AJM Molina, T Shinohara - Source Code Analysis and Manipulation, 2007. SCAM
2007. …, 2007 - doi.ieeecomputersociety.org
To encourage open source/libre software development, it is desirable to have
tools that can help to identify open source license violations. This paper
describes the imple-mentation of a tool that matches open source programs ...
7/31/2010
36
173
Mining and Searching Complex
Chapter 4 Structures Similarity Search on Trees
References
• Philip Bille . A survey on tree edit distance and related problems.
Theoretical Computer Science. Volume 337 , Issue 1-3 (June 2005)
• Rui Yang, Panos Kalnis, Anthony K. H. Tung: Similarity Evaluation on
Tree-structured Data. SIGMOD 2005.
• Optional References:
• JP Vert. "A tree kernel to analyze phylogenetic profiles" - Bioinformatics,
2002 - Oxford Univ Press
7/31/2010
174
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Searching and Mining Complex
Structures
Graph Similarity Search
Anthony K. H. Tung(鄧锦浩)
School of Computing
National University of Singapore
www.comp.nus.edu.sg/~atung
Research Group Link: http://nusdm.comp.nus.edu.sg/index.html
Social Network Link: http://www.renren.com/profile.do?id=313870900
Outline
• Introduction
• Foundation
• State of the Art on Graph Matching
•Exact Graph Matching
•Error-Tolerant Graph Matching
• Search Graph Databases
•Graph Indexing Methods
• Our Works
•Star Decomposition
•Sorted Index For Graph Similarity Search
175
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Smart Graphs
Chemical compound Protein structure
Program flow
Coil
Image
Fingerprint
Letter
Motivation
• Why graph?
•Graph is ubiquitous
•Graph is a general model
•Graph has diversity
•Graph problem is complex and challenging
• Why graph search?
•Manifold application areas
•
•
•
•
2D and 3D image analysis
Video analysis
Document processing
Biological and biomedical applications
176
Shape
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Graph Search
• Definition
•Given a graph database D and a query graph Q, find all
graphs in D supporting the users’ requirements:
•
•
•
•
The same as Q
Containing Q or contained by Q
Similarity to Q
Similarity to the subgraph of Q
• Challenge
•How to efficiently compare two graphs?
•How to reduce the number of pairwise graph comparisons?
How to efficiently compare two graphs?
• The graph matching problem
•Graph matching is the process of finding a
correspondence between the vertices and the edges of two
graphs that satisfies some (more or less stringent)
constraints ensuring that similar substructures in one graph
are mapped to similar substructures in the other.
177
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
How to reduce the number of pairwise
graph comparisons?
• Scalability issue
•A full database scan
•Complex graph matching between a pair of graphs
• Index mechanisms are needed
Outline
• Introduction
• Foundation
• State of the Art on Graph Matching
•Exact Graph Matching
•Error-Tolerant Graph Matching
• Search Graph Databases
•Graph Indexing Methods
• Our Works
•Star Decomposition
•Sorted Index For Graph Similarity Search
178
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Categories of Matching
Exact Graph Matching
• Graph Isomorphism
•Two graphs G1=(V1,E1) and G2=(V2,E2) are isomorphic if
there is a bijective function f: V1 → V2 such that for all
u, v ∈ V1: {u,v} ∈ E1 ↔ {f(u),f(v)} ∈ E2
G1
G2
179
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Exact Graph Matching
• Induced Subgraph
•A subset of the vertices of a graph together with all edges
whose endpoints are both in this subset
• Subgraph Isomorphism
•An isomorphism holds between one of the two graphs and
an induced subgraph of the other
Graph Similarity Measure
• Graph Edit Distance
•The minimum amount of distortion that is needed to
transform one graph into another
•The edit operations ei can be deletions, insertions, and
substitutions of vertices and edges
G1
G2
180
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Graph Similarity Measure
• Graph Edit Distance
•The minimum amount of distortion that is needed to
transform one graph into another
•The edit operations ei can be deletions, insertions, and
substitutions of vertices and edges
G1
G2
Graph Similarity Measure
• Graph Edit Distance
•The minimum amount of distortion that is needed to
transform one graph into another
•The edit operations ei can be deletions, insertions, and
substitutions of vertices and edges
G1
G2
181
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Graph Similarity Measure
• Graph Edit Distance
•The minimum amount of distortion that is needed to
transform one graph into another
•The edit operations ei can be deletions, insertions, and
substitutions of vertices and edges
G1
G2
Graph Similarity Measure
• Graph Edit Distance
•The minimum amount of distortion that is needed to
transform one graph into another
•The edit operations ei can be deletions, insertions, and
substitutions of vertices and edges
G1
G2
182
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Graph Similarity Measure
• Graph Edit Distance
•The minimum amount of distortion that is needed to
transform one graph into another
•The edit operations ei can be deletions, insertions, and
substitutions of vertices and edges
G1
G2
Graph Similarity Measure
• Graph Edit Distance (GED)
•Given two attributed graphs G1 = (V1,E1, Σ, l1) and G2 =
(V2,E2, Σ, l2) , the GED between them is defined as
•where T(G1,G2) denotes the set of edit paths transforming G1
into G2, and c denotes the edit cost function measuring the
c(ei) of edit operation ei
• GED provides a general dissimilarity measure for graphs
• Most works on inexact graph matching focusing on the
GED computation problem
183
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Outline
• Introduction
• Foundation
• State of the Art on Graph Matching
•Exact Graph Matching
•Error-Tolerant Graph Matching
• Search Graph Databases
•Graph Indexing Methods
• Our Works
•Star Decomposition
•Sorted Index For Graph Similarity Search
Exact Matching Algorithms
• Tree search based algorithms
•Ullmann’s algorithm
•VF and VF2 algorithm
• Other algorithms
•Nauty algorithm
184
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Tree Search based Algorithms
• Basic Idea
•A partial match (initially empty) is iteratively expanded by
adding new pairs of matched vertices
•The pair is selected using some necessary conditions,
usually also some heuristic condition to prune unfruitful
search paths
•The algorithm ends when it finds a complete matching, or no
further vertex pairs may be added (backtracking)
•For attributed graphs, the attributes of vertices and edges can
be used to constrain the desired matching
The Backtracking Algorithm
1
• Depth-First Search (DFS):
2
5
•progresses by expanding the first child node of the search
3
4
7
tree
•going deeper and deeper until a goal node is found, or until
it hits a node that has no children.
• Branch and Bound (B&B):
•BFS(breadth-first search)-like search for optimal solution
•Branch is that a set of solution candidates is splitted into two
or more smaller sets
•bound is that a procedure upper and lower bounds
1
2
5
185
6
3
7
6
8
4
8
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Tree Search based Algorithms
• Ullmann’s Algorithm (DFS)
•A refinement procedure based on matrix of possible future
matched vertex pairs to prune unfruitful matches
•The simple enumeration algorithm for the isomorphisms
between a graph G1 and a subgraph of another graph G2 with
the adjacency matrices A1and A2
• An M’ matrix with |V1| rows and |V2 | columns can be used
to permute the rows and columns of A2 to produce a further
matrix P. If
, then M’ specifies an
isomorphism between G1 and the subgraph of G2.
(a1 i , j = 1) ⇒ ( pi , j = 1)
P = M ' ( M ' A2 )T
Tree Search based Algorithms
• Ullmann’s Algorithm
•Example for permutation matrix
•The elements of M’ are 1’s and 0’s, such that each row
contains 1 and each column contains 0 or 1
P = M ' (M ' A2 )T
G2
⎡
⎡0
⎡1 0 0 0⎤ ⎢⎡1 0 0 0⎤ ⎢
1
= ⎢⎢0 0 1 0⎥⎥ ⋅ ⎢⎢⎢0 0 1 0⎥⎥.⎢
⎢
⎢0
⎣⎢0 1 0 0⎥⎦ ⎢⎣⎢0 1 0 0⎦⎥ ⎢0
⎣
⎣⎢
⎡0
⎡1 0 0 0⎤ ⎢
1
= ⎢⎢0 0 1 0⎥⎥.⎢
⎢0
⎢⎣0 1 0 0⎥⎦ ⎢
⎣0
186
1
0
1
1
0 1⎤
⎡0 0 1⎤
1 0⎥⎥ ⎢
= 0 0 1⎥⎥
0 1⎥ ⎢
⎥ ⎣⎢1 1 0⎦⎥
0 1⎦
0
1
0
0
0⎤⎤
⎥
1⎥⎥
⎥
0⎥⎥
⎥⎥
0⎦⎦⎥
T
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Tree Search based Algorithms
• Ullmann’s Algorithm
•Construction of another matrix M0 with the same size of M’
⎧1 if deg(V2i ) ≥ deg(V1i )
mi0, j = ⎨
, mi , j ∈ {0,1}
otherweise
⎩0
•Generation of all M’ by setting all but one of each row of M0
•A subgraph isomorphism has been found if
(a1 i , j = 1) ⇒ ( pi , j = 1)
⎡0
⎢1
A2 = ⎢
⎢0
⎢
⎣0
1 0 0⎤
0 1 1⎥⎥
1 0 0⎥
⎥
1 0 0⎦
⎡0 0 1⎤
A1 = ⎢⎢0 0 1⎥⎥
⎢⎣1 1 0⎥⎦
G2
G1
⎡1 1 1 1⎤
M 0 = ⎢⎢1 1 1 1⎥⎥
⎢⎣0 1 0 0⎥⎦
Tree Search based Algorithms
• Ullmann’s Algorithm
•An example
⎡1 1 1 1 ⎤
⎢1 1 1 1 ⎥
⎥
⎢
⎣⎢0 1 0 0⎦⎥
⎡1 0 0 0 ⎤
⎢1 1 1 1 ⎥
⎢
⎥
⎣⎢0 1 0 0⎦⎥
⎡1 0 0 0 ⎤
⎢0 0 1 0⎥
⎢
⎥
⎣⎢0 1 0 0⎦⎥
1
4
3
⎡1 0 0 0 ⎤
⎢0 0 0 1 ⎥
⎢
⎥
⎣⎢0 1 0 0⎦⎥
1
2
3
2
1
⎡0 1 0 0⎤
⎢1 1 1 1 ⎥
⎢
⎥
⎣⎢0 1 0 0⎦⎥
4
2
3
⎡0 0 1 0⎤
⎢1 1 1 1 ⎥
⎢
⎥
⎣⎢0 1 0 0⎦⎥
⎡0 0 1 0⎤
⎢1 0 0 0 ⎥
⎢
⎥
⎢⎣0 1 0 0⎥⎦
2
4
3
3
⎡0 0 1 0⎤
⎢0 0 0 1 ⎥
⎢
⎥
⎢⎣0 1 0 0⎥⎦
1
2
3
1
⎡0 0 0 1 ⎤
⎢1 1 1 1⎥
⎢
⎥
⎣⎢0 1 0 0⎦⎥
⎡0 0 0 1 ⎤
⎢1 0 0 0 ⎥
⎢
⎥
⎢⎣0 1 0 0⎥⎦
2
⎡0 0 0 1 ⎤
⎢0 0 1 0⎥
⎢
⎥
⎢⎣0 1 0 0⎥⎦
1
1
1
3
1
3
3
2
P = M ' ( M ' A2 )T
⎡0 0 1 ⎤
compared with A1 = ⎢⎢0 0 1 ⎥⎥
⎢⎣1 1 0⎥⎦
⎡0 0 1 ⎤
= ⎢⎢0 0 1 ⎥⎥
⎣⎢1 1 0 ⎥⎦
187
1
3
2
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Tree Search based Algorithms
• Ullmann’s Algorithm
•A most widely used algorithm
• VF or VF2
•VF defines a heuristic based on the analysis of vertices
adjacent to the ones already considered in the partial mapping
•VF2 reduces the memory requirement from O(n2) to O(n)
• Other methods: Nauty Algorithm
•Constructs the automorphism group of each of the input
graphs and derives a canonical labeling. The isomorphism
can be checked by verifying the equality of the adjacency
matrices
Exact Graph Matching
• Summary
•The matching problems are all NP-complete except for
graph isomorphism, which has not yet been shown in NP or
not.
•Exact isomorphism is very seldom used. Subgraph
isomorphism can be effectively used in many contexts.
•Exact graph matching has exponential time complexity in
the worst case.
•Ullmann’ algorithm, VF2 algorithm and Nauty algorithm are
mostly used algorithms. Most modified algorithms adopt
some conditions to prune the unfruitful partial matching.
188
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Error-Tolerant Graph Matching
• GED Computation
•Optimal algorithms
• Exact GED computation requires isomorphism testing
• Tree search based algorithms (A* based algorithms)
•Suboptimal algorithms
• Heuristic algorithms
• Formulated as a BLP problem
A* Algorithm
• A tree search based algorithm
•Similar to isomorphism testing
•Differently, the vertices of the source graph can potentially
be mapped to any node of the target graph
•Search tree is constructed dynamically
•by creating successor vertices linked
by edges to the currently vertex
•A heuristic function is usually used to
•determine the vertex for expansion
189
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Exact GED Computation
• Summary
•The complexity is exponential in the number of vertices of
the involved graphs.
•For graphs with unique vertex labels the complexity is linear.
•Exact graph edit distance is feasible for small graphs only.
•Several suboptimal methods have been proposed to speed up
the computation and make GED applicable to large graphs.
Bipartite Matching for GED
• A Heuristic Algorithm
•A new suboptimal procedure for the GED computation
based on Hungarian algorithm (i.e., Munkres’ Algorithm).
•Hungarian algorithm is used as a tree search heuristic.
•Much faster than the exact computation and the other
suboptimal methods
•Application for larger graphs
190
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Bipartite Matching for GED
• Assignment Problem
•Find an optimal assignment of n elements in a set S1 =
{u1, …, un} to n elements in a set S2 = {v1, …, vn}
•Let cij be the costs of the assignment (ui → vj)
•The optimal assignment is a permutation P = (p1, …, pn) of
the integers 1, …, n that minimizes
S1
c11
c12
c13
S2
Bipartite Matching for GED
• Assignment Problem
•Given the n × n matrix Mcij of the assignment costs
•This problem can be formulated as finding a set of n
independent elements of Mcij with minimum summation
S1
S2
1
5 4
5
7
6
58
8
•Hungarian algorithm finds the minimum cost assignment in
O(n3) time.
191
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Bipartite Matching for GED
• Main Idea
•Construct a vertex cost matrix Mcv and an edge cost matrix
Mce
•For each open vertex v in the search tree, run Hungarian
algorithm on Mcv and Mce
•The accumulated minimum cost of both assignments serves
as a lower bound for the future costs to reach a leaf node
•h(P) = Hungarian(Mcv) + Hungarian(Mce) is the tree search
hearistic
•Returns a suboptimal solution as an upper bound of GED
Suboptimal Algorithms
• Binary Linear Programming (BLP)
•Use the adjacency matrix representation to formulate a BLP
•Compute GED between G0 and G1
•Edit grid
192
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Binary Linear Programming
• Isomorphisms of G0 on the edit grid
• State vectors
Binary Linear Programming
• Definition:
• Objective Function:
193
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Binary Linear Programming
• Lower Bound: linear program (O(n7))
• Upper Bound: assignment problem (O(n3))
Summary
• The complexity of the exact GED computation is
exponential and unaccepted.
•
Suboptimal methods solve the graph matching problem
by fast returning the suboptimal solution and can be
applied to larger graphs.
• An important application of the graph matching problem
is searching a graph database.
194
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Outline
• Introduction
• Foundation
• State of the Art on Graph Matching
•Exact Graph Matching
•Error-Tolerant Graph Matching
• Search Graph Databases
•Graph Indexing Methods
• Our Works
•Star Decomposition
•Sorted Index For Graph Similarity Search
Graph Search Problem
• Query a graph database
•Given a graph database D and a query graph Q, find all
graphs in D supporting the users’ requirements.
•
•
•
•
Full graph search (all match )
Subgraph search (partial match or containment search)
Similarity full graph search (based on GED)
Similarity subgraph search (based on GED)
195
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Scalability Issue
• On-line searching algorithm
100,000
100,000
checking
answer
• A full sequential
Subgraphscan
isomorphism testing
•I/O costs
•Subgraph isomorphism testing (GED computation)
• An indexing mechanism is needed
Indexing Graphs
• Indexing is crucial
100,00
0
100,000
checking
filtering
Index
100,00
0
answer
100 checking
answe
r
10
0
196
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Indexing Strategy
• Filter-and-refine framework based on features
Step 1. Index Construction
™Enumerate smaller units (features)
in the database, build an index
between units and graphs
Step 2. Query Processing
™Enumerate smaller units in the
query graph
™Use the index to first filter out
non-candidates
™Prune the answers by exact
checking
Indexing Strategy
• Feature-based Indexing methods
•Break the database graphs into smaller units like paths, trees,
and subgraphs, and use them as filtering features
•Build inverted index between the smaller units and the
database graphs
•Filter graphs based on the number of smaller units or their
locality information
197
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Featured-based Indexing Systems
Small units Smaller units
Query
GraphGrep
path
Contain (Containment search)
SING
path
Contain
gIndex
graph
Contain + Edge relaxation
FGIndex
graph
Contain
TREE∆
tree+graph
Contain
Treepi
tree
Contain
κ-AT
tree
Full similarity search
CTree
-
Contain + Edge relaxation
Path-based Algorithms
[http://ews.uiuc.edu/~xyan/tutorial/kdd06_graph.ht
m]
198
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Path-based Algorithms
[http://ews.uiuc.edu/~xyan/tutorial/kdd06_graph.ht
m]
Path-based Algorithms: problem
[http://ews.uiuc.edu/~xyan/tutorial/kdd06_graph.ht
m]
199
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Feature-based Methods: limitation
• Problem:
•For similarity search, filtering is done by inferring the edit
distance bound through the smaller units that exactly match
the query structure
• A rough bound
• Not effective for large graphs (because features that may be
rare in small graphs are likely to be found in enormous graphs
just by chance)
Outline
• Introduction
• Foundation
• State of the Art on Graph Matching
•Exact Graph Matching
•Error-Tolerant Graph Matching
• Search Graph Databases
•Graph Indexing Methods
• Our Works
•Star Decomposition
•Sorted Index For Graph Similarity Search
200
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Graph Similarity Search Problem
• Definition
•Given a graph database D and a query structure Q, similarity search is
to find all the graphs in D that are similar to Q based on GED.
• Two challenges in the filter-and-refine framework:
•How to efficiently compute more effective edit distance
bounds between two graphs for filtering?
•How to reduce the number of pairwise graph dissimilarity
computations to speed up the graph search?
Our Solutions
• Work 1: Star decomposition
•Break each graph into a multiset of stars
•Propose new effective and efficient lower and upper GED
bounds through finding a mapping between the star sets of
two graphs using Hungarian algorithm
• Work 2: Sorted index for graph similarity search
•Propose a novel indexing and query processing framework
•Deploy a filtering strategy based on TA and CA methods to
reduce the number of pairwise graph dissimilarity
computations
201
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Outline
• Introduction
• Foundation
• State of the Art on Graph Matching
•Exact Graph Matching
•Error-Tolerant Graph Matching
• Search Graph Databases
•Graph Indexing Methods
• Our Works
•Star Decomposition
•Sorted Index For Graph Similarity Search
Comparing Stars: On
Approximating Graph Edit
Distance
Zhiping Zeng
Anthony K.H. Tung
Jianyong Wang
Jianhua Feng
Lizhu Zhou
202
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Star Decomposition
• Star structure
•A star structure s is an attributed, single-level, rooted tree
which can be represented by a 3-tuple s=(r, L, l), where r is
the root vertex, L is the set of leaves and l is a labeling
function.
• Star representation for graph
•A graph can be broken into a multiset of star structures
c
a
b
c
d
G1
b
a
c
a
b
c
c
c
a
c
d
d
c
d
c
Star Decomposition
• Star edit distance
•Given two star structures s1 and s2,
•
λ(s1, s2) = T(r1, r2) + d(L1, L2)
•Where T(r1, r2) = 0 if l(r1) = l(r2); otherwise T(r1, r2) = 1
•
d(L1, L2) = ||L1| − |L2|| + M(L1, L2)
•
M(L1, L2) = max{| ΨL1|, | ΨL2|} − |ΨL1∩ΨL2|
Example: given s1 = abcc, and s2 =
dcc,
T(r1, r2) = 1, as l(a) ≠ l(d);
d(L1, L2) = |3-2| + 3 – 2 = 2;
λ(s1, s2) = 1 + 2 = 3.
203
a
b
c
s1
d
c
c
c
s2
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Star Decomposition
• Mapping distance
•Given two multisets of star structures S(G1) and S(G2) from
two graphs G1 and G2 with the same cardinality, and assume
P: S(G1) → S(G2) is a bijection. The mapping distance
between G1 and G2 is
•This problem can be formulated as the assignment problem.
Given a distance cost matrix between two star multisets, the
mapping distance can be computed using Hungarian
algorithm.
A Simple Example
204
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Bounds of GED
• Lower Bound
•Let G1 and G2 be two graphs, then the mapping distance
μ(G1, G2) between them satisfies
μ(G1, G2) ≤ max{4, [min{δ(G1), δ(G2)]} + 1]} · λ(G1,
G2)
• Based on the above Lemma, μ provides a lower bound
Lm of λ, i.e.,
Constructing the cost matrix takes Θ(n3), and running
the Hungarian algorithm takes O(n3).
Bounds of GED
• Upper bound
•The first upper bound τ comes naturally during the
computation of μ
•The output from the computation of using Hungarian
algorithm leads to a mapping P’ from V(G1) to V(G2)
•Recall the BLP method, exact GED is computed as
•Therefore,
is a naturally upper bound
The mapping P’ might not be optimal, so τ (G1, G2)≥λ(G1, G2).
C(G1, G2, P’) is solved in Θ(n2) time, therefore, τ can be computed in
Θ(n3) time.
205
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Bounds of GED
• Refined upper bound ρ: main idea
•Given any two vertices v1 and v2 in G1 and their
corresponding mapping f(v1) and f(v2) in G2 (assuming f is
the mapping function corresponding to P’), we swap f (v1)
and f (v2) if this reduce the edit distance.
c
a
b
c
G1
ε
d
a
c
c
a
G2
b
c
G1
ε
d
a
c
G2
new mappings obtained might lead to better or worse
bounds. Refining to get a better takes O(n6).
Filtering Strategy
• Integrating all the GED bounds into a filter-and-refine
framework
•Filtering features: Lm ≤ λ ≤ ρ ≤ τ.
•Filtering orders: bounds with lower computation complexity
are deployed first.
206
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Full Graph Similarity Search
• Problem
•Given a graph database D and a query structure Q, find all
the graphs Gi in D with λ(Q, Gi) ≤ d (d is a threshold).
• AppFULL algorithm:
•if Lm(Q, Gi) > d, Gi can be safely filtered;
•if τ(Q, Gi) ≤ d, Gi can be reported as a result directly;
•if ρ(Q, Gi) ≤ d, Gi can be reported as a result directly;
•otherwise, λ(Q, Gi) must be computed.
Subgraph exact Search
• Lemma
•Given two graphs G1 and G2 , if no vertex relabelling is
allowed in the edit operations, μ’(G1, G2) ≤ 4 · λ’(G1, G2),
where μ’ and λ’ are computed without vertex relabelling.
•(This Lemma can be used in subgraph search, because if a
graph is subisomorphism to another graph, no vertex
relabelling happens.)
• AppSUB algorithm:
•Filtering based on the lower bound
.
207
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Experimental Results
• Compare with the exact algorithm
1,000 graphs were generated, D = 1k,T = 10,V = 4.
Randomly select 10 seed graphs to form D; a seed has 10 vertices.
6 query groups. Each group has 10 graphs. Graphs in the same
group have the same number of vertices.
Experimental Results
• Compare with the BLP method
208
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Experimental Results
• Scalability over real datasets
Experimental Results
• Scalability over synthetic datasets
209
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Experimental Results
• Performance of AppFULL
Experimental Results
• Performance of AppSUB
210
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Outline
• Introduction
• Foundation
• State of the Art on Graph Matching
•Exact Graph Matching
•Error-Tolerant Graph Matching
• Search Graph Databases
•Graph Indexing Methods
• Our Works
•Star Decomposition
•Sorted Index For Graph Similarity Search
SEGOS: SEarch similar
Graphs On Star index
Xiaoli Wang
Xiaofeng Ding
Anthony K.H. Tung
Shanshan Ying
Hai Jin
211
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Our Solutions
• Work 1: Scalability issue
•A full database scan
•A index mechanism is needed
• Existing indexing methods: Filtering power
•Rough bounds with poor filtering power
• Work 2: Sorted index for graph similarity search
•Propose a novel indexing and query processing framework
•Deploy a filtering strategy based on TA and CA methods
•All exiting lower and upper GED bounds can be directly
integrated into our filtering framework
TA Method on the Top-k Query
• The database model used in TA
M
N
Sorted L1
Sorted L2
0.85
(a, 0.9)
(d, 0.9)
0.8
0.7
(b, 0.8)
(a, 0.85)
c
0.72
0.2
(c, 0.72)
(b, 0.7)
d
0.6
0.9
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
(d, 0.6)
(c, 0.2)
Object
ID
A1
A2
a
0.9
b
212
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
TA method on the top-k query
• A simple query
•Find the top-2 objects on the ‘query’ of ‘A1&A2 ’
•This query results in the TA method combing the scores of
A1 and A2 by an aggregation function like
sum(A1,A2)
Aggregation function:
function that gives objects an overall score based on attribute
scores
examples: sum, min functions
Monotonicity!
Monotony on TA (Halting Condition)
• Main idea
•How do we know that scores of seen objects are higher than
the grades of unseen objects?
•Predict maximum possible score unseen objects:
L2
L1
Seen
Possibly unseen
a: 0.9
d: 0.9
b: 0.8
a: 0.85
c: 0.72
.
.
.
f: 0.65
.
d: 0.6
b: 0.7
.
f: 0.6
.
.
.
c: 0.2
213
ω = sum(0.72, 0.7) =
1.42
Threshold value
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
A Top-2 Query Example
• Given 2 sorted lists for attributes A1 and A2,
L1
L2
(a, 0.9)
(d, 0.9)
(b, 0.8)
(a, 0.85)
(c, 0.72)
(b, 0.7)
.
.
.
.
.
.
.
.
(d, 0.6)
(c, 0.2)
ID
A1
A2
sum(A1,A2)
A Top-2 Query Example
• Step 1
•Parallel sorted access attributes from every sorted list
L1
L2
(a, 0.9)
(d, 0.9)
(b, 0.8)
(a, 0.85)
(c, 0.72)
(b, 0.7)
.
.
.
.
.
.
.
.
(d, 0.6)
(c, 0.2)
ID
A1
a
0.9
d
214
A2
sum(A1,A2)
0.9
1.5
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
A Top-2 Query Example
• Step 1
•Sorted access attributes from every sorted list
•For each object seen:
• get all scores by random access
• determine sum(A1,A2)
• amongst 2 highest seen? keep in buffer
L1
L2
(a, 0.9)
(d, 0.9)
(b, 0.8)
(a, 0.85)
(c, 0.72)
(b, 0.7)
.
.
.
.
.
.
.
.
(d, 0.6)
(c, 0.2)
ID
A1
a
0.9
d
A2
sum(A1,A2)
0.9
A Top-2 Query Example
• Step 1
•Sorted access attributes from every sorted list
•For each object seen:
• get all scores by random access
• determine sum(A1,A2)
• amongst 2 highest seen? keep in buffer
L1
L2
(a, 0.9)
(d, 0.9)
(b, 0.8)
(a, 0.85)
(c, 0.72)
(b, 0.7)
.
.
.
.
.
.
.
.
(d, 0.6)
(c, 0.2)
ID
A1
A2
a
0.9
0.85
d
215
0.9
sum(A1,A2)
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
A Top-2 Query Example
• Step 1
•Sorted access attributes from every sorted list
•For each object seen:
• get all scores by random access
• determine sum(A1,A2)
• amongst 2 highest seen? keep in buffer
L1
L2
(a, 0.9)
(d, 0.9)
(b, 0.8)
(a, 0.85)
(c, 0.72)
(b, 0.7)
.
.
.
.
.
.
.
.
(d, 0.6)
(c, 0.2)
ID
A1
A2
sum(A1,A2)
a
0.9
0.85
1.75
d
0.9
A Top-2 Query Example
• Step 1
•Sorted access attributes from every sorted list
•For each object seen:
• get all scores by random access
• determine sum(A1,A2)
• amongst 2 highest seen? keep in buffer
L1
L2
(a, 0.9)
(d, 0.9)
(b, 0.8)
(a, 0.85)
(c, 0.72)
(b, 0.7)
.
.
.
.
.
.
.
.
(d, 0.6)
(c, 0.2)
216
ID
A1
A2
sum(A1,A2)
a
0.9
0.85
1.75
d
0.6
0.9
1.5
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
A Top-2 Query Example
• Step 2
•Determine threshold value based on objects currently seen
under sorted access. ω = sum(L1, L2)
L1
L2
(a, 0.9)
(d, 0.9)
(b, 0.8)
(a, 0.85)
(c, 0.72)
(b, 0.7)
.
.
.
.
.
.
.
.
(d, 0.6)
(c, 0.2)
ID
A1
A2
sum(A1,A2)
a
0.9
0.85
1.75
d
0.6
0.9
1.5
A Top-2 Query Example
• Step 2
•Determine threshold value based on objects currently seen
under sorted access. ω = sum(L1, L2)
L1
L2
(a, 0.9)
(d, 0.9)
(b, 0.8)
(a, 0.85)
(c, 0.72)
(b, 0.7)
.
.
.
.
.
.
.
.
(d, 0.6)
(c, 0.2)
ID
A1
A2
sum(A1,A2)
a
0.9
0.85
1.75
d
0.6
0.9
1.5
ω = sum(0.9, 0.9) = 1.8
217
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
A Top-2 Query Example
• Step 2
•Determine threshold value based on objects currently seen
under sorted access. ω = sum(L1, L2)
•2 objects with overall score ≥ threshold value ω? Stop
•else go to next entry position in sorted list and go to step 1
L1
L2
(a, 0.9)
(d, 0.9)
(b, 0.8)
(a, 0.85)
(c, 0.72)
(b, 0.7)
.
.
.
.
.
.
.
.
(d, 0.6)
(c, 0.2)
ID
A1
A2
sum(A1,A2)
a
0.9
0.85
1.75
d
0.6
0.9
1.5
ω = sum(0.9, 0.9) = 1.8
A Top-2 Query Example
• Step 2
•Determine threshold value based on objects currently seen
under sorted access. ω = sum(L1, L2)
•2 objects with overall score ≥ threshold value ω? Stop
•else go to next entry position in sorted list and go to step 1
L1
L2
(a, 0.9)
(d, 0.9)
(b, 0.8)
(a, 0.85)
(c, 0.72)
(b, 0.7)
.
.
.
.
.
.
.
.
(d, 0.6)
(c, 0.2)
218
ID
A1
A2
sum(A1,A2)
a
0.9
0.85
1.75
d
0.6
0.9
1.5
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
A Top-2 Query Example
• Step 2
•Determine threshold value based on objects currently seen
under sorted access. ω = sum(L1, L2)
•2 objects with overall score ≥ threshold value ω? Stop
•else go to next entry position in sorted list and go to step 1
L1
L2
(a, 0.9)
(d, 0.9)
(b, 0.8)
(a, 0.85)
(c, 0.72)
(b, 0.7)
.
.
.
.
.
.
.
.
(d, 0.6)
(c, 0.2)
ID
A1
A2
sum(A1,A2)
a
0.9
0.85
1.75
d
0.6
0.9
1.5
A Top-2 Query Example
• Step 1 (Again)
•Sorted access attributes from every sorted list
L1
L2
(a, 0.9)
(d, 0.9)
(b, 0.8)
(a, 0.85)
(c, 0.72)
(b, 0.7)
.
.
.
.
.
.
.
.
(d, 0.6)
(c, 0.2)
219
ID
A1
A2
sum(A1,A2)
a
0.9
0.85
1.75
d
0.6
0.9
1.5
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
A Top-2 Query Example
• Step 1 (Again)
•Sorted access attributes from every sorted list
•For each object seen:
• get all scores by random access
• determine sum(A1,A2)
• amongst 2 highest seen? keep in buffer
L1
L2
(a, 0.9)
(d, 0.9)
(b, 0.8)
(a, 0.85)
(c, 0.72)
(b, 0.7)
.
.
.
.
.
.
.
.
(d, 0.6)
(c, 0.2)
ID
A1
A2
sum(A1,A2)
a
0.9
0.85
1.75
d
0.6
0.9
1.5
b
0.8
0.7
1.5
A Top-2 Query Example
• Step 1 (Again)
•Sorted access attributes from every sorted list
•For each object seen:
• get all scores by random access
• determine sum(A1,A2)
• amongst 2 highest seen? keep in buffer
L1
L2
(a, 0.9)
(d, 0.9)
(b, 0.8)
(a, 0.85)
(c, 0.72)
(b, 0.7)
.
.
.
.
.
.
.
.
(d, 0.6)
(c, 0.2)
220
ID
A1
A2
sum(A1,A2)
a
0.9
0.85
1.75
d
0.6
0.9
1.5
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
A Top-2 Query Example
• Step 2 (Again)
•Determine threshold value based on objects currently seen
under sorted access. ω = sum(L1, L2)
•2 objects with overall score ≥ threshold value ω? Stop
•else go to next entry position in sorted list and go to step 1
L1
L2
(a, 0.9)
(d, 0.9)
(b, 0.8)
(a, 0.85)
(c, 0.72)
(b, 0.7)
.
.
.
.
.
.
.
.
(d, 0.6)
(c, 0.2)
ID
A1
A2
sum(A1,A2)
a
0.9
0.85
1.75
d
0.6
0.9
1.5
ω = sum(0.8, 0.85) = 1.65
A Top-2 Query Example
• Step 2 (Again)
•Determine threshold value based on objects currently seen
under sorted access. ω = sum(L1, L2)
•2 objects with overall score ≥ threshold value ω? Stop
•else go to next entry position in sorted list and go to step 1
L1
L2
(a, 0.9)
(d, 0.9)
(b, 0.8)
(a, 0.85)
(c, 0.72)
(b, 0.7)
.
.
.
.
.
.
.
.
(d, 0.6)
(c, 0.2)
221
ID
A1
A2
sum(A1,A2)
a
0.9
0.85
1.75
d
0.6
0.9
1.5
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
A Top-2 Query Example
Situation at stopping:
ω = sum(0.72, 0.7) = 1.42 < 1.5
L1
L2
(a, 0.9)
(d, 0.9)
(b, 0.8)
(a, 0.85)
(c, 0.72)
(b, 0.7)
.
.
.
.
.
.
.
.
(d, 0.6)
(c, 0.2)
ID
A1
A2
sum(A1,A2)
a
0.9
0.85
1.75
d
0.6
0.9
1.5
TA-based Filtering Strategy for Graph
Search Problem
• Main idea
•Each graph is broken into a multiset of stars
•Each distinct star generated from the database graphs can be
seen as an index attribute in the TA database model
•Each entry in the sorted lists contains the graph identity
(denoted by gi) and its score (denoted by λ) in that star
attribute, the score is defined as the star edit distance between
a star of gi and the index star
•Halting condition: given m sorted lists, if the aggregation
function of ω = sum(λ1,…, λm)≥d (d is the edit distance
threshold bound for graph mapping distance), TA stops.
222
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
TA-based Filtering Strategy for Graph
Search Problem
• Challenges:
•How do we know that the distance threshold is larger than
those of unseen graphs (these graphs can be safely filtered
out)? Predict minimum possible mapping distance for unseen
graphs:
Seen
Possibly unseen
L1
L2
g1: 0
g4: 0
g2: 1
g1: 1
g3: 2
.
.
g6.: 5
.
g4: 6
g2: 3
.
g6.: 5
.
.
g3: 9
ω = sum(2, 3) = 5 > d (= 4)
Threshold value
TA-based Filtering Strategy for Graph
Search Problem
• A graph database with a query example
Sorted list L1
Sorted list L2
Sorted list L3
223
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Requirement
• An index structure
•Convenient for score-sorted lists construction
• Efficient star search algorithm
•Quickly return similar stars to a query star
• Sorted properties for the halting condition of TA
•The mapping distance of any unseen graph gi satisfies
λ(q, gi) ≥ ω = sum(λ1,…, λm) > d (=τ*δ’)
q is the query graph, τ is the distance threshold, and
where D’ is the set of all unseen graphs.
•Requirement
Recall the mapping distance in our previous work
satisfy:
•μAn
(q, index
gi) ≤ structure
max{4, [min{δ (q), δ(gi)]} + 1]} · λ(q, gi)
•Convenient for score-sorted lists construction
δ(q,
gi) =algorithm
max{4, [min{δ (q), δ(gi)]} + 1]},
denotestar
•We
Efficient
search
then
δ
(q,
g
)
≤
δ
’.
i
•Quickly return
similar stars to a query star
If μ(q, gi) > τ*δ’, then λ(q, gi) > τ*δ’/δ > τ,
• Sorted properties for the halting condition of TA
and this graph can be safely filtered out.
•The mapping distance of any unseen graph gi satisfies
•
μ(q, gi) ≥ ω = sum(λ1,…, λm) > d (=τ*δ’)
•q is the query graph, τ is the distance threshold, and
•δ’ = max{4, [min{δ(q), δ(D’)]} + 1]}
•where D’ is the set of all unseen graphs.
224
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Requirement
• An index structure
•Convenient for score-sorted lists construction
• Efficient star search algorithm
•Quickly return similar stars to a query star
• Sorted properties for the halting condition of TA
•The mapping distance of any unseen graph gi satisfies
•
λ(q, gi) ≥ ω = sum(λ1,…, λm) > d (=τ*δ’)
•q is the query graph, τ is the distance threshold, and
•
•where D’ is the set of all unseen graphs.
Build Inverted Index Structures based
on the Star Decomposition
• The upper-level index
•Build an inverted index between stars and graphs
•Used to quickly returned graph lists
• The lower-level index
•Build an inverted index between labels and stars
•Used to construct the sorted lists
•for top-k star search based on TA
•filtering strategy
225
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Build Inverted Index Structures based
on the Star Decomposition
Top-k Star Search Algorithm
• Construct sorted lists
226
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Graph Score-sorted Lists
• Construct lists based on the top-k results
TA-based Graph Range Query
• Definition
•Given a graph database D and a query q, find all gi ∈ D that
are similar to q with λ(q, gi) ≤ τ. τ is the distance
threshold.
• Steps: given m sorted lists for a query graph q
•Perform sorted retrieval in a round-robin schedule to each
sorted list. For a retrieved graph gi, if Lm(q, gi) > τ, filter out
the graph; if Um(q, gi) ≤ τ, report the graph to the answer
set.
•For each sorted list SLj, let χj be the corresponding distance
last seen under sorted access. If ω = sum(χ1,…, χm) >
τ∗δ’, then halt. Otherwise, go to step 1.
227
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
CA-based Filtering Strategy
• The difference between TA and CA
•TA computes the mapping distance between two graphs
when retrieving a new graph through sorted accesses
•Only in each h depth of the sorted scan, for seen and
unprocessed graphs, CA uses estimated mapping distance
bounds to first filter graphs; Then, it uses Incremental
Hungarian algorithm to compute the partial mapping
distances for filtering
CA-based Filtering Strategy
• Suppose l(g) = {l1,…,ly} ⊆ {1,2,…,m} is a set of known
lists of g seen below q. Let χ(g) be the multiset of
distances of the distinct stars of g last seen in known lists.
•Lower bound denoted by Lμ(q, g) is obtained by substituting
the missing lists j ∈ {1,2,…,m}\l(g) with χj (the distance
last seen under the jth list) in ζ(q, g)
•Upper bound denoted by Uμ(q, g) is computed as
Uμ(q, g) = t′(χ(g)) + χ ∗ (|g| − |χ(g)|)
• Theorem: Let g1 and g2 be two graphs, the bounds
obtained as above satisfies
ζ(g1, g2) ≤ Lμ(g1, g2) ≤ μ(g1, g2) ≤ Uμ(g1, g2)
228
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
CA-based Filtering Strategy
• Dynamic hungarian for partial mapping distance
•Given m sorted lists for q, suppose S′(g) ⊆ S(g) is a
multiset of stars in g seen below lists. Then we have μ(S(q),
S′(g)) ≤ μ(q, g)
CA-based Graph Range Query
• Steps: given m sorted lists for a query graph q
•Perform sorted retrieval in a round-robin schedule to each
sorted list. At each depth h of lists:
• Maintain the lowest values χ1, . . . , χm encountered in the
lists. Maintain a distance accumulator ζ(q, gi) and a multiset
of retrieved stars S′(gi) ⊆ S(gi) for each gi seen under lists.
• For each gi that is retrieved but unprocessed, if ζ(q, gi) > τ∗δgi,
filter out it; if Lμ(q, gi) > τ∗δgi, filter out it; if Uμ(q, gi) ≤ τ∗δgi ,
add the graph to the candidate set. Otherwise, if μ(S(q), S′(gi )
> τ∗δgi, filter out the graph. Finally, run the Dynamic
Hungarian to obtain Lm(q, gi) and Um(q, gi) for filtering.
•When a new distance is updated, compute a new ω. If ω =
t′(χ) > τ∗δ′, then halt. Otherwise, go to step 1.
229
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Experimental Results: Sensitivity test
Experimental Results: Index construction
230
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
Experimental Results: compare with other
works varying distance thresholds
Experimental Results: compare with other
works varying dataset sizes
231
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
References
• D. Conte, Pasquale Foggia, Carlo Sansone, and Mario Vento.
Thirty Years of Graph Matching in Pattern Recognition.
• P. Foggia, C. Sansone and M. Vento. A performance
comparison of five algorithms for graph isomorphism. In 3rd
IAPR-TC15 workshop on graph-based representations in
pattern recognition, 2001.
• K. Riesen, M. Neuhaus, and H. Bunke. Bipartite graph
matching for computing the edit distance of graphs. In GBRPR,
2007.
• P. Hart, N. Nilsson, and B. Raphael. A formal basis for the
heuristic determination of minimum cost paths. IEEE Trans.
SSC, 1966.
References
• D. Justice. A binary linear programming formulation of the
graph edit distance. IEEE TPAMI, 2006.
• R. Giugno and D. Shasha. Graphgrep: A fast and universal
method for querying graphs. In ICPR, 2002.
• R. D. Natale, A. Ferro, R. Giugno, M. Mongiovì, A. Pulvirenti,
and D. Shasha. SING: subgraph search in non-homogeneous
graphs. BMC Bioinformatics, 2010.
• X. Yan, P.S. Yu, and J. Han. Graph indexing: a frequent
structure-based approach. In SIGMOD, 2005.
• J. Cheng, Y. Ke, W. Ng, and A. Lu. Fg-index: towards
verification-free query processing on graph databases. In
SIGMOD, 2007.
232
Mining and Searching Complex Structures
Chapter 5 Graph Similarity Search
References
• D.W. Williams, J. Huan, and W. Wang. Graph database
indexing using structured graph decomposition. In ICDE, 2007.
• S. Zhang, M. Hu, and J. Yang. Treepi: a novel graph indexing
method. In ICDE, 2007.
• P. Zhao, J. X. Yu, and P. S. Yu. Graph indexing: tree + delta
>= graph. In VLDB, 2007.
• G. Wang, B. Wang, X. Yang, and G. Yu. Efficiently indexing
large sparse graphs for similarity search. IEEE TKDE, 2010.
233
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Searching and Mining Complex
Structures
Massive Graph Mining
Anthony K. H. Tung(鄧锦浩)
School of Computing
National University of Singapore
www.comp.nus.edu.sg/~atung
Research Group Link: http://nusdm.comp.nus.edu.sg/index.html
Social Network Link: http://www.renren.com/profile.do?id=313870900
Graph applications: everywhere
And often, they are huge and messy.
social network
Bio Pathway
Co-authorship
network
234
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Knowledge: NOWHERE
Unless we manage to find where they hide.
Too many clues is like no clue.
Roadmap
Part I (1.5 hrs)
•Graph Mining Primer
•Recent advances in Massive Graph Mining
Part 2(1.5 hrs)
•CSV: cohesive subgraph Mining
•Dngraph mining: a triangle based approach
235
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Roadmap
• Graph Mining Primer
•
•
•
•
Data mining vs. Graph mining
Massive graph mining domain
Types of graph patterns
Properties of large graph structure
• Recent advances in Massive Graph Mining
• CSV: cohesive sub graph Mining
• DNgraph mining: a triangle based approach
From Data Mining to Graph Mining
Data Mining
• Classification
• Clustering
• Association rule
learning
•
raph Mining
• Captures more complicated
entity relationships.
• Output: patterns, which are
smaller subgraphs with
interpretable meanings.
236
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Massive graph mining domains
•
•
•
•
Financial data analyzing
Bioinformatics network
User profiling for customized search
Identify financial crime
Financial data analysis
In stock market,
correlations among
stocks helps in profit
making.
Mining stock
correlation graphs
predicting stocks'
price change for
estimating future
return, allocating
portfolio and
controlling risks etc.
Stocks Correlation Tabular Form
Stocks Correlation Patterns
237
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Financial data analysis
In stock market,
correlations among
stocks helps in profit
making.
Mining stock
correlation graphs
predicting stocks'
price change for
estimating future Highly
return, allocating correlated
stock sets
portfolio and
controlling risks etc.
Stocks Correlation Tabular Form
Stocks Correlation Patterns
Bioinformatics network
•Protein-protein interaction
• The fundamental
activities for very
numerous living cells.
• A dense graph pattern
indicates these proteins
have similar functionalities.
one representation of an assembled
NEDD9 network
238
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
User profiling for customized search
The Internet Movie Database (IMDB)
Registered users can comment on movies of their interest.
Mining on comments sharing network provides insight of
user’s interest thus further facilitate customized search.
Movie centric
view of IMDB
review network
Identify financial crime
Large classes of financial crimes such as money laundering,
follow certain transactional patterns.
A money laundering pattern
Geospatial information of suspects
239
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Dense Graph Patterns
Clique/Quasi-Clique
A clique represents the highest level of internal interactions.
Quasi-clique is an ``almost'' clique with few missing edges.
High Degree Patterns
Concern the average vertex degree, which is the number of
edges intercepting the vertex.
Dense graph patterns (cont.)
Dense Bipartite Patterns
Heavy Patterns
Weighted, directed graph of
online citation network, by
Rosvall & Bergstrom
Bipartite graph of pathways and
genes for the AML/ALL dataset.
240
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Properties of large graph structure
Static
•Power law degree distributions.
•Small world phenomenon.
•Communities and clusters.
Dynamic
•Shrinking diameters of enlarging graphs
•Densification along time
Power law
241
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Large graph: properties and laws (cont.)
Dynamic
•Shrinking diameters of enlarging graphs.
•Densification along time
Roadmap
• Graph Mining Primer
• Large graph: properties and laws
• Approaches in Graph mining
• Pattern based Mining algorithms
• Practical techniques in Massive Graph Mining
• Graph summarization with randomized sampling
•Connectivity based traversal
•MapReduce based
• CSV: cohesive subgraph Mining
• Dngraph mining: a triangle based approach
242
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Pattern based Mining algorithms
Greedy methods
SUBDUE (PWKDD04), GBI(JAI94)
Apriori-based approaches (detail in next few slides)
AGM , FSG, gSpan
Inductive logic programming (ILP) oriented solutions
WARMR, FARMAR
Kernel based solutions
Kernels for graph classification
Apriori Paradigm Recall
Search in breadth-first
manner
Use a Lattices structure
to count candidate
subgraph sets
efficiently.
A search lattice for item set mining
243
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Apriori-based Graph Mining
Performance bottleneck: candidate subgraph generation.
Solution:
1. Build a lexicographic order among graphs.
2. Search using depth-first strategy.
Very effective in mining large collections of small to medium
size graphs.
Graph summarization with randomized
sampling
• Efficient Aggregation for Graph Summarization –
SIGMOD 2008
• Graph Summarization with Bounded Error-SIGMOD
2008
• Mining graph patterns efficiently via randomized
summaries - VLDB 2009
244
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Efficient Aggregation for Graph
Summarization
As graph size increases, graphs summarization becomes
crucial when visualize the whole graph.
Criteria for an efficient summarization solution
Able to produce meaningful summarization for real
application.
Scalable to large graphs.
The choice: graph aggregation
Graph Aggregation
1. Summarization based on user-selected node attributes and
relationships.
2. Produce summaries with controllable resolutions.
“drill-down” and “roll-up” abilities to navigate
Propose two aggregation operations
SNAP – address 1
k-SNAP
- address 2
245
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Operation SNAP
Group nodes by user-selected node attributes & relationships
Nodes in each group are homogenous (in terms of attributes
and relationships).
Goal: minimum # of groups
How does SNAP work?
Top down approach
Initial Step: Use user selected attributes to group nodes.
Iterative Step:
If a group are not homogeneous w.r.t. relationships, split the
group based on its relationships with other groups.
246
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
SNAP limitation
Homogeneity requirement for relationships
Noise and uncertainty
Users have no control over the resolutions of summaries
SNAP operation can result in a large number of small groups
Operation k-SNAP
The entities inside a group are not necessarily
homogenous in terms of relationships with other
groups.
Users can control resolution by specifying k (#
groups).
Varying of k provides “drill-down” and “roll-up”
abilities.
247
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Access quality of summarization
Determined by sum of noisy relations.
When the relationship between two relationships are strong
(>50%), count missing participants.
When the relationship between two relationships are weak
(<=50%), count extra participants.
K-SNAP goal
Find the summary of size k with best quality.
I.e. minimal Δ.
The exact solution to minimize Δ is NP-Complete.
Heuristics
Top down: split a group into 2 at each iteration.
Choose the group with worst quality and split.
Bottom up: merge 2 groups into 1
Choose same attribute values, similar neighbors, or similar
participation ratio.
248
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Major results
Double-blind
review’s
effect on LP
authors.
k-SNAP: Top down vs. Bottom up
249
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Graph Summarization with Bounded
Error
Large graph data needs compression
Compression can reduce size to 1/10 (web graph)
Graph compression vs. Clustering
Compression
Clustering
use urls, node labels works for generic
for compression
graphs
Result lacks meaning No compression for
space saving
Solution: MDL Based
Compression for Graphs
Intuition
d
Many nodes with similar
neighborhoods
• Communities in social networks;
link-copying in webpages
Collapse such nodes into
supernodes (clusters)
and the edges into
superedges
e
a
f
b
g
c
X = {d,e,f,g}
• Bipartite subgraph to two
supernodes and a superedge
• Clique to supernode with a
“self-edge”
250
Y = {a,b,c}
Summary
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
How to choose vertex sets to compress
Cost = 14 edges
d
e
f
g
i
h
MDL based compression
S is a high-level summary graph:
C is a set of edge corrections:
minimize cost of S+C
Novel Approximate Representation:
reconstructs graph with bounded error
(є); results in better compression
a
b
j
c
Summary
X = {d,e,f,g}
i
h
i
Y = {a,b,c}
Corrections
Cost = 5
+(a,h)
+(c,i)
+(c,j)
‐(a,d)
(1 superedge +
4 corrections)
Compress (cont.)
Summary S(VS, ES)
X = {d,e,f,g}
Each supernode v represents a set of nodes Av
Each superedge (u,v) represents
all pair of edges πuv = Au x Av
h
Corrections C: {(a,b); a and b are nodes
of G}
Supernodes are key,
superedges/corrections easy
Auv actual edges of G between Au and Av
Cost with (u,v) = 1 + |πuv – Euv|
Cost without (u,v) = |Euv|
Choose the minimum, decides whether edge
(u,v) is in S
i
Y = {a,b,c}
C = {+(a,h), +(c,i), +(c,j), -(a,d)}
d
e
f
g
h
i
a
251
j
b
c
j
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Reconstruct
Reconstructing the graph from R
For all superedges (u,v) in S, insert all pair of edges πuv
For all +ve corrections +(a,b), insert edge (a,b)
For all -ve corrections -(a,b), delete edge (a,b)
Approximate Representation Rє
X = {d,e,f,g}
Approximate representation
Recreating the input graph exactly is not always necessary
Reasonable approximation enough: to compute communities,
anomalous traffic patterns, etc.
Use approximation leeway to get further cost reduction
Y = {a,b}
C = {-(a,d), -(a,f)}
Generic Neighbor Query
Given node v, find its neighbors Nv in G
Apx-nbr set N’v estimates Nv with є-accuracy
Bounded error: error(v) = |N’v - Nv| + |Nv - N’v| < є |Nv|
Number of neighbors added or deleted is at most є-fraction of
the true neighbors
d
g
b
For є=.5, we can remove
one correction of a
d
e
a
252
f
a
Intuition for computing Rє
If correction (a,d) is deleted, it adds error for both a and d
From exact representation R for G, remove (maximum)
corrections s.t. є-error guarantees still hold
e
f
g
b
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Main Results: cost reduction
Reduces the cost down to 40%
Cost of GREEDY 20%
lower than RANDOMIZED
RANDOMIZED is 60%
faster than GREEDY
Comparison with other schemes
Techniques give much
better compression
253
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Approximate-Representation
Cost reduces linearly
as є is increased;
With є=.1, 10% cost
reduction over R
Mining graph patterns efficiently via
randomized summaries
Motivation
In a graph with large number of identical labeled vertices,
graph isomorphism becomes a bottleneck.
How to avoid enumerate identical patterns?
3 (triangular) × 4 (square) = 12 (total)
254
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Solution framework
Summarization->Mining->Verification
Raw DB
Summarized DB
Raw DB
Reduce false positive
• Technique 1: merge vertices that are far away from each
other.
•The length of the shortest path
•The probability of random walk
• Technique 2: merge vertices whose neighborhood overlap.
•Cosine, Chi^2, Lift, Coherence
• Technique 3: Go back to raw database to do verification
It is guaranteed that there is no false positives.
Summarization may cause false positive
a
a
b
b
a
b
b
255
False Embeddings
Î False Positives
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Summarization: Reduce false negative
a
b
a
Miss Embeddings Î False Negatives
a
c
b
c
Technique 1: For raw database with frequency threshold min_sup,
we adopt a lower frequency threshold pseudo min_sup for
summarized database.
Technique 2: Iterate the mining steps for T times and combine the
results generated in each time.
It is NOT guaranteed that there is no false positives, but the
possibility is bounded by
Connectivity based traversal
CSV: Cohesive Subgraph Mining –SIGMOD 2008
(Discussed in detail in Part II)
Progressive Clustering of Networks using
Structure-Connected Order of Traversal –ICDE 2010
256
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Progressive clustering of networks using structureconnected order of traversal
SCAN Algorithm
•Similar to DBSCAN: connectivity-based
•Average O(n) time
•Uses structural similarity measure, minimum cluster size mu, and
minimum similarity epsilon
•Finds outliers and hubs
Problems
•No automated way to find good epsilon
•Must rerun algorithm for each possible epsilon
•Epsilon is global threshold
• No hierarchical clusters
• No variation in cluster subtlety
Solution
• Structure-Connected Order of Traversal (SCOT)
•Contains all possible epsilon-clusterings
• Efficient method to find global epsilon
• New Contiguous Subinterval Heap structure
(ContigHeap)
• New Progressive Mean Heap Clustering (ProClust)
•Epsilon-free
•Hierarchical
• Refinement by Gap Constraint (GapMerge)
257
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Original Network:
SCOT plot:
Optimal Global Epsilon
SCAN paper only contains supervised
sampling method.
Sample points, find k-NN similarities, sort,
plot, find knee visually
O(nd log n) time
In addition to clustering time
Our solution:
Knee hypothesis implies approx concave
plot
Optimal epsilon minimizes obtuse angle
between segments
Modified histogram and binary search: O(n)
time
Uses already done SCOT result
258
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
ContigHeap
BuildContigHeap produces heap containing
all contiguous subintervals from SCOT
output in O(n) time, and integrates with
SCOT
Example:
GapMerge: Gap Constraint Refinement
Merges chained clusters, heap branches with single children
Does not merge across pruned heap nodes (local maxima boundary)
Gap constraint prevents clusters whose left or right boundaries differ by more
than mu from being merged
Such clusters are not redundant relative to the minimum interesting cluster size
Steps
1.Identify chains that meet gap constraint
2.When a node has more than one child or violates gap constraint, begin new chain.
3.Within each chain, calculate significance of each cluster in both up and down
directions
4.Begin with most redundant node, merge nodes in direction of least significance
5.After each merge, recalculate significances
6.Continue until chain contains one node, or no merging possible under gap constraint.
259
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
MapReduce based approach
PEGASUS: A Peta-Scale Graph Mining System –ICDM
2009
Pregel: a system for large-scale graph processing SIGMOD
2010
PEGASUS: A Peta-Scale
Graph Mining System
Dealing with real graph such as Yahoo! Web graph up to 6.7
billion edges.
A Hadoop based graph mining package.
Target at primitive matrix operations such as matrix
multiplication (GMI-v).
260
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Motivation
Many Graph mining tasks require matrix
multiplication
PageRank,
Random Walk with Restart(RWR),
Diameter estimation, and
Connected components …
MapReduce provides a simplified programming
concept for large data processing
Details of the data distribution, replication, load balancing are
taken care of.
Provides a similar programming structure. i.e. functional
programming
GIM-V: Generalized Iterative MatrixVector multiplication
Intuition: Matrix Multiplication
M × v = v'
combine2
n
v i' = ∑ j =1 m
combineall
Assign
Operator× G are matrix multiplication expressed by above 3
steps
× G is iteratively carried out until converge.
261
i, j
vj
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
× G and SQL
The matrix multiplication operation can be expressed by
an SQL query.
×G
If view graphs are two table:
edge table E(sid, did, val) and
a vector table V(id, val)
becomes
×G
SELECT E.sid, combineAllE.sid(combine2(E.val, V.val))
FROM E, V
WHERE E.did = V.id
GROUP BY E.sid
Generalize × G
Vary definition of three steps to generalize × G
row normalization adj.
PageRank
matrix
p = (cE T + (1 - c)U)p
All element = 1/n
Damping factor = 0.85
262
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Generalize × G
Vary definition of three steps to generalize
PageRank
×G
p = (cE T + (1 - c)U)p
combine2 = c × mi, jvj
combineAll =
1- c
n
+ ∑ j=1 xj
n
Generalize (cont.)
By altering three functions, GIM-V adapts to
• Random Walk with Restart
• Diameter Estimation
• Connected Components
263
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
GIM-V: How to
Stage 1
Combine2
V: Key = id, v: vval, E: Key = idsrc
State 2
Combineall & assign
Bottleneck: shuffling and disc I/O
GIM_V Block Multiplication (BL)
Advantage
Save on sorting
Data compressing
Clustered Edge
264
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Block advantage (cont.)
Clustered edge:
GIM-V DI Dialogonal Block Iteration
Intuition
Increase multiplication
inside an iteration to
reduce # of iterations.
How
Reach local convergence
within a block first before
iterate
Compare GIM-V BL and DI
265
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Main Results
Scalability
GIM-V BL DI is ~5 times faster than GIM-V Base
Main Results (cont.)
Evolution of LinkedIn
Distribution of connected
components are stable after a
‘gelling’ point in 2003.
266
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Main Results (cont.)
Bimodal structure of Radius
Pregel: A System for Large-Scale
Graph Processing
A scalable and fault-tolerant platform with an API that is
sufficiently flexible to express arbitrary graph algorithms.
Model of computing:
Vertex centric, synchronized iterative model
267
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Graph Algorithms Implementation in
Pregel
Graph data are in respect machines, pass messages only, NO
graph state passing.
Pregel C++ API
• Compute() - executed at each active vertex in every
superstep.
•Query information about the current vertex and its edges.
•Send messages to other vertices.
•Inspect or modify the value associated with its vertex/outedges.
•state updates are visible immediately. no data races on
concurrent value access from diefferent vertices
• Limiting the graph state managed by the framework to
single value per vertex or edge simplifies the main
computation cycle, graph distribution, and failure
recovery.
268
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Pregel C++ API (cont.)
• Message Passing
•No guaranteed order, but it will be delivered and no
duplication.
• Combiners
•Combine several messages to reduce overhead
• Aggregators
•Mechanism for global communication, monitoring, and data.
•A number of predefined aggregators, such as min, max, or
sum operations
• Topology mutation
•Change graph toplogy, resolve conflicts when individual
vertices sent conflict messages.
Pregel C++ API (cont.)
• Input and output
• Readers and writers
269
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Pregel implementation
• Design for Google cluster architecture
•Each consists of thousands of commercial PCs
• Persistent data
•Stored in files on distributed file systems such as GFS or
BigTable
• Temporary data
•Stored as buffered message on local disk.
Pegel: Assign load
• Divide graph vertices into partitions and assign to
different machines
•controllable by users, default method: hash
• In absence of fault:
•One master, many other workers on a cluster of machines.
• master assign load jobs, i/o and instruct on super steps
• Fault tolerent:
•Use checkpoint: master ping workers
•Confined recovery (undergoing): master log outgoing
message
270
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Graph Application
PageRank
Shortest Path
Bipartite Matching
Semi Cluster
Pregel: Main Result
271
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Reference (partial)
Graphs over Time: Densification Laws, Shrinking Diameters and Possible Explanations by J.
Leskovec, J. Kleinberg, C. Faloutsos. (KDD), 2005.
Substructure Discovery in the SUBDUE System. L. B. Holder, D. J. Cook and S. Djoko. In
(PWKDD), 1994.
Efficient Aggregation for Graph Summarization – Yuanyuan Tian, Richard A. Hankins, Jignesh M.
Patel SIGMOD 2008
Graph Summarization with Bounded Error-Saket Navlakha, Rajeev Rastogi, Nisheeth Shrivastava
SIGMOD 2008
Mining graph patterns efficiently via randomized summaries Chen Chen, Cindy X. Lin, Matt
Fredrikson, Mihai Christodorescu, Xifeng Yan, Jiawei Han - VLDB 2009
Progressive Clustering of Networks using
Structure-Connected Order of Traversal Dustin Bortner, Jiawei Han –ICDE 2010
PEGASUS: A Peta-Scale Graph Mining System U. Kang, Charalampos E. Tsourakakis,
ChristosFaloutsos, ICDM
Graph based induction as a unified learning framework, K. Yoshida, H. Motoda, and N. Indurkhya.
Applied Intelligence volume 4, 1994.
Complete mining of frequent patterns from graphs: Mining graph data. Akihiro,W. Takashi, and
M. Hiroshi. Mach. Learn., 50(3):321–354, 2003.
Reference (cont.)
Frequent subgraph discovery, K. Michihiro and G. Karypis. In ICDM, pages 313–320, 2001.
gSpan: Graph-based substructure pattern mining, X. Yan and J. Han. ICDM 2002.
WARMR Discovery of frequent datalog patterns. L. Dehaspe and H. Toivonen. Data Mining and
Knowledge Discovery, 3(7-36), 1999.
FARMAR Fast association rules for multiple relations. S. Nijssen and J. Kok. Data Mining and
Knowledge Discovery, 3(7–36), 1999.
272
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Roadmap
Part I (1.5 hrs)
Graph Mining Primer
Recent advances in Massive Graph Mining
Part 2(1.5 hrs)
CSV: cohesive subgraph Mining
Dngraph mining: a triangle based approach
CSV
1. Cohesive sub-graph mining, with visualization
2. Existing approaches
3. CSV provides effective visual solution
– Algorithm principle
– Connectivity Estimation
4. Experimental Study
273
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Existing solutions
1. Current state-of-the-art to abstract information from huge
graphs.
information Yes,
structure
No.
1. Graph partition algorithms.
Spectral clustering[Ng01]: high computational cost
METIS[Karypis96]: favors balanced pattern
2. Graph Pattern Mining algorithms
CODENSE[Hu05], CLAN[Zeng06]: exponentially running time
2. Graph Layout Tools:
Osprey [Breitkreutz03] Visant [Mellor04]: Do not have mining
capability
information No,
We want structured information
structure Yes.
CSV: General Approach
• Separate vertices in the graph into VISITED, UNVISITED
• Start: Pick a vertex and add into VISITED
• Repeat until UNVISITED=empty
–Among all vertices that are in UNVISITED, pick one vertex V
most highly connected to VISITED
–Plot V’s connectivity
–Add V into VISITED
But how do we measure connectivity?
274
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Connectivity measurement
Connectivity measurement is closely related to clique (fully connected subgraph) size.
The connectivity between two vertices in
a graph (ηmax) is defined to be the
biggest clique in the graph such that
both are members of the clique
The “connectivity” of a vertex
(ζmax) is similarly defined
as the biggest clique it
can participate.
b
b
a
c
e
c
a
d
e
ηmax(a, d) = 0
ηmax(a, c) = 4
d
ζmax(a) = 5
CSV: Step by Step
heap
From Graph to Plot
A
E
B
connectivity
D
C
4
3
H
F
I
G
J
2
1
B
A
vertices
unvisited
neighbors
visiting
visited
Start from A, explore A’s neighbor B.
Calculate ζmax (A)=2 and output it
275
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
CSV algorithm on a synthetic graph
heap
From graph to plot
A
E
B
connectivity
D
C
H
F
I
G
J
4
3
C
2
F
H
B
1
unvisited
AB
neighbors
vertices
visiting
Mark A visited, from B, explore B’s
immediate neighbors CFH.
visited
Calculate ηmax (AB)=2 and output it
CSV algorithm on a synthetic graph
heap
From graph to plot
A
E
B
connectivit
y
D
C
F
3
H
F
4
I
G
J
H
C
2
G
F
1
H
D
A BC
vertices
unvisited
neighbors
visiting
visited
Mark B visited, choose the closely
connected C as next visiting vertex. From
C, explore C’s immediate neighbors DFGH,
update ηmax when necessary.
Calculate ηmax (BC)=4 and output it
276
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
CSV algorithm on a synthetic graph
From graph to plot
A
E
B
Cohesive subgraph
connectivity
D
C
4
3
H
F
I
G
2
1
J
ABCH FGDE I J
unvisited
vertices
neighbors
visiting
visited
Visit every vertex accordingly to produce a
plot.
Peaks represent cohesive sub-graphs.
Important Theorem
277
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Connectivity computation is a hard
problem
However, if graphs are very huge and massive, exact computation of
connectivity is prohibitive.
Direct computation
is costly
Connectivity computation is
prohibitive
•Exact algorithm relays on
clique detection (NP-hard).
•Even approximation is hard.
•Solution Part 1: Spatial
Mapping
A
I
H
F
E
D
C
B
G
J
•Pick k pivots
•Map graph into kdimensional space based on
their shortest distance to the
pivots
•A clique will map into the
same grid.
P1
3
I
A
2
E
B
1
C
GJ
D
H
0
278
F
1
2
I
3
P0
A
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Connectivity computation
•Solution Part 2: Approximate
Upper Bound for ζmax(v) and
ηmax(v, v’)
•Each vertex in a clique of size k
must have
•degree=k-1
•k-1 neighbors with degree k-1
•For each vertex v, find it immediate
neighbors in the same grid cell and
construct a sub-graph
•Iteratively readjust estimation for
clique size
Let estimate ηmax(a, f)
Locate the immediate neighborhood of a
and f, {a, b, c, d, e, f, g}. After sorting the
degree array in descending order, we have
array
6(a), 6(f), 5(d), 4(b), 4(c), 4(e), 3(g).
=5? =6? =7?
Experimental study on real datasets
DBLP: co-authorship graphs.
DBLP: v 2819, e 54990
Two groups of
German researchers
Peaks in DBLP CSV plot represents different research groups
279
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
SMD: Stock Market Data
Bridging vertex
Partial clique
Partial clique
Peaks in SMD CSV plot
represents highly cohesive
stocks
DIP: Database of interacting proteins
8
SMD3
89
LSM8
PRP4
89
LSM2
PRP8
89
DCP1
PRP6
89
LSM6
LUC7
89
LSM3
SMX2
89
LSM4
SNP1
89
PAT1
STO1
89
LSM7
NAM8
89
LSM5
SNU71
8
PRP31
8
YHC1
8
PRP40
8
MUD1
8
SNU56
9
10
Structure of a nucleotide-bound Clp1-Pcf11
polyadenylation factor
Christian G. Noble, Barbara Beuth, and Ian
A. Taylor*. Nucleic Acids Res. 2007 January;
35(1): 87–99.
“CPF is also required in both the cleavage
and polyadenylation reactions. It contains a
core of eight subunits Cft1, Cft2, Ysh1, Pta1
Mpe1, Pfs2, Fip1 and Yth1”
280
PFS2
RNA14
10
FIP1
10
REF2
10
CFT1
10
CFT2
10
MPE1
10
GLC7
10
PAP1
10
PTA1
10
YSH1
10
YTH1
10
PTI1
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Experimental Study
CSV as a pre-selection step
How?
•Apply CSV to identify potential
cohesive sub-graphs first.
•Use exact algorithm CLAN to run on
these candidates.
Result
•Get the exact cohesive sub-graphs as
running CLAN alone.
•Saves 28-84% of the time compared
to running CLAN alone.
CSV as a pre-selection methods
DNgraph mining: A triangle based approach
• Mining dense patterns out of an extremely large graph
•When the graph is extremely large, it is even difficult to mine
dense patterns.
• An iterative improvement mining approach is more desirable
•Users are able to obtain the most updated results on demand.
• Dense patterns have strong connection with triangles inside a
graphs.
• This has already observed and explained by the preferential
attachment property of large scaled graphs.
281
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
DNgraph mining: A triangle based approach
• What makes a pattern dense? Intuitively
•A collection of vertices with high relevance.
•They share large number of common.
• With that we propose the definition of
Dngraph
A’
•A DNgraph is the largest sub graph sharing
the most neighbors.
•Require each connected vertex pair sharing at
least λ neighbors.
B
C
A
D
F
E
λ(G) = 3, λ(GA’)=0
Compare Dngraph with other dense pattern
definition
• Two interesting patterns
• 4-clique and a Turan graph T(14, 4) [14 vertices, 4 groups, fully
connected between groups]
• If mining quasi-clique, may ends up discovering 1 pattern, as in
(d)
• If searching for closed clique, may only find (e)
282
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
DNgraph mining: challenge
• Find common neigbhors for every connected vertices is
expensive
•Require O(E) join operations.
•Need random disc access.
•In fact, finding an DN-graph is an NP-problem.
• Solution
•Using triangles that two vertices participates to approximate
common neighbor size.
•Iterative refine the approximation following graph edge’s locality.
DNgraph mining: How
1. Initially: count # triangles each edge participates.
•Sort vertices and its neighbors in descending order of their degrees
•Scan the graphs to get # triangles for every vertex.
•The # triangle set the initial value of λ .
2. Next, Iteratively refine λ for every vertex
•Using streams of triangles.
•Iterative refine λcur.
283
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Triangle Counting: how?
1. Sort vertices and its neighbors in descending order of
their degrees
a
e
f
g
b
c
d
h
a
bde
e
dbacgf
b
acde
d
eacgh
c
bde
b
edac
d
acegh
a
edb
e
abcdgf
c
edb
f
eg
g
edf
g
def
f
eg
h
d
h
d
Sort
Triangle counting (cont.)
1. Sort vertices and its neighbors in
descending order of their degrees
2. Join neighborhood for triangle count for
every edge
• The two vertices inhibits locality, due to
reordering and preferential attachment
property of large graphs
a
c
3
f
g
b
3
284
e
d
h
e
dbacgf
d
eacgh
b
edac
a
edb
c
edb
g
edf
f
eg
h
d
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Triangle counting (cont.)
a
1. Sort vertices and its neighbors in
descending order of their degrees
2. Join neighborhood for triangle count for
every edge
3. Use that as the initial λ value for every
edge/vertex
• Vertex λ value is the maximal edge λ value
it participates
•λcur(e) = 3
c
d
vertex
e
3
d
3
…
…
• Initially: count # triangles each edge participates.
• Next, Iteratively refine λ for every vertex
•Using streams of triangles.
•Iterative refine λcur.
f
g
b
DNgraph mining: How (cont.)
285
e
λcur
h
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Triangle stream
•Follow the same order of visiting graph during triangle
counting
•Triangles are not materialized, saving storage
n1
nx
n2
n1
b n1
a
a
nx
a
lambda=k
n2
n2
b
b
n1
nx
nx
a
lambda=k
b
a
lambda=k
b
Iteratively refine λ
•Follow the same order of visiting graph during triangle
counting
•Triangles are not materialized, saving storage
•For every vertex v, when its triangles come, bound λcur(v)
using two other vertices’ λcur
286
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Iteratively refine λ (cont.)
a
• Initially: count # triangles each edge
participates.
• Next, Iteratively refine λ for every vertex
•Using streams of triangles.
•Iterative refine λcur.
• Until all vertices’ λcur are converged
e
f
3
b
3
c
d
vertex
λcur
e
3
b
3
…
…
DNgraph: Experiment
•Large scaled graph
•Flicker Dataset with with 1,715,255 vertices an 22,613,982
edges.
•1 iteration requires 1 hour, a workstation with a Quad-Core
AMD Opteron(tm) processor 8356, 128GB RAM and 700GB
hard disk.
•Converge in 66 iterations, almost stable after 35 iterations
287
g
h
Mining and Searching Complex
Chapter 6 Structures Massive Graph Mining
Advantage
• Abstraction
Within the triangulation algorithm. The abstraction ensures
our approach’s extensibility to different input settings.
• Iteratively refine results
• The estimation of common neighborhood improves along
every iteration, users are able to obtain the most updated
results on demand.
• Pre-collection of Statistics to support effective buffer
management
• Process can be easily mapped to key->value pair for
further distributed processing.
Reference (partial)
[Hu05] H.Hu, X.Yan, Y.Huang, J.Han, and X.J.Zhou. Mining coherent dense subgraphs across
massive biological networks for functional discovery. Bioinformatics, 21(1):213--221, 2005.
[Ng01] A.Y. Ng, M.I. Jordan, and Y.Weiss. On spectral clustering: Analysis and an algorithm.
Advances in Neural Information Processing Systems, volume~14, 2001.
[Karypis96] G.Karypis and V.Kumar. Parallel multilevel k-way partitioning scheme for irregular
graphs. Supercomputing '96: Proceedings of the 1996 ACM/IEEE conference on
Supercomputing (CDROM), page~35, Washington, DC, USA, 1996. IEEE Computer Society.
[Breitkreutz03] B.J.Breitkreutz, C.Stark, and M.Tyers.Osprey: a network visualization system.
Genome Biology, 4, 2003.
[Mellor04] J.W.J. Z., Mellor and C. DeLisi. An online visualization and analysis tool for biological
interaction data. BMC Bioinformatics, 5:17--24, 2004.
[Zeng06]J. Wang, Z.Zeng, and L. Zhou. Clan: An algorithm for mining closed cliques from large
dense graph databases. Proceedings of the International Conference on Data Engineering},
page~73, 2006.
[Turan41] P. Turan. On an extremal problem in graph theory. Mat. Fiz. Lapok, 48:436–452, 1941
[Ankerst99] M.Ankerst, M.Breunig, H.P. Kriegel, and J.Sander. OPTICS: Ordering points to
identify the clustering structure. Proc. 1999 ACM-SIGMOD Int. Conf. Management of Data
(SIGMOD'99), pages 49--60, Philadelphia, PA, June 1999.
[DNgraph10] On Triangle based DNgraph Mining. NUS technical report TRB4/10
288
Download