The Lazy Traveling Salesman Memory Management for Large-Scale Link Discovery

Post on 07-Apr-2017

212 views 1 download

Transcript of The Lazy Traveling Salesman Memory Management for Large-Scale Link Discovery

The Lazy Traveling SalesmanMemory Management for Large-Scale Link Discovery

Axel-Cyrille Ngonga Ngomo and Mofeed Hassan

University of LeipzigInstitute for Applied Informatics

May 28th, 2016Crete, Greece

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 1 / 22

Why Link Discovery?

1 Fourth principle2 Links are central for

Cross-ontology QAData IntegrationReasoningFederated Queries...

3 Current topology of theLOD Cloud

31+ billion triples≈ 0.5 billion linksowl:sameAs in mostcases

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 2 / 22

Why is it difficult?

Definition (Link Discovery)Given sets S and T of resources and relation RFind M = {(s, t) ∈ S × T : R(s, t)}Common approach: Find M ′ = {(s, t) ∈ S × T : σ(s, t) ≥ θ}

Example: R = :sameModel

:s770fm rdfs:label "S770FM"@en:s770fm rdf:type :SABER:s770fm :model :770:s770fm :top :FlamedMaple:s770fm :producer :Ibanez

:s770fm rdfs:label "S770BEM"@en:s770fm rdf:type :SABER:s770fm :model :770:s770fm :top :BirdEyeMaple:s770fm :producer :Ibanez

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 3 / 22

Why is it difficult?

Definition (Link Discovery)Given sets S and T of resources and relation RFind M = {(s, t) ∈ S × T : R(s, t)}Common approach: Find M ′ = {(s, t) ∈ S × T : σ(s, t) ≥ θ}

Example: R = :sameModel

:s770fm rdfs:label "S770FM"@en:s770fm rdf:type :SABER:s770fm :model :770:s770fm :top :FlamedMaple:s770fm :producer :Ibanez

:s770fm rdfs:label "S770BEM"@en:s770fm rdf:type :SABER:s770fm :model :770:s770fm :top :BirdEyeMaple:s770fm :producer :Ibanez

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 3 / 22

Why is it difficult?

Definition (Link Discovery)Given sets S and T of resources and relation RFind M = {(s, t) ∈ S × T : R(s, t)}Common approach: Find M ′ = {(s, t) ∈ S × T : σ(s, t) ≥ θ}

Example: R = :sameModel

:s770fm rdfs:label "S770FM"@en:s770fm rdf:type :SABER:s770fm :model :770:s770fm :top :FlamedMaple:s770fm :producer :Ibanez

:s770fm rdfs:label "S770BEM"@en:s770fm rdf:type :SABER:s770fm :model :770:s770fm :top :BirdEyeMaple:s770fm :producer :Ibanez

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 3 / 22

Why is it difficult?

1 Time complexityLarge number of triplesQuadratic a-priori runtime69 days for mapping cities fromDBpedia to GeonamesSolutions usually in-memoryInsufficient memory oncommodity hardware

2 Complexity of specificationsCombination of several attributesrequired for high precisionTedious discovery of mostadequate mappingDataset-dependent similarityfunctions

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 4 / 22

Why is it difficult?

1 Time complexityLarge number of triplesQuadratic a-priori runtime69 days for mapping cities fromDBpedia to GeonamesSolutions usually in-memoryInsufficient memory oncommodity hardware

2 Complexity of specificationsCombination of several attributesrequired for high precisionTedious discovery of mostadequate mappingDataset-dependent similarityfunctions

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 4 / 22

Problem Statement

AssumptionsConstant memory C|S|+ |T | > |C |

GoalDevise time-efficient approach to compute M ′

Ensure completeness of resultsSolution: Gnome

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 5 / 22

Divide and Merge

Time-Efficient Link DiscoveryInsight: Most approaches rely on divide-and-merge paradigmExample: HR3

σ(s, t) ≥ θ ⇔ δ(s, t) ≤ ∆

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 6 / 22

Divide and Merge1 Define S = {S1, . . . ,Sn} with Si ⊆ S ∧

