Websemantik

Clustering in Information-Retrieval

Clustering in Information-Retrieval


Martin Holper
Diese Lernkarten behandeln die Grundlagen der Websemantik auf Universitätsniveau und konzentrieren sich auf Clustering-Algorithmen, Dokumentenverarbeitung und Anwendungen in der Informationsretrieval. Sie decken Themen wie hierarchisches Clustering, K-Means, ähnlichkeitbasierte Methoden und die Bewertung von Clustering-Ergebnissen ab. Die Karteikarten sind besonders nützlich für Studierende und Forscher, die sich mit der Organisation und Analyse von Textdaten beschäftigen, da sie praktische Algorithmen und deren Implementierung in Suchmaschinen und Datenbanken vermitteln.
Karten
24
Lernende
1
Sprache
Deutsch
Kategorie
Informatik
Stufe
Universität
Erstellt / Aktualisiert
01.09.2013 / 01.09.2013

Lernkarten

Clustering

Prozess des Gruppieren von Mengen von Objekten (z.B. Dokumente) in Klassen von gleichen/ähnlichen Objekten (Cluster)

Dokumente innerhalb eines clusters sollten ähnlich sein

 

häufigste Form des unsupervised Learnen (unüberwachten Lernen)

Dokumente eines anderen möglichst unähnlich sein

Cluster-Hypothese

sagt aus, Dokumente im selben Cluster ähnlich in Bezug auf die Relevanz der Information verhalten und daher den Informationsabfruf (Suchanfrage) verbessern

Anwendung von Clustering in IR

Clustern von Dokumten aus dem Corpus vorab

wenn eine Abfrage in ein Dokument d matcht retourniere auch die anderen Dokumente deselben Clusters

Geschwindigkeit des VektorspaceModell wird erhöht

Bessere Suchergebnisse in Such-Applikationen (siehe Grafik)

Bessere Navigation in Suchergebnissen

Anforderungen/Problem Clustering in IR

Schnelligkeit: (schnelle Antwortzeit)

Flexibilität: (Web-Inhalt ändert sich ständig)

user-orientiert: Hauptziel ist es für Benutzer richtige Info zu finden

Was als Input zu verwenden:?

  • gesamtes Dokument
  • Strukturinfos (links)
  • Benutzung von stoppwortlisten, stemming

Wie Ähnlichkeit definierten:?

  • Inhalt (Vector-Space-Modell)
  • Link-Analysis
  • Usage-Statistics

Wie werden ähnlich dokumente gruppiert, gruppen gelabelt?

Kernfragen (Issues) f. Clustering

Darstellung des clustering: Dokumentendarstellung? Vector Space? Normalization?

Notation für Ähnlichkeit/Distanz nötig:

Ideal wäre semantische Ähnlichkeit

in Praxis:

  • Dokumente als Vektoren, Distanzmetriken

Distanzmetriken

  • Euklidsche Distanz
  • L1 norm
  • Cosinus similarität
  • Dice Coefficient

Term-Document Matrix

siehe Grafik

Terms similarity Matrix

siehe Grafik

Beispiel Term similarity Matrix

siehe Grafik

Anzahl der Cluster  -  Benefit/Costs

Anzahl ist meist a priori festzulegen

Vermeiden von trivalen (zu vielen/zu wenigen Cluster)

Finden von Clusteranzahl ist Teil des Problems!

Bestrafung bei zu vielen Clustern:

  • Definiere einen doc-Benefit als cosinus Ähnlichkeite zu dessen Zentroid.
  • Definiere TotalBenefit als Summe aller doc-Benefits
  • für jeden Cluster gibte es einen cost cs ein cluster mit k hat: TotalCost = K *cs
  • Definiere V = |TotalBenefit+TotalCost|
  • finde das clustering, mit höchsten Wert für V über alle Möglichkeiten von K
    • totaler Benefit sinkt mit steigendem K, kann aber stoppen wenn er nich zuviel sinkt (siehe Grafik)

Clustering Algorithmen - Generell

Partitionsmethode: Konstruiere eine Partition von m Dokumenten in ein Set von K Clusters, die Menge der Dokumente (m) und die Anzahl der Cluster (K) ist vorgegeben.

Aufgabe: finde eine Partition mit K Clusters, welche das Partitionskriterium erfüllen.

Clustering Algorithmen - Distanzbasiert

Flach: beduetet mit Zufallspartitionierung beginnen, iterativ verfeinern

  • Single-pass (inkrementell)
  • Modellbasiertes Clustering
  • K-means (kann fuzzy c-mein sein)

K-Means

Dokumente werden als reelwertige Vektoren angenommen

Cluster basieren auf Zentroiden (zentrum oder Durchschnitt) der Punkte innerhalb eines Clusters c

Neuordnung der Instanzen zu Clustern basiert auf der Distanz zum aktuellen Zentroiden

Objective-Function: Minimiere die Totale Summe  der quadrierten Distanzen  jedes Punkts  zu seinem korrespondierenden Cluster Zentroiden

Das globale Optimum zu finden ist NP-Hard.

K-Means konvergiert garantiert zu einem lokalem Optimum.

Algorithmus:

  • Selektiere K zufällige Dokument (s1,s2,...Sk) als Seeds
  • Solange Clustering konvergiert, oder stoppkriterium eintritt führe aus:
    • for each doc di
      • Assign di to cluster cj sodaß die distanz(xi,sj) minimal ist
      • update alle seeds zum zentroiden jedes Clusters
    • for each cluster cj berechne
      • sj=mu(cj)

Soft clustering (fuzzy c Means)

