indizierung von graphen durch h ufige subgraphen 2 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Indizierung von Graphen durch häufige Subgraphen (2) PowerPoint Presentation
Download Presentation
Indizierung von Graphen durch häufige Subgraphen (2)

Loading in 2 Seconds...

play fullscreen
1 / 35

Indizierung von Graphen durch häufige Subgraphen (2) - PowerPoint PPT Presentation


  • 96 Views
  • Uploaded on

Indizierung von Graphen durch häufige Subgraphen (2). Maria Tsitiridou (tsitirid@informatik.hu-berlin.de ) Indizieren und Anfragen von Graphen in Datenbanken Seminar, WS 2007/8 19.02.2008. Überblick. Einführung d - T olerance C losed F requent sub G raphs ( d - TCFGs) Index-Konstruktion

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Indizierung von Graphen durch häufige Subgraphen (2)' - marlo


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
indizierung von graphen durch h ufige subgraphen 2

Indizierung von Graphen durch häufige Subgraphen (2)

Maria Tsitiridou

(tsitirid@informatik.hu-berlin.de)

Indizieren und Anfragen von Graphen in Datenbanken Seminar, WS 2007/8

19.02.2008

berblick
Überblick
  • Einführung
  • d-ToleranceClosedFrequentsubGraphs (d-TCFGs)
  • Index-Konstruktion
  • Abfrage-Verarbeitung
  • Performanz-Bewertung
  • Schlussfolgerung und zukünftige Arbeiten
einf hrung
Einführung

Graph:

  • Immer mehr Graphendatenbanken

=> effiziente Abfrageverarbeitung notwendig!!

  • Neuer effizienter Index für die Verarbeitung von Graphabfragen
einf hrung1
Einführung

Grundlegende Begriffe:

  • Größe von g size(g):= Die Anzahl der Kanten in g
  • Subgraph:= g Subgraph von g‘, (g Í g‘), wenn eine Subgraph-Isomorphie von g nach g‘ existiert.
  • FG abgeschlossen (closed):= g ist abgeschlossen, wenn Ø$g‘ÎF: g‘Ég und freq(g‘)=freq(g)
  • FG maximal := g ist maximal, wenn Ø$g‘ÎF : g‘Ég
einf hrung2
Einführung

Graph-Abfrage:

  • Sei D={g1,…,gn} eine Graphdatenbank
  • Eine Graph-Abfrage :

Gegeben sei ein Graph q, finde alle giÎD so, dass gi Übergraph von q, giÊq

einf hrung5
Einführung

Bisherige Lösungen:

  • Filtern: Nutze einen Index um einen Teil von falschen Ergebnissen auszusortieren und erzeuge eine potentielle Antwortmenge (Kandidat)
  • Kandidaten-Überprüfung:

Überprüfe, ob jeder Kandidat ein Übergraph von q ist.

  • Die Kandidaten-Menge ist kleiner als die DB => effizienter als die sequentielle Überprüfung , aber immer noch teuer!
einf hrung6
Einführung

FG-Index [SIGMOD07]:

  • wurde konstruiert auf der Basis von häufigen Subgraphen (FGs)
  • FG: FrequentsubGraph
  • g ist ein häufiger Subraph(FG), wenn g ein Subgraph von mindestens ( s|D|) Graphen in einer Datenbank D, wobei 0£s £1
  • s ist ein vordefinierter Grenzwert
einf hrung7
Einführung

Fallunterscheidung bei der Verwendung vom FG-Index:

  • q ist häufiger Subgraph (FG)

Antwort sofort

 ohne Kandidaten-Verifikation

einf hrung8
Einführung

Fallunterscheidung bei der Verwendung vom FG-Index:

  • q ist kein häufiger Subgraph

Kandidatenmenge wird erzeugt

  • Beachte:
  • q kein FG => q Subgraph von sehr wenigen Graphen in D
  • => Wenige Isomorphie-Tests!!
einf hrung10
Einführung

Herausforderung:

Die Menge der FGs ist groß , wenn s klein.

  • Viele FGs => großer Index => Hohe Zugriffskosten, wenn der Index zu groß für den Hauptspeicher=>Schlechte Abfrage-Performanz

Lösung: Kompressionstechnik anwenden (d-TCFGs)

    • Über d die Größe des Index regeln
    • Jedes d-TCFG ist ein stellvertretender Übergraph von einem Cluster von FGs.
d tcfgs
d-TCFGs

d-TCFGs :

Gegeben sei d ein benutzerdefinierter Faktor mit 0£d£1.

Ein häufiger Subgraph g ist ein d-TCFG, wenn

Ø$g‘ÎF : g‘Ég und freq(g‘) ³ (1-d)freq(g)

d tcfgs1
d-TCFGs
  • de= 1- freq(g‘)/ freq(g)
  • wenn de³ d  d-TCFG
  • Sonst keind-TCFG

Bsp.: d=0.04

T={f1,f4,f5,f8,f9,f13}

abschlu closure eines d tcfgs
Abschluß (closure) eines d-TCFGs

Nächster (closest) d-TCFG Übergraph

gt ist der nächste d-TCFG Übergraph von g, wenn

  • gt ein d-TCFG und g kein d-TCFG ist
  • gtÉg und Ø$g‘tÎT : g‘tÉgt
abschlu closure eines d tcfgs2
Abschluß (closure) eines d-TCFGs

closure eines d-TCFGs:

Gegeben sei ein d-TCFG gt ,

CLOS(gt )={g: gt ist der nächste d-TCFG Übergraph von g }

  • Der nächste d-TCFG Übergraph von einem FG ist eindeutig.
  • Bsp.: CLOS(f13)={f7,f10, f11, f12}
index konstruktion
Index-Konstruktion