⋃iSi = S

2 Define T = {T1, . . . ,Sm} with Tj ⊆ T ∧⋃jTj = T

3 Find mapping function µ : S → 2T withelements of each Si must only be compared with elements of sets in µ(Si )the union of the results over all Si ∈ S is exactly M′.

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 7 / 22

Divide and Merge1 Define S = {S1, . . . ,Sn} with Si ⊆ S ∧

⋃iSi = S

2 Define T = {T1, . . . ,Sm} with Tj ⊆ T ∧⋃jTj = T

3 Find mapping function µ : S → 2T withelements of each Si must only be compared with elements of sets in µ(Si )the union of the results over all Si ∈ S is exactly M′.

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 7 / 22

Task Graph

DefinitionA task Eij stands for comparing Si with Tj ∈ µ(Si )Task Graph G = (V ,E ,wv ,we), with

V = S ∪ Twv (v) = |V |we(eij ) = |Si ||Tj |

S1

3

T1

2S2

2

T2

1

S3

4

T3

36

3

4

2

4

12

6

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 8 / 22

Task Graph

DefinitionA task Eij stands for comparing Si with Tj ∈ µ(Si )Task Graph G = (V ,E ,wv ,we), with

V = S ∪ Twv (v) = |V |we(eij ) = |Si ||Tj |

S1

3

T1

2S2

2

T2

1

S3

4

T3

3

6

3

4

2

4

12

6

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 8 / 22

Task Graph

DefinitionA task Eij stands for comparing Si with Tj ∈ µ(Si )Task Graph G = (V ,E ,wv ,we), with

V = S ∪ Twv (v) = |V |we(eij ) = |Si ||Tj |

S1

3

T1

2S2

2

T2

1

S3

4

T3

36

3

4

2

4

12

6

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 8 / 22

Task Graph

DefinitionA task Eij stands for comparing Si with Tj ∈ µ(Si )Task Graph G = (V ,E ,wv ,we), with

V = S ∪ Twv (v) = |V |we(eij ) = |Si ||Tj |

S1

3

T1

2S2

2

T2

1

S3

4

T3

36

3

4

2

4

12

6

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 8 / 22

Problem

Locality maximizationQuestion: What if V does not fit in memory?Insight: Main bottleneck is access to hard drive.Solution:

1 Find groups of nodes that fit in memory and2 Compute sequence of groups that minimizes hard drive access

S1

3T1

2S2

2

T2

1

S3 4

T3

36

3

4

2

412

6

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 9 / 22

Clustering: Naïve Approach

ApproachCluster by Si

Example: |C | = 7

S1

3T1

2S2

2

T2

1

S3 4

T3

36

3

4

2

412

6

6

3

4

2

6

412

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 10 / 22

Clustering: Naïve Approach

ApproachCluster by Si

Example: |C | = 7

S1

3T1

2S2

2

T2

1

S3 4

T3

36

3

4

2

412

6

6

3

4

2

6

412

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 10 / 22

Clustering: Naïve Approach

ApproachCluster by Si

Example: |C | = 7

S1

3T1

2S2

2

T2

1

S3 4

T3

36

3

4

2

412

6

6

3

4

2

6

412

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 10 / 22

Clustering: Naïve Approach

ApproachCluster by Si

Example: |C | = 7

S1

3T1

2S2

2

T2

1

S3 4

T3

36

3

4

2

412

6

6

3

4

2

6

412

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 10 / 22

Clustering: Naïve Approach

ApproachCluster by Si

Example: |C | = 7

S1

3T1

2S2

2

T2

1

S3 4

T3

36

3

4

2

412

6

6

3

4

2

6

412

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 10 / 22

Clustering: Naïve Approach

Greedy ApproachStart by largest taskAdd connected largest tasks until none fits in C

Example: |C | = 7

S1

3T1

2S2

2

T2

1

S3 4

T3

36

3

4

2

412

6

12

6

46

3 2

4

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 11 / 22

Clustering: Naïve Approach