Üblicherweise wird jede Instanz hart einem Cluster zugeordnet --> erlaubt Zugehörigkeit zu mehrerern Clustern--> Soft clustering ermöglicht das.

Fuzzy C-Means ist eine Methode des clusterin, welche es erlaubt das eine daten zu mehr als einen cluster gehören.

Jede Instanz ist mit einer Wahrscheinlichkeitsverteilung über eine Menge von erforschten Kategorien zuordenbar (siehe Grafik)

die Warhscheinlichkeit aller Kategorien muss 1 ergeben

Expectation Maximation (EM)

K-Means ist spezialfall des EM.

EM=Wahrscheinlichkeits-methode für Softclustering.

Algorithmus:

1. zufälle Zuweisung v. wahrscheinlichkeitskategorie Labels

2. Benutze Standard Naive bayes Trainung jum das Wahrscheinlichkeitsmodell  mit Parameter theta von den gelabelten daten zu lernen

3. bis zur Konvergenz/Stoppkriterum:

Expectation (E-Step) Benutze das naive Bayes Model um P(ci|E) für jede Kategorie und Beispiel zu berechnen, relable jedes Beispiel unter verwendung der Wahrscheinlichkeitswerte als soft-kategorie Labels (basierend auf den vorherig ermittelten Wahrscheinlichkeitswerten)

Maximization (M-Step): Benutze standard naoive Bayes training um die parameter theta zu ermitteln unter Verwendung der neuen wahrscheinlichkeits-kategorielabel.

Semi-supervised Learning

benutze EM in einem semi-supervised Mode durch Lernen von EM sowohl auf labeld als auch auf unlabeld Daten.

Trainiere initiales Wahrscheinlichkeitsmodell auf user-labeled Untermenge von daten anstatt auf willkürlich ausgewählten Daten.

Label der user-labeld werden eingefroren" -> nie relabeled

Labels von unsupervised Daten werden ständig von EM Wahrscheinlichkeit relabled.

Clustering Algorithmen - Hierarchisch

Hierarchisch

Agglomertativ Hierarchisches clustern (HAC)

Agglomertativ Hierarchisches clustern (HAC)

Jedes Dokument formt initial einen Cluster, dann wird wiederholt das näheste Datenpaar verbunden , bis nur ein Cluster übrigbleibt.

Historie des Zusammenführens formt einen Binärbaum oder Hierarchie.

Algorithmus:

1. starte mit allen Instanzen als eigener Cluster

2. Bis es nur noch einen Cluster gibt:

Zwischen allen Clustern ermittle jene zwei Cluster ci und cj, die sich am ähnlichsten sind

Ersetze ci und cj durch einen vereinten Cluster von ci und cj

Laufzeitkomplexität:

alle Ähnlichkeiten von m Instanzen in erster Iteration berechnen O(m2)

in jeder folgenden m2 Merging Operation muss die Distanz zwischen den aktuell erzeugten Cluster und allen anderen clustern berechnet werden daher konstant gehalten werden. Laufzeit daher insgesamt entweder O(m3) oder O(m2 log m) - wenn es clever gemacht wird.

 

 

HAC- Ähnlichkeiten

Single-Link: benutze minimale Ähnlichkeit der Paare

Complete-Link: Benutze maximale Ähnlichkeit der Paare

Zentroid: Clusters dessen Zentroid am meisten cosinusähnlich sind

Average-Link: durchschnittliche Ähnlichkeit aller Paare der gemergten Cluster

Buckshot algorithmus

verbindet HAC u. K-Means (siehe Grafik)

 

Clustering Algorithmen - Andere

Suffix Tree Clustering:

Linear, inkrementell, überlappend

Algorithmus:

1. Cleaning

Stemming, Satzgrenzenerkennung, Satzzeicheneliminierung

2. Suffix Baum Konstruktion

produziert Basis Cluster (interne Knoten), die mit sore welcher auf größe und Phasenscore (welcher anhand dessen Länge und Wortqualität bestimmt wird)  versehen

3. mergen von Basis Cluster

stark überlappenende Zusammenmergen

Self-Organizing-Map (SOM)

Latetn Semantisches Indizieren (LSI):

auch Singular value Dekomposition (SVD), reduziert die Dimensionalität des Vektorraums (siehe Grafik)

Hart oder Weich?

Hart: jedes Dokument gehört zu genau einem Cluster

üblicher in Praxis, einfacher

Weich: ein dok kann zu mehr als einem Cluster gehören

macht sinn bei Applikationen die durchsuchbare Hierarchien haben.

Was ist gutes Clustering?

Interne Kriterien:

  • intra-Klassen Ähnlichkeit hoch
  • inter-Klassen-Ähnlichkeit niedrig
  • vom verwendeten Ähnlichkeitsmaß 

Externe kriterien:

  • Reinheit (Purity) = Rate der dominaten Klassen innerhalb eines Clusters
  • Entropie der Klassen eines Clusters (siehe Grafik)
  • Rand-Index für Paarentscheidungen

Clustervalidierung

Beispiele siehe Grafiken

Schlussfolgerungen zu Text-Clustering

HAC u. K-Means können direkt auf Texte angewendet werden

normalisierte tf/idf gewichtete Vektoren und kosinusähnlichkeiten werden verwendet

Clusteranwendungen in IR:

während des Abrufs werden andere als die initalen dokumente dem Cluster hinzugefügt um den wiederaufruf zu verbessern

clusterung der Ergebenisse des Abrufs, um dem Benutzer ein besser organisiertes Ergebnis zu liefern

automatische erzeugung hierarischer Taxonomien von dokumen zum durchforsten (yahoo..)

 

Lernen