2.2 Indexstrukturen beider Modelle

Werbung
SEMINAR ACTIVE DATA MANAGMENT
Vortrag:
Effizientes Matching von unstrukturierten Profilen
Autor:
Valerie Bures
Datum:
30. Juni 2001
1
EFFIZIENTES MATCHING VON
UNSTRUKTURIERTEN PROFILEN
3
1
3
EINLEITUNG
2 VERGLEICH UND DARSTELLUNG VON INDEXSTRUKTUREN VON
BENACHRICHTIGUNGSSYSTEMEN
3
2.1
3
Grundprinzip beider Modelle
2.2
Indexstrukturen beider Modelle
2.2.1
Dokument- und Profildarstellung
2.2.1.1
Dokument- und Profilvektoren beim Vektorraummodell
2.2.1.2
Dokumente und Profile beim Boolschen Modell
2.2.1.3
Vergleich
2.2.2
Relevanzbewertung
2.2.2.1
Relevanzbewertung beim Vektorraummodell
Die Relevanzbewertung beim Vektorraummodell besteht aus zwei Teilen; der
Ähnlichkeitsbewertung und der Relevanzschwelle.
Die Relevanzschwelle
2.2.2.2
Vergleich
2.2.3
Algorithmen
2.2.3.1
Brute - Force Methode beim Vektorraummodell
2.2.3.2
Brute - Force Methode beim Boolschen Modell
2.2.3.3
Vergleich
2.2.3.4
Profil - Indexierungs (PI) Methode beim Vektorraummodell
2.2.3.5
Die Zählmethode beim Boolschen Modell
2.2.3.6
Vergleich
2.2.3.7
Selektive Profil Indexierungs Methode (SPI) beim Vektorraummodell
2.2.3.8
Die Schlüsselmethode beim Boolschen Modell
2.2.3.9
Vergleich
2.2.3.10 Die Baum Methode des Boolschen Modells
2.2.3.11 Vergleich
2.2.4
Leistungsbewertung beider Modelle
6
6
7
7
7
7
8
8
9
10
10
12
13
13
14
15
2.3
15
Zusammenfassung des Vergleichs
4
4
4
4
5
6
6
2.4
Effizientes Mehr - Profile - Filtern durch Benutzung von endlichen Automaten
2.4.1
Konstruktion eines deterministischen endlichen Automaten
2.4.2
Veränderung eines bestehenden Automaten
2.4.2.1
Hilfsindexe
2.4.2.2
Einfügen
2.4.2.3
Löschen
2.4.3
Komplexe Profile
2.4.3.1
Atomare Profile
2.4.3.2
Boolsche Profile
15
16
17
17
18
18
18
18
18
3
19
ZUSAMMENFASSUNG
2
Effizientes Matching von unstrukturierten Profilen
1 Einleitung
Diese Arbeit wird verschiedene Techniken von Benachrichtigungssystemen
untersuchen und vergleichen.
Benachrichtigungssysteme ermöglichen dem Benutzer Information nach bestimmten
Interessen oder Aspekten zu erhalten. So besteht die Aufgabe eines solchen
Systems im Matchen von eintreffenden Dokumenten auf die bestehenden Profile.
Dabei spielt die Effizienz eine große Rolle, da der Nutzen von
Benachrichtigungssystemen nicht nur vom Informationsgehalt sondern auch von der
Informationsaktualität abhängt.
Um die Bedeutung von Benachrichtigungssysteme erfassen zu können, muss man
sie einordnen in die bestehenden Systeme des traditionellen Information Retrieval.
Information Retrieval Systeme bieten die Möglichkeit in bestehenden Daten
Informationen mittels Anfragen zu finden. Da jedoch die Anzahl und Größe der Daten
beständig steigt, wird das Finden von Informationen wegen der
Informationsüberflutung immer schwieriger. Ob man die gesuchten Informationen
erhält, ist in solchen Systemen nicht nur von der Art der Anfrage (präzise oder nicht)
abhängig sondern vor allem, ob die interne Auswahl (Ranking) auch der
gewünschten entspricht. So erhalten Benachrichtigungssysteme, welche die
Informationen z.B. nach Interessen der Benutzern filtern, immer größere Bedeutung.
Die Anforderungen an ein Benachrichtigungssystem sind jedoch ähnlich denen des
IR. Hier müssen eine große Anzahl von komplexen Profilen verwaltet werden, und
die ankommenden Dokumente sollen möglichst schnell mit diesen verglichen werden
können. Aber auch die Dokumente sind komplex und können in engen
Zeitabständen das System erreichen. Der Unterschied besteht darin, dass man beim
IR die Anfrage auf die bestehenden Daten matcht, hier jedoch ein ankommendes
Dokument auf die bestehenden Profile. Um die fortwährend eingehenden Daten in
begrenzten Zeitspannen abzuarbeiten, muss die Effizienz sehr hoch sein.
Nach der Darstellung der Indexierungstechniken wird dieser Vergleich noch einmal
aufgegriffen.
2 Vergleich und Darstellung von Indexstrukturen von
Benachrichtigungssystemen
Nachfolgend werden die Indexierungstechniken unter dem Vektorraummodell und
Boolschen Modell von Yan und Garcia-Molina vorgestellt und verglichen.
2.1 Grundprinzip beider Modelle
Der Vorgang der Informationsfilterung kann auf verschiedene Arten realisiert werden.
Betrachtet man ein System von Benutzern und Datenquellen, so kann die
3
Informationsfilterung auf der Benutzerseite, bei den Datenquellen oder dazwischen
statt finden. Die Datenverarbeitung auf der Benutzerseite hat den Nachteil, dass das
jeweilige Profil mit allen ankommenden Dokumenten verglichen werden muss, die
das System vielleicht unnötig belasteten. Auf der anderen Seite gibt es genau das
gleiche Problem, nämlich dass alle Profile benötigt werden, um auf der Seite der
Datenquellen zu filtern und so das System belasten. Mit einem
Informationsfilterserver zwischen Datenquellen und Benutzern lässt sich die
Belastung auf beiden Seiten eingrenzen. Der Informationsfilterserver erhält von den
Datenquellen die jeweilig eingehenden Daten und von den Benutzern die Profile.
Dort kann nun der Prozess des Filterns beginnen. Verarbeitet werden meistens
jeweils mehrere Dokumente, was Vor- und Nachteile hat. Wenn viele Dokumente
gleichzeitig ankommen, ist eine gemeinsame Verarbeitung der Dokumente sinnvoll
um die Verarbeitungsleistung auszuschöpfen. Die Antwortzeiten können sich
dadurch aber verlängern. Möchte man diese gering halten, da die Antwort ein
bestimmte Dringlichkeit hat, so müssen die Dokumente doch einzeln verarbeitet
werden. Hier gehen wir erst einmal von letzterer Methode aus. Für den
Filterungsprozess benutzen beide Modelle einen Invertierten Index (bis auf BruteForce Methode) zum Verwalten der Profile. Dieser besteht aus den in den Profilen
enthaltenen Wörtern und hat zu jedem Wort eine Liste von Profilen, die dieses
enthalten. Wenn ein Dokument eintrifft, können alle Wörter des Dokuments im Index
gesucht werden, und man erhält die Profile, die diese enthalten durch die
zugehörigen Listen. Dieses ist eine effiziente Methode um das Matching zu
realisieren. Ob nun ein Dokument auf ein Profil paßt und warum, wird unterschiedlich
entschieden und im Folgenden erklärt.
2.2 Indexstrukturen beider Modelle
2.2.1 Dokument- und Profildarstellung
2.2.1.1 Dokument- und Profilvektoren beim Vektorraummodell
Ein Dokument D im Vektorraummodell wird durch seinen Vektor der Dimension m
definiert, wobei m die Anzahl aller Terme ist. Der Inhalt eines Dokuments wird durch
seine Terme gekennzeichnet. Jeder Term erhält ein Gewicht, welches seine
statistische Wichtigkeit widerspiegelt. Man schreibt D=(w1, w2 ..., wm) , wobei wi das
Gewicht des i-ten Terms ist (0 meint, daß der Term in D nicht vorkommt).
Die Terme eines Dokumentenvektors entstehen, indem erst alle Stopwörter entfernt
werden. Stopwörter sind oft auftretende Wörter von geringer Wichtigkeit. Dann wird
eine Stemmingalgorithmus dazu verwendet alle Wörter auf ihren Wortstamm(den
neuen Term) zu reduzieren. Das Gewicht des Terms wird berechnet, indem die
Termfrequenz (tf) mit der inversen Dokumentfrequenz (idf) multipliziert wird. Der tf
Faktor ist proportional zur Häufigkeit des Terms im Dokument.
Der idf Faktor ist hoch, wenn ein Term in den Dokumenten selten auftaucht, er ist
niedrig, wenn der Term sehr häufig auftritt.
Die Darstellung der Profile ist den Dokumenten sehr ähnlich. Man schreibt ein Profil
als Vektor P=(u1, u2 ..., um).
Die dazugehörigen Gewichte beschreiben hier wiederum die Wichtigkeit des Terms.
2.2.1.2 Dokumente und Profile beim Boolschen Modell
4
Ein Dokument im Boolschen Modell ist eine Kollektion von Wörtern. Diese Kollektion
hat keine weiter spezifizierte Struktur. Um jedoch einige später beschriebenen
Algorithmen auf diese Kollektionen anwenden zu können haben alle Wörter eine
Frequenzverteilung und einen Rang. Die Frequenzverteilung beschreibt wie oft ein
Wort in einem Dokument erscheint. Der Rang ist proportional zum Auftreten der
Wörter in den Dokumenten. Solche Informationen können z.B. aus einer
Dokumentendatenbank gewonnen werden.
Ein Profil P ist eine Menge von unterschiedlichen Wörtern. Es handelt sich hier um
sogenannte konjunktive Profile, da alle Wörter im Dokument erscheinen müssen. Ein
Benutzer kann mehrere Profile haben, und so kann es auch innerhalb des Systems
mehrere identische Profile geben, aber sie sind alle durch eine eindeutige
Identifikationsnummer gekennzeichnet. Disjunktive Profile können mit Hilfe von
DeMorgans Regeln in konjunktive umgewandelt werden.
Beispiel:
Hat man ein Profil P1 mit a ٨ (b ٧ c) so ist dies äquivalent zu (a ٨ b)٧(a ٨ c), was
wiederum äquivalent ist zu zwei Profilen, eines mit (a ٨ b) und eines mit (a ٨ c).
2.2.1.3 Vergleich
Die Dokumentendarstellung beider Modell unterscheidet sich nur geringfügig. Bei
beiden besteht ein Dokument aus einer Menge von Wörtern. Beim Vektorraummodell
hat diese Menge jedoch eine verfeinerte Struktur durch die Vektordarstellung und die
Umwandlung der Wörter in Terme. Zu Wörtern und Terme gehören bei beiden
Modellen eine Frequenzverteilung oder Termfrequenz und ein Rang oder
Dokumentfrequenz. Beide ergeben sich identisch. Jedoch sind Rang und
Frequenzverteilung beim Boolschen Modell keine Eigenschaften der Wörter, die zur
Struktur eines Dokuments gehören, wie bei den Termen. Die Werte im
Vektorraummodell werden zur Berechnung des Gewichts eines Terms im
Dokumentenvektor benutzt. Dieses Gewicht spielt dann bei der Relevanzbewertung
die entscheidende Rolle. Ein Gewicht für die Wörter im Boolschen Modell existiert
nicht und wird auch nicht gebraucht. Rang und Frequenzverteilung werden nur in
einige Algorithmen zum Matchen benutzt.
Durch den Vergleich beider Darstellungen läßt sich leicht sehen, dass sich beide
Modelle in diesem Punkt nur dadurch unterscheiden, dass die Vektordarstellung eine
etwas verfeinerte Struktur der Boolschen Darstellung ist.
Für beide Modelle gilt, dass die Dokumentfrequenz oder der Rang von der Definition
her problematisch im Kontext eines Benachrichtigungssystems ist. Im
Benachrichtigungssystem geht man von einzelnen in das System eintreffende
Dokumente aus, die (zur Vereinfachung hier) sequentiell verarbeitet werden. Über
welche Menge von Dokumenten nun die Häufigkeit des Auftretens eines
Terms/Wortes bestimmt werden soll, wird in den Arbeiten nicht angegeben. Da eine
solche Menge in einem Benachrichtigungssystem schwer zu definieren ist, bildet dies
ein Problem in den Annahmen beider Modelle. Bei beiden Modellen entspricht die
Darstellung eines Profils der eines Dokuments. Man geht beim Boolschen Modell von
konjunktiven Profilen und beim Vektorraum Modell von Profilen mit Gewichten aus,
was für die Ähnlichkeitsbewertung völlig verschiedene Grundlagen bildet.
5
2.2.2 Relevanzbewertung
2.2.2.1 Relevanzbewertung beim Vektorraummodell
Die Relevanzbewertung beim Vektorraummodell besteht aus zwei Teilen; der
Ähnlichkeitsbewertung und der Relevanzschwelle.
Die Ähnlichkeitsbewertung
Die Ähnlichkeit oder auch der Grad der Übereinstimmung von einem Dokument und
einem Profil wird an den Gewichten der übereinstimmenden Terme gemessen.
Gegeben sei ein Dokument D=(w1, w2 ..., wm) und ein Profil P=(u1, u2 ..., um). Das
hier benutzte Kosinusmaß misst die Ähnlichkeit mit folgender Formel:
sim(D,P) =
D * P
|D|*|P|
Hier wird jedoch vorrausgesetzt, dass der Dokument- und Profilvektor gleiche
Längen haben, also Anzahl von Termen. So lässt sich die Formel vereinfachen zu:
sim(D,P) =
D * P
Die Relevanzschwelle
In einer Umgebung des Information Retrievals wird eine Anfrage gegen eine
Dokumentendatenbank gestellt, und alle relevanten Dokumente werden dem
Benutzer zurückgegeben. Diese Dokumente sind geordnet nach der Ähnlichkeit der
Anfrage mit dem Dokument. In einem Informationsfilterungssystem werden viele
Profile mit wenigen eintreffenden Dokumenten verglichen. Hier funktioniert das
Prinzip der Rangordnung nur, wenn eine zeitlich begrenzte Periode angegeben wird,
und diese groß genug ist um eine repräsentative Menge von Dokumenten zu
erhalten. Die Filterungseffektivität (precision und recall) hängt dann von dieser
Menge von Dokumenten ab. Möchte man nämlich eine Rangordnung bilden und
wählt keine repräsentative Menge von Dokumenten so können zwei Fälle auftreten:
Erhält man während einer Periode viele relevante Dokumente, so kann man nur
wenige von diesen in die Rangordnung aufnehmen, da diese über die Gesamtmenge
der Dokumente gebildet werden soll. So werden manche relevante Dokumente in der
Rangordnung gar nicht auftauchen(low recall). Erhält man während einer Periode nur
wenig relevante, so muß man einen gewissen Prozentsatz in die Rangordnung
aufnehmen, und es werden auch viele irrelevante Dokumente in der Rangordnung
enthalten sein.
Eine Alternative ist es den Benutzern die Möglichkeit der Wahl einer
Relevanzschwelle zu geben. Dokumente über der Relevanzschwelle gelten dann als
relevant und die darunter als irrelevant. Somit lassen sich die hereinkommenden
Dokumente bewerten, und die Effektivität hängt nicht mehr von bestimmten
6
Zeitspannen ab. Somit gilt ein Dokument als relevant gegenüber einem Profil, wenn
sim(D,P) größer als die Relevanzschwelle ist.
2.2.2.2 Vergleich
Wie stark ein Dokument zu den gegebenen Profilen paßt, entscheidet beim
Vektorraummodell das beschriebene Ähnlichkeitsmaß. Mit Hilfe der
Relevanzschwelle wird dann entschieden, ob die Ähnlichkeit ausreicht, damit ein
Dokument für ein Profil relevant ist. Ein solche Bewertung des Grads der
Übereinstimmung und der daraus resultierenden Relevanzentscheidung gibt es im
Boolschen Modell nicht, da die Definition konjunktiver Profile aussagt, daß alle
Wörter des Profils im Dokument auftauchen müssen, damit das Dokument auf das
Profil paßt. Das Boolsche Modell benutzt damit die sehr viel einfachere, aber auch
gröbere Methode zu entscheiden, ob ein Dokument relevant ist.
2.2.3 Algorithmen
Im folgenden werden jeweils mindestens drei Algorithmen für beide Modelle zum
Matchen von einem Dokument gegen viele Profile beschrieben und zur Bestimmung
der Relevanz eines solchen Dokuments. Dabei wird angenommen, dass das
Dokument nach Ankunft im System sofort bearbeitet wird. Die Algorithmen sind
darauf beschränkt nur ein ankommendes Dokument zu bearbeiten; Sie lassen sich
jedoch einfach für mehrere Dokumente erweitern. Jeweils zwei der Algorithmen
benutzen als Datenstruktur einen Invertierten Index. Dabei hat jeder/s Term/Wort x
einen Index mit einer invertierten Liste, welche alle Profile enthält, in denen dieser
Index vorkommt. Die invertierten Listen werden als Hashtabelle implementiert.
2.2.3.1 Brute - Force Methode beim Vektorraummodell
Bei der Brute - Force Methode werden alle Profile in Vektordarstellung ohne
Indexstruktur abgespeichert. Alle Profile müssen betrachtet werden, wenn ein neues
Dokument eintrifft. Dazu wird zuerst die Vektordarstellung des Dokuments errechnet.
Nun wird mit Hilfe des Kosinusmaßes die Ähnlichkeit von dem Dokument und jedem
einzelnen Profil festgestellt. Das Dokument ist dann bezüglich eines Profils relevant,
wenn der Ähnlichkeitsgrad über der Relevanzschwelle liegt.
2.2.3.2 Brute - Force Methode beim Boolschen Modell
Wenn ein Dokument eintrifft, wird die Menge der verschiedenen Wörter des
Dokuments bestimmt, und alle Profile werden mit dieser sequentiell verglichen. Ein
Profil (mit konjunktiven Verknüpfungen) paßt dann zu einem Dokument, wenn alle
Wörter auch in der Tabelle vorhanden sind.
7
2.2.3.3 Vergleich
Der Unterschied beider Modelle bei der Brute – Force Methode existiert nur als Folge
der unterschiedlichen Relevanzbewertung (oben besprochen). Ansonsten gleichen
sich beide Methoden.
2.2.3.4 Profil - Indexierungs (PI) Methode beim Vektorraummodell
Um die Zahl von Profilen ,die bei Eintreffen eines Dokuments betrachtet werden
muß, im Vektorraummodell zu reduzieren, wird ein Invertierter Index der Profile
erzeugt. Für jeden Term x werden alle Profile bestimmt, die diesen Term enthalten.
Diese Profile bilden die invertierte Liste des Terms. Diese besteht aus sogenannten
Postings, welche den Kennzeichner des Profils und das Gewicht für den jeweiligen
Term enthalten. Somit wird ein Profil mit p Termen in p Postings in jeweils
verschiedenen Listen aufgeführt werden. Wenn man nun ein ankommendes
Dokument bearbeiten will, so braucht man nur die invertierten Listen der Terme, die
im Dokument vorkommen, betrachten.
Zusätzlich werden noch zwei Listen benötigt, welche die Werte der jeweiligen
Relevanzschwellen und bisher erreichten Bewertungspunkte für das Dokument für
jedes Profil speichern.
Wenn ein Dokument eintrifft, wird die Liste der Bewertungspunkte mit Null initialisiert.
Für jeden Term und dessen Gewicht des Dokuments wird der Invertierte Index dazu
genutzt jedes Profil zu finden, welches den Term enthält. Dann wird der
Bewertungspunkt für dieses Profil mit dem Produkt aus dem Gewicht des Terms im
Profil und dem im Dokument erhöht. Nachdem alle Terme des Dokuments
abgearbeitet worden sind, weiß man, daß das Dokument für die Profile relevant ist,
deren Einträge in der Liste der Bewertungspunkte größer sind als die zugehörigen
Einträge in der Liste der Relevanzschwellen.
Beispiel:
Profil
P1
P2
P3
Relevanzschwelle
0,25
0,20
0,25
Invertierter Index
A
--------------B
--------------C
--------------D
--------------E
--------------F
--------------G
--------------H
--------------I
--------------J
---------------
P1
P1
P1
P1
P1
P3
P3
P3
P3
P3
0,46
0,14
0,17
0,62
0,59
0,17
0,42
0,11
0,10
0,72
P2
P2
P3
0,95
0,30
0,14
P3
0,49
Nimmt man an es trifft ein Dokument D=((b,0.15),(d,0.32),(f,0.21),(h,0.14),(j,0.90))
ein, so erhält man folgende Bewertungspunkte:
8
Profil
Bewertungspunkte
P1
P2
P3
0,15*0,14 + 0,32*0,62=0,2194
0,15*0,30=0,0450
..=0,6991
Relevanzs
chwelle
0,25
0,20
0,25
Da nur P3’s Bewertungspunkte über der Relevanzschwelle passt dieses Profil auf D.
Diese Methode ist denen im Information Retrieval sehr ähnlich. Der Unterschied
besteht nur darin, dass eine Rangfolge der Dokumente einer Anfrage erstellt wird,
und keine Relevanzschwelle benutzt wird.
2.2.3.5 Die Zählmethode beim Boolschen Modell
Auch die Zählmethode beim Boolschen Modell versucht die Zahl der betrachteten
Profile einzugrenzen. Wiederum wird ein Invertierter Index genutzt. Es wird in einer
Hashtabelle jedem Wort w eine invertierte Liste von Profilen zugewiesen, welche
dieses enthalten. Das Auftreten eines Profils in einer invertierten Liste bedeutet, daß
mindestens ein Wort des Dokuments auch im Profil vorkommt, nämlich das der
invertierten Liste. Diese Beobachtung nutzt die Zählmethode. Wenn man für alle
Wörter des Dokuments die Vorkommen von einem Profil in den invertierten Listen
dieser Wörter zählt, so muß diese Anzahl gleich der Anzahl aller Wörter des Profils
sein, wenn das Profil für das Dokument relevant sein soll. Denn nach Definition des
konjunktiven Profils müssen alle Wörter des Profils im Dokument vorkommen. Es
werden zwei Listen TOTAL und COUNT benutzt, welche so viele Einträge, wie es
Profile gibt, besitzen. In der Liste TOTAL wird die Gesamtanzahl der Wörter des
jeweiligen Profils und in COUNT die Zahl der Vorkommen der Profile in den
invertierten Listen gespeichert. Wenn ein Dokument eintrifft, wird COUNT mit Null
initialisiert. Dann wird die Menge von verschiedenen Wörtern festgestellt. Jedes
einzelne Wort hat dann einen Eintrag in der Invertierten Liste und eine zugehörige
invertierte Liste. Mit Hilfe derer werden dann die Einträge von COUNT eingetragen.
Ein Profil paßt zu dem Dokument, wenn seine Einträge von COUNT und TOTAL
übereinstimmen.
Beispiel:
Profil
P1
P2
P3
P4
P5
TOTAL
2
2
3
2
4
COUNT
0
0
0
0
0
9
Invertierter Index
A
--------------B
--------------C
--------------D
--------------E
--------------F
---------------
P1
P1
P5
P2
P3
P4
P2
P4
P3
P3
P5
P5
P5
Nimmt man an, es trifft ein Dokument D=acafbc ein, so ist die Menge der
verschiedenen Wörter: a,b,c,f .
So erhält man folgende Bewertungspunkte:
Profil
P1
P2
P3
P4
P5
TOTAL
2
2
3
2
4
COUNT
2
1
1
2
2
Da P1’s und P4’s Werte von TOTAL und COUNT übereinstimmen, sind diese für
das Dokument passend.
2.2.3.6 Vergleich
Bei der PI Methode wird ein Dokument gefiltert, indem für jeden Term des
Dokuments der Eintrag im Invertierten Index gesucht wird. Dann wird für jedes in der
Liste des Eintrages vorkommende Profil das Produkt aus dem dort angegebenen
Termgewicht des Profils und dem Termgewicht des Dokuments bestimmt. Das
Produkt wird zu den bisherigen Bewertungspunkten des Profils aufaddiert.
Zum Schluß sind alle die Profile relevant, deren Bewertungspunkte höher als die
Relevanzschwelle sind. Schaut man sich vergleichsweise die Zählmethode des
Boolschen Modells an, so stellt man folgendes fest. Übergibt man beiden Methoden
das gleiche Dokument und gleiche Profile, so arbeitet die PI Methode genauso wie
die Zählmethode, wenn man alle Gewichte sowohl vom Dokument als auch von den
Profilen auf Eins setzt. So ist die Technik beider Methoden fast identisch. Der einzige
Unterschied besteht darin, daß die Bewertungspunkte höher als die
Relevanzschwelle und die Werte von COUNT gleich denen von TOTAL sein müssen.
Somit läßt sich die PI Methode auf die Zählmethode reduzieren und hat damit also
eine etwas verfeinerte Form der Zählmethode.
2.2.3.7 Selektive Profil Indexierungs Methode (SPI) beim Vektorraummodell
Hier werden die Profile nach enthaltenen Termen indexiert. Dabei werden jedoch
nicht alle Terme in die Listen aufgenommen, sondern es wird wie nachfolgend
beschrieben selektiert.
10
Beispiel:
Betrachtet man das Profil P1 in dem vorhergehenden Beispiel, so sieht man, dass,
wenn ein Dokument eintrifft, welches nur den Term b enthält, das Produkt aus dem
Gewicht von b des Profils (ist 0,14) und des Dokuments (max. 1,0) nicht ausreicht um
über die Schwelle zu gelangen, d.h. relevant zu sein. So wie dieser Term kann es
mehrere Terme des Profils geben, die zu geringe Gewichte haben, um ein beliebiges
Dokument relevant für das Profil zu machen. Solche Terme werden bedeutungslose
Terme genannt.
Aufgrund dieser Beobachtung sollte man die Terme, die man für ein Profil indexiert
selektieren. Damit erspart man sich die Referenz des Index auf die invertierte Liste.
Man muß aber diesen Term in die Listen der bedeutungsvollen aufnehmen.
Welche Terme sind nun bedeutungslos?
Es sei ein Profil P=(u1, ..., up) gegeben, dann ist ein Subvektor Ps=(ui1, ..., uis) mit
1≤i1<..<is≤p genau dann bedeutungslos bezüglich einer Relevanzschwelle r, wenn
für irgendein Dokument D gilt sim(D,Ps) ≤ r.
Doch es kann nach dieser Definition mehrere bedeutungslose Subvektoren geben.
Um die Anzahl von Index Postings zu reduzieren muß man jedoch wissen, welcher
Subvektor gewählt wird. Eine Möglichkeit wäre es den zu nehmen, der die meisten
niedrig idf - Terme enthält. Da niedrig idf - Terme sehr häufig vorkommen in
Dokumenten, würde man sehr viel Zeit sparen, wenn man diese nicht ins Posting
nimmt. Denn das sind die Terme, die für jedes Dokument am häufigsten betrachtet
werden. Ihre Gewichte reichen jedoch nicht aus, um die Relevanzschwelle zu
überschreiten. So sind diese Terme also abhängig von mindestens einem anderen
Term, der hier als bedeutungsvoll definiert wurde. Es genügt somit nur diesen Term
zu berechnen und alle anderen, die von ihm abhängig sind nicht immer wieder
unnötig zu betrachten.
Es sei ein Profil P=(u1, ..., up) gegeben, dann ist ein Subvektor Ps=(ui1, ..., uis) mit
1≤i1<..<is≤p genau dann der bedeutungsloseste bezüglich einer Relevanzschwelle
r, wenn er die größte Anzahl von niedrig idf - Termen von allen bedeutungslosen
Subvektoren hat bezüglich r.
Wenn man annimmt, dass alle idfs verschieden sind, so hat jeder Profilvektor einen
eindeutigen, am stärksten bedeutungslosen Subvektor zu einer gegeben Schwelle.
Beispiel:
Profil
P1
P2
P3
Relevanzschwelle
0,25
0,20
0,25
11
Invertierter Index
A ----- P1 0,46
B ----- P1 0,14
C
D ----- P1 0,62
E ----- P1 0,59
F ----- P3 0,17
G ----- P3 0,42
H
I
J ----- P3 0,72
2
0
b
0,14
c
0,17 P2
0,95 0
2
2
3
3
b
b
c
c
0,14
0,14
0,14
0,14
c
c
h
h
0,17
0,17 P3
0,11 i
0,11 i
0,49 3
0,10
0,10
3
c
0,14
h
0,11 i
0,10
c 0,14 h 0,11
i 0,10
Für das Profil P3 ist also des Subvektor (c,h,i) der bedeutungsloseste.
Nun weiß man, wie die Profile selektiv indexiert werden. Für jedes Profil kann man
den am stärksten bedeutungslosen Subvektor zur gegebenen Schwelle bestimmen.
Das Profil wird dann in die invertierten Listen der bedeutungsvollen (relativ zu dem
bestimmten Subvektor) Terme aufgenommen. Jedes Posting enthält einen
Kennzeichner des Profils, das Gewicht des Terms (in dessen invertierter Liste man
sich gerade befindet), die Anzahl der bedeutungslosen Terme, sie selbst und deren
Gewichte im Profil.
Wenn nun ein Dokument eintrifft, wird die Vektordarstellung berechnet, und die Liste
der Bewertungspunkte aller Profile mit Null initialisiert. Nun werden nacheinander alle
Terme des Dokuments durchgegangen. Für jeden Term sucht man den Index im
Invertierten Index. Die invertierte Liste des Index enthält jetzt die Profile, die diesen
Term enthalten. Doch dort findet man zusätzlich die bedeutungslosen Terme des
Profils. So werden die Bewertungspunkte des jeweiligen Profils auf zwei Arten
berechnet. Ist der Bewertungspunkt für das Profil noch Null, so wird dieser durch die
Summe aller Produkte aller bedeutungslosen Termgewichte von Profil und Dokument
und des Indexterms, dessen Liste gerade betrachtet wird, erhöht.
Ist der Bewertungspunkt ungleich Null, so wurde die Berechnung der
bedeutungslosen Terme schon durchgeführt, und es brauch nur noch das Produkt für
den Indexterm, dessen Liste gerade betrachtet wird, addiert zu werden.
Relevante Profile sind zum Schluss wieder die, deren Bewertungspunkte größer als
ihre Schwelle sind.
2.2.3.8 Die Schlüsselmethode beim Boolschen Modell
In der Zählmethode erscheint ein Profil mit k Wörtern k-mal in den invertierten Listen.
Hier erscheint ein Profil nur in der Liste eines seiner Wörter. Dieses Wort wird
Schlüssel genannt. Man kann diesen Schlüssel zufällig wählen (Zufällige
Schlüsselmethode). Wenn die Frequenzverteilung der Wörter im Dokument bekannt
ist, kann man die Ranking Schlüsselmethode anwenden, bei der das Profil bei dem
Wort gespeichert wird, welches den niedrigsten Rang hat. Die Idee dabei ist, dass
man davon ausgeht, dass die Wörter mit hoher Frequenz in weniger Profilen
auftauchen, und so weniger Profile pro Dokument betrachtet werden müssen. Für
beide Methoden wird die Menge der verschiedenen Wörter des Dokuments erstellt
sobald ein Dokument eintrifft. Aus dieser wird der Index mit den invertierten Listen für
jedes Wort aufgebaut. Jetzt werden alle Wörter des Index durchgegangen. Findet
12
man eine invertierte Liste, welche ein Profil enthält, so prüft man, ob alle Wörter des
Profils auch in der Menge der Wörter enthalten sind. Ist dem so, so paßt das Profil
auf das Dokument.
Beispiel:
Invertierter Index
A
--------------- P1
B
--------------- P4
C
--------------- P5
D
E
F
1
1
3
b
f
d, e, f
P2 1 d P3
2 d, e
Nimmt man an, es trifft ein Dokument D=acafbc ein, so ist die Menge der
verschiedenen Wörter: a,b,c,f .
Da P1’s Wörter a und b in der Menge der verschiedenen Wörter des Dokuments
vorkommen paßt dies also.
2.2.3.9 Vergleich
Die SPI Methode verwaltet nur dann Profile in der invertierten Liste eines Terms,
wenn deren Termgewichte groß genug sind, um eine Rolle in der
Relevanzbewertung spielen zu können. Damit werden Berechnungen verhindert, die
überflüssig sind, weil die berechneten Werte nie reichen um die Relvanzschwelle zu
erreichen. Auch bei der Schlüsselmethode werden die Terme, die hier jedoch jeweils
das ganze Profil enthalten, selektiert. Diese Schlüsselterme werden jedoch nicht
nach ihrer Bedeutung, die die SPI Methode an den idf- Werten misst, selektiert,
sondern nach zwei Methoden. Bei der Zufälligen Schlüsselmethode ist der
Schlüsselterm beliebig gewählt, und bei der Ranking Methode ist es der Term mit
niedrigstem Rang. Beide Ansätze versuchen also durch Reduzierung von Termen
überflüssige Berechnungen oder Vergleiche zu vermeiden. Wiederum ist die Auswahl
der Terme beim Boolschen Modell durch einfachere Kriterien realisiert worden, was
für diesen Ansatz ein Problem darstellen kann. Die Annahme, der Term mit
niedrigstem Rang würde in besonders wenigen Profilen auftauchen und man müsse
so weniger Dokumente betrachten, kann richtig sein. Gilt dies jedoch nicht, so kann
man unter Umständen viel mehr Aufwand haben als bei der Zählmethode. Das
gleiche gilt im Besonderen für die beliebige Auswahl des Schlüssels.
2.2.3.10
Die Baum Methode des Boolschen Modells
Diese Methode beruht auf der Annahme, dass es eine Menge von Benutzern mit
gleichen Interessen gibt, d.h. deren Profile besitzen auch gleiche Wörter. Geht man
davon aus, so kann man die Profile effizienter speichern als in Listen. Eine
Möglichkeit sind Baumstrukturen. Betrachtet man ein Profil P mit k Wörtern w1, w2 ...,
wk so ist w1, w2 ..., wi ein Präfix von P mit 0 ≤ i ≤ k und wi+1 ..., wk der zugehörige
Postfix. Somit sind (), (a) und (a,b) alle Präfixe von Profil (a,b) mit den Postfixen (),
(b), (a,b). Zusätzlich ist auch w1, w2 ..., wj ein Präfix von w1, w2 ..., wi mit j ≤ i . Ein
13
Präfix bestimmt P eindeutig, wenn i = k oder es kein anderes Profil gibt, das P gleicht
und w1, w2 ..., wi als Präfix hat. Der kürzeste Präfix, der P eindeutig bestimmt, ist der
identifizierende Präfix des Profils. Ein identifizierender Präfix kann nur dann für zwei
Profile gelten, wenn sie identisch sind. Die identifizierenden Präfixe werden in einem
Baum verwaltet. Die Wurzel hat das Level 0. Ein Knoten auf Level i gehört zu einem
Präfix s= (w1, w2 ..., wi ) von den identifizierenden Präfixen. Alle Kinder dieses Knoten
gehören zu denen Präfixen (w1, w2 ..., wi ,v). Ein Knoten n hat folgende Felder:
Kinder, mit einer Liste von Paaren(v,pn(v)) , wobei v das den Präfix von n
erweiternde Wort ist und pn(v) der Pointer auf das Kind; Profile, deren
identifizierender Präfix s ist (sie müssen alle gleich sein!); eine Länge, die die Länge
des Postfix der Profile für s angibt; und den Postfix selbst.
Beispiel: Profile: P1=(a, b), P2=(a, d), P3=(a, d, e), P4=(b, f), P5=(c, d, e, f)
b
P1
a
d
e
P3
b
P4
P2
c
P5
Wenn man sich die Baumstruktur anschaut, sieht man die Ähnlichkeit zu den
invertierten Listen. Wenn ein Dokument eintrifft, wird zuerst die Menge der
verschiedenen Wörter des Dokuments erstellt. Mit Breitensuche wird der Baum nun
nach den Profilen durchgegangen. Sind nun alle Wörter des Profils im Dokument
enthalten dann paßt das Dokument auf das Profil. Diese Struktur spart besonders
dann Platz, wenn es viele gleiche Präfixe gibt.
2.2.3.11
Vergleich
Zur Baummethode des Boolschen Modells gibt es in der Arbeit zum
Vektorraummodell keine vergleichbare Methode. Die ist wahrscheinlich darin
begründet, dass der Baum aus den Präfixen der Profile entsteht, welche aber nur in
diesem Modell aufgrund der konjunktiven Profile eine Bedeutung haben. Ein Präfix
von einem Profil mit gewichteten Termen hat im Vektorraummodell wenig Bedeutung,
da aufgrund der Relevanzschwelle bewertet wird. Die Baummethode beruht auf der
Annahme viele Benutzer mit ähnlichen Interessen zu haben. Je stärker die Annahme
erfüllt wird desto effizienter wird die Methode. Jedoch gilt dies leider auch für die
andere Richtung. So ist ein Benachrichtigungssystem mit dieser Methode nur für
solche Zwecke geeignet, wo diese Annahme besondere Begründung hat. Allgemein,
wenn man nicht von der Annahme ausgeht, ist diese Methode eher ineffizient.
14
2.2.4 Leistungsbewertung beider Modelle
Der Speicherbedarf von Indexstrukturen wie dem Invertierten Index hängt davon ab,
ob die invertierten Listen als zusammenhängende Blöcke oder individuell
abgespeichert werden. Nur im ersten Fall ist der Speicherplatzbedarf geringer als
bei der Brute – Force Methode. Dafür ist der Zeitbedarf bei dieser deutlich höher als
bei den anderen. Auch die Zahl der I/O Zugriffe ist bei den Indexierungsmethoden
geringer. Vergleicht man die PI und SPI Methode des Vektorraummodells, so ist die
SPI Methode immer leistungsfähiger in Bezug auf die CPU Prozesse, besonders
wenn der Hauptspeicher groß genug ist den ganzen Index zu halten. Innerhalb der
Methoden des Boolschen Modells zeigt sich, dass die Ranking Methode besonders
leistungsfähig ist, und die Baummethode sehr viel Platz benötigt.
2.3 Zusammenfassung des Vergleichs
Jeder der hier besprochenen Vergleichspunkte bestätigt die Annahme, dass das
Vektorraummodell eine Erweiterung oder Weiterentwicklung des Boolschen Modells
ist. Sowohl die Indexstrukturen als auch die Algorithmen wirken im Vektorraummodell
verfeinert und präziser auf die jeweilige Problemstellung angepaßt. Auch die
Verfassungsdaten bestätigen diese These. So kann ich abschließend kaum von
wirklichen Unterschieden der Ansätze beider Modelle sprechen. Der Vergleich
beschränkte sich darauf herauszufiltern in welchen Punkten das Vektorraummodell
eine gewisse Erweiterung besitzt. Aufgrund dessen unterscheidet sich auch die
Leistungsbewertung beider Modelle nur geringfügig, und sie ist hier
zusammengefasst.
Im Vergleich zu den sehr ähnlichen Modellen von Yan und Garcia - Molinea stellt die
Arbeit von Lukas Faulstich einen ganz anderen Ansatz dar.
2.4 Effizientes Mehr - Profile - Filtern durch Benutzung von
endlichen Automaten
Auch hier geht es um das Matchen eines Dokuments auf ein Profil. Der Schwerpunkt
dieser Technik liegt im Substring Matching. Von einem gesuchten Wort (hier ein
Profil) wird ein deterministischer endlicher Automat konstruiert, und das Dokument
wird diesem Automaten übergeben. Eine kleine Menge von einfachen Profilen kann
dabei gleichzeitig überprüft werden. Mit einfachem Profil wird hier ein Profil mit
wenigen oder sogar nur einem Wort bezeichnet, wobei das aber leider nicht genauer
definiert ist. Im folgenden wird dargestellt, wie solche Automaten konstruiert werden,
wie man sie erweitern kann, falls sich bei den Profilen etwas ändert, und die
Behandlung von komplexeren Profilen.
Sei A ein endliches Alphabet und w=a1 ... am є A* ein Wort über A. Sei prefixes(w)
die Menge von Präfixen und suffixes(w), die der Suffixe. Beide Mengen enthalten das
15
Wort selbst und das leere Wort. Die Menge der echten Präfixe, d.h. ohne das Wort
selbst, sei ppreffixes(w) und die der Suffixe psuffixes(w).
2.4.1 Konstruktion eines deterministischen endlichen Automaten
Sei W={w1, ..., wn} als Teilmenge von A* eine Menge von Wörtern über A. Sie werden
Schlüsselwörter genannt. Alle Wörter haben einen eindeutigen Index aus N. Es wird
eine generalisierte sequenzielle Maschine GSM M konstruiert, die ein Wort w є A* in
eine Sequenz M(w) є N* von Indexen i in ihrer Reihenfolge aller Wörter wi, enthalten
in w, umwandelt. Dieser Automat lässt sich mit einer Methodik in einen DFA wandeln
und wieder zurück, was sagt, dass es sich bei einem GSM um einen
deterministischen endlichen Automat handelt.
Alle Zustände des GSM sind akzeptierend. Eine Kante zwischen zwei Zuständen q
und q’ hat die Beschriftung (i) mit einem Symbol a des Alphabets, wenn gilt (qa -> lq’)
mit l als das leere Wort und die Beschriftung (ii) mit a|o, wenn gilt (qa -> oq’) mit o ist
nicht das leere Wort.
Sei Q=pprefixes(W), also die Menge aller echten Präfixe von Wörtern von W. So
lässt sich die Funktion starts: A*->P(Q) definieren mit starts(w)=suffixes(w)∩Q,
welche die Menge von W-Präfixen, die als Suffix von w vorkommen, bestimmt. Der
längste Suffix von einem Wort w, der auch ein W-Präfix ist, ist definiert mit
maxstart(w) = max(start(w)). Ausserdem gilt, dass starts(w) Teilmenge von
suffixes(maxstart(w)) ist (Beweis im Originalpaper). Die Funktion tailocc: A*->N*
bestimmt alle Indexe aller Wörter in W die als Suffix von einem Wort vorkommen
nach der Größe geordnet durch tailocc(w)= i1 ... ik mit {wi1, ..., wik} =suffixes(w) ∩W, |
wij | ≤ | wij+1| für j=1,..k-1.
Nun kann der deterministische GSM M=(A, N, Q, q0, P ) mit Eingabealphabet A,
Ausgabealphabet N, Menge der Zustände Q, Startzustand q0 = l (l ist leeres Wort)
und Übergangsregeln P = Ptrans U Pacc mit
Ptrans = {(q)a -> o(w) | q є Q, a є A, w = maxstart(qa), o = tailocc(qa) }
Pacc = {(q) -> l | q є Q }, l ist leeres Wort,
konstruiert werden.
(Die Syntax (w) sagt aus, dass w als einzelnes Symbol von Q behandelt wird und
nicht als ein Wort über A.)
a
Beispiel:
b
a
ab
a
a
c,d
d
a
l
c|1
a
c,d
b
b
d|2,c
d
b
c
bc
b
b
16
Im Beispiel sieht man den Automaten MW für W = {abc, bcd}. Die Menge Q = {l, a, ab,
b, bc} enthält alle echten Präfixe von abc und bcd. Die Konstruktion des Übergangs
für den Zustand q = ab geschieht wie folgt: Für das Eingabesymbol a = a wird qa =
aba angenommen. Da kein Schlüsselwort in qa vorkommt ist die Ausgabe o =
tailocc(qa) das leere Wort. Der Zustand (a) ist ein Suffix von qa, und so gibt es einen
Übergang (ab)a -> l(a) in Ptrans. Ähnlich verhält es sich mit Eingabesymbol a = b,
welches als Ausgabe das leere Wort hat und den Nachfolgezustand (b). Bei a = d
gibt es auch keine Ausgabe, und der nachfolgende Zustand q’= maxstart(abd) ist der
Zustand (l) solange kein Schlüsselwort mit einem der Suffixe abd, bd oder d von qa
beginnt. Bei Eingabesymbol a = c gilt qa = abc = w1 є W. Hier wird o = 1
ausgegeben, da der Index von w1 1 ist. Außerdem qa endet im Präfix bc von w2,
welches den nachfolgenden Zustand q’ = (bc) erfordert. So wurde der Automat
konstruiert.
2.4.2 Veränderung eines bestehenden Automaten
Da eine große Anzahl von Profilen von verschiedenen Benutzern verwaltet wird,
kann es nötig sein den Automaten zu aktualisieren. Es können Profile hinzukommen
oder auch wegfallen.
2.4.2.1 Hilfsindexe
Für die Realisierung von Aktualisierungen eines Automaten braucht man einige
Indexe.
 Anzahl der überlappenden Präfixe:
