41
Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

Embed Size (px)

Citation preview

Page 1: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

Graphensuche auf Grundlage von strukturellen MerkmalenJonathan Hellwig19.02.2008

Indizieren und Anfragen von Graphen in DatenbankenSilke Trißl

Page 2: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

2Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Gliederung

• Einführung• Graphenanfrage• Indizierung

• Indizierung mit Strukturmerkmalen• Häufige Merkmale• Diskriminierende Merkmale

• Konstruktion des Indizes und Suche• gIndex vs. GraphGrep• Diskussion

Page 3: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

3Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Graphen

• Ein Graph ist ein Tupel (V,E).• Graphen eignen sich um komplexe

Strukturen, wie chemische Verbindungen, soziale Netzwerke oder Verkehrsnetze darzustellen.

Page 4: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

4Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Arten von Graphen

• Es gibt verschiedene Arten von Graphen:• Graphen in denen die Knoten und Kanten Label

haben.• Graphen in denen die Kanten eine Richtung

haben.• Nach ihrer Struktur:

• z. B. planare Graphen, Bäume, Pfade, vollständige Graphen und Chordalgraphen.

• Wir interessieren uns für einfache Graphen mit gelabelten Knoten.

Page 5: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

5Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Graphendatenbank

• Mit Hilfe von DB kann man Graphen effizient speichern.

• Als Anwender muss man sich nicht darum kümmern, wo und wie die Graphen gespeichert sind.

Page 6: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

6Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Beispiele für Graphen = unsere Datenbank

Page 7: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

7Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Subgraphen

• H=(W,F) ist ein Subgraph von G=(V,E) wenn:• W ist eine Teilmenge von V• F ist eine Teilmenge von E

Page 8: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

8Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Subgraphen

Page 9: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

9Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Graphenanfrage

• Eingabe: ein Graph G• Ausgabe: alle Graphen der DB, die G als

Subgraphen haben

Page 10: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

10

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Graphenanfrage

Page 11: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

11

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Graphenanfrage auf indizierte Datenbank

• Um schneller auf Graphen zuzugreifen bietet sich die Bildung eines Indizes an.• Anhand der Merkmale der Graphen wird ein

Index erstellt.• Jeder Indexeintrag (Merkmal) enthält eine Liste

der Graphen, die Indexmerkmal erfüllen.

Page 12: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

12

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Graphenanfrage auf indizierte Datenbank

• Bei einer Anfrage:• Wird aus dem Index eine Kandidatenliste

erstellt.• Kandidatenliste ist viel kleiner und kann

schneller nach dem endgültigem Ergebnis durchsucht werden.

Page 13: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

13

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Graphenanfrage auf indizierte Datenbank

Page 14: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

14

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Indizierung mit GraphGrep

• Indizierungsmerkmal sind Pfade.• Dabei werden nicht alle Pfade gewählt,

sondern nur Pfade bis zu einer bestimmten Länge.

Page 15: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

15

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Indizierung mit GraphGrep

• Vorteile:• Begrenzter Indexraum.• Pfade sind einfach zu manipulieren.

• Nachteile:• Strukturelle Informationen können verloren

gehen.• Index sehr groß werden.

Page 16: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

16

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Indizierung mit GraphGrep

Page 17: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

17

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Gliederung

• Einführung• Graphenanfrage• Indizierung

• Indizierung mit StrukturmerkmalenIndizierung mit Strukturmerkmalen• Häufige Merkmale• Diskriminierende Merkmale

• Konstruktion des Indizes und Suche• gIndex vs. GraphGrep• Diskussion

Page 18: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

18

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Indizierung mit Strukturmerkmalen

• Indizierungsmerkmal sind Subgraphen.• Vorteil:

• Strukturmerkmale bleiben erhalten.

• Nachteil:• Sehr viele Subgraphen.

Page 19: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

19

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Indizierung mit Strukturmerkmalen

• Vorgestellte Methode: gIndex• Es werden nicht alle Subgraphen gewählt

sondern nur solche die:• Häufig in der Datenbank vorkommen, d. h. in

vielen Graphen der Datenbank enthalten sind.• Diskriminativ in Bezug auf die schon im Index

enthaltenen Merkmale sind.

Page 20: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

20

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Häufige Merkmale

• Häufige Merkmale sind solche die in vielen Graphen der Datenbank enthalten sind.

• Formal ausgedrückt:• Für ein Merkmal (Graph) ist Sup(m) (Support)

ist die Anzahl der Graphen in der DB in denen m ein Subgraph ist.

• minSup ist die minimale Häufigkeit, die ein Merkmal haben muss um als häufig zu gelten.

• Alle Graphen m mit Sup(m)≥ minSup werden im Index aufgenommen.

Page 21: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

21

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Häufige Merkmale

• Warum häufige Merkmale?• Um Indexgröße zu beschränken.

• (minSup = 1 oder minSup = |DB|)

• Vorteile bei großem minSup:• Kleiner Index.

• Vorteile bei kleinem minSup:• Kleine Kandidatenliste.

Page 22: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

22

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Häufige Merkmale

• Es könnte vorkommen, dass Graphen keine häufigen Merkmale haben und deshalb nicht vom Index überdeckt werden.