Greedy ApproachStart by largest taskAdd connected largest tasks until none fits in C

Example: |C | = 7

S1

3T1

2S2

2

T2

1

S3 4

T3

36

3

4

2

412

6

12

6

46

3 2

4

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 11 / 22

Clustering: Naïve Approach

Greedy ApproachStart by largest taskAdd connected largest tasks until none fits in C

Example: |C | = 7

S1

3T1

2S2

2

T2

1

S3 4

T3

36

3

4

2

412

6

12

6

46

3 2

4

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 11 / 22

Clustering: Naïve Approach

Greedy ApproachStart by largest taskAdd connected largest tasks until none fits in C

Example: |C | = 7

S1

3T1

2S2

2

T2

1

S3 4

T3

36

3

4

2

412

6

12

6

46

3 2

4

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 11 / 22

Clustering: Naïve Approach

Greedy ApproachStart by largest taskAdd connected largest tasks until none fits in C

Example: |C | = 7

S1

3T1

2S2

2

T2

1

S3 4

T3

36

3

4

2

412

6

12

6

4

6

3 2

4

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 11 / 22

Clustering: Naïve Approach

Greedy ApproachStart by largest taskAdd connected largest tasks until none fits in C

Example: |C | = 7

S1

3T1

2S2

2

T2

1

S3 4

T3

36

3

4

2

412

6

12

6

46

3 2

4

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 11 / 22

Scheduling

Output of clustering is sequence G1, . . . ,GNof clustersIntuition: Consequent clusters should sharedataOverlap o(Gi ,Gj) =

∑v∈V (Gi )∩V (Gj )

|v |

Overlap o(G1, . . . ,GN) =N−1∑i=1

o(Gi ,Gi+1)

S1

3T1

2S2

2

T2

1

S3 4

T3

36

3

4

2

412

6

12

6

46

3 2

4

GoalMaximize overlap of generated sequence

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 12 / 22

Scheduling

Best-EffortSelect random pair of clustersIf permutation improves overlap, then permuteRelies on local knowledge for scalability

Trick:

∆(Gi ,Gj) = (o(Gi−1,Gi ) + o(Gi ,Gi+1) + o(Gj−1,Gj) + o(Gj ,Gj+1))−(o(Gi−1,Gj) + o(Gj ,Gi+1) + o(Gj−1,Gi ) + o(Gi ,Gj+1)).

(1)

G3 G1 G2 G40 3 2

G4 G1 G2 G34 3 2

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 13 / 22

Scheduling

Best-EffortSelect random pair of clustersIf permutation improves overlap, then permuteRelies on local knowledge for scalability

Trick:

∆(Gi ,Gj) = (o(Gi−1,Gi ) + o(Gi ,Gi+1) + o(Gj−1,Gj) + o(Gj ,Gj+1))−(o(Gi−1,Gj) + o(Gj ,Gi+1) + o(Gj−1,Gi ) + o(Gi ,Gj+1)).

(1)

G3 G1 G2 G40 3 2

G4 G1 G2 G34 3 2

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 13 / 22

Scheduling

GreedyStart with random clusterChoose next cluster with largest overlapGlobal knowledge needed

G3 G1 G2 G40 3 2

G3 G2 G1 G42 3 4

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 14 / 22

Scheduling

GreedyStart with random clusterChoose next cluster with largest overlapGlobal knowledge needed

G3 G1 G2 G40 3 2

G3 G2 G1 G42 3 4

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 14 / 22

Experimental Setup

Datasets1 DBP: 1 million labels from DBpedia

version 04-20152 LGD: 0.8 million places from

LinkedGeoDataHardware

1 Intel Xeon E5-2650 v3 processors(2.30GHz)

2 Ubuntu 14.04.3 LTS3 10GB RAM

Measures1 Total runtime2 Hit ratio

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 15 / 22

Evaluation of Clustering

Only show results of LGDResults on DBP lead to similar insights

Runtimes Hit Ratio|C | Naive Greedy Naive Greedy100 568.0 646.3 0.57 0.77200 518.3 594.0 0.66 0.80400 532.0 593.3 0.67 0.80

