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