Wenn ein Element w von W gelöscht werden soll, so können nur die Präfixe von
Q gelöscht werden, die nicht zur gleichen Zeit auch noch Präfix von einem
anderen Wort von W sind.
Um zu vermeiden, dass man dies einzeln nachprüfen muß, so speichert man von
wie vielen Elementen von W ein Zustand q є Q ein Präfix ist. Das bedeutet, dass
wir Q als Multimenge betrachten, welche das Vielfache eines Elements besitzt
bestimmt durch die Funktion overlap: A* -> N mit overlap(q) = |{w є W | q є
pprefixes(w) }|. Die Anzahl overlap(q) kann mit dem zugehörigen Zustand des
Automaten M abgespeichert werden. Um nun diese Anzahl eines Wortes w für
einen Löschvorgang nachzusehen, simuliert man die Übergabe von w an den
Automaten und hört bei dem Zustand auf, der w gleicht. So kennt man dann
overlap(w) und weiß ob der Präfix zu löschen ist, oder nicht.
 Verbesserung von tailocc
Die Funktion tailocc listet alle Wörter tailocc(w) von W auf, die Suffix von w sind.
Zur Ausführung dieser Funktion müssen alle Elemente von W betrachtet werden,
was durch einen Trie TW mit den umgedrehten Wörtern wR mit w є W verbessert
werden kann. Für jeden Index i speichert der Trie an der Stelle wiR den Index i.
Den Wert von tailocc(w) kann man berechnen indem man den Baum solange
möglich entlang wR traversiert und alle Indexe auf diesem Weg zurückgibt.