• Lösung:• Es wird kein statisches minSup gewählt,

sondern als eine monoton wachsenden Funktion abhängig von der Kantezahl der Merkmale.

Page 23: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

23

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Häufige Merkmale

Größe des Merkmals (Zahl der Kanten)

Häufigkeit des Merkmals in DB

5 10

1

5

10

•Kleine Subgraphen werden immer gewählt.

•Große Subgraphen werden nur gewählt, wenn sie oft vorkommen.

Page 24: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

24

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Häufige Merkmale

Page 25: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

25

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Diskriminierende Merkmale

• Diskriminierende Merkmale werden in Bezug auf die schon im Index enthaltenen Merkmale betrachtet.

• Ein Merkmal ist diskriminierend, wenn es die Graphen in der DB besser unterscheidet als die schon im Index enthaltenen Merkmale.

• Dadurch kann die Größe des Indizes reduziert werden.

Page 26: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

26

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Diskriminierende Merkmale (Formal)

• Seien m1,…, mk die Subgraphen von einem Merkmal m, die bereits im Index enthalten sind.

• Da im Index immer der leere Graph Ø enthalten ist, gibt es mindestens ein mi.

• Dm sind die Graphen der Datenbank, die m enthalten. • Folgende Formel beschreibt wie diskriminierend ein

Merkmal m ist.

• Alle Merkmale mit γ größer als γmin werden in den Index aufgenommen.

Page 27: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

27

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Diskriminierende Merkmale

Page 28: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

28

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Diskriminierende Merkmale

Page 29: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

29

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Gliederung

• Einführung• Graphenanfrage• Indizierung

• Indizierung mit Strukturmerkmalen• Häufige Merkmale• Diskriminierende Merkmale

• Konstruktion des Indizes und SucheKonstruktion des Indizes und Suche• gIndex vs. GraphGrep• Diskussion

Page 30: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

30

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Konstruktion des Indizes

• Zur Bildung des Indizes werden alle Merkmale (Subgraphen) der Graphen aus der Datenbank betrachtet.

• Der Index wird klein gehalten in dem nur Merkmalen die häufig und diskriminierend sind aufgenommen werden.

• Durch die monoton steigende Häufigkeit wird gewährleistet, dass der Index alle Graphen der DB abdeckt.

Page 31: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

31

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Konstruktion des Indizes

• Als Eingabe brauch man:• Graphen-DB, minSup Funktion,

Diskriminierungsgrad, maximale Größe der Subgraphen maxL.

• Alle Subgraphen bis Größe maxL werden in aufsteigender Größe betrachtet.

• Ist ein Subgraph häufig und diskriminierend wird er im Index aufgenommen.

Page 32: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

32

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Suche der Graphen

• Alle Subgraphen der Anfrage werden betrachtet.

• Merken welche Subgraphen in Merkmalsliste sind

• Schnittmenge aller gemerkten Subgraphen ist Kandidatenliste

Page 33: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

33

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Indizierung mit Strukturmerkmalen

Page 34: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

34

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Einfügen und Löschen von Graphen

• Bei einer Datenbank üblich:• Informationen hinzufügen.• Informationen löschen.

• Wunsch: Indexkonstruktion nicht zu wiederholen.• Merkmalsliste nicht ändern.

Page 35: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

35

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Einfügen und Löschen von Graphen G

• Einfügen von G:• Subgraphen von G betrachten, die bereits im

Indexeinträgen sind.• G zu diesen Indexeinträgen hinzufügen.

• Löschen von G:• Subgraphen von G betrachten, die

Indexeinträgen sind.• G von diesen Indexeinträgen löschen.

Page 36: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

36

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

gIndex vs. GraphGrep

• Die Datensätze• Realer Datensatz:

• Chemische Verbindungen.• 43.905 Moleküle (Stand März 2002).

• Syntetischer Datensatz mit folgenden Parametern:• Größe der Datenbank.• Durchschnittsgröße der Graphen.• Anzahl der Labels.

Page 37: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

37

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

gIndex vs. GraphGrep

Page 38: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

38

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

gIndex vs. GraphGrep

Page 39: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

39

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Diskussion

• Kiritik:• Authoren des Papers sagen, dass sie besser als

GraphGrep sind.• Nur unter bestimmten Bedingungen:

• Wenige Labels.• Struktur der Graphen keine Pfade.

• Keine anderen Vergleiche außer mit GraphGrep.

Page 40: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

40

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Diskussion

• Positiv:• Gut organisiertes Paper.• Neue (innovative) Methode.• Damals die schnellsten.

Page 41: Graphensuche auf Grundlage von strukturellen Merkmalen Jonathan Hellwig 19.02.2008 Indizieren und Anfragen von Graphen in Datenbanken Silke Trißl

41

Jonathan Hellwig – Graphensuche auf Grundlage von strukturellen MerkmalenSilke Trißl - Indizieren und Anfragen von Graphen in Datenbanken

Diskussion

• Ideen zur Optimierung:• Index verbessern.

• z. B. fertigen Index noch mal auf nicht diskriminierende Merkmale prüfen.

• Ausrichtung auf bestimmte Typen von Graphen.• z. B. durch Parametrisierung.