1,000 5,974.0 118,454.7 0.51 0.642,000 6,168.0 115,450.0 0.51 0.634,000 7,118.3 121,901.7 0.50 0.63

Conclusion1 Naïve approach is more efficient2 Greedy approach is more effective3 Select naïve approach for clustering

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 16 / 22

Evaluation of Clustering

Only show results of LGDResults on DBP lead to similar insights

Runtimes Hit Ratio|C | Naive Greedy Naive Greedy100 568.0 646.3 0.57 0.77200 518.3 594.0 0.66 0.80400 532.0 593.3 0.67 0.80

1,000 5,974.0 118,454.7 0.51 0.642,000 6,168.0 115,450.0 0.51 0.634,000 7,118.3 121,901.7 0.50 0.63

Conclusion1 Naïve approach is more efficient2 Greedy approach is more effective3 Select naïve approach for clustering

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 16 / 22

Evaluation of Scheduling

Only show results of LGDResults on DBP lead to similar insights

Runtimes (ms) Hit ratio|C | Best-Effort Greedy Best-Effort Greedy100 571.3 1,599.3 0.56 0.68200 565.7 1,448.3 0.66 0.85400 581.0 1,379.3 0.67 0.88

1,000 5,666.0 814,271.7 0.51 0.862,000 6,268.0 810,855.0 0.51 0.864,000 6,675.7 814,041.7 0.50 0.86

Conclusion1 Best-effort approach more time-efficient2 Best-effort approach is to be used for scheduling

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 17 / 22

Evaluation of Scheduling

Only show results of LGDResults on DBP lead to similar insights

Runtimes (ms) Hit ratio|C | Best-Effort Greedy Best-Effort Greedy100 571.3 1,599.3 0.56 0.68200 565.7 1,448.3 0.66 0.85400 581.0 1,379.3 0.67 0.88

1,000 5,666.0 814,271.7 0.51 0.862,000 6,268.0 810,855.0 0.51 0.864,000 6,675.7 814,041.7 0.50 0.86

Conclusion1 Best-effort approach more time-efficient2 Best-effort approach is to be used for scheduling

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 17 / 22

GNOME vs. Caching Approaches

Runtimes (ms)|C | Gnome FIFO F2 LFU LRU SLRU

1,000 5,974.0 37,161.0 42,090.3 45,906.7 54,194.3 56,904.32,000 6,168.0 31,977.0 39,071.3 39,872.0 45,473.0 46,795.04,000 7,118.3 21,337.0 40,860.0 28,028.3 26,816.7 27,200.0

Hit ratio1,000 0.51 0.17 0.16 0.19 0.17 0.172,000 0.51 0.29 0.30 0.32 0.30 0.304,000 0.51 0.54 0.55 0.59 0.55 0.56

Conclusion1 Gnome is more time-efficient2 Leads to higher hit rates in most cases

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 18 / 22

Scalability

100k 200k 400k 800kLGD 362,141.3 1,452,922.0 5,934,038.7 20,001,965.7DBP 434,630.7 1,790,350.7 6,677,923.0 12,653,403.3

ConclusionSub-quadratic growth of runtimeRuntime grows linearly with number of mappingsFor LGD, 360 – 370 mappings/s

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 19 / 22

Conclusion and Future Work

Presented GnomeTwo-step approach for link discoveryRelies on divide-and-merge paradigmEnsure LD on datasets of arbitrary sizeCompared with state-of-the-art cachingFuture Work

Parallel implementationCombination with blocking

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 20 / 22

That’s all Folks!

Axel NgongaAKSW Research Group

Augustusplatz 10, Room P90504109 Leipzig, Germany

ngonga@informatik.uni-leipzig.dehttp://limes.sf.net

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 21 / 22

Acknowledgement

This work was supported by grants from the EU H2020 Framework Programmeprovided for the project HOBBIT (GA no. 688227).

Ngonga Ngomo and Hassan (InfAI) GNOME November 10, 2016 22 / 22