Verbesserung von starts
17
Um starts(w) zu berechnen müssen alle W-Präfixe von Q betrachtet werden, was
durch einen Trie TQ, der die Menge QR mit den umgedrehten W-Präfixen
verwaltet, verbessert werden kann. Für jeden Zustand q є Q speichert der Trie an
der Stelle qR den Zustand q. Den Wert von starts(w) kann man berechnen, indem
man den Baum entlang wR traversiert solange möglich und alle Zustände auf
diesem Weg zurückgibt. Der letzte Eintrag zeigt zum größten W-Präfix q, der ein
Suffix von w ist.
2.4.2.2 Einfügen
Nun kann man ein neues Schlüsselwort wn+1 einfügen, indem man die Menge der
Schlüsselwörter um wn+1 erweitert und auch den Trie TW aktualisiert. Es werden
alle Präfixe und die Länge des maximalen Präfix von wn+1, der schon ein W-Präfix
ist, bestimmt. Dies kann man wieder tun, indem man wn+1 dem Automaten MW
übergibt und schaut wie lange die Eingabe vorhanden ist. Jetzt kann man auch den
Automaten aktualisieren, indem man die alte Menge von Zuständen um die echten
Präfixe von wn+1 erweitert. Dazu werden zuerst alle Regeln betrachtet, die zwar jetzt
neu sind jedoch keine Veränderung am Automaten bewirken. Dann werden alle
Regeln verändert, die jetzt zu einem der neuen Zustände zeigen.
2.4.2.3 Löschen
Löschen kann auf zwei Arten geschehen. Erst einmal kann die Ausgabe des Index,
die ausgegeben würde, wenn das zu löschende Wort gefunden ist, gelöscht werden.
Es kann aber auch der Automat selbst verändert werden. Dazu müssen die Werte
von overlab und alle Regeln, die zu gelöschten Zuständen führen, verändert werden.
2.4.3 Komplexe Profile
Erweiterungen bei Profilen können sein:
2.4.3.1 Atomare Profile
Atomische Profile haben die Form: w, w*, *w, *w* und w ist ein Wort aus dem
Alphabet A. Solche Profile werden wie folgt gematcht: Das Alphabet wird um den
Leerzeichenoperator (_)erweitert. Dann werden die Profile in der Form w, _w, w_,
_w_ gespeichert. Nun wird der Automat konstruiert wie beschrieben. Die Eingabe
des Automaten wird vorher noch durch ein angehängtes und vorgestelltes _ Symbol
erweitert. Mehrere Sequenzen von Leerzeichen werden durch eins ersetzt. Dann
lässt sich der Automat wie gewohnt nutzen.
2.4.3.2 Boolsche Profile
Boolsche Profile haben die Form: p, p1 and p2, p1 or p2, not p, wobei p, p1 und p2
einzelne Profile sind. Hier ist die offensichtlichste Lösung einfach jedes einzelne
Profil innerhalb der Verknüpfung mit einem Automaten parallel zu verarbeiten und die
18
Ergebnisse dann zu verknüpfen. Das Problem dieses Ansatzes ist, dass man für
jedes einzelne Boolsche Profil einen eigenen Automaten braucht. Es gibt noch
andere Ansätze. Ein Ansatz für ein GSM ist für jeden Ausgabeindex eines Profils
eine Liste zu verwalten, die die Automaten der Boolschen Profile enthält, in denen
der Index auch eine Relevanz besitzt. Aber auch bei dieser Lösung müssen alle
Automaten aus so einer Liste ausgeführt werden. Somit wäre die optimale Lösung
ein Automat der mehrere Boolsche Profile gleichzeitig bearbeiten kann. Eine
detaillierte Angabe zur Realisierung eines solchen Automaten wurde in der Arbeit
nicht gemacht. Das Problem eines solchen Automaten ist jedoch, dass die Anzahl
der Zustände das Kartesische Produkt der Zustände der Automaten für einzelne
Boolsche Profile ist. Diese kombinatorische Entwicklung ist speichertechnisch schwer
realisierbar, da Zustände nicht mehr in einzelnen Variablen abgespeichert werden
können. Somit wurden Erweiterungsmöglichkeiten vorgestellt, welche jedoch bisher
eher Ansätze sind als konkrete Lösungsvorschläge.
3 Zusammenfassung
Hier wurde eine Methode zum simultanen Matching in linearer Zeit von einer Menge
von gesuchten Wörtern gegen ein eintreffendes Dokument vorgestellt. Zusätzlich
wurde erläutert wie man den Automaten der Wörter erweitern und verändern kann
und welche Arten von Profilen verarbeitbar sind. Der Vergleich dieses Ansatzes mit
den Modellen von Yan und Garcia-Molinea wird sich auf die Anwendungs- und
Erweiterungsmöglichkeiten sowie die Leistungsfähigkeit konzentrieren, da die
Ansätze strukturell keine Gemeinsamkeiten vorweisen.
Um die Leistungsfähigkeit und den Platzbedarf zu bewerten wird die Konstruktion
eines Invertierten Index und eines Automaten verglichen. Um einen Vergleich mit
gleicher Ausgangssituation durchführen zu können, müsste angenommen werden es
handelt sich nur um Profile mit einem Wort, da dies wie später beschrieben eine
grundlegende Annahme für den Ansatz von Faulstich ist. Dies macht jedoch den
Invertierten Index sinnlos, denn das meint eine Tabelle von p Indexen mit einer
invertierten Liste von jeweils einem Profil, wenn man p Profile mit jeweils einem Wort
hat. Es ergäbe sich also ein Speicherbedarf von 2*p = O(p) und eine lineare
Konstruktionszeit. Für p Profile mit maximal w Wörtern ergibt sich jedoch eine
Tabelle von maximal p*w Indexen mit jeweils invertierten Listen von maximal p
Profilen. Dies ergäbe einen Speicherbedarf von (p*w)*p = O(p2*w) und mindestens
polynominelle Zeit mit einem naiven Konstruktionsalgorithmus. Die Konstruktion
eines Automaten benötigt auch polynominelle Zeit wegen der Präfixe, jedoch handelt
es sich hier um einfache Profile. Da der Speicherbedarf von der Zustandszahl des
Automaten abhängt ist, ergibt sich dieser hier für p Profile von einem Wort aus der
Anzahl der verschiedenen Präfixe der Wörter. Ein Vergleich kann hier also nur
schwer durchgeführt werden, da die Konstruktionszeit und der Platzbedarf von
unterschiedlichen Parametern abhängen und auf unterschiedlichen Annahmen
beruhen. Dies gilt auch für die Verarbeitungszeit eines Dokuments auf den
bestehenden Strukturen. Diese hängt jedoch auch noch von den benutzen
Algorithmen ab (Abschnitt 2.2.4).
Der folgende Vergleich der Erweiterungs- und Anwendungsmöglichkeiten wird die
Unterschiede der Ansätze näher betrachten. Mögliche Erweiterungen eines
19
Benachrichtigungssystems können Phrasensuche, der Proximity Operator, Substring
Matching und Boolsche Profile sein.
Die Modelle von Yan und Garcia-Molinea sind nicht für Informationsfilterung nach
Phrasen geeignet. Die Wörter eines eingetroffenen Dokuments werden in einer
Menge oder als Vektor verwaltet, und so gibt es innerhalb des Systems keine
Information mehr darüber, welche Position diese im Dokument hatten. Die Angabe
von Phrasen in Profilen ist auch deshalb nicht möglich, da die Wörter einzeln gesucht
werden. Es lassen sich gewisse Erweiterungen eines IR Systems wie z.B. der
Proximity Operator nicht effizient realisieren. Selbst wenn man die hier gegebenen
Strukturen eines Dokuments um die Angabe der Position erweitern würde, ist die
Indexstruktur des Invertierten Index ineffizient. Um die Nähe zweier Wörter zu
bestimmen müssen sehr viele Vergleiche der Position gemacht werden. Dies steht im
Gegensatz zu dem Ansatz von Faulstich, wo mit den Indexen der Wörter gearbeitet
wird, was bedeutet, dass Phrasensuche und ähnliches leichter möglich wird. Man
könnte also ein Wort suchen unter der Bedingung, dass der Index eines anderen
Wortes in der Nähe ist. Dies für die Automaten zwar nicht vorgesehen aber möglich.
Einen großen Vorteil des Ansatzes bildet das Substring Matching. Gibt es diese
Möglichkeit so ist die Chance das gesuchte Wort im Dokument zu finden viel höher,
als wenn zwei gleiche Wort nur durch verschiedene Prä- oder Suffixe nicht als solche
erkannt werden. Beim Vektorraummodell versucht man dieses Problem zu
reduzieren indem aus den Wörtern Terme gemacht werden, die nur noch den
Wortstamm enthalten. Dies bedeutet jedoch nur eine Annäherung. Versucht man bei
den Modellen wirklich ein Substring Matching zu realisieren, so müßte man zu jedem
Wort alle Substrings speichern, da immer auf Gleichheit geprüft wird, was einen
enormen Aufwand bedeuten würde. Ähnlich verhält es sich mit der Integration von
Profilen mit unterschiedlichen Boolschen Verknüpfungen. Da der Ansatz von
Faulstich von einfachen Profilen ausgeht, ist die Integration von Profilen mit
unterschiedlichen Boolschen Verknüpfungen schon deshalb ein erheblicher
Mehraufwand, weil jetzt komplexe Profile verarbeitet werden müssen. Der Aufwand
entsteht, da ein komplexes Profil, also eines mit mehreren Wörtern, im Ansatz von
Faulstich zur Verarbeitung seinen eigenen Automaten benötigt. Dies ist jedoch
unabhängig davon, welche Art von Boolscher Verknüpfung dieses komplexe Profil
beinhaltet. Die Vorteile der parallelen Verarbeitung mit Hilfe von Automaten fallen
damit weg und es treten zusätzlich die oben beschriebenen Probleme mit dem
Speicherplatz auf. Auch die Modelle von Yan und Garcia-Molinea haben Probleme
mit Boolschen Profilen, welche sich nicht auf konjunktive beschränken. Treten
ODER- / NOT- Verknüpfungen in einem Profil auf, so lässt sich dieses in beiden
Modellen wie beschrieben durch das Hinzufügen von zusätzlichen konjunktiven
Profilen verarbeiten. Das bedeutet einen starken Anstieg von verwalteten Profilen
und somit wiederum zusätzlichen Speicherbedarf. Die Integration der besprochenen
Erweiterungen ist somit in allen Ansätzen möglich, bildet jedoch meistens einen
erheblichen Mehraufwand in Hinsicht auf Leistung und Speicherbedarf.
Es zeigt sich somit, dass sich die Anwendungsmöglichkeiten darauf beschränken,
wofür die Ansätze konzipiert wurden. Die Konzeptionsziele der Arbeiten
unterscheiden sich stark. Während der Ansatz von Faulstich eine sicherlich präzisere
Filterung durch Substring Matching mit Hilfe von Automaten gewährleistet, ist dieser
Ansatz nur sinnvoll, wenn es sich um einfache Profile von kleiner Anzahl handelt. Die
Modelle von Yan und Garcia-Molinea sind dagegen für das effiziente Filtern von
komplexen Profilen in großer Zahl konzipiert worden.
20
Literaturliste:
Tak W. Yan und Hector Garcia-Molina, Juni 1994, Index Structures for Selective
Dissemination of Information under the Boolean Model
Tak W. Yan und Hector Garcia-Molina,1993, Index Structures for Information Filtering
under the Vector Space Model
Lukas C. Faulstich, April 2001, Efficient Multi – Profile Filtering using Finite Automata
21
Herunterladen