Indizierung von Graphen durch häufige Subgraphen (2)

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen für das Erfüllbarkeitsproblem SAT
Advertisements

Christian Scheideler SS 2009
Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
Hash-Tabellen und -Funktionen Hash-Tabellen in Java
Apriori-Algorithmus zur Entdeckung von Assoziationsregeln
SST - Sequence Search Tree
Das LCA – Problem in Suffixbäumen
Der B-Baum Richard Göbel.
Andreas Kalender Institut für Informatik FU Berlin Seminar über Algorithmen Durchschnittsverzögerung.
Manfred Thaller, Universität zu Köln Köln 22. Januar 2009
Einführung in die Informationsverarbeitung Teil Thaller Stunde VI: Wege und warum man sie geht Graphen. Manfred Thaller, Universität zu Köln Köln.
Sortierverfahren Richard Göbel.
FH-Hof Effizienz - Grundlagen Richard Göbel. FH-Hof Inhalt Einführung Aufwand für Anfragen ohne Indexierung Indexstrukturen für Anfragen an eine Tabelle.
FH-Hof Optimierungsverfahren für kombinatorische Probleme Richard Göbel.
Heuristiken Automatic Problem Solving Institut für Informatik
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (06 – Reduktion endlicher Automaten) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts
Algorithmen und Datenstrukturen
Katja Losemann Chris Schwiegelshohn
Algorithmen und Komplexität
Datenmanagement in Sensornetzen PRESTO - Feedback gesteuertes Datenmanagement - SS 2007 Sören Wenzlaff.
Kurzvorstellung der AG Algorithmen und Komplexität MPI Informatik
Beispielrelation Buchbestellungen H = Menge der bedeutenden Ziele = {a, d} Schwelle T = 4 Stichprobe S = {a, b, a, a, a, a} mit s = |S| = 6 N = Anzahl.
Einführung und Überblick

Effiziente Algorithmen
Einführung in die Programmierung
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Algorithmus von Dijkstra. 0 Algorithmus von Dijkstra s Priority Queue PQ: Knoten, Priorität Weglänge Kandidatenmenge.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Jamshid Azizi: Folie Isomorphietest Jamshid Azizi
Manfred Thaller, Universität zu Köln Köln 30. Januar 2014
Trust and context using the RDF- Source related Storage System (RDF‑S3) and easy RQL (eRQL) Karsten Tolle und Fabian Wleklinski.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
CloseGraph: Mining Closed Frequent Graph Patterns Xifeng Yan & Jiawei Han In Proceedings of SIGKDD '03. Washington, DC. Präsentation und aktuelle ( )
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 1 WS 2001/02 Punkt-in-Landkarte I (Streifenkarte)
Analyse der Laufzeit von Algorithmen
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
1 6.4 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung.
Gliederung der Vorlesung
Programmiersprachen II Fortsetzung Datenstrukturen Hashing Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Wege und warum man sie geht Graphen. Köln 14. Januar 2016.
Häufige Teilgraphen:gSpan Seminartitel: Data Mining Seminarthema:1.5.1 Häufige Teilgraphen: gSpan Fernuniversität Hagen SS 2008 Seminarleiter: Ralf.
 Präsentation transkript:

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-Tolerance Closed Frequent subGraphs (d-TCFGs) Index-Konstruktion Abfrage-Verarbeitung Performanz-Bewertung Schlussfolgerung und zukünftige Arbeiten

Einführung Graph: Immer mehr Graphendatenbanken => effiziente Abfrageverarbeitung notwendig!! Neuer effizienter Index für die Verarbeitung von Graphabfragen

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ü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ührung

Einführung

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ührung FG-Index [SIGMOD07]: wurde konstruiert auf der Basis von häufigen Subgraphen (FGs) FG: Frequent subGraph 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ührung Fallunterscheidung bei der Verwendung vom FG-Index: q ist häufiger Subgraph (FG) Antwort sofort  ohne Kandidaten-Verifikation

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ührung

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 : 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-TCFGs de = 1- freq(g‘)/ freq(g) wenn de ³ d  d-TCFG Sonst kein d-TCFG Bsp.: d=0.04 T={f1,f4,f5,f8,f9,f13}

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-TCFGs

Abschluß (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 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-Konstruktion Invertierter Graph Index (IGI):

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 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 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-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-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-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 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-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-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. FG_Index (s=0.1) FG_Index (s=0.01) gIndex Time (sec) 10.03 (10+0.03) 1085 (627+458) 217 Memory (MB) 2 95 107 |T| or |Fd| 195 21893 3276

Performanz-Bewertung Abfrage-Antwortszeit (reale Datenmenge) Qi: Menge von 1000 Abfragen Jede Abfrage enthält i Kanten

Performanz-Bewertung Abfrage-Antwortszeit (reale Datenmenge) Qi: Menge von 1000 Abfragen Jede Abfrage enthält i Kanten

Performanz-Bewertung Speicherverbrauch (div. Abfrage-Größen) Speicherverbrauch ( FG-Index ) gering und stabil viel geringer als gIndex

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.

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

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