Invertierter Graph Index (IGI): Ein invertierter Index erstellt über eine Menge von Graphen G

  • Ein Hash-Index aus der Menge der eindeutigen Kanten in G
  • Jede Kante ist mit einer Menge von ID‘s von Graphen in G verknüpft, die die Kante enthalten.
  • Die ID‘s sind nach der Graphengröße weiter klassifiziert, um effiziente Suche zu erzielen
index konstruktion1
Index-Konstruktion

Invertierter Graph Index (IGI):

index konstruktion2
Index-Konstruktion

Zwei-Level-Index-Struktur:

  • Im Hauptspeicher gehalten:

Ein (IGI) erstellt aus der Menge der d-TCFGs

  • Auf Festplatte gespeichert:

Ein (IGI) erstellt aus dem Abschluss von jedem d-TCFG.

vollst ndigkeit des index
Vollständigkeit des Index
  • Der Index sollte in der Lage sein , jede Abfrage zu beantworten.
  • Allerdings deckt der FG-Index nur die Abfragen ab, die häufige Subgraphen sind.

Edge-Index (Hash-Index) : gebildet aus der Menge der nicht-häufigen eindeutigen Kanten in der Datenbank.

 Abfragen, die keine häufigen Subgraphen sind, können durch Zusammenfügen dieser Kanten beantwortet werden.

abfrage verarbeitung
Abfrage-Verarbeitung

Abfrage q ist ein FG

  • Den Hash-Index verwenden, um die Menge der Kanten von q im FG-Index zu finden
  • Den Durchschnitt von den Graph-ID‘s-Arrays bilden, die mit den Kanten verknüpft sind
abfrage verarbeitung1
Abfrage-Verarbeitung

Abfrage q ist ein FG

  • Der erste Übergraph, den wir über den Durchschnitt erhalten, ist entweder q oder q‘s nächster d-TCFG Übergraph.
  • Wenn q immer noch nicht gefunden wurde  auf den verschachtelten IGI-Index von q‘s nächsten d-TCFG Übergraphen zugreifen
  • Wiederhole rekursiv bis q gefunden wird.
abfrage verarbeitung2
Abfrage-Verarbeitung

Abfrage q ist kein FG

  • Verwende den FG-Index, um eine Menge von maximalen Subgraphen von q, Gs, zu finden.
  • Verwende Edge-Index, um die Menge der nicht-häufigen Kanten von q, Ge, zu finden
abfrage verarbeitung3
Abfrage-Verarbeitung

Abfrage q ist kein FG

  • Man erlange die Kandidaten-Menge von q, indem man den Durchschnitt von der Antwortmenge von den Graphen in Gs und Ge bildet
  • Überprüfe für jeden Kandidat, ob er ein Übergraph von q ist.
performanz bewertung
Performanz-Bewertung

Datenmengen

  • Reale Datenmenge: 10K Graphen einer Menge von chemischen Molekülen aus der AIDS-Forschung
  • Künstliche Datenmengen für Skalierbarkeits-Tests bzgl.
    • Datenbankgröße: von 10K bis 100K Graphen
    • Graphengröße: von 20 bis 100 Kanten
    • Graphendichte: 0.1, 0.15, 0.2
performanz bewertung1
Performanz-Bewertung

Algorithmus

Vergleiche mit gIndex [YYH05]

Index-Konstruktions-Performanz (reale Datenmenge)

  • s=0.1 , FG-Index 20 mal schneller
  • s=0.01, FG-Index 5 mal langsamer

Grund: Bei s=0.1 : |F|= 455, während bei s=0.01 |F|=59.120.

performanz bewertung2
Performanz-Bewertung

Algorithmus

Vergleiche mit gIndex [YYH05]

Index-Konstruktions-Performanz (reale Datenmenge)

  • s=0.1 , FG-Index 20 mal schneller
  • s=0.01, FG-Index 5 mal langsamer

Grund: Bei s=0.1 : |F|= 455, während bei s=0.01 |F|=59.120.

performanz bewertung3
Performanz-Bewertung

Abfrage-Antwortszeit(reale Datenmenge)

  • Qi: Menge von 1000 Abfragen
  • Jede Abfrage enthält i Kanten
performanz bewertung4
Performanz-Bewertung

Abfrage-Antwortszeit(reale Datenmenge)

  • Qi: Menge von 1000 Abfragen
  • Jede Abfrage enthält i Kanten
performanz bewertung5
Performanz-Bewertung

Speicherverbrauch (div. Abfrage-Größen)

  • Speicherverbrauch
  • ( FG-Index )
  • gering und stabil
  • viel geringer als gIndex
schlussfolgerung
Schlussfolgerung

FG-Index:

  • Im Hauptspeicher abgelegt:
    • Menge der d-TCFGs
    • Größe gesteuert über d
  • auf Festplatte gespeichert:
    • Andere FGs (keine d-TCFGs) indiziert mit verschachtelten invertierten Indexes, die effiziente Suche erlauben.
schlussfolgerung1
Schlussfolgerung

Abfrage-Verarbeitung:

  • Abfrage q ist FG:
    • Antwortmenge ohne Kandidaten-Verifikation
  • Abfrage q ist kein FG:
    • Minimale Kandidaten-Verifikation
schlussfolgerung2
Schlussfolgerung

In der Zukunft:

Abfrage-Verarbeitung bei großen einzelnen Graphen.

  • Effiziente Abfrage bei div. Sozialen Netzwerken, Web usw.
  • Was indizieren und wie?

Ähnlichkeitssuche in Graph-Datenbanken

  • Exakte Übereinstimmung einschränkend f. manche Anwendungen
  • Ähnlichkeitsabfragen: Weglassen von manchen Kanten in der Query