Tag Clustering: Realisierung des Bron-Kerbosch

Werbung
Überblick
Hintergrund
Implementierung
Anwendung
Literatur
Tag Clustering: Realisierung des
Bron-Kerbosch-Algorithmus in PHP
HS Information Retrieval
Katharina Wäschle
6. Februar 2010
Katharina Wäschle
Clique-Clustering in PHP
Überblick
Hintergrund
Implementierung
Anwendung
Literatur
Gliederung
1 Überblick
2 Hintergrund
3 Implementierung
4 Anwendung
5 Literatur
Katharina Wäschle
Clique-Clustering in PHP
Überblick
Hintergrund
Implementierung
Anwendung
Literatur
Projekt
Ziel Implementierung des Bron-Kerbosch-Algorithmus für
das Finden maximaler Cliquen in Graphen in PHP
Motivation einfache Einbindung in Web-Anwendungen wie
(Semantic) MediaWiki für das Clustering von Tags,
Seiten oder Kategorien
Anwendung Clustering von Tags aus SMW, Flickr und Bibsonomy
Katharina Wäschle
Clique-Clustering in PHP
Überblick
Hintergrund
Implementierung
Anwendung
Literatur
Gliederung
1 Überblick
2 Hintergrund
3 Implementierung
4 Anwendung
5 Literatur
Katharina Wäschle
Clique-Clustering in PHP
Überblick
Hintergrund
Implementierung
Anwendung
Literatur
Cliquen
Clique Eine Teilmenge C der Knotenmenge eines
ungerichteten Graphen G, so dass der von C
induzierte Untergraph von G vollständig ist.
Maximale Clique, die nicht echt enthalten ist in einer
Clique anderen Clique, d.h. es gibt keine Clique D von G, für
die gilt C ⊆ D und C 6= D.
Katharina Wäschle
Clique-Clustering in PHP
Überblick
Hintergrund
Implementierung
Anwendung
Literatur
Bron-Kerbosch-Algorithmus
Eigenschaften
. Algorithmus zum Finden aller maximalen Cliquen in einem
Graph mit Hilfe von rekursivem Backtracking und
Branch-and-Bound
. theoretisch schlechte Laufzeit (exponentiell), in der Praxis
meist bessere Laufzeit (linear)
. wurde 1973 von Coen Bron and Joep Kerbosch entwickelt [1],
gilt immer noch als schnellster und ist der am meisten
gebrauchte Algorithmus für das Finden von Cliques
Katharina Wäschle
Clique-Clustering in PHP
Überblick
Hintergrund
Implementierung
Anwendung
Literatur
Bron-Kerbosch-Algorithmus
Pseudocode
find_cliques(potential_clique, candidates, already_found)
if a node in already_found is connected to all notes in candidates
no clique can ever be found
else
foreach candidate_node in candidates
move candidate_node to potential_clique
create new_candidates by removing nodes in candidates not
connected to candidate_node
create new_already_found by removing nodes in already_found not
connected to candidate_node
if new_candidates and new_already_found are empty
potential_clique is maximal
else
find_cliques(potential_clique, new_candidates, new_already_found)
move candidate_node from potential_clique to already_found
nach [4]
Katharina Wäschle
Clique-Clustering in PHP
Überblick
Hintergrund
Implementierung
Anwendung
Literatur
Bron-Kerbosch-Algorithmus
Funktionsweise
Rekursionsmechanismus
Verhindert, dass Permutationen bereits gefundener Cliquen erneut
durchsucht werden: Bekannte Erweiterungen werden gespeichert
und gesehene Knoten aus der Kandidatenliste entfernt.
Branch-and-Bound
Begrenzung der Suche, so dass identischen Teilbäume nicht
mehrmals aufgebaut werden: Es werden nur neue Knoten, die nicht
Nachbarn eines bereits getesteten Knotens sind, angeschaut.
Katharina Wäschle
Clique-Clustering in PHP
Überblick
Hintergrund
Implementierung
Anwendung
Literatur
Gliederung
1 Überblick
2 Hintergrund
3 Implementierung
4 Anwendung
5 Literatur
Katharina Wäschle
Clique-Clustering in PHP
Überblick
Hintergrund
Implementierung
Anwendung
Literatur
Arbeitsschritte beim Clustering
1
Identifikation der Index-Terme
2
Erzeugung der Dokumentvektoren
3
Erzeugung einer Ähnlichkeitsmatrix
4
Erzeugung einer Relationsmatrix
5
Clustering auf Basis der Relationsmatrix
Katharina Wäschle
Clique-Clustering in PHP
Überblick
Hintergrund
Implementierung
Anwendung
Literatur
Modularisierung
Einlesemodul
1
Identifikation der Index-Terme
Repräsentationsmodul
2
Erzeugung der Dokumentvektoren
3
Erzeugung einer Ähnlichkeitsmatrix
4
Erzeugung einer Relationsmatrix
Clusteringmodul
5
Clustering auf Basis der Relationsmatrix
Katharina Wäschle
Clique-Clustering in PHP
Überblick
Hintergrund
Implementierung
Anwendung
Literatur
Klassendiagramm
Katharina Wäschle
Clique-Clustering in PHP
Überblick
Hintergrund
Implementierung
Anwendung
Literatur
Gliederung
1 Überblick
2 Hintergrund
3 Implementierung
4 Anwendung
5 Literatur
Katharina Wäschle
Clique-Clustering in PHP
Überblick
Hintergrund
Implementierung
Anwendung
Literatur
Clustering von Tags aus Semantischem Wiki
. 48 Wiki-Seiten mit 158 Tags in Datenbank
. Problem: zu wenig Daten, keine reale Anwendung, Tags nur
aus 3 Quellen
Katharina Wäschle
Clique-Clustering in PHP
Überblick
Hintergrund
Implementierung
Anwendung
Literatur
Clustering von Flickr-Tags
. Abfrage von Tags für zufällig generierte Photo-IDs über die
Flickr-API
. Problem: zu heterogene Daten, unterschiedliche Sprachen, nur
begrenzte Anzahl von Abfragen möglich
Katharina Wäschle
Clique-Clustering in PHP
Überblick
Hintergrund
Implementierung
Anwendung
Literatur
Clustering von Tags aus BibSonomy
. Test mit bis zu 1000 getaggte Ressourcen (Papers oder Links)
aus Datenbank-Dump
Katharina Wäschle
Clique-Clustering in PHP
Überblick
Hintergrund
Implementierung
Anwendung
Literatur
Demo
Demo
Katharina Wäschle
Clique-Clustering in PHP
Überblick
Hintergrund
Implementierung
Anwendung
Literatur
Fazit
⊕
. schlanke Implementierung
(etwa 300 Zeilen Code,
davon 120 Algorithmus)
. vielfache
Einsatzmöglichkeiten
(Wiki-Extension,
Einbindung von
Datenbank)
Katharina Wäschle
. für große Datenmengen
schlechte Performanz, da
Aufbau der
Repräsentation sehr
langsam (7 Minuten für
1000 Tags)
. Speicher- und Antwortzeitbeschränkungen
Clique-Clustering in PHP
Überblick
Hintergrund
Implementierung
Anwendung
Literatur
Literatur
Bron, C. & Kerbosch, J. (1973), Algorithm 457: finding all cliques of an
undirected graph, Commun. ACM 16(9), 575–577.
Haenelt, K. (2009), Cliquen in Graphen. Definitionen und Algorithmen,
Kursfolien vom 14.11.2009. http://kontext.fraunhofer.de/haenelt/kurs/
Hotho, A.; Jäschke, R.; Schmitz, C. & Stumme, G. (2006), BibSonomy: A
Social Bookmark and Publication Sharing System, Proceedings of the
Conceptual Structures Tool Interoperability Workshop at the 14th
International Conference on Conceptual Structures, 87–102.
Samudrala, Ram & John Moult (1998), A Graph-theoretic Algorithm for
Comparative Modeling of Protein Structure, Journal of Molecular Biology
279, 287–302.
http://www.bibsonomy.org/bibtex/
2a6faae355d867b5f998ed30e79eec3cf/mitesser
http://www.flickr.com/photos/tags/bank/clusters/
Katharina Wäschle
Clique-Clustering in PHP
Herunterladen