Vorlesungsskript Information Retrieval

Größe: px
Ab Seite anzeigen:

Download "Vorlesungsskript Information Retrieval"

Transkript

1 Vorlesungsskript Information Retrieval Dr. Thomas Gottron Sommersemester 2010

2

3 Vorwort Dieses Skript ist zum Vorlesungzyklus Information Retrieval am Institut für Informatik der Uni Mainz im Sommersemester 2009 und im Wintersemester 2009/10 entstanden. Die Kapitel 1 bis 11 wurden dann im Rahmen der gleichen Veranstaltung im Sommersemester 2010 überarbeitet und geringfügig ergänzt. Das Skript soll als Ergänzung zur Vorlesung dienen. Weitere Informationen, die Folien zur Vorlesung sowie Übunsgaufgaben finden sich unter der URL: Die Inhaltliche Gliederung ist grob am Buch von Manning, Raghavan und Schütze [MRS08] orientiert. Einige Beispiele und thematische Zusammenhänge habe ich aus den Vorträgen der von der GI organisierten Herbstschule Information Retrieval 2008 übernommen. Bei Berechnung in Beispielen werden die Werte zwecks übersichtlicher Darstellung auf einige wenige Nachkommastellen gekürzt. Beim Weiterrechnen mit den Werten wird in der Regel aber auf die volle Genauigkeit zurückgegriffen, so dass anscheinbar Ungenauigkeiten bei Rundungen oder Gleichungen auftreten. Es wurde darauf verzichtet dies an jeder Stelle durch die Verwendung des Zeichens statt eines = zu verdeutlichen. Trotz aller Sorgfalt beim Zusammenstellen des Materials sind Fehler nicht auszuschließen. Daher gibt der Autor keine Garantie für die Richtigkeit und haftet nicht für Schäden, die durch Nutzung des Materials entstehen könnten. Bei gefundenen Fehlern wäre ich über eine Rückmeldung an dankbar. Ein Dankeschön geht an Christoph Doell, Christine Hoppe, Thomas Weißschuh und Roland Zelosko für das Aufspüren und Berichten von Tippfehlern. i

4 ii

5 Inhaltsverzeichnis Vorwort Inhaltsverzeichnis i iii 1 Was ist Information Retrieval? Beispiele Information Retrieval Daten, Wissen, Informationen Definitionen zu IR Teilgebiete und Aufgaben im IR Angrenzende Gebiete Funktionsweise und Aufbau eines IR Systems Zusammenfassung Boolsches Information Retrieval Idee des boolschen IR Theoretisches Modell Invertierter Index Bigramm und Position Index Schnelle Stringsuche Zusammenfassung Dokumentvorverarbeitung und Anfrageerweiterung Zugriff auf die Dokumentinhalte Tokenisierung der Inhalte Termfilterung und -normalisierung Anfrageerweiterungen Zusammenfassung Erweiterungen des Boolschen Modells Zoneninformationen im Index Gewichtung mit einem Zonenindex Zonen in HTML Dokumenten Erweitertes Boolsches IR Zusammenfassung iii

6 Inhaltsverzeichnis 5 Das Vektorraum Modell Idee des Vektorraum Modells Theoretisches Modell Die klassische Variante: TF-IDF Praktische Umsetzung Varianten zur TF-IDF Gewichtung Andere Ähnlichkeitsmaße Relevance Feedback nach Rocchio Optimierung: Bestimmung der ungefähren Top-K Dokumente Zusammenfassung Evaluation Das Cranfield Paradigma Test Daten Maße Nutzerbezug Zusammenfassung Probabilistisches Information Retrieval Das Binary Independence Modell (BIM) Wahrscheinlichkeitsschätzungen Okapi / BM Praktische Umsetzung Probabilistisches Relevance Feedback Zusammenfassung Websuchmaschinen Das World Wide Web Web Crawler Spam Zusammenfassung PageRank und HITS Das Web als gerichteter Graph PageRank HITS Zusammenfassung Nutzerinteraktion Modellierung des Suchvorgangs Interaktionsformen Ebenen der Unterstützung Beispiele iv

7 Inhaltsverzeichnis 10.5 Zusammenfassung Language Models Einführung in Language Models Einsatz von Language Models im IR Schätzen der Wahrscheinlichkeiten für LM Praktische Umsetzung Zusammenfassung Cross Language Information Retrieval Einsatzgebiete des CLIR CLIR auf der Basis von direkten Übersetzungen Language Models für CLIR Cross Language Explicit Semantic Analysis Zusammenfassung Textklassifikation Einführung in die Textklassifikation Evaluation von Klassifikation Regelbasierte Systeme Naive Bayes Der Rocchio Algorithmus zur Textklassifikation K Nearest Neighbour Support Vector Machines Zusammenfassung Clusteranalyse auf Texten Einführung in die Clusteranalyse Evaluation Single-Pass Clusterverfahren K-Means Agglomerative hierarchische Clusterverfahren Zusammenfassung Abbildungsverzeichnis 311 Tabellenverzeichnis 317 Liste der Algorithmen 319 Literaturverzeichnis 321 Index 325 v

8 Inhaltsverzeichnis vi

9 1 Was ist Information Retrieval? In diesem Kapitel wollen wir uns zunächst mit dem Begriff Information Retrieval (IR) selbst beschäftigen. Dazu führen wir zu Beginn ein paar Beispiele an, wie und wo man im (fast) alltäglichen Leben mit IR Systemen in Berührung kommen kann. Daraus lässt sich auch naiv ableiten, um welche Probleme sich beim IR eigentlich alles dreht. Nach dieser Einführung gehen wir den Begriff selbst an. Zu diesem Zweck müssen wir zunächst zwischen Daten, Informationen und Wissen unterscheiden. Danach werden Definitionen aus verschiedenen Literaturquellen vorgestellt. Diese dienen auch dazu, unsere Interessen im Bereich des IR abzustecken. Wir betrachten anschließend kurz einzelne Teilgebiete und Aufgaben aus dem Bereich des IR und stellen angrenzende Gebiete vor. Gegen Ende des Kapitels können wir dann ein abstraktes theoretisches Modell zur Beschreibung der Aufgabe des IR entwickeln. Von der praktischen Seite her werden wir eine erste, schematisch Darstellung eines IR Systems angeben können. Damit lassen sich auf sehr allgemeiner Ebene die Bestandteile eines solchen Systems erklären, die wir in späteren Kapiteln dann näher betrachten werden. 1.1 Beispiele Information Retrieval war für lange Zeit ein eher kleines Forschungs- und Anwendungsgebiet im Bereich der Bibliotheken, das höchstens noch in größeren Firmen von Interesse war. In Bibliotheken sind IR Systeme nach wie vor zu finden, beispielsweise im Katalogsystem der Mainzer Universitätsbibliothek (siehe Abb. 1.1). Firmensysteme können ebenfalls ganz allgemein auf die Suche von Dokumenten ausgerichtet sein. Es gibt aber auch sehr spezielle Anwendungen, z.b. zum Durchsuchen einer Sammlung von Patentschriften oder Gerichtsurteilen. Für ein breites Publikum richtig interessant wurden IR Systeme dann in den 1990er Jahren. Durch die Entwicklung und den rasanten Boom des World Wide Web stand plötzlich jeder Web Nutzer vor einer gigantischen Sammlung von Webseiten und Online-Dokumenten. Mit den Websuchmaschinen zogen IR Systeme dann immer mehr in den Alltag ein. Google (siehe Abb. 1.2) dürfte heutzutage für viele Nutzer wohl fast schon der Standardeinstieg ins World Wide Web sein. Aber auch andere Ansätze und Versuche, Ordnung in das Web zu bringen fallen unter die Kategorie der IR Systeme. Beispielsweise Web-Directories (siehe Abb. 1.3), in denen Websites in einem hierarchischen und thematisch gegliederten Katalog aufgeführt werden. Diese Kataloge werden oft händisch gepflegt und sind daher bezüglich ihres Datenbestandes selten so umfangreich wie eine Websuchmaschine. 1

10 1 Was ist Information Retrieval? Abbildung 1.1: Die Online Schnittstelle zum Katalog der Universitätsbibliothek Mainz. Abbildung 1.2: Startseite zu Google IR Systeme sind alltäglich geworden. 2

11 1.2 Information Retrieval Abbildung 1.3: Startseite des Open Directory Projects DMOZ. Neben diesen fast schon offensichtlichen IR Systemen haben sich aber auch viele andere in den Alltag eingeschlichen. Desktopsuchmaschinen sind in den meisten modernen Betriebssystemen zu finden. Anstatt die Position eines Dokumentes oder Bildes im Dateisystem zu kennen (oder händisch danach zu suchen), kann der Nutzer ein Programm zum Auffinden seiner Daten verwenden (siehe Abbildung 1.4). Sogar auf Mobiltelefonen finden sich gelegentlich schon Programme, die das Adressbuch, Dokumente, das Web oder eine Mediensammlung durchsuchen. 1.2 Information Retrieval Aus den einleitenden Beispielen erhält man bereits einen ersten Eindruck, worum es im Information Retrieval geht: die Versorgung von Nutzern mit Informationen. Das setzt selbstverständlich voraus, dass der Nutzer ein Informationsbedürfnis hat und dieses auch befriedigen möchte (siehe Kasten Calvin Mooers auf Seite 5 zum Thema Mooers Law). Nutzer können sehr unterschiedliche Informationsbedürfnisse haben. Einige Beispiele: Bei welchem Stand ging der DAX am Freitag aus dem Handel? Wie hat die Handballmannschaft meines Heimatortes gestern gespielt? 3

12 1 Was ist Information Retrieval? Abbildung 1.4: Desktop Suche (Ubuntu Linux). Welche theoretischen Modelle gibt es im IR? Wie funktioniert Quicksort? Wann und wo findet die Vorlesung Information Retrieval statt? Was kann ich gegen den stechenden Schmerz im Fuß unternehmen? Welche Schauspieler haben die besten Chancen den Oscar zu gewinnen? Wie steht die breite Masse dem letzten Konjunkturpaket der Regierung gegenüber? Wir haben es im IR also mit Nutzern zu tun, die irgendwelche Informationen benötigen. Es bleibt die Frage, wie ein Nutzer an diese Informationen gelangen kann. Es gibt durchaus verschiedene Ansätze nach Informationen zu suchen (information seeking) die nicht unbedingt zum Einsatz von IR Systemen führen. Wenn man sich die obigen Beispiele ansieht, erkennt man recht schnell verschiedene Möglichkeiten zur Vorgehensweise. Es wird außerdem klar, dass die Ansätze in den einzelnen Fällen sehr unterschiedliche Erfolgsaussichten haben: Experten befragen: Ein Nutzer kann schlichtweg jemanden fragen, der die benötigte Information voraussichtlich hat (und zu teilen bereit ist). Der Begriff Experte hat sich in diesem Zusammenhang ganz allgemein für jemanden eingebürgert, der über die benötigten Informationen verfügt. Ein Experte kann daher ein Spezialist auf einem 4

13 1.2 Information Retrieval Calvin Mooers Der Begriff Information Retrieval wurde von Calvin Mooers eingeführt. Mooers gilt als einer der Pioniere der Informatik. Er entwickelte unter anderem ein mechanisches System namens Zatocoding, das für Bibliotheken gedacht war. Darin wurde eine Art Karteikarten verwaltet, über die auf andere Dokumente verwiesen werden konnte. Die Karteikarten waren zusätzlich durch Kerben markiert, welche den Inhalt des referenzierten Dokumentes beschrieben. Diese Kerben ließen inhaltliche Schlussfolgerungen zu, so dass das System zu einer Anfrage die inhaltlich relevanten Dokumente (bzw. deren Karteikarten) heraussuchen konnte. Mooers berichtete, dass er sich damit Bibliothekare zum Feind machte. In Bibliotheken herrschte damals die Meinung, dass es für solche Aufgaben ein denkendes, menschliches Gehirn braucht. Eine Maschine könne so eine Aufgabe nicht lösen [Wei95]. Vielleicht auch wegen dieser Reaktion formuliert Mooers später sein Gesetz (Mooers Law [Aus01]), das viel bekannter wurde als das Zatocoding System: An information retrieval system will tend not to be used whenever it is more painful and troublesome for a customer to have information than for him not to have it. Auch wenn das Gesetz heute häufig so interpretiert wird, dass man es dem Nutzer eines IR Systems einfach machen soll, an die benötigten Informationen zu gelangen, war die eigentliche Intention anders. Wenn eine Information oder Wissen für einen Nutzer mehr Nachteile als Vorteile bringt, so wird er ein System zum Auffinden dieser Information womöglich gar nicht erst nutzen ( Ignorance is a bliss ). Fachgebiet sein oder schlicht ein Passant, den man nach dem Weg fragt. Letzteres Beispiel weist aber auch darauf hin, dass bereits das Auffinden eines Experten durchaus eine Herausforderung (und Aufgabe des IR) sein kann. Literaturrecherche: Der Nutzer schlägt die Information in geeigneter Literatur nach. Das kann die lokale Tageszeitung, ein Fachbuch, ein Zeitschrift oder heutzutage immer wichtiger eine Online-Ressource sein. Der Begriff nachschlagen ist dabei sehr allgemein zu verstehen. Der Nutzer könnte ein Fachbuch komplett von vorne bis hinten durchlesen um an die benötigte Information zu gelangen. Ebenso kann er Hilfsmittel wie ein Inhaltsverzeichnis oder einen Index verwenden. Auch ein gewisses Vorwissen oder Fachkenntnisse können hilfreich sein, beispielsweise wenn bekannt ist, auf welcher Seite der Zeitung die Sport- oder Wirtschaftsnachrichten zu finden sind. Bibliotheksrecherche: Wenn der Nutzer nicht genau weiß, wo die benötigte Information zu finden ist, kann er in einem Katalog nach passender Literatur suchen. Kataloge in Bibliotheken sind sehr unterschiedlich organisiert. Einträge können nach Titel 5

14 1 Was ist Information Retrieval? oder Autor sortiert sein. Auch Klassifikationen nach Fachgebieten und Teilbereichen sind häufig anzutreffen. In der PMC 1 wird beispielsweise die RVK (Regensburger Verbundklassifikation) eingesetzt. Bücher sind thematisch aufgestellt und innerhalb eines Themas nach Autor sortiert. Der Online-Katalog erlaubt darüber hinaus eine Vielzahl zusätzlich Suchmöglichkeiten. Websuche: Die Suche im Web unterscheidet sich von einer Bibliotheksrecherche in Hinsicht auf den Umfang des Datenbestandes, dessen Heterogenität und Qualität. Im Web ist man mit einer Vielzahl an Formaten (sowohl technisch als auch inhaltlich) konfrontiert. Die Dokumente werden außerdem meist automatisch erfasst und nicht manuell kontrolliert. Auch deshalb ist die Urheberschaft, Qualität und auch Aktualität einer Information im Web nicht immer nachvollziehbar sie kann sogar absichtlich verfälscht oder verschleiert sein. Aus Sicht des IR ist vor allem auch das enorme Datenaufkommen, dessen stetes Wachstum sowie die dezentral angelegte Organisationsstruktur eine Herausforderung. In allen Fällen geht es aus der Sicht des Informationssuchenden darum, hilfreich Informationen zu erhalten (obwohl das unter Berücksichtigung der Definition im kommenden Abschnitt selbstverständlich ist). Trotzdem ist Relevanz ein zentraler Begriff im IR. Relevanz gibt an, ob und vielleicht sogar zu welchem Grad ein Dokumente zur Informationssuche passt und zur Befriedigung des Informationsbedürfnisses eines Nutzers beiträgt. Fuhr [Fuh06] listet (unter Berufung auf Fachliteratur) vier verschiedene Arten von Relevanz auf: Situative Relevanz: Sie drückt die tatsächliche Nützlichkeit eines Dokuments in einer konkreten Situation aus, d.h. in wie weit liefert es eine konkrete Information. Allerdings lässt sich die situative Relevanz nicht wirklich messen. Subjektive Relevanz: Wie nützlich empfindet ein Nutzer ein Dokument. Dies kann sich stark von der situativen Relevanz unterscheiden, beispielsweise, wenn ein Dokument für den Nutzer zu kompliziert oder in der falschen Sprache geschrieben ist, es zu viel Vorwissen voraussetzt oder schlichtweg zu umfangreich ist. Objektive Relevanz: Sie basiert auf dem Urteil von (mehreren) unabhängigen Nutzern über die Nützlichkeit eines Dokumentes zu einem vorgegebenen Informationsbedürfnis. Diese Art der Relevanz wird häufig zu Evaluationszwecken herangezogen. Systemrelevanz: Der Relevanzwert, wie er in einem IR System berechnet wird. Dies entspricht einem per Algorithmen bestimmten Nützlichkeitswert als Beziehung zwischen einer Anfrage und einem Dokument. Solche Werte werden für die Aufnahme in eine Ergebnisliste und zur Erstellung einer Rangliste (Ranking) verwendet. Es ist lediglich eine Schätzung der Relevanz und wird auch mit RSV (Retrieval Status Value) bezeichnet. 1 PMC: Fachbereichsbibliothek Physik, Mathematik und Chemie an der Uni Mainz. 6

15 1.3 Daten, Wissen, Informationen Das größte Problem im IR ist die Vagheit der Sprache. Vagheit bedeutet hier, dass sich nicht immer exakt und situationsunabhängig festmachen lässt, worum es geht. Texte und Wörter bedürfen einer Interpretation, sie enthalten eine Semantik. Dies gilt sowohl auf der Seite der Dokumente als auch bei der Formulierung der Anfragen. Die Vagheit kann sich sehr unterschiedlich ausdrücken. Ein Wort kann mehrere Bedeutungen haben (modern, Bank, etc.) andere Wörter beschreiben das gleiche oder ähnliche Konzepte (Bildschirm, Monitor, Screen, Display). Sprache erlaubt außerdem viele Feinheiten wie Ironie ( Das ist aber eine tolle Vorlesung! ) oder ist extrem situationsabhängig (russische Qualität bei Wodka oder Autos). Auch wenn im IR heute nicht mehr nur Textdokumente betrachtet werden, so bleibt das Problem der Vagheit eigentlich in allen Anwendungen erhalten (beispielsweise bei einer Suche nach Bildern). 1.3 Daten, Wissen, Informationen Wir haben jetzt wiederholt von Informationen gesprochen. Es soll nun etwas näher darauf eingegangen werden, was Informationen eigentlich sind. In diesem Zusammenhang werden wir auch auf die Begriffe Daten und Wissen eingehen, da diese zur Abgrenzung dienen und somit das Verständnis erleichtern. Wir werden dabei von den Daten über Wissen hin zu Informationen gehen. Gleich vorweg sei jedoch erwähnt, dass man je nach Quelle auch unterschiedliche Auffassung und Definitionen findet. Insbesondere die Begriffe Wissen und Information werden gelegentlich genau anders herum gebraucht. Daten sind Einträge mit einer bekannten syntaktischen Struktur. Es ist also bekannt, nach welchem Muster die Einträge aufgebaut, d.h. durch Zeichen kodiert sind. Man spricht auch davon, dass Daten eine für die maschinelle Verarbeitung geeignete, kodierte Darstellung von Informationen sind. Beispiel: XML (trägt keine Semantik!!!), Stringformate, Zeichenkodierung Wissen fügt den Daten eine Semantik hinzu. Das heißt, es ist klar was hinter den Daten steckt und was diese darstellen. Allgemeiner wird der Begriff Wissen auch für die Gesamtheit aller Kenntnisse eines Fachgebietes verwendet also eine Art Faktensammlung. Beispiele: Buchtitel, Datum einer Reise, Standort eines Buches in der Bibliothek. Information ergänzt nun den Aspekt der Pragmatik, es geht also um die Teilmenge des Wissens, das zur Lösung einer ganz bestimmten Aufgabe nötig ist. Information ist also gewissermaßen der Teil des Wissen, mit dem sich eine ganz bestimmte Frage beantworten lässt. Anders ausgedrückt sind Informationen nutzbares Wissen. Beispiele: Wo findet die Vorlesung statt, welches Buch empfiehlt sich, wann war ich in Inverness? 7

16 1 Was ist Information Retrieval? Nutzloses Wissen?!? Das Buch Schotts Sammelsurium von Ben Schott [Sch04] wird oft auch als Enzyklopädie des nutzlosen Wissens bezeichnet. Der Autor listet darin ein Vielzahl an kuriosen Fakten, Geschichten und Begebenheiten auf. Dass die Inhalte als nutzloses Wissen angesehen werden, liegt sicherlich daran, dass Sie im Alltag wohl selten praktische Anwendung finden dürften. Aber auch das Buch selbst sorgt in gewissem Maße dafür, dass das Wissen nutzlos bleibt: es gibt kein Inhaltsverzeichnis und keinen Index. Die Einträge stehen in scheinbar willkürlicher Reihenfolge im Buch. Damit eignet sich das Buch zwar gut, um es nach Kuriosem zu durchstöbern. Um allerdings Informationen daraus zu ziehen ist es ziemlich ungeeignet: es fällt schwer das zur Lösung einer Aufgabe benötigte Wissen darin zu finden. 1.4 Definitionen zu IR In der Fachliteratur finden sich durchaus unterschiedliche Erklärungen dazu, was Information Retrieval (IR) ist. So gibt Fuhr [Fuh06] im Skript zu seiner IR Vorlesung folgendes an: Will man den Gegenstand des Information Retrieval [...] mit wenigen Worten beschreiben, so ist die Formulierung inhaltliche Suche in Texten wohl am treffendsten. Fuhr sagt aber auch, dass diese Definition eigentlich nur dem klassischen IR gerecht werde. Heutzutage sei IR wesentlich breiter angelegt und es umfasse auch die Suche nach multimedialen Daten, beispielsweise Bildern. Er verweist weiterhin auch auf die Definition der Fachgruppe IR [fi09] in der Gesellschaft für Informatik. Diese beschreibt IR einleitend folgendermaßen: Im Information Retrieval (IR) werden Informationssysteme in Bezug auf ihre Rolle im Prozeß des Wissenstransfers vom menschlichen Wissensproduzenten zum Informations-Nachfragenden betrachtet. Diese Definition führt zusätzlich auf, dass IR sich mit Informationssystemen beschäftigt, die einem Wissenstransfer dienen können. Wenn dies zunächst auch etwas schwammig klingen mag (auch ein Service kann als Informationssystem zum Wissenstransfer aufgefasst werden), so ist der Transfer von Wissen doch eine zentrale Motivation für den Einsatz von IR Systemen. Baeza-Yates und Ribeiro-Neto [BYRN99] versuchen eine etwas umfassendere und technischere Definition zu geben: Information Retrieval [...] deals with the representation, storage, organization of, and access to information items. 8

17 1.4 Definitionen zu IR Es fällt auf, dass hier nicht mehr von Texten, sondern von Informationsobjekten die Rede ist. Weiterhin wird die Aufgabe der inhaltliche Suche verallgemeinert zum Zugriff auf die Informationsobjekte. Und schließlich ist auch die Rede davon, dass sich IR mit der Darstellung, Speicherung und Verwaltung der Informationsobjekte beschäftigt. Im Vorlesungskript von Henrich [Hen08] wird IR so erklärt: Gegenstand des Information Retrieval ist die Suche nach Dokumenten. Traditionell handelt es sich dabei um Textdokumente. In neuerer Zeit kommt aber verstärkt die Suche nach multimedialen Dokumenten (Bilder, Videos, Audios, Hypertext-Dokumente) oder z.b. die Suche nach Experten und Arbeitsgruppen mit einem bestimmten Kompetenzprofil hinzu. Darin kommt ein weiterer Aspekt hinzu: die Suche nach Experten ein Problem das wir bereits eingangs angesprochen haben. Außerdem wird zwischen (klassischen) Textdokumenten und Hypertext-Dokumenten unterschieden. Henrich weist auch darauf hin, dass im IR meist keine auf Zeichenketten basierende Suche, sondern eine inhaltsbasiernde Suche gemeint ist. Das heißt, bedingt durch Vagheit in jeder Sprache, geht man weg von einer exakten Anfrage und hin zu Abstraktion und semantikbezogene Anfragen ( Gib mir was ich will ). Eine letzte Definition aus dem Buch von Manning, Raghavan und Schütze [MRS08]: Information retrieval (IR) is finding material (usually documents) of an unstructured nature (usually text) that satisfies an information need from within large collections (usually stored on computers). Damit wird eine wichtige Gemeinsamkeit der gesuchten Objekte angesprochen: sie sind unstruktriert. Außerdem wird wieder der Wissenstransfer angesprochen, und zwar in der Form, dass ein Informationsbedürfnis zu befriedigen ist. Auch der letzte Punkt ist interessant, nämlich dass man es mit umfangreichen Sammlungen von Daten zu tun hat, die in der Regel auf Computern gespeichert sind. Während der Einsatz von IT-Systemen für uns in diesem Zusammenhang heutzutage fast selbstverständlich ist, so musste van Rijsbergen in seinem Buch von 1979 [VR79] noch ausdrücklich darauf hinweisen. Das liegt daran, dass der Begriff IR damals wohl landläufig breiter aufgefasst wurde. So zählte scheinbar auch die manuelle Suche in Bibliothekskatalogen zum IR. Ein weiterer Punkt auf den van Rijsbergen eingeht ist, dass Information Retrieval eigentlich passender als Document Retrieval zu bezeichnen wäre. Schließlich liefern IR Systeme (in den meisten Fällen) Verweise auf Dokumente und liefern nicht eine gewünschte Information selbst. Er zitiert dabei Lancaster [Lan67]: An information retrieval system does not inform (i.e. change the knowledge of) the user on the subject of his inquiry. It merely informs on the existence (or non-existence) and whereabouts of documents relating to his request. 9

18 1 Was ist Information Retrieval? In dem gleichen Buch ist weiterhin ein nette, tabellarische und viel zitierte Abgrenzung zwischen Data Retrieval und Information Retrieval zu finden. Diese Abgrenzung soll in diesem Rahmen nicht fehlen und wird in Tabelle 1.1 angegeben und erläutert. Besonders interessant im Vergleich zu klassischen Datenbanken ist die Abgrenzung in Bezug auf Matching und Items wanted, also die Frage nach der Bestimmung von Treffern und welche Ergebnisse man eigentlich möchte. Die Unterschiede werden wohl in einem Beispiel am deutlichsten. Daten vs. Information Retrieval Betrachten wir eine relationale Datenbank und eine Websuchmaschine. Eine Anfrage an die Datenbank formulieren wir über SQL: select * from PFLANZEN where GATTUNG = Obstbaum Wir erwarten, dass die Ergebnismenge nur solche Einträge aus der Tabelle PFLANZEN enthält, die im Feld GATTUNG den Eintrag Obstbaum haben. Wir wollen also, dass Ergebnisse und Suchanfragen exakt zu einander passen. Noch anschaulicher wird diese offensichtliche Tatsache, wenn man an eine Abfrage in einem universitären Prüfungsverwaltungssystem über die Matrikelnummer oder ähnliche Primärschlüssel denkt. Der Nutzer erwartet von einer Datenbank also, dass nur exakte Treffer gefunden werden. Entsprechend prüft die Datenbank auch nur auf exakte Gleichheit. Wenn sich der Nutzer bei der Anfrage vertippt (z.b. Ibstbaum), dann erhält er keine oder falsche Treffer. Bei einer Websuche hingegen, könnte man erwarten, dass auch solche Dokumente gefunden werden, die obstbaum (klein geschrieben) oder Obstbäume (Plural) enthalten. Inzwischen sind Suchmaschinen sogar so weit, dass sie Ergebnisse liefern, in denen der Suchbegriff selbst gar nicht auftritt. So wäre es durchaus denkbar, dass in der Ergebnisliste Dokumente auftauchen, die den Begriff Fruchtbaum oder Apfelbaum enthalten. Bei einer Suche nach Ibstbaum ist man ebenfalls daran gewöhnt, dass das System den Nutzer auf mögliche Tippfehler hinweist und sogar Korrekturvorschläge macht. Alle in diesem Abschnitt vorgestellten Definitionen treffen in gewissem Sinne zu und gehen auf unterschiedliche Aspekte und Schwerpunkte im Bereich des IR ein. Für uns können wir an dieser Stelle vielleicht ganz allgemein sagen, dass wir uns im IR für Informationssysteme interessieren, die einen Nutzer beim information seeking unterstützen. 1.5 Teilgebiete und Aufgaben im IR Aus den Definitionen klang es schon heraus: IR hat sich seit seinen Anfängen sehr stark entwickelt und umfasst verschiedene Teilgebiete und speziellen Teilaufgaben. Zunächst lis- 10

19 1.5 Teilgebiete und Aufgaben im IR Tabelle 1.1: Abgrenzung zwischen Data Retrieval und Information Retrieval nach van Rijsbergen [VR79] Data Retrieval Information Retrieval Erläuterung Matching Exact match Partial or best match Exakter String in Dokument vs. passend zur Anfrage Inference Deduction Induction Klare mathematische Regeln vs. Beobachtungen und Erfahrungen auf den Dokumenten Model Deterministic Probabilistic Boolsche / Relationale Algebra vs. Bayes sche Wahrscheinlichkeit a Classification Monothetic Polythetic Attribute der Objekte sind hinreichend und notwendig für eine exakte Klassifikation vs. Ungenaue Abgrenzung, nicht alle Objekte haben alle Attribute Query Language Artificial Natural SQL vs. Freitextsuche Query specification Complete Incomplete Formale Sprache vs. natürliche offene Sprache Items wanted Matching Relevant Passende Objekte vs. relevante Objekte Error response Sensitive Insensitive Fehlerhafte Abfrage (nicht syntaktisch) führt zu keinen Ergebnissen vs. kleine Abweichungen führen nicht zu großen Performanzeinbußen. a Die Idee des probabilistischen IR war 1979 noch recht neu. Es stellt jedoch nicht das einzige theoretische IR Modell dar. 11

20 1 Was ist Information Retrieval? ten wir einzelne Teilgebiete auf, danach werden wir näher auf Aufgaben im IR eingehen. Jede der Aufgaben kann dabei zumindest zu einem gewissen Grad in jedem der Teilgebiet anfallen. Text IR: Der klassische Einsatz des IR. Die Informationssuche läuft in einer Sammlung von Textdokumenten ab. Die Form und Art der Dokumente variiert sehr stark. Von Bibliotheksbüchern, wissenschaftliche Arbeiten oder Notizen über Nachrichten (Mail, SMS) zu Patentschriften oder Gerichtsurteilen ist fast alles denkbar. Nicht zuletzt durch diesen historischen Hintergrund wird im IR auch heute noch allgemein von Dokumenten gesprochen, selbst wenn Bilder, Filme oder Musik betrachtet werden. Aber auch Textdokumente können in moderneren Anwendungen vielfältiger sein sie enthalten Abbildungen, Tabellen oder andere Element, die nicht einem klassischen Text entsprechen. Hypertext IR, IR im Web: Obwohl eigentlich ein Spezialfall des Text IR muss Hypertext IR heutzutage gesondert erwähnt werden. Das liegt schlichtweg daran, dass das WWW eines der Hauptanwendungsgebiete für IR ist. Websuchmaschinen haben sich zu enorm großen und komplexen IR Systemen entwickelt. Die Hypertext Idee hingegen ist übrigens deutlich älter. Sie wird allgemein Vannevar Bush [Bus45] zugeschrieben. Deshalb und da es Querverweise zwischen Texten auch in anderen Formen gibt, sind einige der im Web eingesetzten Techniken durchaus auch allgemeiner anwendbar oder haben ihren Ursprung in anderen Teilgebieten des IR. Question Answering (QA): Im letzten Abschnitt hatten wir bereits van Rijsbergens [VR79] Anmerkung erwähnt, dass IR eigentlich eher Document Retrieval heißen müsste. Das trifft auf das Teilgebiet des Question Answering nicht zu. Hier wird tatsächlich versucht, nicht nur interessante Dokumente zur Befriedigung eines Informationsbedürfnisses zu finden, sondern daraus direkt die gewünschte Information zu extrahieren. Auf eine Anfrage wie Welcher Dozent liest dieses Semester die Vorlesung TGI? würde ein solches QA System nicht mit einer Liste von Dokumentreferenzen antworten, sondern im Idealfall direkt den Namen des Dozenten ausspucken. Multimedia IR: Die zunehmende Digitalisierung von Medien führt dazu, dass immer häufiger auch in Bild-, Audio- oder Videoarchiven gesucht werden muss. Sogar auf Animationen oder Bewegungsabläufen wird IR betrieben. Die Suche in solchen Daten lässt sich sicherlich am einfachsten über beschreibende Texte realisieren (Metainformationen). Wirklich spannend wird es dann, wenn inhaltlich in den Bildern oder Musikdateien gesucht wird. Das löst eine ganze Menge von Problemen aus, nicht zuletzt jenes, wie Anfragen formuliert werden. Expertensuche: Wir hatten die Suche nach Experten zu einem bestimmten Thema bereits eingangs angesprochen. Diese Suche ist ebenfalls ein Teilgebiet des IR. Hier geht es um die Frage, wen man zu bestimmten Themen fragen könnte, um an Informationen zu gelangen. 12

21 1.5 Teilgebiete und Aufgaben im IR In jedem dieser Teilgebiete stehen fast immer die gleichen Aufgaben und Fragestellungen an: Ad Hoc Anfragen: Die klassische Aufgabe im IR. In einer festen Menge von Dokumenten sollen zu einer gegebenen Anfrage die relevanten Dokumente gefunden werden. Routing: Hier bleibt die Anfrage fix und es werden neue Dokumente untersucht. Aus diesen Dokumenten (z.b. ein Strom von eingehenden Nachrichten) sollen die zur Anfrage relevanten herausgefischt werden. Ein Ranking ist hier selten von Interesse, es geht vielmehr um Ja/Nein Entscheidungen. Cluster Analyse: Beim Clustern oder Gruppieren von Dokumenten ist die Frage, welche sich inhaltlich ähnlich sind und wo Grenzen gezogen werden können. Klassifikation: ist dem Clustern ähnlich, es werden jedoch feste Kategorien vorgegeben, in welche die Dokumente einzugliedern sind. Cross Language IR (CLIR): Information Retrieval über Sprachgrenzen hinweg. Beispielsweise durch die Übersetzung von Anfragen und oder Dokumenten in verschiedenen Sprachen. Evaluation: die Evaluation von IR Systemen ist eine wichtige Aufgabe insbesondere beim Vergleich verschiedener Verfahren, theoretischer Modelle oder bei der Optimierung von Parametereinstellungen. Nutzerinteraktion: welche Möglichkeiten sind dem Nutzer zur Interaktion gegeben. Wie interpretiert das System seine Anfragen, wie sehen diese aus. Neben einer Stichwortsuche im Freitextformat kann ein System spezielle Anfrageformen mit Trunkierung oder der Angabe von Bedingungen erlauben (beispielsweise dass die Suchterme nahe bei einander stehen). Andere Suchmöglichkeiten umfassen Query by Example oder eine explorative Suche. Peer-2-Peer Systeme: Systeme, die als Peer-2-Peer Netzwerke aufgesetzt werden stellen keine eigentlich Aufgabe dar. Dennoch werfen sie ein Vielzahl an Fragen auf, was ihre Umsetzung angeht. Wie werden Dokumente und Indizes an die einzelnen Peers verteilt, wie werden Anfragen effizient und schnell ausgeführt und die Ergebnislisten zusammengestellt. Duplikaterkennung, Plagiaterkennung: Die Erkennung von Duplikaten, bzw. Nahezuoder Fast-Duplikaten sowie das Auffinden von Plagiaten gehören heutzutage ebenfalls zum Aufgabengebiet des IR. Spam: Websuchmaschinen aber auch die alltäglichen -Clients haben mit trügerischen oder unerwünschten Dokumenten zu kämpfen. Spam ist ebenfalls ein großes Thema im IR, da es sich um irrelevante Dokumente handelt, die Relevanz vortäuschen. 13

22 1 Was ist Information Retrieval? 1.6 Angrenzende Gebiete IR grenzt an eine Zahl anderer Forschungsgebiete an, die nicht nur im Bereich der Informatik liegen. Dazu gehören die Linguistik, Bibliothekswissensschaften oder die Psychologie. Innerhalb der Informatik gibt es Überschneidungen mit dem Bereich der Datenbanksysteme, der künstlichen Intelligenz, der natürlichen Sprachverarbeitung (NLP Natural Language Processing), des Data Mining, des maschinellen Lernens, der Visualisierung und dem Design von Nutzerinterfaces. 1.7 Funktionsweise und Aufbau eines IR Systems Im weiteren Verlauf werden wir uns zunächst hauptsächlich mit klassischen IR Systemen beschäftigen. Das bedeutet, das System arbeitet auf einer Sammlung von Textdokumenten und liefert einem Nutzer zu einer Ad Hoc Anfrage die relevanten Dokumente. Um nun ein abtraktes theoretisches Rahmenmodell für Information Retrieval zu entwickeln machen wir zwei Annahmen bezüglich der Relevanz eines Dokumentes zu einer Anfrage. Zum einen gehen wir davon aus, dass die Relevanz eines Dokuments bezüglich einer Anfrage unabhängig von anderen Dokumenten ist. Dass führt dazu, dass wir bei der Beurteilung von Relevanz uns einzig und allein auf die Anfrage und ein Dokument beschränken können, ohne andere Dokumente betrachten zu müssen. Die zweite Annahme bezieht sich darauf, dass es keine feingradige Abstufung von Relevanz gibt. Stattdessen ist ein Dokument zu einer Anfrage entweder relevant oder es ist nicht relevant. Diese Annahmen führen dazu, dass man alle Pärchen aus Anfrage und Dokument in zwei disjunkte Teilmengen aufteilen kann: jene, bei denen Relevanz vorliegt und jene bei denen das nicht der Fall ist. Bezeichnen wir mit Q die Menge der Anfragen und mit D die Menge der Dokumente, so können wir also formal jedem Tupel (d, q) D Q einen Wert R zuweisen, falls Relevanz vorliegt, und einen Wert R, falls das d nicht zu q relevant ist. Somit läuft Information Retrieval auf eine Abbildung der Paare (d, q) nach R = {R, R} hinaus. Dieser Zusammenhang ist in Abbildung 1.5 auf der linken Seite zu erkennen. Ein IR System kann diese Abbildung jedoch nicht direkt modellieren und umsetzen. Das liegt zum einen an den bereits angesprochenen unterschiedlichen Formen der Relevanz aus Nutzersicht, zum anderen an der Vagheit der Sprache, einem Mangel an Verständnis der Dokumentinhalte und der schwierigen Erfassung des exakten Informationsbedürfnisses eines Nutzers. Der rechte Teil in Abbildung 1.5 modelliert daher gewissermaßen den erzwungenen Umweg, den ein IR System gehen muss, um diese Abbildung anzunähern. Hier ist zunächst anzumerken, dass IR Systeme nicht mit den Dokumenten und Anfragen selbst arbeiten, sondern lediglich mit Darstellungen D r der Dokumente und Q r der Anfragen. So können Dokumente als Texte oder Mengen von Wörtern dargestellt werden und Anfragen beispielsweise als logische Ausdrücke oder gewichtete Suchbegriffe. Die Überführung der Anfragen in ihre Darstellungsform wird dabei über eine Funktion α Q modelliert, gleiches gilt für die Dokumente und α D. 14

23 1.7 Funktionsweise und Aufbau eines IR Systems α Q Q Q r β Q Q d R ρ R α D D D r β D D d Abbildung 1.5: Abstraktes Modell der Funktionsweise eines IR Systems [Fuh06]. Eng verbunden mit der (theoretischen) Darstellung der Dokumente und Anfragen sind deren Beschreibung im IR System. Diese werden in Abbildung 1.5 mit Q d und D d bezeichnet und über Funktionen β Q und β D aus den Darstellungen abgeleitet. Diese zweite Abstraktionsschritt erlaubt einen zusätzliche Felixiblität des Rahmenmodells, insebsondere bezüglich einiger technischer Feinheiten. So kann in den β-funktionen beispielsweise enthalten sein, dass Pluralformen oder Flexionen von Verben jeweils auf eine Grundform reduziert oder einige Wörter komplett in der Beschreibung ignoriert werden. Diese Ausprägungen in der Beschreibung von Dokumenten und Anfragen sind von der jeweiligen Darstellungen unabhängig werden daher getrennt modelliert. Weiterhin dienen die Objektbeschreibungen als Basis für eine Retrievalfunktion ρ, die letztendlich die Systemrelevanz ρ(d, q) R für ein Tupel aus Anfrage und Dokument berechnet. In der Berechnung von ρ auf der Basis der Beschreibungen von Anfragen und Dokumenten, sowie der dahinterliegenden Darstellung stecken die Unterschiede verschiedener theoretischer IR Modelle, wie wir sie in den nächsten Kapiteln kennen lernen werden. Die hier eingeführt Unterscheidung zwischen D, D r und D d, bzw. zwischen Q, Q r und Q d tritt also in jedem IR System auf. Wir werden allerdings selten explizit die jeweiligen Bezeichner verwenden, da es in der Regel klar ist, wann von den Dokumente, ihrer Darstellung oder der zugehörigen Beschreibung im IR System die Rede ist. Betrachtet man IR Systeme eher technischen und architektonischen Gesichtspunkten, so lassen sich die meisten Systeme durch ein einfaches Schema dargestellen und erklären, wie in Abbildung 1.6 zu sehen ist. Dieses Schema ist zugegebenermaßen sehr grob. Dennoch verdeutlicht es die wichtigsten Komponenten und Aufgaben innerhalb eines IR Systems. Es beinhaltet implizit die eben angesprochenen Funktionen α Q, α D, β Q, β D und ρ des theoretischen Modells, aber auch andere Aspekte, die für die Performanz eines IR Systems ausschlaggebend sind. Die wichtigsten Schnittstellen zu seiner Umwelt hat ein IR System zu den Nutzern und der zu verwaltenden Dokumentsammlung. Zu letzterer zum Zeitpunkt der Indizierung, zu den erstgenannten während der Beantwortung von Informationsanfragen. Diese Interaktion schlägt sich in den Interna des Systems in der Dokumentverarbeitung und der Annahme von Anfragen und eventuellem Nutzer-Feedback nieder. Dokumentenverarbeitung: Ein IR System muss die Dokumente mit denen es umgehen soll zunächst verarbeiten. Dieser Schritt kann bei einem festen, unveränderlichen 15

24 1 Was ist Information Retrieval? Abbildung 1.6: Schematischer Aufbau eines IR Systems. Korpus (so nennt man die Dokumentsammlung) eventuell nur einmal anfallen. Ändert sich Datenbasis in irgendeiner Form (Dokumentmenge ändert sich: es kommen Dokumente hinzu oder fallen weg, bzw. Dokumentinhalte ändern sich: in den Dokumenten selbst treten Veränderungen auf), so muss dieser Schritt regelmäßig oder ständig durchgeführt werden. Zur Vorverarbeitung gehört das Erkennen des Formates (Text, HTML, Word, PDF; etc.) die Extraktion und Normalisierung der Inhalte, möglicherweise eine Spracherkennung und noch einiges mehr. Hier sind auch die Umwandlung eines Dokumentes über α D und β D in eine Beschreibung des Dokumentes anzusiedeln. Dokumentbeschreibung: Sobald die Dokumente verarbeitet sind, müssen die daraus gewonnenen Daten und Erkenntnisse irgendwie intern gespeichert werden. Wie diese Beschreibung aussieht und welche Informationen über die Dokumente gespeichert werden hängt auch vom Typ des IR Systems und den eingesetzten Modellen ab. Entscheidend ist auch die Frage, in welchem Umfang Daten über die Dokumente gespeichert werden. Handelt es sich nur um geeignete Schlagwörter, den Titel, die Autoren, eine inhaltliche Zusammenfassung oder eine Indizierung des Volltextes? Anfragen: Stellt ein Nutzer nun eine Anfrage, so muss diese ebenfalls verarbeitet werden. Auch hier kann eine Vielzahl von Operationen angewendet werden, welche den oben angesprochenen Funktionen α Q und β Q entsprechen. Allgemein könnte man jedoch sagen, dass die Anfrage in eine Form gebracht werden muss, in der sie mit den Dokumenten verglichen werden kann. 16

25 1.8 Zusammenfassung Matching und Ergebnislisten: Neben der Darstellung und Beschreibung dürfte das Berechnen eines Matchings der Kern der meisten IR Modelle sein, d.h. welche Dokumente passen zu einer Anfrage. Dieses Zueinander Passen entspricht der errechneten Systemrelevanz und wurde oben formal als Funktion ρ dargestellt. Über den Relevanzwert kann nun die Ergebnisliste aufgebaut und dem Nutzer als Ergebnis präsentiert werden. Feedback: Einige Systeme erlauben es den Nutzern zu den Ergebnissen ein Feedback abzugeben. Dieses Feedback wird dann genutzt, um die Ergebnisse in einem nächsten Schritt zu verfeinern oder zu verbessern. 1.8 Zusammenfassung Wir haben in diesem Kapitel einen ersten Einblick in IR, dessen Aufgaben, Teilgebiete und die Struktur eines IR Systems gewonnen. Es wurden verschiedene Definitionen und insbesondere eine Abgrenzung zu Data Retrieval gegeben. Auch wurden schon einige der Schwierigkeiten und Herausforderungen angesprochen, auf die in den nächsten Kapiteln näher eingegangen wird. 17

26 1 Was ist Information Retrieval? 18

27 2 Boolsches Information Retrieval Unter boolschem IR versteht man den Ansatz, Dokumente lediglich nach dem Vorkommen oder dem Fehlen von Stichwörtern zu durchsuchen. Auch heute noch basieren vielen Suchsysteme auf diesem ältesten Modell des IR. Wir werden in diesem Kapitel zunächst die Idee des boolschen IR etwas näher beschreiben und dazu ein theoretisches Modell entwickeln. Dieses Modell gibt vor, wie Dokumente aufgefasst und dargestellt werden, wie Abfragen aussehen können und wie das Matching zwischen Dokumenten und Abfragen berechnet wird. Im Zusammenhang einer praktischen Umsetzung werden wir dann auf die wichtige Datenstruktur des invertierten Index eingehen. Diese Datenstruktur stellt nicht nur für boolsche IR Systeme die Basis dar. Anschließend klären wir die Frage der Querybearbeitung und das Erzeugen einer Ergebnisliste mit Hilfe des invertierten Index. Damit lässt sich dann ein erstes (einfaches) IR System umsetzen. Danach werden Verbesserungen dieses einfachen invertierten Index angesprochen mit denen auch Suchen nach längeren Ausdrücken realisiert werden können. Am Ende des Kapitels wird noch auf Möglichkeiten der schnellen Stringsuche in Texten eingegangen. Es wird aber auch deutlich gemacht, weshalb eine naive Stringsuche nicht wirklich eine Alternative zu den Techniken in IR Systemen darstellt. 2.1 Idee des boolschen IR Die Idee hinter boolschem IR ist ein recht intuitiver Ansatz und entspricht einer Art Volltextsuche in den Dokumentbeschreibungen 1. Das heißt, der Nutzer kann nach Wörtern suchen und enthält als Ergebnis die Menge der Dokumente, welche die Suchbegriffe enthalten. Der boolsche Anteil in dieser Art der Suche liegt vereinfacht gesagt darin, dass einerseits ein Dokument zu einer Suchanfrage entweder passend oder nicht passend ist und andererseits, dass die Suchbegriffe durch logische Operatoren kombiniert werden können. Dadurch erhalten die Anfragen eine bestimmte Struktur. Das Verhalten auf einfachen Anfragen mit nur einem Suchbegriff ist klar: es sollen alle Dokumente gefunden werden, die diesen Begriff enthalten. Sobald mehrere Wörter in der Suchanfrage auftauchen muss unterschieden werden: 1 Im weiteren Verlauf werden wir immer nur von Dokumenten sprechen, wir hatten aber bereits im letzten Kapitel gesehen, dass die interne Dokumentendarstellung in einem IR System nicht zwangsweise das komplette Dokument, also den Volltext enthält. 19

28 2 Boolsches Information Retrieval Sind die Wörter durch ein Schlüsselwort für das logische und verknüpft, so müssen alle Wörter in einem Dokument enthalten sein, damit es in die Ergebnismenge aufgenommen wird. Sind die Wörter durch ein Schlüsselwort für das logische oder verknüpft, so genügt bereits das Vorhandensein eines Wortes für die Aufnahme in die Ergebnismenge. Sind die Wörter nur durch Leerzeichen getrennt, so wird der komplette Ausdruck in genau dieser Form gesucht. Solche Anfragen gehen eigentlich schon über die einfachste Umsetzung des Basismodells des boolschen IR hinaus. Wir werden gegen Ende des Kapitels darauf eingehen, wie man damit umgehen kann. Außer den logischen Verknüpfungen und und oder erlauben boolsche IR Systeme auch noch den Einsatz der Negation nicht. Hierbei handelt es sich um einen unären Operator, der sich im Gegensatz zu und und oder nur auf ein Schlüsselwort bezieht. Die Implikation für die Anfrage ist klar: der entsprechende Begriff darf in den gesuchten Dokumente nicht auftreten. Dokumente und Anfragen im Boolschen IR Betrachten wir eine einfache Sammlung von fünf Dokumenten: 1. Information Retrieval befriedigt Informationsbedürfnisse 2. Information und Daten Retrieval unterscheiden sich 3. Document Retrieval ist ein anderer Begriff 4. Information ist nutzbares Wissen 5. Daten und Wissen unterscheiden sich Diese Dokumente stecken wir nun in ein boolsches IR System, das die logischen Operatoren schlicht durch die Zeichenketten und, oder und nicht abbildet. Nun betrachten wir unterschiedliche Anfragen und deren Ergebnismengen: Information : Liefert die Dokumente 1, 2 und 4. Weder in 3 noch 5 ist der Suchbegriff enthalten. Information und Retrieval : Liefert die Dokumente 1 und 2, welche beide Suchbegriffe enthalten. Information oder Retrieval : Liefert die Dokumente 1, 2, 3 und 4, die jeweils mindestens einen der Begriffe enthalten. nicht Information : Liefert die Dokumente 3 und 5, in denen das Wort Information eben nicht auftritt. 20

29 2.2 Theoretisches Modell Information Retrieval : Liefert nur Dokument 1, da es als einziges genau diese Zeichenkette enthält. Auch komplexere Ausdrücke sind möglich: (Information und Retrieval) oder (Document und Retrieval) liefert die Dokumente 1, 2 und 3. Die Klammerung soll hier deutlich machen, in welcher Reihenfolge die Operatoren anzuwenden sind. Boolsche IR System ordnen die Ergebnisdokumente nach keiner besonderen Reihenfolge an: entweder ein Dokument ist in der Ergebnismenge enthalten, oder es ist eben nicht enthalten. Wird ein Dokument vor einem anderen in der Ergebnisliste genannt so hat das keinerlei Aussagekraft bezüglich der Relevanz oder einem besseren Passen zur Anfrage. 2.2 Theoretisches Modell Nachdem die Idee des boolschen Retrieval klar sein sollte, können wir ein formales Modell aufstellen, welches die Funktionsweise erklärt. Dazu gehen wir zunächst davon aus, dass wir es mit einer Sammlung von N Dokumenten zu tun haben. Das gesamte Korpus werden wir mit D bezeichnen. Die Beschreibung der einzelnen, darin enthaltenen Dokumente also ihre Repräsentation im IR System werden mit d i durchnummeriert. Es gilt also: D = {d 1, d 2, d 3,..., d N } Weiterhin ist für uns interessant, welche Terme 2 in diesen Dokumenten auftreten. Die Menge der auftretenden Terme nennt man Vokabular und wird mit V bezeichnet. Gehen wir davon aus, dass insgesamt M verschieden Terme in D auftreten, dann können wir diese ebenfalls schlichtweg durchnummerieren und als t j bezeichnen. Damit gilt also für V : V = {t 1, t 2, t 3,..., t M } Schaut man sich die Idee des boolschen IR an, so merkt man, dass es lediglich darauf ankommt, welche Terme in einem Dokument enthalten sind und welche nicht. Die Darstellung der Dokumente beruth also auf einer Menge von Termen. Die Häufigkeit der Terme, also die Anzahl der Vorkommnisse in einem Dokument, ist nicht von Interesse. Da selbst die Reihenfolge 3 keine Rolle spielt werden die Dokumente als boolsche Vektoren über den möglichen Termen beschrieben. Es gilt also: 2 Für den Moment können wir Terme einfach als Wörter im Text auffassen. Die genauen Unterschiede werden wir in Kapitel 3 erläutern. 3 Bei der Suche nach nur durch Leerzeichen getrennten Wörtern spielt die Reihenfolge natürlich ein Rolle wie in unserem Beispiel zur Suche nach Information Retrieval. Aber wie gesagt, dazu kommen wir später. 21

30 2 Boolsches Information Retrieval d i {0, 1} M Die Repräsentation eines einzelnen Dokuments d i sieht wie folgt aus: wobei [j] i = d i = ( [1] i, [2] i, [3] i,..., [M] ) i 1 falls Term j in Dokument i enthalten ist 0 sonst Diese Darstellung der einzelnen Dokumente kann man auch zu einer Matrix zusammenfassen. Diese M N Matrix C wird als Term-Dokument Matrix bezeichnet und besteht schlichtweg aus den Dokumenten als Spaltenvektoren: C = ( d T 1, d T 2, d T 3,..., d T N ) Dokumentdarstellung und Term-Dokument Matrix Betrachten wir wieder den gleichen Beispielkorpus wie oben, bestehend aus fünf einfachen Dokumenten. Die Menge D besteht also aus D = {d 1, d 2, d 3, d 4, d 5 }. Das Vokabular V enthält folgende 15 Terme: t 1 = anderer t 6 = ein t 11 = Retrieval t 2 = befriedigt t 7 = Information t 12 = sich t 3 = Begriff t 8 = Informationsbedürfnis t 13 = und t 4 = Daten t 9 = ist t 14 = unterscheiden t 5 = Document t 10 = nutzbares t 15 = Wissen Jede Dokumentdarstellung besteht also aus einem Tupel mit 15 Einträgen. Dokument d 3 mit dem Inhalt Document Retrieval ist ein anderer Begriff sieht daher so aus: d 3 = (1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0) Und die gesamte Term-Dokument Matrix C stellt sich folgendermaßen dar: 22

31 2.2 Theoretisches Modell C = d 1 d 2 d 3 d 4 d 5 anderer t befriedigt t Begriff t Daten t Document t ein t Information t Informationsbedürfnis t ist t nutzbares t Retrieval t sich t und t unterscheiden t Wissen t Auch die Abfragen lassen sich über den Termen des Vokabulars definieren. Wir gehen bei der Definition der Abfragen rekursiv vor dadurch lassen sich die möglichen Kombinationen der logischen Ausdrücke am besten modellieren. Wir bezeichnen die Menge aller möglichen (gültigen) Abfragen als Q. Rekursiv konstruieren wir nun die Elemente dieser Menge. Zunächst einmal sind darin alle Abfragen enthalten, die aus genau einem Term bestehen. t Q, t V Zwar kann ein Nutzer in einem realen System durchaus auch Anfragen mit Termen stellen, die nicht im Vokabular des Korpus auftreten, diese sind jedoch von der Theorie her nicht weiter interessant: sie ergeben immer eine leere Ergebnisliste. Sie könnten daher mit einem stellvertretenden Term t 0 modelliert werden, der in keinem Dokument auftritt. Aufbauend auf dieser Basis kann man nun die logischen Verknüpfungen bestehender Abfragen als neue Elemente der Menge definieren: q 1, q 2 Q q 1 q 2 Q q 1, q 2 Q q 1 q 2 Q q Q q Q Eventuell kann man noch die Klammerung der Ausdrücke hinzufügen, was sich syntaktisch leicht über die Regel q Q (q) Q realisieren lässt. 23

32 2 Boolsches Information Retrieval Was nun noch fehlt ist eine formale Angabe, wie das Matching im boolschen IR funktioniert, d.h. wie zu einer Anfragen die passenden Dokumente gefunden werden. Dies lässt sich über die Retrievalfunktion ρ beschreiben. Die Funktion ρ ist im Falle des boolschen IR Modells definiert über: ρ : D Q {0, 1} Die Bedeutung der angenommenen Werte der Retrievalfunktion ist sehr einfach: ein Wert von 0 heißt, dass das Dokument nicht zur Anfrage passt, während ein Wert von 1 aussagt, dass das Dokument bei dieser Anfrage zur Ergebnismenge gehört. Passend zur Definition der Anfragen lassen sich auch die Werte der ρ Funktion am besten rekursiv definieren. Zunächst wieder für eine Abfrage der Form q = t j : ρ(d i, q) = [j] i, für q = t j Den Anfragen über einem Term wird in ρ also der Eintrag des Dokumentvektors zugewiesen, der für den entsprechenden Term steht. Anschaulich drückt dies genau den gewünschten Effekt aus. In [j] i steht eine 1, wenn der Term t j im Dokument d i enthalten ist, sonst steht dort ein 0. Basierend auf den Werten der Retrievalfunktion auf einfachen Anfragen lassen sich nun wieder die Werte zu allgemeineren Anfragen mit logischen Verknüpfungen angeben: ρ(d i, q) = min (ρ(d i, q 1 ), ρ(d i, q 2 )) für q = q 1 q 2 ρ(d i, q) = max (ρ(d i, q 1 ), ρ(d i, q 2 )) für q = q 1 q 2 ρ(d i, q) = 1 ρ(d i, q 1 ) für q = q 1 Die Verwendung des Minimum bei Anfragen welche die Terme mit und verknüpfen führt dazu, dass ρ genau dann den Wert 1 annimmt, wenn ρ auf den beiden verknüpften Teilen jeweils den Wert 1 hat. Bei der oder Verknüpfung gilt ähnliches durch den Einsatz der Maximum Funktion. Sobald ρ auf einem der Teile den Wert 1 annimmt ist der Gesamtausdruck 1. Nur wenn keiner der Anfrageteile passt, ist auch die Gesamtanfrage unpassend. Die Negation lässt sich elegant durch die Subtraktion von 1 modellieren. Abfragemodellierung und Retrievalfunktion Greifen wir wieder auf unser Beispiel mit den fünf einfachen Dokumenten zurück. Betrachten wir einige der eingangs angeführten Anfragen auf diesen Korpus: 1. Information 2. Information und Retrieval 3. nicht Retrieval 24

33 2.2 Theoretisches Modell 4. (Information und Retrieval) oder (Document und Retrieval) Zu diesen können wir nun ebenfalls die formale Darstellungen angeben: 1. q 1 = t 7 2. q 2 = t 7 t q 3 = t q 4 = (t 7 t 11 ) (t 5 t 11 ) Nun nehmen wir uns exemplarisch die Dokumente d 3 ( Document Retrieval ist ein anderer Begriff ) und d 4 ( Information ist nutzbares Wissen ) heraus und prüfen jeweils, ob sie zu den Anfragen passen. 1. Anfrage q 1 ρ(d 3, q 1 ) = ρ(d 3, t 7 ) = [7] 3 = 0 Dokument 3 gehört also nicht zur Ergebnismenge der Abfrage q 1, da der Term t 7 (Information) in Dokument 3 nicht auftaucht. ρ(d 4, q 1 ) = ρ(d 4, t 7 ) = [7] 4 = 1 In Dokument 4 ist t 7 allerdings schon enthalten, somit passt d 4 zur Anfrage. 2. Anfrage q 2 ρ(d 3, q 2 ) = ρ(d 3, t 7 t 11 ) = min (ρ(d 3, t 7 ), ρ(d 3, t 11 )) = min ( [7] 3, [11] ) 3 = min (0, 1) = 0 ρ(d 4, q 2 ) = ρ(d 4, t 7 t 11 ) = min (ρ(d 4, t 7 ), ρ(d 4, t 11 )) = min ( [7] 4, [11] ) 4 = min (1, 0) = 0 Hier passt keines der beiden Dokumente zur Anfrage, da weder in d 3 noch in d 4 beide der gesuchten Terme auftreten. 25

34 2 Boolsches Information Retrieval 3. Anfrage q 3 ρ(d 3, q 3 ) = ρ(d 3, t 11 ) = 1 ρ(d 3, t 11 ) = 1 [11] 3 = 1 1 = 0 4. Anfrage q 4 ρ(d 4, q 3 ) = ρ(d 4, t 11 ) = 1 ρ(d 4, t 11 ) = 1 [11] 4 = 1 0 = 1 ρ(d 3, q 4 ) = ρ (d 3, (t 7 t 11 ) (t 5 t 11 )) = max (ρ (d 3, t 7 t 11 ), ρ (d 3, t 5 t 11 )) = max (min (ρ(d 3, t 7 ), ρ(d 3, t 11 )), min (ρ(d 3, t 5 ), ρ(d 3, t 11 ))) = max ( min ( [7] 3, [11] ) ( [5] 3, min 3, [11] )) 3 = max (min(0, 1), min(1, 1)) = max(0, 1) = 1 Für Dokument d 4 erhält man auf dem gleichen Weg für ρ einen Wert von 0. Bei den Beispielen fallen zwei Dinge auf. Erstens, dass die Umformungen der Retrievalfunktion ρ von den Dokumenten unabhängig ist. Die Dokumente werden erst dann hinzugezogen, wenn tatsächlich auf Termebene geprüft wird, ob ein Term enthalten ist, also bei den [j] i. Zweitens ist auffällig, dass zur Bewertung eines Dokumentes nur das Dokument selbst betrachtet werden muss. Dies war historisch gesehen ein großer Vorteil für boolsche Systeme. Es mussten lediglich die Daten zu einem Dokumenten im Speicher gehalten werden um dessen Aufnahme in die Ergebnisliste zu beurteilen. Selbst für die Ergebnisliste musste kein (elektronischer) Speicher verwendet werden. Die gefundenen Dokumente konnten direkt ausgedruckt werden. Eine alternative Möglichkeit ist die Auswertung einer Anfrage über die Zeilen in der Term-Dokument Matrix. Die Zeilen geben direkt an, in welchen Dokumenten ein bestimmter Term enthalten ist. Über eine bitweise logische Kombination der Matrixzeilen kann dann ein Vektor erzeugt werden, der genau zu den Dokumenten der Ergebnismenge Einträge mit dem Wert 1 enthält. Alternativer Ansatz über Zeilenvektoren Nehmen wir uns noch einmal die etwas umfangreichere Abfrage (Information und Retrieval) oder (Document und Retrieval) vor. In ihr tauchen die Terme t 5, t 7 und t 11 auf. Die zugehörigen Zeilen der Matrix C sehen wie folgt aus: 26

35 2.3 Invertierter Index 1. t 5 (0, 0, 1, 0, 0) 2. t 7 (1, 1, 0, 1, 0) 3. t 11 (1, 1, 1, 0, 0) Wenn diese Zeilenvektoren nun stellen- und bitweise gemäß der Anfrage miteinander verknüpft werden, so erhält man: ((1, 1, 0, 1, 0) (1, 1, 1, 0, 0)) ((0, 0, 1, 0, 0) (1, 1, 1, 0, 0)) = = (1, 1, 0, 0, 0) (0, 0, 1, 0, 0) = (1, 1, 1, 0, 0) Und die Dokumente 1, 2 und 3 entsprechen genau der Ergebnismenge zu dieser Anfrage. 2.3 Invertierter Index Nachdem die theoretischen Grundlagen nun gelegt sind stellt sich die Frage, wie sich boolsches Retrieval in der Praxis umsetzen lässt. Wir werden an dieser Stelle den invertierten Index als eine der wichtigsten Datenstrukturen im IR kennenlernen. Der Ansatz, bei jeder Suchanfrage alle Dokumente nach den Suchtermen zu durchsuchen ist nicht praktikabel (siehe Abschnitt 2.5). Dafür sind die Datenmengen in einem IR System einfach zu umfangreich. Wie wir gegen Ende des letzten Abschnittes gesehen haben, lassen sich Anfragen auch wunderbar über die Zeilen in der Term-Dokument Matrix zu einer Ergebnismenge auswerten. Genau diesen Ansatz werden wir jetzt verfolgen. Da es die Zeilen der Matrix sind, die für die Berechnung der Ergebnismenge von Interesse sind, optimiert man zunächst den Zugriff auf einzelne Zeilen. Jede Zeile lässt sich einem Term zuordnen, so dass man die Terme als Schlüssel für die Zeilen verwenden kann. Das kommt auch der späteren Auflösungen einer Anfrage entgegen. Die Datenstruktur die hierzu vorrangig zum Einsatz kommt sind Suchbäume 4. Jedem Term im Suchbaum kann dann sein Zeilenvektor der Term-Dokument Matrix zugeordnet werden. Problematisch ist allerdings, dass die Term-Dokument Matrix in den meisten Fällen nicht mehr komplett gespeichert werden kann. Geht man von einer Sammlung von Tabellen mit Hashwerten der Terme als Schlüssel wären ebenfalls geeignet. Bei einem ständig wachsenden und vor allem sehr großem Vokabular wird allerdings irgendwann die Gefahr von Kollisionen zu groß zu werden. Weiterhin kann die Sortierung in einem Baum für weitere Funktionen ausgenutzt werden (s. Kapitel 3). 27

36 2 Boolsches Information Retrieval Dokumenten 5 aus, die auf einem Vokabular von Terme 6 basieren, so haben wir bereits eine Matrix der Größe x Um diese vollständig zu speichern wären also Bit nötig. Das entspricht Byte oder 12,5 Gigabyte. Für die Matrix gilt aber auch, dass sie extrem dünn besetzt ist. Nehmen wir an, dass in jedem der Dokumente verschiedene Terme 7 auftreten, dann stehen in der Matrix nur in 1% der Einträge eine 1. Die restlichen 99% enthalten eine 0. Die Idee ist daher, nur die 1 Einträge zu speichern und die 0 Einträge nicht ausdrücklich zu erwähnen. Eine solche Liste, die nur noch angibt in welchen Dokumenten ein Term zu finden ist, heißt Posting Liste. Ein Eintrag in dieser Liste, der für das Auftreten eines Terms in einem Dokument steht, wird als Posting bezeichnet. Ein einfaches Beispiel ist in Abbildung 2.1 zu sehen. Abbildung 2.1: Eine einfache Posting Liste. Ein Posting enthält nur eine Referenz auf das eigentliche Dokument. Hierzu können künstlich generierte Dokumenten-IDs verwendet werden. Eine Möglichkeit solche IDs zu erzeugen besteht darin, die Dokumente im Korpus einfach abzuzählen, beispielsweise in der Abfolge, in der die Dokumente indiziert werden. Die Posting Liste führt die Dokumentreferenzen (aufsteigend) sortiert auf. Das hat wie wir später sehen werden Vorteile bei der Suche. Die Kombination aus Suchbaum für die Terme und Posting Listen ergibt den invertierten Index 8. Der invertierte Index erlaubt es sehr effizient die Liste der Dokumente zu bestimmen, in denen ein bestimmter Term auftritt. Doch bevor wir den Index für die Suche verwenden, schauen wir uns vorher noch an, wie man den Index aufbauen kann. Zum Aufbau des Index durchläuft man die Dokumente des Korpus und bestimmt zunächst die darin enthaltenen Terme. Dadurch enthält man Tupel aus Dokument, bzw. Dokument-ID und Term. Diese Tupel werden dann nach den Termen sortiert und doppelt vorkommende Tupel können entfernt werden. Danach fasst man zu jedem Term die Tupel zusammen und sortiert gegebenenfalls noch die Dokument-IDs in der so entstehenden Liste. 5 Eine Schätzung gegen Ende 2006 gab für das WWW eine Größe zwischen 15 und 30 Milliarden Dokumenten an. 6 Der Duden enthält etwa Einträge. Man kann diese Zahl also gut als untere Abschätzung für das deutsche Vokabular heranziehen. 7 Bei einer einfachen Zählung auf Nachrichtenseiten im Web brachten es viele Dokumente auf kaum mehr als 300 verschiedene Terme. 8 Eigentlich sind Indizes immer invertiert, der Begriff hat sich aber als Name für die Datenstruktur in dieser Form eingebürgert. 28

37 2.3 Invertierter Index Konstruktion des invertierten Index Der Aufbau eines invertierten Index aus den fünf Dokumenten des Beispiels vom Anfang des Kapitels wird in Abbildung 2.2 gezeigt. Die drei Spalten stehen für die Schritte der Erstellung der Term-Dokument-ID Tupel ganz links, die Sortierung der Tupel nach Termen in der Mitte und die Zusammenfassung gleicher Terme ganz rechts. Abbildung 2.2: Aufbau eines invertierten Index aus Dokumenten. Abbildung 2.3 zeigt den vollständigen invertierten Index zu diesem Beispiel inklusive des Suchbaumes für die Terme. Der Übersichtlichkeit sind die Einträge die zum selben Dokument gehören weiterhin gleich eingefärbt. Häufig werden die Posting Einträge in den Listen und auch die Terme im Suchbaum um zusätzliche Daten erweitert. Auf diese Möglichkeit sowie deren Sinn und Zweck werden wir an den jeweiligen Stellen in diesem und den nächsten Kapiteln eingehen. Nun stellt sich die Frage, wie die Datenstruktur des invertierten Index für eine schnelle Suche genutzt werden kann. Für eine Suchanfrage in der genau ein Term enthalten ist (also von der Form q = t i ) gestaltet sich die Suche denkbar einfach: Wir brauchen im Index nur 29

38 2 Boolsches Information Retrieval Abbildung 2.3: Aufbau eines invertierten Index aus Suchbaum für die Terme und den angehängten Posting Listen. den Eintrag zum Term t i zu suchen, und dessen Posting Liste stellt bereits die Ergebnisliste dar. Am Beispiel des Suchbaumes in Abbildung 2.3 lässt sich das einfach nachvollziehen. Eine Suchanfrage nach dem Term Retrieval führt zur Posting Liste in Abbildung 2.4, die auf die Dokumente d 1, d 2 und d 3 verweist genau die Dokumente, die den Suchbegriff enthalten. Abbildung 2.4: Die Posting Liste zum Term Retrieval entspricht auch dem Suchergebnis nach diesem Begriff. Um nun komplexere Suchanfragen zu bearbeiten, müssen mehrere Posting Listen mit einander verglichen und verarbeitet werden. Wir betrachten zunächst die einfachen Fälle für eine Verknüpfung zweier Terme mit logischem und oder logischem oder. Bei einer Anfrage Daten und Retrieval werden zuerst die Posting Listen der einzelnen Suchterme bestimmt. Sie sind in Abbildung 2.5 zu sehen. Anschließend müssen aus den 30

39 2.3 Invertierter Index zwei Listen jene Einträge herausgesucht werden, die jeweils in beiden enthalten sind. Hierzu wird nun die Sortierung der Einträge nach Dokument-IDs ausgenutzt. Abbildung 2.5: Die Posting Listen der Terme Daten und Retrieval. Es genügt nämlich, beide Liste gleichzeitig mit je einem Zeiger zu durchlaufen. Die Ergebnisliste ist zunächst leer und die beiden Zeiger stehen am Anfang (d.h. den ersten Einträgen) der Posting Listen, wie in Abbildung 2.6 dargestellt. Sofern die Dokumenten- IDs an den Positionen der Zeigern nicht gleich sind, wird der Zeiger über der kleineren Dokument-ID weiterbewegt. Abbildung 2.6: Aufbau der Ergebnisliste zu Daten und Retrieval mit zwei Zeigern... Stehen die Zeiger dann über zwei Postings mit der gleichen ID (wie in Abbildung 2.7), so wird diese Dokumentreferenz in die Ergebnisliste aufgenommen. Dadurch, dass die Listen sortiert sind und immer nur der Zeiger über der kleineren ID weiterbewegt wird, werden gemeinsame Einträge auf jeden Fall gefunden. Nach der Übernahme eines gemeinsamen Eintrages werden beide Zeiger weiterbewegt. Abbildung 2.7:... die Zeiger suchen gemeinsame Einträge... 31

40 2 Boolsches Information Retrieval Sind schließlich eine oder sogar beide Listen abgearbeitet, d.h. der Zeiger ist am Ende der Liste angekommen, so ist die Ergebnismenge komplett. In unserem Beispiel ist dies in Abbildung 2.8 zu sehen, und Dokument d 2 ist auch tatsächlich das einzige, das beide Suchbegriffe gemeinsam enthält. Abbildung 2.8:... bis keine weiteren Einträge mehr enthalten sind. In Algorithmus 2.1 ist dieses Schneiden (Intersection), also das Suchen und Zusammentragen der gemeinsamen Einträge in zwei Posting Listen, formal beschrieben. Algorithmus 2.1 : Zusammenführen der gemeinsamen Einträge zweier Posting Listen. Input : L 1, L 2 : Posting Listen. Output : R: Liste mit gemeinsamen Einträgen. function Intersect(L 1,L 2 ); begin p 1 L 1.first; p 2 L 2.first; R new List; while (p 1 NULL) (p 2 NULL) do if p 1.ID p 2.ID then if p 1.ID < p 2.ID then p 1 p 1.next; else p2 p 2.next; return R end else R.append(p 1.ID); p 1 p 1.next; p 2 p 2.next; Das Erstellen einer Ergebnisliste für die Suche nach zwei mit logischem oder verknüpften Termen verläuft ähnlich. Anstatt die gemeinsamen Einträge in den Posting Listen zu finden, 32

41 2.3 Invertierter Index müssen alle Einträge aus beiden Listen zusammengetragen werden. Auch dabei kann die Sortierung der Einträge ausgenutzt werden. Der Algorithmus sieht ähnlich aus. Der Hauptunterschied liegt darin, dass auch dann ein Eintrag in die Ergebnisliste übernommen wird, wenn die Dokument-IDs an den beiden Zeigern nicht übereinstimmen. Dann wird jeweils die kleinere Dokument-ID an die Ergebnisliste angehängt, also die, dessen Zeiger danach weiterbewegt wird. Stimmen die IDs überein, so wird natürlich nur ein Eintrag übernommen aber beide Zeiger eine Position weitergerückt. Am Ende der Anfrage Daten oder Retrieval sieht die Situation also aus wie in Abbildung 2.9. Abbildung 2.9: Ergebnis nach dem Zusammenführen zweier Listen bei einer oder-abfrage. Ein kleiner wenn auch fast offensichtlicher Unterschied ist, dass beim Verschmelzen (Merge) von Posting Listen beide Listen bis zum Ende durchlaufen werden müssen. Selbst wenn das Ende der einen Liste erreicht wurde, müssen nämlich noch die verbleibenden Einträge aus der zweiten Liste ergänzt werden. In der formalen Darstellung in Algorithmus 2.2 ist dies berücksichtigt. Die beiden beschriebenen Vorgehensweisen zur Bestimmung der Einträge in einer Ergebnisliste zu zwei verknüpften Einträgen kann bei mehreren verknüpften Suchtermen schlichtweg mehrfach wiederholt werden. Da die verschmolzenen oder geschnittenen Listen wiederum sortiert sind, können sie wie jede andere Posting Liste gehandhabt werden. Abbildung 2.10 skizziert das schrittweise Vorgehen für die Anfrage (Information und Retrieval) oder (Document und Retrieval). Bei der Reihenfolge, in der die einzelnen Listen in Anfragen mit mehr als zwei Termen abgearbeitet werden, gibt es jedoch Möglichkeiten die Effizienz zu steigern. Wie erwähnt, kann bei der Verknüpfung mit und das Verschmelzen der Listen beendet werden, sobald bereits eine der Listen abgearbeitet ist. Verwendet man weiterhin etwas intelligentere Strukturen für die Liste (z.b. Skiplisten), kann auch das Weiterrücken des Zeigers über der kleineren Dokument-ID in größeren Schritten vollzogen werden. Das führt dazu, das Verknüpfungen mit sehr kurzen Listen sehr schnell berechnet werden können. Außerdem werden die Listen durch die Verknüpfung nur kürzer und nicht länger. Es empfiehlt sich also, immer die kürzesten Listen zuerst mit einander zu vergleichen. Unter Umständen gelangt man dabei sogar zu einem Punkt, an dem die Ergebnismenge schon vorab leer ist. Dann braucht man auf die restlichen Posting Listen gar nicht näher eingehen. 33

42 2 Boolsches Information Retrieval Algorithmus 2.2 : Zusammenführen aller Einträge zweier Posting Listen. Input : L 1, L 2 : Posting Listen. Output : R: Liste mit allen enthaltenen Einträgen. function Merge(L 1,L 2 ); begin p 1 L 1.first; p 2 L 2.first; R new List; while (p 1 NULL) (p 2 NULL) do if p 1.ID p 2.ID then if p 1.ID < p 2.ID then R.append(p 1.ID); p 1 p 1.next; else R.append(p 2.ID); p 2 p 2.next; else R.append(p 1.ID); p 1 p 1.next; p 2 p 2.next; while (p 1 NULL) do R.append(p 1.ID); p 1 p 1.next; while (p 2 NULL) do R.append(p 2.ID); p 2 p 2.next; return R end Betrachten wir dazu die Abfrage Information und Retrieval und befriedigt. Geht man die Posting Listen (siehe Abbildung 2.11) in der Reihenfolge der Aufführung der Suchterme durch, werden zunächst die Listen zu Information und Retrieval verglichen. Bei beiden Listen wandern die Zeiger bis auf das letzte Element durch. Vergleicht man jedoch zuerst die Posting Liste zu befriedigt mit der zu Information, dann ist die Berechnung der Ergebnisliste bereits nach dem ersten Eintrag vollendet. Gleiches gilt dann für den Vergleich dieses Ergebnisses mit der Liste zu Retrieval. Um schnell und einfach eine geeignete Reihenfolge für die Kombination der Posting Listen bestimmen zu können, wird die Länge der Liste mit in den Sucheintrag des Terms geschrieben. Die Länge der Liste gibt an, in wie vielen Dokumenten der Term auftritt. Diese Information wird auch Dokumentfrequenz genannt und für den Term t mit df(t) 34

43 2.3 Invertierter Index Abbildung 2.10: Abarbeiten mehrfach verknüpfter Suchterme am Beispiel von (Information und Retrieval) oder (Document und Retrieval) Abbildung 2.11: Posting Listen zu Information, Retrieval und befriedigt bezeichnet. Ergänzen wir die Dokumentfrequenz in den Termeinträgen unseres invertierten Index, dann sieht er aus wie in Abbildung Auf die logische Negation mit nicht sind wir bisher nicht näher eingegangen. Das Anwenden der Negation auf eine Ergebnimenge oder Posting Liste stellt algorithmisch keine große Herausforderung dar. Im Prinzip genügt es, über die Liste zu laufen, alle nicht vorhandenen Dokumenten-IDs in die Ergebnismenge aufzunehmen und alle vorhandenen IDs auszulassen. Von der praktischen Seite jedoch kann das schnell schwierig werden, da dieses Verfahren sehr lange Listen erzeugen kann. Wenn wir über einem Korpus von Dokumente eine Anfrage negieren, die 10 Treffer enthält, ist die Ergebnismenge Einträge lang. Eine Lösung zu dieser Problematik wird in [BYRN99] angesprochen. Anstatt ein volles logisches nicht zu unterstützen kann der Operator but verwendet werden, im Sinne von außer oder ohne. Die Anfrage Information but Retrieval wäre damit gleichwertig zu Information und (nicht Retrieval). Da but aber ein binärer Operator ist (und kein unärer wie nicht) erfordert er immer die Angabe zweier Listen. Damit ist es dann möglich aus einer (kurzen) Trefferliste lediglich die Vorkommnisse einer zweiten (ebenfalls kurzen) Trefferliste herauszunehmen. Mathematisch bedeutet das, dass nicht das Komplement der Ergebnismenge bezüglich aller Dokumente gebildet wird, sondern lediglich bezüglich einer anzugebenden Obermenge. Diese Obermenge wird durch den ersten Operanden des but spezifiziert und dürfte in den meisten Fällen deutlich weniger Dokumente als der gesamten Korpus enthalten. 35

44 2 Boolsches Information Retrieval Abbildung 2.12: Invertierter Index mit Speicherung der Dokumentfrequenz zu den Termen. 2.4 Bigramm und Position Index Wenn wir uns wieder an die Beispiele vom Anfang des Kapitels erinnern, dann fällt auf, dass wir mit unseren bisherigen Ansätzen die Anfrage Information Retrieval zwangsweise mit einer leeren Ergebnisliste beantworten müssen. Denn wenn wir die Anfrage an den boolschen Operatoren zerlegen und alle dazwischen stehenden Begriffe als Terme identifizieren, dann interpretieren wir für diese Anfrage den kompletten Suchbegriff als einen einzigen Term. Zum Term Information Retrieval haben wir im invertierten Index aber keinen Eintrag, d.h. der Term taucht für ein boolsches IR System in keinem Dokument auf. Das Problem ist ganz klar: Die Terme im Index entsprechen den Wörtern in den Dokumenten, die Terme in der Suchanfrage den Zeichenketten zwischen den logischen Operatoren. Eine einfache Möglichkeit das Problem zu lösen wäre, das Leerzeichen stillschweigend in ein logisches und umzuwandeln, im Endeffekt also nach Information und Retrieval zu suchen. Dadurch kann man dem Nutzer eine Ergebnismenge liefern, die näher an seinem Informationsbedürfnis liegen dürfte als die leere Ergebnismenge. Sie fällt allerdings größer aus als erwartet, da sie auch Dokumente enthält, in denen zwar beide Suchbegriffe auftreten, aber nicht direkt nebeneinander stehen. Daher enspricht dieser Lösungsansatz nicht wirklich der Semantik der Anfrage. 36

45 2.4 Bigramm und Position Index Anfragen, die wie Information Retrieval mehrere Terme enthalten werden als Phrasen Anfragen bezeichnet. Gelegentlich muss der Nutzer durch Setzen der Anfrage in Anführungszeichen auch ausdrücklich angeben, dass er eine Phrasen Anfrage stellen möchte. Es gibt zwei einfache Varianten des invertierten Index, mit denen sich eine Suche nach Phrasen realisieren lässt: der Bigramm Index und der Position Index. Ein Bigramm fasst zwei aufeinanderfolgende Terme zu einem Term zusammen (manchmal auch nur zwei Zeichen oder Silben je nach Anwendung und Zweck). Die Menge der möglichen Bigramme entspricht also den 2-Tupeln die über dem Vokabular gebildet werden können. Bigramme sind ein Spezialfall der N-Gramme, in denen jeweils Gruppen von N Termen betrachtet werden. Bigramme oder auch N-Gramme lassen sich einfach konstruieren. Nachdem ein Text in Terme zerlegt wurde, betrachtet man jeweils die Pärchen der direkt aufeinanderfolgenden Terme (siehe Abbildung 2.13). Abbildung 2.13: Erstellung der Bigramme über einer Termsequenz. Baut man nun einen invertierten Index über den Bigrammen als Terme auf, hat man die Anfrage Information Retrieval im Griff. Man sucht im Bigramm Vokabular den entsprechenden Eintrag und erhält die passende Posting Liste. Was aber wenn sich die Abfrage aus noch längeren Sequenzen zusammensetzt, wenn die Anfrage beispielsweise das komplette Dokument Information Retrieval befriedigt Informationsbedürfnisse ist? Die naheliegendste Lösung wäre neben einem normalen invertierten Index und einem Bigramm Index auch einen Trigrammindex oder noch höhergradige N-Gramm Indizes aufzubauen. Das Problem dabei ist, dass diese Indizes im Hinblick auf den Suchbaum sehr schnell sehr groß werden können. Viele der in einem Text beobachteten Kombinationen werden sehr selten oder gar nur einmalig auftreten. Daher werden längere Termsequenzen in Suchanfragen in Bigramme zerlegt und mit logischem und verknüpft. Aus der Anfrage Information Retrieval befriedigt Informationsbedürfnisse wird also Information Retrieval und Retrieval befriedigt und befriedigt Informationsbedürfnisse. Das kann zwar theoretisch immer noch zu faktischen Falschtreffern führen, in realen Szenarien sind diese für Nutzer aber vernachlässigbar oder sogar erwünscht 9. In der Praxis bauen viele IR Systeme Bigramm Indizes auch nicht über allen beobachteten Bigrammen auf, sondern nur über solchen die mit einer gewissen Häufigkeit auftreten. Der Hintergrund liegt in der Annahme, dass solche häufigen Bigramme feststehende Begriffe 9 Gerade bei längeren Phrasen Anfragen ist eine gewisse Flexibilität bezüglich eingestreuter Wörter eher sinnvoll, da sie zu fehlertoleranteren Ergebnissen führt. 37

46 2 Boolsches Information Retrieval oder Redewendungen darstellen (z.b. der Ausdruck Information Retrieval oder Floskeln wie Pro und Contra ). Auch werden meist semantisch wenig aussagekräftige Füllwörter (wir kommen zu Stoppwörtern und dergleichen im nächsten Kapitel) aus der Termsequenz entfernt, bevor die Bigramme erstellt werden (so z.b. das und in Pro und Contra, was zum Bigramm Pro Contra im Index führen würde). Einen anderen Ansatz um Anfragen nach exakten Phrasen wie Information Retrieval beantworten zu können ist der Position Index. Anstatt nur das Auftreten eines Terms in einem Dokument zu speichern, können wir in den Posting Einträgen auch gleich dessen Position(en) innerhalb des Dokumentes mit ablegen. Dazu zählt man die Terme im Dokument zunächst ab, so dass jedem ein eindeutiger Positionswert zugewiesen werden kann. Diese Positionswerte speichert man (ebenfalls sortiert) in den Posting Einträgen ab. Das ganze sieht dann aus wie in Abbildung Abbildung 2.14: Posting Liste mit Positionseinträgen. Der gesamte Position Index zu unserem bisherigen Beispiel mit Angabe der Dokumentfrequenzen ist in Abbildung 2.15 zu sehen. Die Positionslisten sind in diesem künstlichen Beispiel etwas verkümmert, da in keinem der Dokumente ein Term mehr als einmal vorkam. Eine Information, die für spätere IR Modelle von Interesse ist kann ebenfalls noch mit aufgenommen werden: die Termfrequenz tf d (t). So wie die Dokumentfrequenz df(t) angibt, in wie vielen Dokumenten ein Term t auftritt, gibt die Termfrequenz an, wie oft der Term in einem bestimmten Dokument d auftritt. Ähnlich dem Aufnehmen der Dokumentfrequenz in die Termeinträge des Suchbaumes, wird die Termfrequenz dann in jedem Posting gespeichert, so dass nicht die Länge der Positionsliste bestimmt werden muss. Um nun Anfragen wie Information Retrieval mit einem Positionsindex zu beantworten genügt es zunächst wie bei einer Anfrage Information und Retrieval vorzugehen. Wenn die beiden Posting Listen zu den Termen Information und Retrieval dann geschnitten werden, wird außer auf die Gleichheit der Dokument-IDs auch auf passende Positionseinträge geachtet. Dazu kann auch wieder die Sortierung der Positionseinträge ausgenutzt werden. Ein Position Index erlaubt aber auch die Einführung eines weiteren Operators: near. Damit lassen sich Abfragen stellen, die verlangen, dass zwei Begriffe nahe bei einander stehen. Was dabei mit nahe gemeint ist hängt entweder vom System ab oder lässt sich als Parameter übergeben. Eine Abfrage wie Information near3 Retrieval könnte also 38

47 2.5 Schnelle Stringsuche Abbildung 2.15: Invertierter Index mit Dokumentfrequenz und Angabe der Positionen in den Posting Einträgen. solche Dokumente liefern, in denen Information und Retrieval nicht weiter als drei Worte von einander entfernt stehen ( Retrieval dürfte dabei übrigens je nach Konvention auch vor Information stehen). Position Indizes führen ebenfalls zu deutlich mehr Bedarf an Speicherplatz. Sie sind flexibler als der Bigramm Ansatz, aufgrund der nötigen Listenoperationen aber langsamer. Wie bereits gesagt, empfiehlt sich eine Kombination aus beidem: für häufige Bigramm ein entsprechender Index und für allgemeine Anfragen ein Position Index. Dann greift man bei Phrasen Anfragen zunächst auf den Bigramm Index zu und erst wenn dieser keine Treffer liefert auf den Positionsindex. 2.5 Schnelle Stringsuche Wir hatten als Motivation für den Invertierten Index auch angegeben, dass eine direkte Stringsuche in den Dokumenten nicht praktikabel ist. Eine einfache Überlegung verdeutlicht dies. Das Unix-Tool grep, welches letztendlich eine Stringsuche umsetzt, benötigte zur Suche eines 10 Zeichen langen Suchbegriffs auf einer komplett im Hauptspeicher vorgehaltenen, 39

48 2 Boolsches Information Retrieval 26MB großen Dokumentsammlung etwa 0,032 Sekunden 10. Das heißt, in einer Sekunde könnten theoretisch 812,5 MB an Daten durchsucht werden. Wenn wir gemäß einer konservativen Schätzung von 2006 das World Wide Web als Korpus mit einer Größe von 15 Milliarden Dokumenten Dokumenten annehmen, und jedem Dokument eine ebenfalls sehr konservative Größe von 10 KB zugestehen. Dann würde ein grep auf dem WWW mehr als zwei Tage dauern. Zum Vergleich: Sucht man bei Google nach dem Wort the, bekommt innerhalb von 0,05 Sekunden die ersten zehn von 12,5 Milliarden Treffern angezeigt. Wenn die Stringsuche für den Einsatz in einem IR System auch nicht in Frage kommen mag, so kann sie an anderer Stelle oder in anderen Anwendungen hilfreich sein (beispielsweise zum Hervorheben eines Suchbegriffes beim Anzeigen eines Dokuments). Sie hat außerdem auch den Vorteil, dass sie ohne Vorverarbeitung des Dokuments, also der langen Zeichenkette in der gesucht wird, auskommt. Die Suche nach einem kurzen String (man spricht hier meist von Muster) in einer längeren Zeichenkette (wir bezeichnen sie der Eindeutigkeit halber mit Text) ist eine Aufgabe die häufig vorkommt. Es gibt eine ganze Reihe von Algorithmen die diese Aufgabe meistern. Der naive Ansatz für eine Suche wäre, dass man das Muster an jeder Position des Textes anlegt und dann prüft, ob es passt. Dies ließe sich in einem einfachen Programm mit zwei Laufschleifen umsetzen. Naive Stringsuche Wir suchen nach dem Muster suchmu im der Zeichenkette wir suchen ein suchmuster im text. Abbildung 2.16 zeigt wie die Suche verläuft. Das Muster wird an jeder Position angelegt und zeichenweise verglichen, bis das Muster komplett erkannt ist, oder ein unpassendes Zeichen auftritt. Um nicht nur die verschiedenen Ansatzpositionen sondern auch die Anzahl der Vergleiche zu verdeutlichen, ist in der Abbildung jeder Vergleich farblich dargestellt. Unpassende Zeichen sind im Muster rot markiert, passende mit grün und Zeichen die an einer Ansatzposition gar nicht verglichen wurden sind grau hinterlegt. Insgesamt wurden in diesem Fall also 25 Vergleiche durchgeführt, davon 15 unpassende. Deutlich effizienter geht es mit dem Algorithmus von Boyer-Moore. Hier werden zwei Ideen miteinander kombiniert. Die erste Idee ist, dass man beim Anlegen und Vergleichen im Muster auch von hinten anfangen kann. Die zweite Idee ist, dass man bei einem nicht passenden Zeichen, das gesamte Muster nicht nur um eine Position weiterverschiebt, sondern um so viele Positionen, dass das nicht passende Zeichen genau auf die letzte passende Stelle im Muster fällt. Gibt es das unpassende Zeichen nicht im Muster, dann kann man das Muster gleich um seine komplette Länge verschieben! Der Algorithmus erfordert eine 10 Der Test wurde auf einem zugegeben leicht betagten Notebook mit einem 1,5GHz Intel Pentium M Centrino Prozessor durchgeführt. Zur Abschätzung von Größenordnung reicht dies aber allemal, insbesondere da das Laden der Daten von Festplatte hier wegfällt. 40

49 2.5 Schnelle Stringsuche Abbildung 2.16: Naive Stringsuche in einer Zeichenkette. kleine Vorverarbeitung und Analyse des Suchmusters. Der Aufwand hierfür wird jedoch bei längeren Texten, kurzen Mustern und großem Alphabet sehr schnell wieder wett gemacht. Bei der Vorverarbeitung des Musters wird im Prinzip für jedes Zeichen im Alphabet ermittelt, wie weit das Muster in der Suche weitergeschoben werden kann. Taucht ein Alphabetzeichen gar nicht im Muster auf, kann man das Muster um seine komplette Länge verschieben, so dass dessen erstes Zeichen hinter dem nicht enthaltenen Zeichen landet. Für jedes im Muster enthaltene Zeichen wird die Position dessen letzten Auftretens ermittelt. Diese Verschiebetabelle wird dann konsultiert, wenn beim Vergleich von hinten ein unpassendes Zeichen auftritt. Wie weit tatsächlich verschoben werden kann hängt auch davon ab, wie viele passende Zeichen bereits am Ende erkannt wurden. Stringsuche nach Boyer-Moore Wir suchen wieder nach dem gleichen Muster in der obigen Zeichenkette. Zunächst wird anhand des Suchmusters bestimmt, wie weit bei nicht übereinstimmenden Zeichen weitergeschoben werden kann. Abbildung 2.17 zeigt die Erzeugung einer Tabelle für die Zeichen des Alphabets; das Fragezeichen steht hier stellvertretend für alle nicht im Muster enthaltenen Zeichen. Der Eintrag des von vorne gesehenen ersten u kann ignoriert werden, da weiter hinten ein weiteres u steht. Abbildung 2.17: Bestimmung des Verschiebeindex zum Suchmuster im Boyer-Moore Algorithmus. 41

50 2 Boolsches Information Retrieval Bei der tatsächlichen Suche (zu sehen in Abbildung 2.18) wird nun zunächst das Muster unter den Text gelegt. Es wird von hinten angefangen zu vergleichen und das letzte Zeichen stimmt in diesem Fall direkt überein. Daher wird das vorletzte Zeichen verglichen, das nicht mehr zum Text passt. Im Text steht ein s, dem in der Verschiebetabelle eine 5 zugeordnet ist. Da aber bereits ein Zeichen von hinten abgearbeitet wurde wird das Muster nur um 5-1 = 4 Stellen verschoben. An diesem Ansatzpunkt passen die letzten Zeichen nicht zusammen. Außerdem ist das letzte Zeichen im Text ein n, das im Muster nicht vorkommt. Es kann also direkt um die gesamte Musterlänge von 6 Stellen verschoben werden. Auch diesmal stimmen die letzten Zeichen nicht überein, allerdings ist das unpassende s in der Verschiebetabelle eingetragen. Es wird also nur um 5 Stellen verschoben. Dann ist das Suchmuster allerdings auch schon gefunden. Abbildung 2.18: Stringsuche nach Boyer-Moore. Entsprechend gering ist auch die Anzahl der durchgeführten Vergleiche: insgesamt 10 Vergleiche, davon nur 3 unpassende. Hinzu kommt natürlich die Vorverarbeitung, die hier mit den sechs Zeichen des Musters zu Buche schlägt. 2.6 Zusammenfassung In diesem Kapitel haben wir unser erstes IR Modell kennengelernt, das boolsche Retrieval. Es basiert auf Anfragen über boolschen Verknüpfungen von Suchtermen. Wir haben das Modell sowohl unter theoretischen Gesichtspunkten als auch bezüglich seiner praktischen Umsetzung genauer untersucht. Als Datenstruktur haben wir dazu den invertierten Index eingeführt, der sich zum Bigramm oder Position Index modifizieren und erweitern lässt. Zum Abschluss wurde mit dem Boyer-Moore Algorithmus ein Verfahren zur schnellen Suche in Zeichenketten vorgestellt. 42

51 3 Dokumentvorverarbeitung und Anfrageerweiterung Die Terme, die wir im letzten Kapitel für den Aufbau eines invertierten Index verwendet haben, sind gewissermaßen vom Himmel gefallen. Wir haben angenommen, die Terme zur Verfügung gestellt zu bekommen. Dabei lässt sich in einem IR System fast beliebig viel Aufwand in die Schritte stecken, die zur Erkennung und Extraktion der Terme aus einem Dokument führen. Darüber hinaus tendiert das vorgestellte boolsche IR Modell bezüglich van Rijsbergens Abgrenzung zwischen Daten und Information Retrieval noch sehr in die Richtung des Daten Retrieval. So werden beispielsweise nur exakter Treffer gefunden. Auch kleine Tippfehler oder andere Schreibweisen bei den Suchtermen führen zu anderen oder gar keinen Ergebnissen. Einige dieser Schwachpunkte können durch geeignete Verfahren in der Dokumentvorverarbeitung abgeschwächt werden. Auch das Ausbauen der Abfragesprache, beispielsweise durch Wildcards, kann helfen die Ergebnisse zu verbessern. Alle diese Verfahren sind wiederum nicht nur für boolsches IR sondern zumindest bedingt auch für andere Verfahren von Interesse. Wir werden daher in diesem Kapitel näher auf einzelne Ansätze eingehen. Wir beginnen mit der Dokumentenvorverarbeitung. Dazu gehört beispielsweise die Bestimmung der Kodierung, des Dateiformates, die Feststellung der Sprache und eine gewisse Strukturanalyse. Der nächste wichtige Schritt ist die Tokenisierung der Inhalte in Wörter, welche dann wiederum in einen Normalisierungs- und Filterprozess hineingesteckt werden. Erst am Ende ergeben sich dann die Terme welche in den Index aufgenommen werden. Die gleiche Vorverarbeitung muss im Prinzip auch auf den Anfragen geschehen. Zusätzlich lassen sich hier aber noch andere Funktionen einbauen, durch welche die Anfragesprache mächtiger und flexibler wird. Wildcards oder eine Rechtschreibkorrektur sind Beispiele hierfür, die wir etwas näher beleuchten werden. Zu vielen der angesprochenen Probleme werden in diesem Kapitel zwar Konzepte aber keine allgemeingültigen Lösungen präsentiert. Es soll vielmehr auf die Schwierigkeiten aufmerksam gemacht werden, die bei der Konstruktion eines Index auftreten können. Ob ein Lösungsansatz geeignet ist, lässt sich oft erst bei genauerer Betrachtung der Anwendung, der Dokumente oder der intendierten Nutzer sagen. 43

52 3 Dokumentvorverarbeitung und Anfrageerweiterung 3.1 Zugriff auf die Dokumentinhalte Im letzten Kapitel haben wir uns intensiv mit der Indizierung 1 von Dokumenten und der Suche im invertierten Index beschäftigt. Zu den Termen, die als Einträge im Index stehen, hatten wir gesagt sie wären in etwa mit den Wörtern im Text gleichzusetzen. Tatsächlich ist der Weg von einem zu indizierenden Dokument (also von einer Datei und noch nicht der systeminternen Repräsentation) zu den Termen zu diesem Dokument keineswegs trivial. Es gibt eine Menge Stolpersteine und Hindernisse die zunächst aus dem Weg geräumt werden müssen. Das beginnt bereits bei der Dokumentdatei selbst. Diese kann in verschiedenen Formaten vorliegen, z.b. als reine Textdatei, als HTML, XML oder RTF. Auch applikationsabhängige Formate wie Word oder OpenOffice, sowie ausgabeorientierte Formate wie PDF oder Postscript Dateien sind weit verbreitet und ihre Unterstützung in IR Systemen ist fast schon Standard. Um an die eigentlichen Inhalte solcher Dateien zu kommen benötigt man Kenntnisse über deren Formate. Auch im Fall von XML oder SGML Formaten (wie z.b. HTML) müssen einige Besonderheiten in der Kodierung der Zeichen beachtet werden. Sie enthalten sogenannte Entitäten. Das sind Kodierungen von Spezialzeichen, wodurch die Dokumente unabhängiger vom verwendeten Zeichensatz werden. Die wohl bekanntesten Beispiele sind <, >, &quot und & für die Symbole <, >, " und &. Selbst bei reinen Textdateien kann die Frage der Zeichensatzkodierung (ASCII, ISO , UTF-8, etc.) entscheidend für einen korrekten Zugriff auf die Inhalte sein. Als zusätzliche Hürde kann noch hinzukommen, dass die Dokumente eventuell mit einem Packprogramm (zip, gzip, bzip, rar) komprimiert wurden. Wenn man weiterhin an andere Sprach- und Kulturkreise denkt, stellt man fest, dass selbst danach noch nicht klar ist, wie genau man an den Text herangehen muss. Sprachen, die auf dem lateinischen, griechischen oder kyrillischen Alphabet basieren werden von links nach rechts gelesen, arabische Sprachen jedoch genau umgekehrt. In asiatischen Dokumenten wird eventuell spalten- statt zeilenweise gelesen. Fremdsprachige Dokumente sind auch in anderer Hinsicht problematisch, beispielsweise bei der im nächsten Abschnitt angesprochenen Zerlegung in Tokens. Wir werden in diesem Rahmen jedoch nicht weiter auf diese Schwierigkeiten eingehen sondern konzentrieren uns auf Sprachen wie Deutsch und Englisch sowie das lateinische Alphabet. Gehen wir also davon aus, dass wir aus den Dokumenten den Text als lange Folge von Zeichen extrahieren können. Das soll übrigens nicht heißen, dass wir jegliche Information über Struktur und Layout des Dokumentes vergessen oder ignorieren. Die Struktur spielt nämlich später auch bei der inhaltlichen Analyse ein Rolle. Zunächst (und auch hier kann die Kenntnis der Struktur wichtig sein), muss festgelegt werden, auf welcher Ebene die Dateien als Dokumente aufgefasst werden und welche Inhalte überhaupt für die Indizierung in Frage kommen. In manchen Fällen enthält eine einzelne Datei mehrere faktische Dokumente. Beispielsweise ist das häufig bei Mailprogrammen der Fall, die alle Mails in einer großen Datei speichern. Ein anderes Beispiel sind Tagungsbände 1 Gelegentlich findet man auch den Begriff Indexierung. 44

53 3.2 Tokenisierung der Inhalte einer Konferenz, in denen alle Beiträge der Teilnehmer gesammelt werden. In diesen Fällen ist es wenig sinnvoll, die Datei mit allen s, bzw. den kompletten Tagungsband jeweils als ein Dokument aufzufassen. Vielmehr müssen die Dateien intern in mehrere Dokumente zerlegt und auch als solche indiziert werden. Umgekehrt kann es sein, dass ein Dokument sich über mehrere Dateien erstreckt, beispielsweise Bücher die mehrere Bände umfassen oder längere Texte im Web, die auf mehrere HTML Seiten verteilt und durch Links verknüpft werden. Hier bietet es sich dann an, die einzelnen Dateien organisatorisch als ein Dokument im IR System aufzufassen. Eventuell sind auch nur Teile eines vollständigen Dokumentes für die Dokumentrepräsentation im IR System von Interesse. So könnte ein Index über wissenschaftlichen Papieren sich nur auf Titel, Autoren und Abstract erstrecken, und den Volltext außer Acht lassen. In einem weiteren Schritt wird die Sprache des Dokuments ermittelt. Das lässt sich über k-gramme über den Zeichen 2 realisieren. Gewisse Zeichenkombinationen sind für eine bestimmte Sprache ganz typisch, für andere Sprachen aber extrem ungewöhnlich 3. Genauso lässt sich betrachten wie häufig sehr allgemeine und oft verwendete Wörter in einem Text vorkommen. In fast jedem deutschsprachigen Text werden sich Worte wie der, die, das, und, ein, einer, usw. finden in einem italienischen Dokument ist es fast ausgeschlossen, dass sie auftreten. 3.2 Tokenisierung der Inhalte Die Kenntnis der Sprache und der Struktur ist nötig für die Zerlegung einer Zeichenkette in Wörter. Genauer genommen spricht man nicht von Wörtern, sondern von Tokens. Schließlich können in den Texten auch Namen, Zahlen oder Abkürzungen auftreten, die zwar als Einheit erfasst werden aber nicht wirklich als Wörter anzusehen sind. Der Prozess eine Zeichenkette in Tokens zu zerlegen wird als Tokenisierung oder auch Segmentierung bezeichnet. Zunächst wird jedoch häufig eine Zerlegung in gröbere Strukturen vorgenommen. Für einen Positionsindex kann es beispielsweise auch von Interesse sein, ob zwei Terme im gleichen Kapitel, im gleichen Absatz oder im gleichen Satz auftauchen. Die ersten beiden Fälle lassen sich über Strukturinformationen eines Dokumentes angehen. Wir betrachten an dieser Stelle den Fall der Satzerkennung etwas näher, der ebenfalls von Kenntnissen der Struktur profitiert. Der einfachste Ansatz ist, in der Textzeichenkette nach Satzendezeichen zu suchen: dem Punkt, dem Frage- oder dem Ausrufezeichen. Das kann jedoch an manchen Stellen zu Fehlern führen. Einerseits stehen nicht immer Satzendezeichen am Ende einer semantisch in sich geschlossenen Textstruktur, andererseits finden sich die Zeichen gelegentlich auch mitten im Satz. Bei Aufzählungen oder Auflistungen beispielsweise, werden die einzelne 2 Interessanterweise werden N-Gramme im Zusammenhang mit Zeichen oft als k-gramme oder auch k- mers bezeichnet. 3 In Kapitel 13 wird im Zusammenhang mit der Klassifikation von Texten auf Seite 244 ein Verfahren angesprochen, mit dem sich auf dieser Basis sogar die Sprache von sehr kurzen Texten bestimmen lässt. 45

54 3 Dokumentvorverarbeitung und Anfrageerweiterung Punkte häufig nicht durch ein Satzendezeichen abgeschlossen nämlich dann, wenn es sich grammatikalisch gesehen nicht um einen vollständigen Satz handelt. Auch Titel und Überschriften schließen nicht mit Satzendezeichen ab. Von der Semantik her können diese Konstrukte allerdings schon als Satz angesehen werden. Ein gutes und häufig anzutreffendes Beispiel für Satzzeichen mitten im Satz sind Abkürzungen. Diese werden mit einem Punkt gekennzeichnet, schließen den Satz aber keinesfalls ab. Sehr schön ist die Problematik im Beispiel in Abbildung 3.1 zu sehen. Durch die Segmentierung an den enthaltenen Satzendezeichen werden hier aus einem einzigen gleich sieben Sätze! Abbildung 3.1: Fehlerhafte Segmentierung an Satzendezeichen. Das Beispiel liefert aber auch bereits erste Hinweise, wie man solche Probleme umgehen kann. Bereits die Kenntnis über (gebräuchliche) Abkürzungen reduziert das Problem deutlich. Die Behandlung von Abkürzungen lässt sich einfach über ein Verzeichnis gängiger Abkürzungen realisieren. Da jede Sprache eigene Abkürzungen verwendet, spielt hier das oben angesprochene Erkennen der Sprache des Textes eine wichtige Rolle. Erkennt man in unserem Beispiel beim Segmentieren die Abkürzungen Prof., Dr. und z.b., so bleiben nur noch zwei Stellen übrig, an denen der Satz fälschlicherweise aufgetrennt wird 4. Einige allgemeine Regeln, die dabei helfen sollen auch die restlichen sowie etwaige andere Problemfälle zu erkennen, werden von Heyer, Quasthoff und Wittig [HQW06] genannt. Sie listen einige einfache Regeln oder Hinweise zur Erkennung von Satzanfängen und Enden auf 5 : Ein Satz beginnt nie mit einem Kleinbuchstaben. Ein ansonsten immer klein geschriebenes Wort (z.b. der, die, das), das plötzlich groß geschrieben ist, deutet auf einen Satzanfang hin. Überschriften bilden eigene Sätze. Nach einer Überschrift beginnt ein neuer Satz. Vor eine Überschrift endet ein Satz. Am Anfang eines Absatzes beginnt ein neuer Satz. 4 Man könnte auch.net als Abkürzung verstehen. Die Tatsache, dass der Punkt vorne steht, macht es jedoch nicht direkt als solche erkennbar. 5 Die Autoren erwähnen in dieser Liste auch Satzendezeichen, die wir jedoch bereits als mehr oder weniger offensichtlich angegeben hatten. 46

55 3.2 Tokenisierung der Inhalte Am Ende eines Absatzes endet ein Satz. Bei diesen (Faust-)Regeln spielt wiederum eine gewisse Kenntnis der Textstruktur eine Rolle, nämlich wenn es um Absätze und Überschriften geht. In manchen Dokumentformaten (HTML, Word, L A TEX) gibt es in der Dokumentsyntax zumindest Hinweise darauf, was Absatz und was Überschrift sein könnte. Auch die Beachtung von Freiraumzeichen (Leerzeichen) kann helfen zu entscheiden, ob ein Punkt ein Satzende markiert oder in anderer Weise gebraucht wird. Bei einem Satzende wird i.d.r. vor dem Punkt kein Freiraum gelassen, danach aber schon. Damit ließe sich der Fall.NET behandeln, oder auch die Angabe von Daten in Formaten wie In begrenztem Umfang könnte man dadurch sogar unbekannte Abkürzungen erkennen. Schließlich gibt es noch gewisse Wendungen und Sprachkonstrukte, die immer mit einem Punkt verwendet werden: Freitag der 13., Euro, IP Adresse oder Ludwig XIV. beispielweise. Auch Einschübe durch wörtliche Rede oder Klammern müssen beachtet werden und sind insbesondere dann problematisch, wenn im Einschub keine Satzendezeichen verwendet werden. Sobald die Sätze erkannt sind, liegt der nächste Schritt in der Erkennung der Wort- Token. Die Tokenisierung eines Textes ist ebenfalls anspruchsvoller und komplexer als man zunächst vermuten mag. Sicherlich kann man eine Zeichenkette zunächst einfach an allen Freiraumzeichen (white spaces) aufsplitten. Zu den Freiraumzeichen gehören neben dem Leerzeichen auch Tabulatoren und Zeilenumbrüche. Wenn man diese Zeichen wie in Abbildung 3.2 an einem Beispiel gezeigt für die Termerkennung nutzt, kommt es jedoch zu ungewollten Artefakten. Satzzeichen wie Kommata, Punkte oder Frage- und Ausrufezeichen bleiben in den Token erhalten. Im Beispiel ist dies an den Token größte, und hoch. zu sehen. Abbildung 3.2: Möglichkeiten der Tokenisierung eines einfachen Satzes. Die Verwendung der Satzzeichen als Trennzeichen zwischen Token führt ebenfalls zu unerwünschten Effekten: die Zahl 4,5 wurde in zwei Token zerlegt. Gleiches würde Abkürzungen passieren. Entfernt man an den durch Freiräume erkannten Token führende oder nachfolgende Satzzeichen, bekommt man die Token in diesem Beispiel in den Griff. Problematisch wäre dies allerdings für den Satz aus Abbildung 3.1, da der Begriff.NET zu NET beschnitten würde. 47

56 3 Dokumentvorverarbeitung und Anfrageerweiterung Ebenfalls schwierig zu behandeln sind Bindestriche und Apostrophe oder Anführungszeichen. Bindestriche können zusammengesetzte Worte andeuten ( der Suchmaschinen-Gigant Google ), sie tauchen in feststehenden Begriffen auf ( H-Milch, Dipl.-Ing., F-18 ), sie stellen die Silbentrennung am Zeilenumbruch dar oder die Auslassung eines Wortteils in Aufzählungen ( Hoch- und Tiefbau, Web-, File- und Mailservice ). Sie können also als Trennzeichen zwischen Token auftreten, als Bestandteil innerhalb eines Tokens oder sie deuten an, dass ein Token eigentlich erweitert werden müsste. Apostrophe und Anführungszeichen tauchen im Deutschen seltener auf, können aber ebenso unterschiedliche Rollen erfüllen. Sie markieren Auslassungen ( da ist s statt da ist es ) oder Kurzformen ( I m statt I am, aren t statt are not ), sie stecken in Namen ( O Brian ) oder Namenskonstrukten ( Heisenberg sche Unschärferelation ). Auch andere Zeichen, trifft man heutzutage vor allem in technischen Dokumenten häufiger an: (Mailadressen), das # (C#) oder die Zeichen \ und / (URLs, Dateisystempfade). Allgemeingültige Lösungen, wie man mit diesen Zeichen umgeht gibt es wohl nicht. Auch die Fachliteratur schweigt sich über Lösungsansätze aus. Am sinnvollsten ist wohl situations- und anwendungsabbhängig zu prüfen, wann eine Tokenisierung an welchen Zeichen einen Sinn ergibt und wann nicht. Einzelne Ausnahmen lassen sich wie bei den Abkürzungen über Listen mit den entsprechenden Begriffen behandeln. Eine weitere Technik, die insbesondere bei deutschen Texten wichtig sein kann, ist die Aufspaltung von zusammengesetzten Wörtern. Die deutsche Sprache erlaubt es, durch die Komposition mehrerer Substantive neue Wörter zu erschaffen. Eines der bekanntesten Beispiele dürfte die Donaudampfschiffkapitänsmütze sein. Dass nach solchen zusammengesetzten Wörter in einem Suchindex wohl selten gesucht wird dürfte klar sein. Da die einzelnen Bestandteile eines solchen Wortes aber durchaus von Interesse sein können werden zur Auflösung zusammengesetzter Wörter sogenannte compound splitter eingesetzt. 3.3 Termfilterung und -normalisierung Wir sind nun an einem Punkt angekommen, an dem wir die Wörter oder allgemeiner Token in einem Text erkannt und voneinander getrennt haben. Prinzipiell wäre es nun möglich, einen Index über diese Wörtern aufzubauen. In der Praxis werden aber häufig noch einige weitere Algorithmen angewendet, um die Token zu normalisieren, inhaltlich ähnliche Token zusammenzufassen oder ganz allgemein den Index möglichst klein zu halten. Manning, Rhagavan und Schütze [MRS08] führen einige Begriffe an, um die Verbindungen zwischen dem Text und dem Index klar zu machen. Nach der Zerlegung kann ein Text als Folge von Token dargestellt werden. Lexikalisch gleichlautende Token werden als Typen bezeichnet. Das heißt also, ein Typ ist die Menge aller Token, die aus der gleichen Zeichenkette bestehen. Die Terme für den Index sind dann normalisierte Typen. Dabei können die Terme durchaus von den Typen verschieden sein. Wir sind bisher implizit immer von einer Indizierung der Wörter in einem Text ausgegangen. Das ist nicht 48

57 3.3 Termfilterung und -normalisierung immer der Fall. Wenn ein Vokabular für den Index fest vorgegeben wird (kontrolliertes Vokabular), müssen die Typen im Text auf diese Indexterme abgebildet werden. Die Typen müssen dazu noch nicht einmal Wörter im eigentlichen Sinne darstellen, sondern können abstrakte Bezeichner für Klassifikationen sein (z.b. ACM Klassifikation: H.3.3 für Information Search and Retrieval ). An dieser Stelle wollen wir uns aber weiterhin zunächst mit einem (theoretisch) unbegrenzten Vokabular (freies Vokabular) beschäftigen, das direkt aus den Typen abgeleitet wird. Dazu schauen wir uns als erstes die Verteilung von Wörtern oder Wortformen in einem Text an. Dazu gibt es zwei häufig im IR zitierte Regeln: das Heap sche Gesetz und das Zipf sche Gesetz. Das Heap sche Gesetz erlaubt eine Abschätzung der Vokabulargröße M über einem Korpus. Enthält der Korpus insgesamt T Token, dann kann M folgendermaßen abgeschätzt werden: M kt b wobei k und b Parameter sind, die vom Korpus abhängen. Als typische Werte werden für b etwa 0,5 und für k Werte zwischen 30 und 100 angegeben. Das Zipf sche Gesetz hingegen schätzt die Häufigkeit der Terme ab. Hierzu werden die Terme zunächst absteigend bezüglich ihrer Häufigkeit cf(t) im gesamten Korpus (die sogenannte collection frequency eines Terms) sortiert. Der Term t 1 taucht also am häufigsten auf, Term t 2 am zweithäufigsten und so weiter. Dann gilt in etwa: cf(t i ) i K wobei K ein konstanter Wert ist. Während diese Verteilung für die häufigsten und seltensten Terme sicherlich nur eine grobe Abschätzung ist, trifft sie im Mittelfeld über den meisten Korpora recht gut zu. Beide Gesetze drücken typische Beobachtung aus. Erstens: je mehr Dokumente man sieht, desto weniger neue Terme enthalten sie. Das ist durchaus leicht nachvollziehbar, insbesondere da irgendwann auch ein Großteil der regulären Sprache ausgeschöpft ist. Zweitens, dass es einige wenige Terme gibt, die sehr häufig auftreten, ebenso wie sehr viele Terme, die sehr selten auftauchen. Insbesondere die letzte Beobachtung ist sehr interessant, wenn man betrachtet, wie sinnvoll ein Term als Beschreibung für ein Dokument ist. Luhn [Luh58] hat in diesem Zusammenhang eine interessante Aussage mit einer anschaulichen Darstellung verknüpft, die recht häufig zitiert wird. Er sagte, dass sowohl sehr häufige als auch sehr seltene Terme wenig hilfreich bei der Beschreibung eines Dokuments sind. Sehr häufige Terme differenzieren zu wenig zwischen den Dokumenten. Taucht beispielsweise in jedem Dokument in einem Korpus mehrfach das Wort Computer auf, so hilft genau dieses Schlagwort recht wenig bei einer Suche. Die sehr seltenen Terme hingegen sind zu speziell. Nach ihnen wird wohl selten oder gar nicht gesucht, bzw. der Nutzer hat sowieso ein ganz bestimmtes Dokument im 49

58 3 Dokumentvorverarbeitung und Anfrageerweiterung Abbildung 3.3: Luhns Darstellung zur Auswahl ausdruckskräftiger Terme. Sinn 6. Daher schlussfolgert Luhn, dass die Terme mit mittlerer Häufigkeit am hilfreichsten und aussagekräftigsten für ein Dokument sind. Er drückt das in einer Abbildung ähnlich wie in 3.3 aus, und modelliert die Aussagekraft als ein Kurve, die im mittleren Bereich am höchsten ist. Durch einen Mindestwert in der Aussagekräftigkeit bestimmt er einen Bereich der hilfreichen Terme, die zwischen einer minimalen und maximalen collection frequency liegen (die beiden vertikalen Linien). Die Oberschranke wird in der Praxis allerdings selten verwendet, da man dem Nutzer die Suche nach eindeutigen Termen nicht verbieten will. Die untere Schranke hingegen wird häufig eingesetzt. Entweder tatsächlich über einen bestimmten Schwellwert für cf oder über eine vorgefertigte Liste der häufigsten Wörter. Diese Wörter werden auch als Stoppwörter (stop words) bezeichnet. Es sind meist Wörter, die zwar nötig sind, um syntaktisch korrekte Sätze zu formen, die aber für sich betrachtet wenig oder nichts zur Semantik beitragen. Typische Beispiele sind Artikel (der, die, das, ein, einer,...), Konjunktionen (und, oder, ), Präpositionen (in, am, im, um, vom,...) oder Pronomen (er, sie, es, ihm, ihr, mein, dein...). Der Umfang der in IR Systemen eingesetzten Stoppwortlisten ist sehr unterschiedlich. So schätzt die Website RANKS.NL [Ran07] den Umfang der von Google genutzten Stoppwortliste auf 36 Einträge, während das Handbuch der MySQL Datenbank [MyS07] für Volltextsuchen einen Stoppwortindex von etwa 550 Wörtern aufführt. Dass das Herausfiltern von Stoppwörtern aus dem Index nicht ganz problemlos ist, wird klar wenn man betrachtet, das auch Wörter zur Negation ( nicht ) häufig in den Stopp- 6 Die Suche nach einem bekannten Dokument ist ein anderes Thema. 50

59 3.3 Termfilterung und -normalisierung wortlisten enthalten sind. Je nach Anwendung (beispielsweise bei der Sentiment Analysis) kann das Weglassen solcher Wörter zu verfälschten Ergebnissen führen. Eine weitere Möglichkeit den Index zu verkleinern und Terme zu normalisieren bezieht sich auf Groß- und Kleinschreibung. Ein Wort kann im Text allein durch seine Stellung unterschiedlich geschrieben werden. So werden Wörter, die am Satzanfang stehen immer groß geschrieben, selbst wenn das Wort an anderer Stelle im Text klein geschrieben würde. In Überschriften gilt dies genauso (insbesondere im Englischen), hier werden die Wörter gelegentlich sogar komplett gross geschrieben (Kapitälchen). Diese Unterschiede in der Groß- und Kleinschreibung haben auf die Bedeutung der Wörter keinerlei Einfluss, weshalb mehrere Einträge im Index nicht gerechtfertigt sind. Es gibt zwei gängige Lösungen um dem entgegen zu wirken: Case Folding und True Casing. Beim Case Folding wird der Term komplett in Groß- oder Kleinbuchstaben umgewandelt. Dadurch wird jeglicher Unterschied in der Schreibweise ausgeglichen. Nachteil kann aber sein, dass dadurch auch Terme mit verschiedenen Bedeutung zusammengelegt werden ( US und us, Elf und elf ). Die Alternative True Casing bildet die Terme auf ihre korrekte Schreibweise ab und gleicht nur abweichende Groß- und Kleinschreibung (beispielsweise am Satzanfang) aus. Dafür isttrue Casing aber ungleich schwieriger umzusetzen. Bei allen Änderungen in der Schreibweise ist auch zu bedenken, wie der Nutzer seine Anfragen stellt. Viele Nutzer, bedingt durch ihre Gewöhnung an Web-Suchmaschinen, stellen ihre Anfragen meist komplett kleingeschrieben. Ein weiterer Punkt, wo Terme voneinander verschieden aussehen, aber eigentlich das gleiche Wort beschreiben, sind Flexionen. Das heißt ein Wort verändert seine Schreibweise abhängig von seiner Funktion im Satz, also beispielsweise durch Konjugation oder Deklination. Die Terme Baum, Bäume, Baums (Genetiv) beschreiben ebenso alle das gleiche Konzept wie gehen, (du) gehst, ging und gegangen. Hier hilft die Zurückführung der Terme auf eine Grund- oder Stammform. Wird dies über ein grammatikalisches Wörterbuch und korrekte Sprachanalysen erledigt, so spricht von Lemmatisierung. Ein Lemma ist in diesem Zusammenhang die Grundform des Wortes, beispielsweise so, wie man es im Wörterbuch finden würde. Die Verbformen gehen, gehst, ging und gegangen würden also alle auf gehen abgebildet. Die Entwicklung einer Software zur korrekten Lemmatisierung ist sehr aufwändig, deshalb gibt es einen anderen, einfacheren Ansatz. Beim Stemming wird ein Wort durch Regeln auf eine (grammatikalische oder künstliche) Stammform zurückgeführt. Dazu kann es einfache Regeln bezüglich der Wortendung geben. So könnten im Deutschen unter anderem vielleicht folgende Regeln eingesetzt werden: innen in Für Pluralformen: Studentinnen Studentin, Arbeiterinnen Arbeiterin en e Für Pluralformen: Flaschen Flasche, Blumen Blume, Seen See ls, ts, gs l, t, g Für Genetivformen: Mülls Müll, Blatts Blatt, Flugs Flug Diese sehr einfachen Regeln können natürlich schnell zu fehlerhaften Stammformreduktionen führen: Finnen wird zu Fin (statt Finne ), Meeren (Dativ plural) wird zu 51

60 3 Dokumentvorverarbeitung und Anfrageerweiterung Meere (statt Meer ). Das ist in manchen Fällen nicht weiter schlimm, sofern alle Wörter eines Stamms auf die gleiche fehlerhafte Stammform zurückgeführt werden und diese sich nicht mit einem anderen Stamm überschneidet. Andere Fehler lassen sich durch mehrstufige Verfahren oder Vorgabe einer Reihenfolge zur Anwendung der Regeln beheben. So muss bei den obigen Regeln beispielsweise die Regel für die Endung -innen vor der Regel für -en angewendet werden, damit sie überhaupt greifen kann. Alle Ausnahmen und Sonderfälle werden in Stemming Verfahren aber nie beachtet werden. Das Snowball Projekt 7 bietet eine Vielzahl fertiger Stemmer für verschiedener Sprachen an. Darunter ist auch der häufig verwendete Porter-Stemmer [Por80] für englische Texte. Es gibt noch weitere Fälle in denen eine Normalisierung der Terme wünschenswert und hilfreich wären. Beispielsweise bei Abkürzungen ( U.S.A. oder USA, bzw. U.S. oder US ) oder unterschiedlichen Schreibweisen ( naive oder naïve, Heisenberg sche oder Heisenbergsche, Spaghetti oder Spagetti ). In den bisherigen Fällen wurden Terme normalisiert und teilweise sogar zusammengefasst. Manchmal ist es jedoch nötig, offenscheinlich gleiche Terme zu unterscheiden. Dies ist bei Homonymen der Fall. Homonyme sind Wörter, die gleich geschrieben werden aber unterschiedliche Bedeutungen haben. Anschauliche Beispiele sind Tau (Schiffsseil, Morgentau), modern (verrotten, aktuell/neu), Bank (Geldinstitut, Sitzgelegenheit, Sandbank). Auch Personennamen können isoliert betrachtet manchmal völlig anders aufgefasst werden ( Bush, Kohl, Paris ). In all diesen Fällen wäre es für ein IR System hilfreich zu wissen, welche Bedeutung des Terms gemeint ist. Dies lässt sich häufig nur über den Kontext erschließen. Wenn ein Text sich beispielsweise mit der Finanzkrise beschäftigt, wird bei einer Bank wohl kaum von der Sitzgelegenheit die Rede sein. Allgemein wird der Vorgang zur Auflösung von Mehrdeutigkeit als Disambiguierung bezeichnet. 3.4 Anfrageerweiterungen Prinzipiell treten viele der Probleme und Fragestellung aus der Dokumentenvorverarbeitung auch bei der Analyse von Anfragen auf. Die Suchbegriffe müssen als Token erkannt, getrennt und normalisiert werden. Es erklärt sich von selbst, das ein IR System bei der Verarbeitung und Normalisierung bei den Dokumenten und Anfragen gleich vorgehen muss. In den Anfragen können aber noch andere Optionen zur Erweiterung und Verbesserung des Systems eingebaut werden. Einige dieser Möglichkeiten, die vom darunterliegenden IR Modell mehr oder weniger unabhängig sind, werden nun vorgestellt. Die erste Erweiterung stellen Wildcards dar. Wildcards sind spezielle Zeichen, die in Suchbegriffen als Platzhalter für andere Zeichen oder gar Zeichenketten dienen können. Typischerweise dienen das Stern-Symbol ( ) oder das Fragezeichen (?) als Wildcard Zeichen. Der Stern wird in Anlehnung an reguläre Ausdrücke häufig als Platzhalter für eine 7 52

61 3.4 Anfrageerweiterungen beliebige Anzahl von Zeichen verwendet, das Fragezeichen als Platzhalter für genau ein Zeichen. Wir gehen an dieser Stelle auf den allgemeineren Fall des Sterns ein. Der Vorteil von Wildcards für den Nutzer ist relativ klar. Er kann dadurch nach mehrerer Begriffen gleichzeitig suchen. Ist er sich beispielsweise nicht sicher, ob der Begriff naive im Index zu naive oder naïve normalisiert wird (bzw. ob er überhaupt normalisiert wird), so kann er über na?ve beide Formen abdecken. Auch Sprachgrenzen lassen sich damit bedingt überbrücken: Universit findet University, Universität und Universitá. Wildcards können bei generellen Unsicherheiten in der Schreibung eines Wortes helfen (mit wie vielen f schreibt man nun Schifffahrt?) oder als Variante zum Stemming zur Anfragezeit dienen ( geh findet gehen, gehst, geh!, usw.). Betrachten wir zunächst den einfachsten Fall, in dem ein Wildcard Zeichen am Ende des Wortes steht. In diesem Fall kann man sich wieder die Sortierung der Terme im invertierten Index zu Nutze machen. Zu einem Suchterm σ wird im Suchbaum nach einem zu σ passenden Eintrag gesucht. Findet sich kein solcher Eintrag, so nimmt man im Suchbaum den Eintrag, der direkt hinter σ stehen würde. Von da ab hangelt man sich absteigend solange durch die Einträge durch, bis man den ersten Eintrag gefunden hat, der nicht mehr mit σ beginnt. Das heißt, insgesamt muss man einmal im Suchbaum suchen, und danach über genau so viele Suchterme laufen, wie es passende Terme gibt. Wildcardsuche Nehmen wir an, der Nutzer gibt als Suchbegriff Knote ein. Dann wird im Index zunächst nach Knote gesucht. Im Index in Abbildung 3.4 gibt es diesen Eintrag nicht, also beginnen wir bei dem Eintrag, der nach einem Einfügen von Knote direkt dahinter im Suchbaum stünde. Das ist in unserem Fall der Term Knoten. Von da an werden aller Termeinträge als passend angesehen, die mit Knote anfangen, also bis zum ersten unpassenden hier der Term Knothe. Die rot umrandeten Suchterme stellen alle Einträge dar, die zu Knote passen. Die Ergebnismenge kann in einem boolschen IR System über eine logische ODER Verknüpfung der Posting Listen der einzelnen Einträge bestimmt werden. Außer für die eigentliche Suche eignet sich eine solche Wildcard Suche auf für Erstellung von Suchvorschlägen. Dabei werden die bisher vom Nutzer eingegebenen Zeichen als Suchmuster mit Stern am Ende interpretiert, die passenden Suchterme aus dem Index gezogen und als Vervollständigungsliste angezeigt. Das hilft dem Nutzer in zweierlei Hinsicht: erstens muss er eventuell den Suchbegriff nicht vollständig eintippen sondern kann ihn aus der Liste auswählen (was wiederum bei Unsicherheiten bezüglich der Schreibweise hilft), zweitens bekommt der Nutzer bereits einen Überblick welche Suchterme erfolgversprechend sind. Taucht ein Begriff nicht in der Liste auf, so ist er auch im Index nicht enthalten. Steht ein Wildcard Zeichen in der Mitte eines Wortes, ist das Vorgehen nicht mehr ganz so einfach und vor allem nicht mehr ohne zusätzliche Erweiterung des Index effizient 53

62 3 Dokumentvorverarbeitung und Anfrageerweiterung Abbildung 3.4: Bestimmung der passenden Terme zu Knote. umsetzbar. Hierzu sollen an dieser Stelle zwei Ansätze vorgestellt werden: der Permuterm Index und eine Lösung die zeichenbasierte k-gramme verwendet. Der Permuterm Index ist ein zweiter Suchbaum, um den der invertierten Index erweitert wird. Dieser zweite Suchbaum enthält keine Posting Listen, sondern verweist nur auf die Terme im regulären Suchbaum. Dafür enthält der Permuterm Index deutlich mehr Einträge. Zum Aufbau des Permuterm Index wird zunächst an jeden Term ein spezielles Zeichen angehängt, welches das Wortende symbolisiert (z.b. das $ Zeichen). Dieser um das Wortendezeichen erweiterte Term wird als erstes in den Permuterm Index eingetragen und mit dem Originalterm im invertierten Index verknüpft. Dann wird schrittweise immer das erste Zeichen vom Anfang entfernt und hinten angestellt, bis wieder die Ausgangsfassung erreicht ist. Jeder dabei entstehende Term wird in den Permuterm Index einsortiert. Abbildung 3.5 zeigt, welche Formen für das englische Wort hut (Hütte) durch dieses Verdrehen entstehen. Abbildung 3.5: Permuterm Index Einträge zu hut. Dieses Vorgehen erzeugt einen sehr großen zweiten Suchbaum, den man allerdings sehr effizient für Suchbegriffe mit einem Wildcard Zeichen an beliebiger Stelle einsetzen kann. Wenn der Suchterm von der Form σ τ ist, lassen sich die passenden Term Einträge folgendermaßen herausfinden. Zunächst wird der Wildcard Suchterm ebenfalls um das Termende Symbol $ erweitert. Das daraus entstehende σ τ$ wird nun so gedreht, dass der Stern 54

63 3.4 Anfrageerweiterungen am Ende steht, also zu τ$σ. Zu diesem Ausdruck, der nun wieder das Wildcard Symbol am Ende stehen hat, schlägt man alle passenden Einträge im Permuterm Index, bzw. die damit verknüpften Term Einträge nach. Permuterm Index Nehmen wir aus einem Suchbaum die (englischen) Terme hat, hut und hunt heraus. Der daraus erzeugt Permuterm Index sieht aus wie in Abbildung 3.6. Bei einer Suche nach h t wird dieser Suchbegriff zunächst zu h t$ ergänzt und dann zu t$h gedreht. Schlägt man die passenden Einträge im Permuterm Index nach, so erhält man t$ha mit Verweis auf hat, t$hu mit Verweis auf hut und t$hun mit Verweis auf hunt. Eine Suche nach hu t würde zu t$hu und liefert letztendlich die Posting Listen der Terme hut und hunt. Abbildung 3.6: Permuterm Index mit Einträgen zu drei Termen. Für Suchterme mit mehr als einem Wildcard Operator kann man über den Permuterm Index zunächst den letzten Operator auflösen und damit eine Liste möglicherweise passender Terme finden. Einen Suchterm σ τ ξ wandelt man dazu wieder in σ τ ξ$ um und dreht ihn zu ξ$σ τ weiter. Dann schneidet man nach dem ersten Stern ab und sucht nach ξ$σ. In einem zweiten Schritt wählt man den naiven Ansatz und durchforstet 55

64 3 Dokumentvorverarbeitung und Anfrageerweiterung die (hoffentlich recht kurze) Liste nach den Termen, die auch die anderen Bedingungen erfüllen, die also hier das τ enthalten. Suche mit mehreren Wildcards Die Suche nach Be an schaft wird zu schaft$be transformiert. Diese Suche liefert zunächst viel mehr Treffer als gewünscht. Nehmen wir an sie führt zu folgender Liste von Termen: Bekanntschaft, Belegschaft, Bereitschaft, Berglandschaft. Durchforstet man nun diese Liste und prüft die Worte, ob sie auch das noch fehlende an enthalten, so fallen Belegschaft und Bereitschaft heraus, es verbleiben nur die passenden Terme Bekanntschaft und Berglandschaft. Das größte Problem mit Permuterm Indizes ist, dass sie sehr viel Speicherplatz benötigen. Zu jedem Term der Länge n werden n+1 Einträge im Permuterm Index erzeugt. Ein alternativer Ansatz sind k-gramme. Die Idee der k-gramme ist, die Terme in Schnipsel der Länge k zu zerlegen und Suchbegriffe mit Wildcards ebenfalls in solche Stücke zu zerschneiden. Auch hier wird der invertierte Index um einen zusätzlicher Suchbaum erweitert. Dazu werden die Terme im invertierten Index zunächst wieder um ein gesondertes Symbol erweitert (wir nehmen wieder $). Diesmal wird allerdings nicht nur das Wortende, sondern auch der Wortanfang mit $ markiert. Dieser erweiterte Term wird dann in k-gramme zerlegt, also in alle möglichen Schnipsel der Länge k. k-gramme Nehmen wir den Term Hand und wählen für k den Wert 3 (diese Einstellung findet sich häufig in der Literatur). Der Term wird zu $Hand$ erweitert und wie in Abbildung 3.7 gezeigt in Schnipsel der Länge 3 zerlegt: die 3-Gramme $Ha, Han, and und nd$. Abbildung 3.7: Erstellung der 3-Gramme zum Term Hand. Auch in diesem Fall entstehen zu jedem Term mehrere Einträge. Der Unterschied und damit auch die Ersparnis beim Speicherplatz ist, dass viele der k-gramme in mehreren Termen auftreten. Deshalb verweisen die k-gramm Einträge auch nicht direkt auf Terme 56

65 3.4 Anfrageerweiterungen im invertierten Index, sondern enthalten eine Art Posting Liste mit den Termen, welche das k-gramm enthalten. k-gramm Index Zum bereits oben erwähnten Term Hand nehmen wir noch die Terme Band, Bank und Bund hinzu. Ergänzt man alle Terme um das Beschränkungszeichen $ und zerlegt sie in 3-Gramme, erhält man den 3-Gramm Suchbaum mit Referenzlisten auf die Terme wie in Abbildung 3.8. Die vier Terme sind der Übersichtlichkeit halber wieder unterschiedlich eingefärbt. Abbildung 3.8: k-gramm Index mit Referenzen auf die Terme Band, Bank, Bund und Hand. Bei einer Suche im k-gramm Index geht man so vor, dass die Anfrage zuerst um das Begrenzungssymbol $ erweitert und dann an den Wildcards in Teile zerlegt wird. Sind diese Teile länger als k, so werden aus ihnen wiederum k-gramme geformt. Diese k-gramme werden im entsprechenden Index gesucht und die erhaltenen Ergebnislisten mit einander geschnitten. Damit erhält man genau die Terme, die alle in der Suchanfrage enthaltenen k-gramme enhalten. Dabei können natürlich noch Terme auftreten, die zwar die richtigen k-gramme enthalten, diese allerdings in der falschen Reihenfolge oder mit anderen k- Grammen dazwischen. Deshalb wird die (wiederum hoffentlich relativ kurze) Liste der Ergebnisse in einem zweiten Schritt noch einmal gegen das eigentliche Suchmuster geprüft. 57

66 3 Dokumentvorverarbeitung und Anfrageerweiterung Suche mit k-grammen Sucht man im obigen Beispiel nach and, wird dieser Ausdruck in die 3-Gramme and und nd$ zerlegt. Nach dem Verschmelzen der Ergebnislisten bleiben die Treffer Hand und Band übrig. Bei einer Suche nach ren könnte im 3-Gramm Suchbaum neben korrekten Termen wie rennen auch der Term referenzieren gefunden werden. Er enthält die beiden 3-Gramm $re und ren, die aus der Anfrage entstehen allerdings nicht hintereinander. Daher müssen solche Falschtreffer in einem zweiten Schritt herausgefiltert werden. Als letzter Punkt soll noch ein Ansatz zur Rechtschreibkorrektur bei der Eingabe von Anfragen betrachtet werden. Die Funktion ist heute in vielen Websuchmaschinen Standard. Wenn der Nutzer sich bei der Formulierung seiner Anfrage vertippt (beispielsweise retireval statt retrieval ) wird er vom IR System darauf hingewiesen und bekommt sogar Korrekturvorschläge ( Meinten Sie vielleicht..., wie in Abbildung 3.9). Zunächst muss jedoch festgestellt werden, ob der Nutzer sich überhaupt vertippt hat. Gute Hinweise darauf sind Suchbegriffe, die nicht im Vokabular enthalten sind oder für die es nur sehr wenige Treffer gibt (nämlich Dokumente von Autoren die sich vermutlich ebenfalls vertippt haben). Beides gilt natürlich nur, wenn das IR System auf einem großen Korpus arbeitet, in dem sich ein Großteil aller Wörter wiederfindet. Ein weiterer Hinweis kann der Kontext anderer Suchbegriffe sein. So finden sich zum Suchbegriff Tante sicherlich genügend Treffer. Im Kontext von Drucker Tante auffüllen wird jedoch klar, dass der Nutzer hier wohl eher Tinte meinte. Genau wie bei der Feststellung von fehlerhaften Eingaben entweder die Suchterme isoliert oder im Kontext betrachtet werden können, kann auch die Korrektur isoliert oder im Kontext erfolgen. An dieser Stelle wollen wir jedoch nur ganz kurz auf eine Möglichkeit zur isolierten Betrachtung eingehen. Was hierfür benötigt wird, ist ein Maß, welches zu einem vermutlich fehlerhaften Suchbegriff solche Terme findet, die Korrekturen sein könnten. Eine klassisches Maß zur Abstandsbestimmung und Fehlerkorrektur zwischen zwei Zeichenketten ist der Levenshtein- Abstand [Lev65]. Dabei wird versucht aus einer Zeichenkette die andere durch Ersetzen, Einfügen und Löschen von Zeichen zu überführen. Jede der Operationen ist mit gewissen Kosten verbunden und der Levenshtein-Abstand beruht auf den minimal aufzuwendenden Kosten für diese Transformation. Die Berechnung des Levenshtein-Abstandes ist jedoch recht aufwändig und für ein umfangreiches Vokabular nicht mehr handhabbar. Daher müssen aus dem Vokabular zunächst passende Kandidaten für die Abstandberechnung herausgefiltert werden. Dies lässt sich auf verschiedene Arten realisieren. Eine recht einfache Möglichkeit basiert wieder auf k-grammen. Man zerlegt den vermutlich fehlerhaften Anfrageterm in k-gramme und hofft, dass sich nur wenige Fehler eingeschlichen 58

67 3.4 Anfrageerweiterungen Abbildung 3.9: Rechtschreibkorrektur bei Google. haben. Dann wirken sich die Fehler auf nur relative wenige k-gramme aus und ein Großteil bleibt unverändert. Sucht man dann die Terme heraus, welche zumindest einen Teil der gleichen k-gramme enthalten, kann über den Jaccard-Koeffizient eine Ähnlichkeit berechnet werden. Dazu nimmt man die Menge F der k-gramme im fehlerhaften Term und die Menge R der k- Gramme in einem richtig geschriebenen Term. Dann bestimmt man: sim Jaccard (F, R) = F R F R Dieses Ähnlichkeitsmaß 8 nimmt einen Wert von 1 an, wenn die Menge übereinstimmen und liegt je näher bei 0 je verschiedener sie sind. Der Jaccard-Koeffizient kann bereits direkt als Kriterium für die Auswahl von Korrekturvorschlägen verwendet werden, kann aber auch nur als Vorfilter für einen Abstandsberechnung über Levenshtein dienen. 8 Abstandsmaße und Ähnlichkeitsmaße sind eng miteinander verwand. Schließlich wird ein geringer Abstand immer als große Ähnlichkeit interpretiert. Auch mathematisch lassen sich die beiden Konzepte bedingt in einander überführen. 59

68 3 Dokumentvorverarbeitung und Anfrageerweiterung Jaccard-Koeffizient Bei einer Suche nach retireval wird dieser Suchterm in k-gramme der Länge 2 zerlegt (der Wert k=2 scheint in diesem Zusammenhang für Wortähnlichkeiten gut geeignet zu sein). Es entstehen also die 2-Gramme re, et, ti, ir, re, ev, va und al. Die Menge F der 2-Gramme ist also {al, et, ev, ir, re, ti, va}. Terme, die ebenfalls mehrere dieser 2-Gramme enthalten sind t 1 = retrieval, t 2 = tire und t 3 = medieval. Deren 2-Gramm Mengen sind R 1 = {al, et, ev, ie, re, ri, tr, va}, R 2 = {ir, re, ti} und R 3 = {al, di, ed, ev, ie, me, va}. Die Jaccard-Indizes dazu sind: sim Jaccard (F, R 1 ) = 5 10 = 0, 5 sim Jaccard (F, R 2 ) = 3 7 = 0, 43 sim Jaccard (F, R 3 ) = 3 13 = 0, 23 Anhand dieses Beispiels kann man sehen, dass retrieval einen höheren Ähnlichkeitswert zu retireval erhält als tire, obwohl letzteres komplett darin enthalten ist. Gibt es mehrere Korrekturvorschläge mit dem gleichen Abstands- oder Ähnlichkeitswert, so wird für gewöhnlich der Term ausgewählt, der häufiger im Korpus auftritt. Zusätzlich können Korrekturvorschläge auch direkt in die Suche und die Ergebnismenge aufgenommen werden (unter entsprechendem Hinweis). Das gilt insbesondere dann, wenn der fehlerhafte Suchbgeriff keine Ergebnisse liefern würde. Eine solche Rechtschreibkorrektur ließe sich vom Prinzip her auch auf die Dokumente zum Zeitpunkt der Indizierung anwenden. Kritisch dabei ist aber, dass man i.d.r. keinen Nutzer (also Autor) zur Hand hat, den man um Rückmeldung fragen könnte. Schließlich ist bereits das Erkennen eines Fehlers bereits nur eine Vermutung und die Korrekturvorschläge sind noch viel unsicherer. Eine weitere Möglichkeit die Suchanfrage eines Nutzers sinnvoll zu erweitern, wenn nicht genug Ergebnisse gefunden werden ist ein Thesaurus. Durch ihn können Synonyme, Oberbegriffe oder verwandte Alternativbegriffe in die Suche mit aufgenommen werden. Liefert eine Suche nach Orangenbaum nur sehr wenige Treffer könnte die Suche um Apfelsinenbäume oder Obstbäume erweitert werden. 3.5 Zusammenfassung In diesem Kapitel haben wir uns zunächst angeschaut, wie Dokumente vorverarbeitet werden müssen, um aus einer Datei die Terme für den Index zu gewinnen. Neben der Erkennung und Handhabung verschiedener Dateiformate gehörte dazu die Tokenisierung und 60

69 3.5 Zusammenfassung Normalisierung der Tokens. Ansätze wie Stemming oder Case-Folding führen dazu, dass ein boolsches IR System etwas toleranter wird und nicht mehr nur exakt passende Suchbegriffe findet. Wir haben uns auch verschiedene Möglichkeiten angesehen, die Suche in einem boolschen IR System bezüglich der Anfragen flexibler zu machen, bzw. die Funktionalität auszubauen, ohne dabei das Modell ändern zu müssen. Dazu haben wir einerseits Wildcards erlaubt, andererseits kurz die Option der Fehlererkennung und -korrektur angesprochen. Wichtige Konzepte hierzu waren der Permuterm Index und k-gramme. In gewissem Umfang lassen sich die hier eingeführten Techniken auch auf andere IR- Modelle übertragen. 61

70 3 Dokumentvorverarbeitung und Anfrageerweiterung 62

71 4 Erweiterungen des Boolschen Modells Die Ergänzungen und Variationen im letzten Kapitel haben das eigentliche Modell des boolschen IR nicht angetastet. Letztendlich liefen alle vorgestellten Verfahren auf eine einfache wenn auch flexiblere Volltextsuche in den Dokumenten heraus, an deren Ende eine Liste gleichwertiger Treffer steht. In diesem Kapitel werden wir nun einige Möglichkeiten kennen lernen, die Wichtigkeit eines Dokumentes zu einer Anfrage etwas differenzierter zu betrachten und ein Ranking der Ergebnisse zu erstellen. Die grundlegende Idee des zonenbasierten Ansatzes ist es, im Index zu berücksichtigen, in welcher Funktion oder in welcher Position ein Term im Dokument steht. Taucht ein Term in einer Überschrift auf, so könnte dies als stärkerer Hinweis auf die Relevanz gesehen werden, als wenn er beispielsweise in einer Fußnote auftritt. Entsprechend werden die Terme mit Gewichten versehen. Der zweite Ansatz, der in der Literatur unter dem Begriff Extended Boolean Retrieval bekannt ist, geht noch einen Schritt weiter. Über eine geometrischen Interpretation der Dokumente, die auf den Termvorkommen basiert, werden die strikten Forderung der boolschen Operatoren und und oder etwas aufgeweicht und den intuitiven Erwartungen eines Nutzers angepasst. 4.1 Zoneninformationen im Index Ein üblicher Ansatz, um die Relevanz eines Dokumentes für eine Anfrage besser modellieren zu können liegt in der Gewichtung der Terme. Das heißt, dass bei den Termen nicht mehr nur zwischen enthalten und nicht enthalten unterschieden wird, sondern dass für jeden Term ein Maß angegeben wird, wie gut er das Dokument beschreibt. Ein solches Maß zur Bestimmung der Termgewichte kann sein, die Funktion oder Position eines Terms im Dokument auszuwerten 1. Um boolsches Retrieval mit solchen Gewichten zu versehen, müssen wir zunächst wieder den Index etwas erweitern. Wenn nämlich die Funktion oder Position eines Terms bei der Suche berücksichtigt werden soll, dann müssen die entsprechenden Informationen auch zur Verfügung stehen. Vorher stellt sich jedoch die Frage, wie die Funktion eines Terms im Dokument erkannt werden kann. Dazu können einerseits strukturelle Informationen aber auch Angaben in Metadaten dienen. 1 Wir werden in den nächsten Kapiteln noch verschiedene weitere Möglichkeiten zur Gewichtung kennen lernen. Die hier vorgestellte Gewichtung ist jedoch relativ leicht nachvollziehbar und findet in der Praxis noch erstaunlich häufig Anwendung in einfachen IR-Systemen. 63

72 4 Erweiterungen des Boolschen Modells Metadaten gehören nicht zu den eigentlichen Inhalten eines Dokuments sondern beschreiben das Dokument selbst (allgemein werden Metadaten auch als Daten über Daten bezeichnet). Dazu können Informationen wie der Autor, ein Datum (Veröffentlichung, letzter Dateizugriff, Eingangsdatum einer ), die Form (Text, Bild, Video), technische Angaben zur Kodierung (Zeichensatz) aber auch eine Kategorisierung (RVK 2 ; DDC 3 ) oder die Art des Inhalts (Gedicht, Roman, Sachtext) gehören. Der Vorteil an Metadaten (sofern sich ihre Vergabe an einem Muster wie beispielsweise dem Dublin Core 4 orientiert) ist, dass die Angaben zu den einzelnen Informationen auf einen recht klaren Wertebereich schließen lässt. Der Autor wird durch einen Namen gekennzeichnet, das Datum gibt einen Tag und/oder Zeitpunkt wieder, die Kodierung den Namen eines Zeichensatzes. Diese recht präzisen Wertebereiche erinnern ein wenig an die klaren Strukturen und Semantik in relationalen Datenbanken. Die Informationen in Metadaten werden auch als Feldinformationen bezeichnet. Strukturelle Informationen können flexibler angelegt sein und beziehen sich auf die Position eines Terms im Dokument. So könnten als Strukturen Überschriften, Zusammenfassungen (Abstracts), Textkörper, Tabellen, Listen, Fußnoten oder Referenzen festgesetzt werden. Deren Werte, also die Inhalte, hängen aber vom Dokument ab und es kann kein (semantisch) fester Wertebereich abgesteckt werden. Solche Informationen werden als Zoneninformationen bezeichnet. Beide Arten der Daten lassen sich mit in den Index aufnehmen. Allgemein spricht man von einem parametrischen oder einem Zonen Index. Dazu können die Termeinträge im Suchbaum entsprechend um eine Typangabe erweitert werden, in welcher Funktion die Terme aufgetreten sind. Bei einer Suche gibt der Nutzer dann mit an, in welcher Funktion er einen Suchterm versteht. Posting Listen für einzelne Zonen Nehmen wir den Term Goethe. Dieser kann sowohl in den Metadaten als Autor auftreten, als auch im Titel eines Dokuments oder im eigentlichen Textkörper. Dementsprechend gäbe es drei Einträge im Vokabular, welche die unterschiedlichen Ausprägungen repräsentieren. Jeder Eintrag hätte wie in Abbildung 4.1 eine eigene Posting Liste. Alternativ können für bestimmte Metadaten auch eigene Suchbäume aufgebaut werden. Die Einträge in den Posting Listen eines invertierten Index zu Autoren oder Erscheinungsdatum können dann mit den Ergebnissen aus einer gewöhnlichen boolschen Suche nach Termen verknüpft und geschnitten werden. 2 RVK = Regensburger Verbundklassifikation 3 DDC = Dewey Decimal Classification 4 (Website)... website DC... 64

73 4.2 Gewichtung mit einem Zonenindex Abbildung 4.1: Zonenindex mit Vokabulareinträgen zu jeder Ausprägung eines Terms. Ein dritter Ansatz ist, die Funktion der Terme nicht im Vokabular sondern in den Posting Einträgen zu speichern. Diese Herangehensweise ist vergleichbar zur Aufnahme von Positionsangaben in die Postings für Phrasen oder NEAR-Anfragen. Der Vorteil hierbei ist, dass allgemeine Suchen ganz regulär wie bisher behandelt werden können und eine Suche nach einer bestimmten Facette (z.b. Autor) als Einschränkung auf den Ergebnislisten operieren kann. Zoneninformation in den Posting Einträgen Die Einträge zu Goethe im obigen Beispiel würden alle in einer Posting Liste vereint. Jedem Posting wird aber noch angehängt, in welcher Zone der Term aufgetaucht ist (siehe Abbildung 4.2). Abbildung 4.2: Vermerk der Zone in den Posting Einträgen. 4.2 Gewichtung mit einem Zonenindex Das Vermerken der Funktion oder Zone eines Postings im Index ist hilfreich, wenn der Nutzer ganz gezielt nach einem Autor, einem Titelstichwort oder einem Erscheinungsdatum sucht. Man kann diese zusätzlichen Informationen aber auch zur Bestimmung eines Relevanzwertes einsetzen. Wenn man nämlich davon ausgeht, dass das Auftreten eines Terms im Titel stärker auf die Relevanz des Dokuments hinweist als beispielsweise das Vorkommen in einer Fußnote. Für die formale Definition gehen wir von einem Zonenindex mit Z verschiedenen Zonen aus. Als erstes definieren wir eine Art facettierte Retrievalfunktion ρ l : D Q {0, 1}, die wie die boolsche Retrievalfunktion ρ definiert ist, jedoch nur die Zone l berücksichtigt. 65

74 4 Erweiterungen des Boolschen Modells Das heißt, die Funktion ρ l liefert uns letztendlich eine Aussage darüber, ob eine Anfrage in einer ganz bestimmten Zone zu einem Ergebnis führt. Die gewichtete Retrievalfunktion ρ w : D Q [0, 1] basiert auf den facettierten Retrievalfunktionen und einer Gewichtung g l der Zonen. Die Gewichte addieren sich über allen Zonen zu einer Summe von 1 auf. Dann ist ρ w definiert als: Z ρ w (d i, q) = g l ρ l (d i, q) l=1 Diese Definition ist äquivalent zu einem Ansatz, in dem zunächst allgemein über alle Zonen geprüft wird, welche Ergebnisse zur Suchanfragen passen also im Prinzip ohne Brücksichtigung der Zoneninformation und die Gewichte werden erst nachfolgend und nur auf diesen Ergebnissen eingerechnet. Die Ergebnismenge zur Anfrage q setzt sich dann aus den Dokumenten d i zusammen, deren Wert ρ w (d i, q) größer als 0 ist. Darüber hinaus werden die Einträge nach ihrem ρ w Wert absteigend sortiert. Das führt dazu, dass solche Dokumente zuerst aufgeführt werden, bei denen die Suchterme in höher gewichteten Zonen auftreten. Gewichtete Suche im Zonenindex Betrachten wir vier Dokumente, die jeweils die Zonen Titel (T ), Zusammenfassung (A) und Textkörper (B) enthalten. 1. Dokument d 1 T: Klein wie ein Handy A: Die neuen Netbooks sind noch kleiner B: Die neueste Generation Netbooks ist winzig klein. 2. Dokument d 2 T: Neuheiten der Handy Hersteller A: Die Hersteller präsentieren neue Geräte B: Auf einer großen Messe für Mobilfunk stellten Hersteller neue Handy Modelle vor. 3. Dokument d 3 T: Mehr silberne Surfer A: Immer mehr ältere Menschen nutzen das WWW B: Die Zahl der silbernen Surfer wächst. 4. Dokument d 4 T: Mobilfunkmarkt wächst langsamer A: Der Markt sättigt sich 66

75 4.2 Gewichtung mit einem Zonenindex B: Fast jeder hat inzwischen ein Handy daher wächst der Markt immer langsamer. Als Gewichte legen wir fest g T = 0, 2, g A = 0, 3 und g B = 0, 5. Auf die Anfrage q = Handy berechnen wir nun die Werte der facettierten Retrievalfunktion für die einzelnen Zonen: ρ T (d 1, q) = 1 ρ A (d 1, q) = 0 ρ B (d 1, q) = 0 ; ρ T (d 2, q) = 1 ρ A (d 2, q) = 0 ρ B (d 2, q) = 1 ; ρ T (d 3, q) = 0 ρ A (d 3, q) = 0 ρ B (d 3, q) = 0 Die Gewichtung ergibt dann für die einzelnen Dokument: ; ρ T (d 4, q) = 0 ρ A (d 4, q) = 0 ρ B (d 4, q) = 1 ρ w (d 1, q) = 0, , , 5 0 = 0, 2 ρ w (d 2, q) = 0, , , 5 1 = 0, 7 ρ w (d 3, q) = 0, , , 5 0 = 0 ρ w (d 4, q) = 0, , , 5 1 = 0, 5 Dementsprechend wird Dokument d 3 gar nicht in die Ergebnisliste aufgenommen. Die anderen Dokumente werden sortiert in der Reihenfolge d 2, d 4, d 1 aufgeführt. Bezüglich der Gewichte verdeutlicht das Beispiel auch etwas anderes: die landläufige Meinung, dass ein Suchterm im Titel wichtiger ist als im Textkörper führt im Allgemeinen nicht zum gewünschten Ergebnis bei den Retrievalergebnissen. Das lässt sich auch anschaulich begründen. Wenn ein Term für ein Dokument relevant ist, dann stehen die Chancen sicherlich gut, dass er im Titel auftritt. Die Wahrscheinlichkeit, den Term im Text anzutreffen ist aber noch viel höher, denn der Autor wird in den seltensten Fällen um die Verwendung des damit verbundenen Begriffs herumkommen. Das Auftreten eines Terms im Titel kann also eher als Bonus gewertet werden. Zur praktischen Umsetzung der Berechnung der Gewichtung eines Dokuments geben Manning, Raghavan und Schütze [MRS08] einen Algorithmus vor, der das Schneiden zweier Ergebnislisten direkt mit der Berechnung der Gewichtung verbindet. Bei allgemeineren Anfragen (Kombinationen aus mehreren Suchtermen und verschiedenen boolschen Operatoren) dürfte dies bei der hier verwendeten Gewichtung jedoch schwieriger werden. Da jedoch sowieso die Posting Einträge mitgeschleift werden, kann auch zunächst die komplette Ergebnisliste berechnet werden und die Gewichtung wird in einem nachgelagerten Schritt durchgeführt. Dazu muss in den zwischenberechneten Ergebnislisten nur vermerkt werden in welchen Zonen ein Dokument als relevant galt. Es bleibt die Frage, wie man die Gewichte am sinnvollsten wählt. Hier kann eine Feinabstimmung sehr stark die Ergebnisse und somit auch das Verhalten eines IR Systems beeinflussen. Je mehr Zonen es gibt, desto schwieriger wird eine manuelle Optimierung 67

76 4 Erweiterungen des Boolschen Modells der Gewichte. Sind jedoch zu einigen Anfrage und Ergebnismengen Relevanzaussagen von Nutzern bekannt, so kann versucht werden, die Gewichte über Methoden der Künstlichen Intelligenz und des Maschinellen Lernens automatisch zu optimieren. Dabei werden die Gewichte dann so gewählt, dass sie auf den bekannten Daten zu möglichst guten Ergebnissen führen würden. 4.3 Zonen in HTML Dokumenten Dokumente im HTML-Format eignen sich recht gut für die Erfassung von Zonen. Durch die semantische Bedeutung der Markup Elemente kann man schnell und einfach erkennen, ob ein Textschnipsel in einer Überschrift oder im Textkörper steht. Auch Meta-Informationen werden vom Standard unterstützt. Diese können sogar eine inhaltliche Zusammenfassung bereitstellen. Die einfache Bestimmung von Zonen in HTML Dokumenten ist sicherlich einer der Gründe dafür, dass auf diesen sehr häufig gewichtetes boolsches Retrieval angewendet wird. Auch wenn die entsprechenden Elemente in HTML nicht immer korrekt und vollständig 5 genutzt werden, so lassen sich doch einige einfache Regeln zur Zonenerkennung formulieren: Ein meta-element mit dem name-attributswert author gibt im Attribut content den Autor des Dokumentes an. Bei einem name-attribute mit Wert description findet sich im meta-element eine Zusammenfassung. Ein name-wert keywords liefert geeignete Terme für eine Indizierung. Der name-wert date in einem meta-element deutet an, dass dieses ein Erstellungsoder Veröffentlichungsdatum enthält. Beginnen der name-wert mit DC so sind die Meta-Daten nach Dublin Core ausgezeichnet. Die Elemente h1 bis h6 stellen Überschriften dar. Die Darstellung von Absätzen und Textblöcken kann durch verschiedene Konstrukte realisiert werden. Das HTML Format definiert passend hierzu in der DTD [RHJ99] sogenannte Block-Elemente, zu denen beispielsweise p, div, ul und ol gehören. 5 Der visuelle Eindruck einer Webseite hat noch immer Vorrang. Daher werden beispielsweise die Element h1 bis h6 nicht nur zur Auszeichnung von Überschriften eingesetzt und umgekehrt sind nicht alle Überschriften mit den entsprechenden Tags ausgezeichnet. Auch die Verwendung der meta-element ist keinesfalls Standard. 68

77 4.3 Zonen in HTML Dokumenten Abbildung 4.3: Webdokument in der Browseransicht. Zonen in HTML Abbildung 4.3 zeigt einen Artikel des News Portals Spiegel Online [Dam09] zu Packproblemen. Das Dokument liegt im HTML Format vor und die Abbildung zeigt wie es in einem modernen Browser dargestellt wird. Der Quelltext zu diesem Dokument ist (erwartungsgemäß) umfangreich und umfasst etwa 76 KB. Ein Ausschnitt aus einer deutlich bereinigten Fassung mit den für uns interessanten Einträgen ist in Abbildung 4.4 zu sehen. Dort sind insbesondere einige der für einen Zonenindex interessanten Passagen zu sehen. 69

78 4 Erweiterungen des Boolschen Modells Abbildung 4.4: Ausschnitt aus dem zusammengefassten HTML Quellcode mit Zonen. Die meta-elemente geben genau die Auskünfte, für die sie definiert wurden. Einzig der Autor ist nicht konsistent mit der Angabe im Dokument selbst. Statt des Namens des Verfassers wird im meta-element der Verlag angegeben. Der einleitende Absatz (teaser) des Artikels taucht im meta-tag als description auf er wäre sonst auch ohne weitere Kenntnisse nur schwer im tatsächlichen Text zu identifizieren. 4.4 Erweitertes Boolsches IR Eine Stärke aber gleichzeitig auch eine Schwäche des Boolschen Modells ist seine Schärfe. Die Auffassung von Relevanz als Eigenschaft mit den binären Werten 1 oder 0 erlaubt eine präzise Auswahl von Dokumenten aber gleichzeitig keinerlei Flexibilität bei den Ergebnissen. Eine Suche nach t 1 und t 2 bedeutet, dass ein Dokument mit nur einem der Terme als nicht relevant gilt. Umgekehrt wird bei einer Anfrage der Form t 1 oder t 2 kein Wert darauf gelegt, ob eventuell sogar beide Terme in einem Dokument enthalten sind 6. Beide Beispiele 6 Das gilt im Wesentlichen auch für die gewichtete Variante des Zonenindex 70

79 4.4 Erweitertes Boolsches IR zeigen, dass dieses Verhalten des Boolschen Modells der intuitiven Annahme eines Nutzers entgegensteht. Eine Erweiterung des Boolschen Modells [SFW83] nimmt sich genau dieser Schwächen an. Es berücksichtigt in einer und Anfrage auch solche Dokumente, die nicht alle geforderten Terme enthalten, reiht sie in der Ergebnisliste aber eher gegen Ende ein. Ebenso werden bei einer oder Anfrage solche Dokumente als relevanter eingestuft, die mehrere der Suchterme enthalten. Darüber hinaus können in diesem Modell auch gewichtete Terme berücksichtigt werden, doch dazu später mehr. Die Idee des Verfahrens lässt sich am einfachsten an Anfragen mit zwei Termen erklären. Wir betrachten also Anfragen vom Typ t 1 und t 2, bzw. t 1 oder t 2. Da wir zunächst auch weiterhin davon ausgehen, dass nur das Auftreten oder Fehlen von Termen in einem Dokument eine Rolle spielt, gibt es vier Kombinationen, in denen die Terme in einem Dokumente auftreten können: sie sind beide enthalten, es ist nur t 1 enthalten, es ist nur t 2 enthalten oder es ist keiner der Terme enthalten. Ordnet man diese Möglichkeiten auf einem zweidimensionalen Gitter an, so erhält man ein Bild wie in Abbildung 4.5. Die verschiedenen Ausprägungen der Dokumente können als Eckpunkte eines Quadrats angesehen werden. Abbildung 4.5: Zweidimensionale Darstellung der Kombinationsmöglichkeiten für das Auftreten zweier Terme in einem Dokument. Von einer klassischen Anfrage zu t 1 und t 2 werden nur solche Dokumente erfasst, die genau auf dem Punkt (1, 1) in der rechten oberen Ecke liegen. Daher könnte man anschaulich auch die Anfrage selbst auf diesem Punkt positionieren. Ausgehend von dieser geometrischen Anordnung von Dokumenten und Anfrage wird nun für alle Dokumente einen Relevanzwert berechnen. Dieser basiert auf dem Abstand des Dokumentpunktes in diesem Quadrat zum Punkt der Anfrage, wobei näher gelegene Punkte als relevanter gelten. Die zweidimensionalen Koordinaten eines Dokumentes d i lassen sich mit den boolschen Einträgen ( [1] i, [2] i ) ausdrücken, die wir bereits in Kapitel 2 verwendet haben. Damit lässt sich der euklidische Abstand zum Punkt (1, 1) der Anfrage t 1 und t 2 formal darstellen als: δ (d i, t 1 und t 2 ) = (1 [1] i ) 2 + ( 1 [2] i ) 2 71

80 4 Erweiterungen des Boolschen Modells Für den Punkt (0, 0) nimmt dieser Ausdruck den maximalen Wert von 2, Dokumente die jeweils nur genau einen der Terme enthalten haben einen Abstand von 1 und ein Dokument mit beiden Termen hat einen Abstand von 0. Um daraus eine Retrievalfunktion zu bauen, in der höhere Werte für höhere Relevanz stehen, wird der Abstand normalisiert und von 1 subtrahiert, so dass man folgenden Ausdruck erhält: ρ (d i, t 1 und t 2 ) = 1 ( 1 [1] i ) 2 ( [2] + 1 i 2 Ähnlich geht man für eine Anfrage t 1 oder t 2 vor. Erwünscht ist hierbei, dass mindestens einer der Terme enthalten ist. Ein Dokument, das keinen der Terme enthält gilt als irrelevant. Übertragen auf die geometrische Interpretation aus Abbildung 4.5 bedeutet dass, das relevante Dokumente möglichst weit vom Punkt (0, 0) entfernt liegen. Auch hier lässt sich die Retrievalfunktion wieder auf der Basis des normierten euklidischen Abstandes formulieren: ρ (d i, t 1 oder t 2 ) = ( [1] i ) 2 ( [2] + i 2 Hat man es mit mehr als zwei Termen zu tun, so lässt sich die geometrische Darstellung auf einen Hyperwürfel 7 erweitern. Für eine Anfrage mit k Termen gilt weiterhin, dass bei der Verknüpfung mit und die Nähe zum k-dimensionalen Punkt (1, 1, 1,..., 1) für eine hohe Relevanz steht und bei einer Verknüpfung mit oder eine große Entfernung zum Punkt (0, 0, 0,..., 0). In Formeln gegossen führt das zu: ) 2 ) 2 ρ (d i, t 1 und t 2 und... und t k ) = 1 ( 1 [1] i ρ (d i, t 1 oder t 2 oder... oder t k ) = ( [1] i ) 2 + (1 i ) [2] ( 1 [k] i k ) 2 + ( [2] i ) 2 ( [k] i k Dies erlaubt allerdings noch immer nur die reine Kombination von und oder oder Bedingungen. Um in einer Anfrage und und oder kombiniert zu verwenden, werden die Werteberechnungen geschachtelt: ( 1 ρ (d i, (t 1 und t 2 ) oder t k ) = 7 Ein Hyperwürfel ist ein Würfel im höherdimensionalen Raum. (1 i ) [1] ) 2 +(1 i ) [2] ) ) 2 + ( [3] ) 2 i ) 2 ) 2 72

81 4.4 Erweitertes Boolsches IR Erweitertes Boolsches Retrieval Wir greifen wieder auf die fünf einfachen Dokumente aus Kapitel 2 zurück, die im Beispiel auf Seite 20 aufgeführt wurden. Damit die Mechanismen des erweiterten Boolschen Retrievals auch wirklich greifen können beschränken wir uns auf die Anfragen Information und Retrieval, Information oder Retrieval sowie (Information und Retrieval) oder (Document und Retrieval). Für eine kompaktere Notation bezeichnen wir diese drei Anfragen kurz mit q 1, q 2 und q 3. Betrachten wir zunächst die mit und verknüpfte Anfrage q 1. Da sie zwei Terme enthält entspricht sie genau dem abstrakt konstruierten Fall t 1 und t 2 von oben. Überträgt man die fünf Dokumente in das zweidimensionale Koordinatensystem (wobei der Term Information die erste Koordinate einnimmt), so erhält man folgende Darstellungen: d 1 = (1, 1) d 2 = (1, 1) d 3 = (0, 1) d 4 = (1, 0) d 5 = (0, 0) Für das Dokument d 3 setzen wir beispielhaft dessen Werte in die Retrievalfunktion des erweiterten Boolschen Modells für eine und-anfrage ein: ρ (d 3, q 1 ) = 1 (1 0) 2 + (1 1) 2 2 = = 0, 293 Die Werte für die anderen Dokumente ergeben sich völlig analog, insbesondere erzielt d 4 den gleichen Wert wie d 3, da es ebenfalls nur einen der beiden Suchterme enthält: ρ (d 1, q 1 ) = 1 ρ (d 2, q 1 ) = 1 ρ (d 3, q 1 ) = 0, 293 ρ (d 4, q 1 ) = 0, 293 ρ (d 5, q 1 ) = 0 Die Dokumente d 1 und d 2, die beide Terme enthalten, erzielen optimale Ergebnisse, d 5 hingegen einen Wert von 0, da es keinen der Suchbegriffe enthält. Betrachten wir die Anfrage q 2, so sieht die Reihenfolge der Ergebnisse gleich aus. Bei den Dokumenten, die nur einen Term enthalten, unterscheiden sich allerdings die Werte der Retrievalfunktion: 73

82 4 Erweiterungen des Boolschen Modells ρ (d 1, q 2 ) = 1 ρ (d 2, q 2 ) = 1 ρ (d 3, q 2 ) = 0, 707 ρ (d 4, q 2 ) = 0, 707 ρ (d 5, q 2 ) = 0 Für die dritte Anfrage müssen wir nun auch das Vorkommen von Document berücksichtigen. Beispielhaft berechnen wir auch hier wieder den Retrievalwert für d 3 ausführlich: ρ (d i, q 3 ) = = ( 1 ) 2 ( ) 2 (1 0) [1] ) 2 +(1 1) [2] ) 2 (1 1) + 1 [1] ) 2 +(1 1) [2] ) ( 1 0, 5 )2 + 1 = 0, Den gleichen Wert erzielen auch die ersten beiden Dokumente, während d 4 wieder eine geringere und d 5 gar keine Relevanz zugewiesen wird: ρ (d 1, q 3 ) = 0, 737 ρ (d 2, q 3 ) = 0, 737 ρ (d 3, q 3 ) = 0, 737 ρ (d 4, q 3 ) = 0, 207 ρ (d 5, q 3 ) = 0 Ein interessanter Aspekt dieses Modells ist, dass es sich direkt um eine Gewichtung der Terme erweitern lässt. Dabei kann beispielsweise eine zonenbasierte Gewichtung der Terme zum Einsatz kommt, wie sie in Abschnitt 4.2 beschrieben wurde. Es können aber auch andere Gewichtungsmethoden verwendet werden, solange die Termgewichte auf das Interval [0, 1] normiert werden. Die Berücksichtigung von Termgewichten im erweiterten Boolschen Modell lässt sich ebenfalls sehr anschaulich über die geometrische Interpretation der Dokumente erklären. Dazu bleiben wir zunächst wieder bei einer Anfrage über den beiden Termen t 1 und t 2. Dann bildet man ein Dokument d i nicht mehr auf das Tupel ( [1] ) mit den boolschen Einträgen [j] i i, [2] i {0, 1} ab, sondern verwendet die jeweiligen Gewichte w [j] i [0, 1] als 74

83 4.4 Erweitertes Boolsches IR Koordinaten (w [1] i, w [2] i ). Dann lässt sich ein Dokument als Punkt im Quadrat der möglichen Realisierungen der Gewichte einzeichnen, wie es in den Abbildungen 4.6 (a) und (b) zu sehen ist. (a) (b) Abbildung 4.6: Geometrische Interpretation von Dokumenten mit Termgewichten für erweitertes boolsches Retrieval. Auf den Kreisausschnitten liegen jeweils Dokumente mit gleichem Retrievalwert für eine mit UND verknüpfte Anfrage (a), bzw. für eine mit ODER verknüpfte Anfrage (b). Die Retrievalfunktion bleibt an sich unverändert, es werden lediglich die [1] i Einträge durch die w [1] i Gewichte ersetzt. Die zugrundeliegende Abstandsberechnung zu den Punkten (1, 1) für eine Anfrage mit Operator und, sowie zum Punkt (0, 0) für die Anfrage mit oder- Operator bleibt ebenfalls gleich. Aufgrund der freieren Lage der Dokumentpunkte gibt es allerdings eine wesentlich feinere Abstufung der Ergebnisse. Während bisher für die Abstandsberechnung immer der euklidische Abstand herangezogen wurde, kann auch dieser Punkt verallgemeinert werden. Im Prinzip bietet sich jede p-norm als Basis für die Abstandsberechnung an. Diese Verallgemeinerung drückt sich für mit oder verknüpfte Terme so aus: ρ (d i, t 1 oder t 2 oder... oder t k ) = p ( [1] i ) p + ( [2] i ) p ( [k] i k Dabei muss man sich vom Konzept her nicht auf einen Wert für p festlegen, sondern kann diesen sogar als Parameter an die Operatoren mitgeben, beispielsweise in der Form oder(p). Damit könnte der Nutzer dann in seiner Anfrage sehr genau vorgeben, wie die Terme der Anfrage miteinander verknüpft und verrechnet werden. Es sollte aber an dieser Stelle auch gesagt werden, dass viele Nutzer mit solchen Optionen überfordert wären. ) p 75

84 4 Erweiterungen des Boolschen Modells 4.5 Zusammenfassung In diesem Kapitel haben wir gesehen, wie man Metadaten und Zoneninformationen im invertierten Index unterbekommen kann. Auch wenn es zur Realisierung verschiedene Ansätze gibt, erlauben diese alle eine gezieltere Suche, beispielsweise nach einem Autor oder einem Suchbegriff im Titel eines Dokuments. Verwendet man diese Zoneninformation bei einer gewöhnlichen boolschen Suche und weist den einzelnen Zonen über Gewichte unterschiedliche Aussagekraft zur inhaltlichen Relevanz zu, lässt sich damit eine gewichtete boolsche Suche realisieren. Ein typisches Einsatzszenario hierfür können HTML Dokumente sein, in denen sich Metainformationen und Zonen relativ leicht aus dem Quelltext heraus erkennen lassen. Das erweiterte Boolsche IR Modell trennt sich von der scharfen Boolschen Algebra für die Retrievalfunktion und ersetzt sie durch ein geometrisch motiviertes Modell. Das Verhalten dieses Modells ist flexibler und dürfte mit seinem Ranking-Ansatz den intuitiven Erwartungen der Nutzer näher kommen. Weiterhin erlaubt es auf einfache Art und Weise eine Berücksichtigung von Termgewichten. 76

85 5 Das Vektorraum Modell Nun nehmen wir endgültig Abschied vom boolschen IR und wenden uns dem Vektorraum Modell zu. Dokumente werden hier als Vektoren in einem hochdimensionalen Raum dargestellt. Auch die Anfragen werden in diesen Vektorraum übersetzt und dann mit den Dokumentvektoren verglichen. Je ähnlicher sich Anfrage- und Dokumentvektor sind, desto höher wird die Relevanz des jeweilige Dokuments eingeschätzt. Die Ähnlichkeit gibt somit auch vor, wie das Ranking zu laufen hat, d.h. in welcher Reihenfolge die Ergebnisse dem Nutzer präsentiert werden. 5.1 Idee des Vektorraum Modells Im boolschen IR werden die Dokumente letztendlich als Mengen über einem Vokabular modelliert. Entweder ein Term ist im Dokument enthalten oder er ist es eben nicht. Die gewichtete Variante des boolschen IR brachte bereits die Idee auf, dass es durchaus Unterschiede in der Wichtigkeit eines Terms für ein Dokument geben kann je nachdem an welcher Stelle und in welcher Funktion er auftritt. Auch im Vektorraum Modell wird die Wichtigkeit eines Terms in einem Dokument modelliert jedoch deutlich flexibler. Dazu wird jedes Dokument als Vektor dargestellt. Der entsprechende Vektorraum wird über dem Vokabular definiert. Das heißt, in einem Dokumentvektor kann zu jedem Term im Vokabular ein Eintrag in der entsprechenden Dimension gemacht werden. Ein einfacher Ansatz wäre für das Dokument d beispielsweise die Termfrequenz tf d (t) des Terms t in der zugehörigen Dimension einzutragen. Dann ließe sich aus dem Dokumentvektor ersehen, wie oft welcher Term im Dokument enthalten ist. Da bei einer solchen Vektordarstellung die Reihenfolge der Wörter in einem Dokument völlig ignoriert wird, wird diese Dokumentrepräsentation oft auch als Bag of Words bezeichnet, also als ein Sack voller Wörter. Es lässt sich zwar noch bestimmen, wie oft die Wörter vorkamen, allerdings gerät deren Reihenfolge in diesem Sack durcheinander und ist nicht mehr bekannt. Fasst man nun eine Freitext Suchanfrage ebenfalls als Bag of Words auf und stellt sie als Vektor dar, so kann man prüfen, welche Dokumentvektoren ähnlich sind. Das könnte ganz anschaulich bedeuten, dass die Vektoren den gleichen oder einen nahegelegenen Punkt beschreiben oder zumindest in die gleiche Richtung zeigen. In Abbildung 5.1 sind vier Dokumente (d 1, d 2, d 3 und d 4 ) und eine Abfrage (q) als Vektoren dargestellt. Misst man die Ähnlichkeit über die Nähe der durch die Vektoren beschriebenen Punkte, so ist Dokument d 3 gefolgt von d 2 am ähnlichsten zu q. Betrachtet man jedoch in welche Richtung die Vektoren zeigen, so ist d 4 das Dokument, das am dichtesten an der Anfrage dran liegt. 77

86 5 Das Vektorraum Modell Abbildung 5.1: Dokument- und Anfragevektoren im Vektorraum. Diese oder andere Varianten die Ähnlichkeit zu messen kann dann als Maß für die Relevanz eines Dokuments zur Suchanfrage interpretiert werden. Wie ein Dokument oder eine Anfrage ganz konkret in einen Vektor überführt werden kann und welche Ähnlichkeitsmaße in Frage kommen werden wir gleich sehen. Zunächst behandeln wir noch kurz die theoretischen Grundlagen. 5.2 Theoretisches Modell Wir gehen wieder von einem Korpus D mit N Dokumenten und einem Vokabular V mit M Termen aus. Dann definieren wir eine Vektorraumdarstellung der Dokumente als Elemente des M-dimensionalen Vektorraums R M : d i = ( w [1] i, w [2] i, w [3] i,..., w [M] ) i R M Der Eintrag w [j] i stellt eine Gewichtung des j-ten Terms des Vokabulars t j für das Dokument d i dar. Gleichermaßen lässt sich auch eine Anfrage q als Vektor darstellen. Auch hier werden Gewichte für die Suchterme eingetragen: q = ( ) w q [1], w q [2], w q [3],..., w q [M] R M Diese Darstellung der Anfragen macht klar, dass es sich hierbei um Suchen über Freitextanfragen handelt, d.h. die Anfragen unterliegen keiner besonderen Syntax. Der Nutzer kann einfach verschiedene Stichworte (in beliebiger Reihenfolge) angeben, durch die er sein Informationsbedürfnis formuliert. Die Retrievalfunktion ρ im Vektorraummodell ist definiert über ein Ähnlichkeitsmaß sim, mit dem sich Vektoren vergleichen lassen: 78

87 5.2 Theoretisches Modell ρ(d i, q) = sim ( di, q ) wobei dieses definiert ist über: sim : R M R M [0, 1] Semantisch steht ein Ähnlichkeitswert von 1 für zwei gleiche Vektoren und ein Wert von 0 für zwei völlig verschiedene Vektoren. Da uns bezüglich der Retrievalfunktion meist nur die Werte zur Anordnung der Ergebnisse interessieren, kann in der Praxis die Forderung nach diesem engen Wertebereich aufgegeben werden. Das erspart unter Umständen nötige Berechnungen zur Normalisierung, die an der Reihenfolge der Dokumente nichts ändern würden. Die Ergebnismenge bestimmt sich dann über die Werte der Funktion ρ und die Dokumente werden absteigend bezüglich ihres Funktionswertes sortiert. Dokumente mit einem Wert von 0 werden für gewöhnlich nicht in die Ergebnismenge aufgenommen. Die Reihenfolge der Dokumente in einer Ergebnisliste bestimmt sich ebenfalls nach dem Wert der ρ-funktion, nämlich absteigend sortiert. Sowohl die Bestimmung der Gewichte für die Terme in Dokumenten, für die Terme in Anfragen sowie die exakte Ähnlichkeitsfunktion sind im theoretischen Modell zunächst offen. Die verbreitetste Umsetzung mit TF-IDF Gewichten werden wir uns gleich ansehen. Weitere Vorschläge für Gewichte und Ähnlichkeitsmaß oder Varianten zu TF-IDF folgen dann etwas später in 5.5 und 5.6. Dokumente als Vektoren Dadurch, dass das Ähnlichkeitsmaß sim allgemein über dem Vektorraum definiert ist können damit auch andere Funktionen realisiert werden. So lassen sich beispielsweise komplette Dokumente miteinander vergleichen. Dies lässt sich für zweierlei Anwendungen direkt nutzen: Cluster Analysen oder Query by Example Anfragen. Bei einer Cluster Analyse wird von einer Anfrage unabhängig versucht automatisch Gruppen ähnlicher Objekte zu bestimmen. In unserem Fall würden wir also Dokumente zusammen gruppieren, die ähnliche Inhalte haben. Query by Example ersetzt die klassische Anfrage. Statt eine Suchanfrage über Stichworte zu formulieren, gibt der Benutzer ein komplettes Dokument als Suchanfrage ein. Diese Eingabe ist dann zu verstehen als Ich hätte gerne mehr Dokumente wie dieses. Sowohl die Cluster Analyse als auch das Konzept der Query by Example Anfragen werden wir zu späteren Zeitpunkten und in anderem Zusammenhang noch einmal aufgreifen. 79

88 5 Das Vektorraum Modell 5.3 Die klassische Variante: TF-IDF Wie wählt man die Term-Gewichte zu einem Dokument? Der klassische Ansatz zieht hierzu zwei Kennziffern zu Rate. Über die Termfrequenz wird bestimmt wie häufig ein Term in einem speziellen Dokument auftritt. Die Dokumentfrequenz hingegen gibt an, in wie vielen Dokumenten des Korpus der Term überhaupt vorkommt. Die Dokumentfrequenz wird dabei als globaler Gewichtungsfaktor verwendet. Wie in Kapitel 3 erläutert wurde, sind Terme die in vielen oder gar fast allen Dokumenten auftreten nicht sonderlich hilfreich bei der Informationssuche (vgl. Luhn [Luh58]). Das heißt wir wollen mit Hilfe der Dokumentfrequenz solche Terme niedriger gewichten, die in vielen Dokumenten auftreten. Das lässt sich über die inverse Dokumentfrequenz (inverse document frequency) idf(t) modellieren: w global (t j ) = idf(t j ) = N df(t j ) wobei N die Anzahl aller Dokumente im Korpus ist und df(t j ) die Dokumentfrequenz 1 des Terms t i angibt. Dadurch, dass idf(t j ) nur über Termen des Vokabulars definiert ist, wird der Nenner df(t j ) nie 0 (in mindestens einem Dokument muss der Term ja auftreten sonst wäre er nicht im Vokabular). Daher ist die inverse Dokumentfrequenz für Dokumentvektoren immer definiert. In der inversen Dokumentfrequenz wirken sich unterschiedliche Dokumentfrequenzen gerade bei sehr kleinen Werten extrem aus. Allein der Schritt von einer Dokumentfrequenz von 1 zu 2 halbiert gerade den Gewichtswert. Um das auszugleichen wird der idf-wert meist noch logarithmiert: w global(t j ) = log (idf(t j )) = log ( N ) df(t j ) Der Logarithmus schwächt diesen Effekt ab, dämpft also die Gewichte sehr seltener Terme. Gleichzeitig fallen die Gewichte sehr häufiger Terme noch kleiner aus. Taucht ein Term in allen Dokumenten auf, so erhält er ein globales Gewicht von 0. Die Logarithmierung der inversen Dokumentfrequenz ist derart gängig, dass der Logarithmus manchmal bereits in die idf Definition mit aufgenommen wird. In Abbildung 5.2 sind zwei Graphen zu sehen, welche die Werte für die Gewichte mit und ohne Logarithmus darstellen die abgeflachte Entwicklung der logarithmierten Gewichtung ist in 5.2(b) deutlich zu erkennen. Diese globale Gewichtung geht wie der Name schon sagt nicht auf die Eigenheiten eines speziellen Dokuments ein. Daher muss noch ein lokales Gewicht hinzugenommen werden. Die Wichtigkeit eines Terms innerhalb eines bestimmten Dokumentes lässt sich anhand dessen Termfrequenz ablesen. Je häufiger ein Term im Dokument auftaucht, desto wichtiger scheint er für dieses Dokument zu sein. Taucht er jedoch ganz selten, nur einmal 1 Um es an dieser Stelle noch einmal klar zu machen: die Dokumentfrequenz df(t) ist etwas anderes als die collection frequency cf(t). Erstere zählt in wie vielen Dokumenten ein Term auftritt, zweitere wie oft der Term in allen Dokumenten auftritt. 80

89 5.3 Die klassische Variante: TF-IDF (a) (b) Abbildung 5.2: Globale Gewichte mit normaler (a) und logarithmierter (b) inverse document frequency. oder sogar gar nicht auf, so trägt er wohl wenig bzw. gar nichts zum Inhalt bei. Als lokales Gewicht verwenden wir daher die Termfrequenz tf di (t j ), eines Terms t j im Dokument d i : w lokal (t j, d i ) = tf di (t j ) Die Kombination aus den soeben eingeführten lokalen und globalen Gewichtungen ist im IR unter dem Namen TF-IDF bekannt. Durch Multiplikation der beiden Gewichte ergibt sich dabei das Gesamtgewicht eines Terms in einem Dokument: w TF-IDF (t j, d i ) = w lokal (t j, d i ) w global(t j ) = tf di (t j ) log ( N ) df(t j ) Daraus ergibt sich insbesondere auch, dass ein Term, der nicht im betrachteten Dokument oder aber in allen Dokumenten auftaucht, ein Gewicht von 0 bekommt. Insgesamt ist damit eine Vektordarstellung für Dokumente definiert (Wir werden später noch einige Alternativen kennen lernen). Das Dokument d i wird als Vektor d i dargestellt, in dem als Einträge zu jedem Term dessen TF-IDF Wert steht: d i = (w TF-IDF (t 1, d i ), w TF-IDF (t 2, d i ), w TF-IDF (t 3, d i ),..., w TF-IDF (t M, d i )) TF-IDF Gewichtung der Dokumentvektoren Wir betrachten fünf Dokumente über dem Vokabular: V = {Kaffee, Tee, Tasse, Kanne, Wasser} 81

90 5 Das Vektorraum Modell Da wir nun auf einem Bag of Words Modell arbeiten, müssen zu jedem Dokument angeben, wie oft die Terme enthalten sind: 1. Kaffee, Kaffee 2. Tee, Tee, Tasse, Kanne, Kanne 3. Kaffee, Tasse, Tasse, Kanne 4. Kaffee, Kaffee, Kaffee, Tee, Tasse, Tasse, Tasse, Kanne, Kanne, Kanne 5. Kanne, Kanne, Wasser, Wasser Zunächst bestimmen wir die globalen Gewichte über die Dokumentfrequenz der Terme. Nehmen wir uns beispielhaft den Term Tasse heraus. Er taucht in den Dokumenten d 2, d 3 und d 4 auf, hat also eine Dokumentfrequenz von df(tasse) = 3. Somit ergibt sich für das globale Gewicht zu diesem Term: ( ) w global(tasse) N = log df(tasse) ( 5 = log = 0, 22 3) Auf die gleiche Art und Weise rechnet man die globalen Gewichte für die anderen Terme aus und kommt zu folgenden Werten: w global(kaffee) = 0, 22 w global(tee) = 0, 4 w global(kanne) = 0, 1 w global(wasser) = 0, 7 Die lokalen Gewichte lassen sich direkt aus den Dokumenten ablesen. So taucht der Term Tasse im Dokument d 3 zweimal auf, hat dort also eine Termfrequenz von 2. Damit kann man nun die TF-IDF Werte für jeden Term in jedem Dokument bestimmen. Für das Dokument d 2 ergibt sich so: w TF-IDF (Tee, d 2 ) = tf d2 (Tee) w global(tee) = 2 0, 4 = 0, 8 w TF-IDF (Tasse, d 2 ) = tf d2 (Tasse) w global(tasse) = 1 0, 22 = 0, 22 w TF-IDF (Kanne, d 2 ) = tf d2 (Kanne) w global(kanne) = 2 0, 1 = 0, 2 Die Werte für Kaffee und Wasser sind 0, da die Terme nicht in d 2 auftauchen. Berechnet man die Gewichte für alle Dokumente, ergeben sich daraus die folgenden Dokumentvektoren: 82

91 5.3 Die klassische Variante: TF-IDF d 1 = ( 0, ) d 2 = ( 0 0, 8 0, 22 0, 2 0 ) d 3 = ( 0, , 44 0, 1 0 ) d 4 = ( 0, 66 0, 4 0, 66 0, 3 0 ) d 5 = ( , 2 1, 4 ) Nun da die Gewichte in den Dokumenten festgelegt sind, stellen sich die Fragen, wie Anfragen in Vektoren übersetzt und wie die Vektoren verglichen werden; letztendlich also, wie damit die Retrievalfunktion ρ berechnet wird. Die Anfragen werden auf die gleiche Art und Weise in Vektoren übersetzt wie die Dokumente. Wir bestimmen die Termfrequenzen 2 in der Anfrage und verrechnen sie mit den globalen Gewichten für die Terme (Auch zur Bestimmung des Anfragevektors gibt es alternative Ansätze mehr dazu ebenfalls später). Mit einer Ähnlichkeitsfunktion wollen wir nun messen, wie sehr Anfragevektor q und ein Dokumentvektor d übereinstimmen. Dazu eignet sich das Skalarprodukt über diesen Vektoren: d q = M j=1 w TF-IDF (t j, d) w [j] q Da in langen Dokumenten die Termfrequenz wichtiger Begriffe fast zwangsweise höher sein dürfte als in kürzeren Dokumenten sind dort auch die lokalen Gewichte höher. Damit kurze Dokumente nicht benachteiligt werden, normalisiert man die Gewichte vor der Berechnung der Ähnlichkeit. Die Dokumentlänge schlägt sich in der Vektorlänge nieder. Daher eignet sich zur Normalisierung die Umwandlung in Einheitsvektoren, also in Vektoren der Länge 1. Zur Längenberechnung verwendet man das euklidische Längenmaß: d M = (w TF-IDF (t j, d)) 2 j=1 Und für die Ähnlichkeitsberechnung zwischen Anfrage q und Dokument d ergibt sich somit: sim( d, q) = d q d q = Mj=1 w TF-IDF (t j, d) w q [j] Mj=1 (w TF-IDF (t j, d)) 2 M ( ) [j] 2 j=1 w q 2 Das bedeutet auch, dass der Nutzer über die Mehrfachnennung eines Terms in der Anfrage diesen höher gewichten könnte. 83

92 5 Das Vektorraum Modell wobei d und q hier jeweils als die Vektordarstellungen zu Dokument und Anfrage zu verstehen sind. Dieses eben vorgestellte Ähnlichkeitsmaß ist in der Literatur unter dem Namen Cosinus- Maß (cosine similarity) bekannt, da es effektiv den Cosinus des Winkels zwischen den beiden Vektoren berechnet: v 1 v 2 = v 1 v 2 cos( v 1, v 2 ) cos( v 1, v 2 ) = v 1 v 2 v 1 v 2 Die Anschauung als Messung des Winkels zwischen Dokument- und Anfragevektor verdeutlicht auch noch einmal die Unabhängigkeit von der Vektorlänge. Der Cosinus erfüllt die gewünschte Eigenschaft, dass er zwei Vektoren den Wert 1 zuweist, wenn sie exakt in die gleiche Richtung zeigen. Da unsere Vektoren außerdem nur positive Einträge haben, ist der maximale Winkel zwischen zwei Vektoren 90 und das Cosinus Maß nimmt dann den Wert 0 an. Anfragen im Vektorraum Führen wir unser obiges Beispiel fort. Zu den fünf Dokumenten d 1 bis d 5 stellen wir nun die Anfrage Tasse Kanne (Wir interessieren uns eher für das Porzellan als für dessen Inhalt). Nach Einbezug der globalen Gewichte für Tasse und Kanne haben wir also den Anfragevektor q: q = ( 0 0 0, 22 0, 1 0 ) Nun müssen wir zunächst die Länge des Anfrage- und der Dokumentvektoren berechnen: d 1 = d 2 = d 3 = 0, 44 2 = 0, 44 0, , , 2 2 = 0, 85 0, , , 1 2 = 0, 50 d 4 = 0, , , , 3 2 = 1, 06 d 5 = 0, , 4 2 = 1, 41 q = 0, , 1 2 = 0, 24 Interessant ist an dieser Stelle vielleicht, dass die Kombination aus lokalen und globalen Gewichten dafür sorgt, dass der Vektor zu Dokument d 5 am längsten ist, obwohl d 5 bezüglich der Anzahl der Terme eher im Mittelfeld rangiert. Die Werte der Retrieval Funktion ρ basierend auf dem Cosinus Maß sehen dann folgendermaßen aus: 84

93 5.4 Praktische Umsetzung 0 ρ(d 1, q) = 0,44 0,24 = 0 ρ(d 2, q) = 0,22 0,22+0,2 0,1 = 0,068 0,85 0,24 0,204 = 0, 33 ρ(d 3, q) = 0,44 0,22+0,1 0,1 = 0,107 0,50 0,24 0,120 = 0, 89 ρ(d 4, q) = 0,66 0,22+0,3 0,1 = 0,175 1,06 0,24 0,254 = 0, 69 ρ(d 5, q) = 0,2 0,1 = 0,02 = 0, 05 1,41 0,24 0,338 Das führt dazu, dass Dokument d 1 nicht in die Ergebnismenge aufgenommen wird. Die restlichen Dokumente werden in der Reihenfolge d 3, d 4, d 2 und zuletzt d 5 dem Nutzer als Ergebnis präsentiert. Dass d 1 nicht relevant ist dürfte ebenso klar sein, wie das Ergebnis, dass d 5 am wenigsten relevant ist. Doch wie erklären sich die Werte der anderen drei Dokumente? Dokument d 4 enthält die Suchbegriffe zwar am häufigsten, aber auch eine ganze Reihe anderer Terme. Das Ergebnis lässt sich also derart interpretieren, dass es in diesem Dokument nicht vorrangig um Tasse und Kanne geht. Der Grund dass d 2 im Vergleich zu d 3 als weniger relevant angesehen wird, obwohl die Dokumente die Suchterme in der Summe gleich oft enthalten, kann teilweise auch auf die größere Zahl (fünf statt vier) der enthaltenen Terme zurückgeführt werden. Zusätzlich wirken sich hier aber noch die unterschiedlichen globalen Gewichte aus. Tasse hat eine geringere Dokumentfrequenz und somit eine höheres globales Gewicht als Kanne. Da d 3 Tasse häufiger enthält wirkt sich dies stärker auf das Ergebnis aus. Auch die für die Suche eigentlich unwichtigen Terme Tee und Kaffee haben unterschiedliche globale Gewichte, welche die Dokumentvektoren stärker oder schwächer in eine bestimmte Richtung ziehen und somit die Winkel beeinflussen. 5.4 Praktische Umsetzung Nachdem nun klar ist, wie Dokumente und Anfragen im Vektorraummodell dargestellt werden und wie die Retrievalfunktion berechnet wird, schauen wir uns als nächstes die praktische Umsetzung an. Es stellt sich nämlich die Frage, wie wir die Ergebnismenge effizient bestimmen können. Dazu machen wir einleitend einige Feststellungen bezüglich einzelner Elemente der Gleichung zur Berechnung des Cosinus Maßes. Als erstes betrachten wir die Normalisierung der Ergebnisse bezüglich der Länge des Anfragevektors. Diese Länge liefert einen konstanten Faktor für den Wert der Retrievalfunktion für alle Dokumente. Da wir letztendlich aber nur daran interessiert sind, dem Nutzer die Dokumente in der richtigen Reihenfolge zu präsentieren und die tatsächlichen 85

94 5 Das Vektorraum Modell Werte der Retrievalfunktion zweitrangig sind, kann man diesen konstanten Faktor auch weglassen. Beim Skalarprodukt d q hat man es für jede Dimension des Vektorraums mit einer Multiplikation zu tun, also einer für jeden Term des Vokabulars. Das entspricht M Multiplikationen. Bei genauerem Hinsehen fällt aber auf, dass in der Summe nur die Einträge zu solchen Termen t j wirklich interessant sind, bei denen w TF-IDF (t j, d) und w q [j] beide von 0 verschieden sind. Andernfalls tragen die Terme nichts zur Summe bei. Da in der Regel insbesondere die Anfrage aus nur wenigen Termen besteht 3 kann deshalb bereits eine sehr große Anzahl von unnötigen Multiplikationen mit 0 übergangen werden wenn man nur die Anfrageterme berücksichtigt. Genauso kann man (meistens) eine sehr große Anzahl von Dokumenten ignorieren in denen die Anfrageterme gar nicht auftauchen. Diese Erkenntnis führt dazu, dass man letztendlich nur solche Dokumente betrachten muss, in denen (mindestens) einer der Suchterme enthalten ist. Und hierfür lässt sich wieder der invertierte Index verwenden. Um dabei auch effizient das Ranking zu berechnen, wird der Index um einige zusätzliche Informationen erweitert. Wir hatten bereits früher angesprochen, dass die Aufnahme der Länge der Posting Listen in die Termeinträge im Suchbaum des Vokabulars hilfreich sein kann. Im boolschen IR diente dies dazu, eine geeignete Reihenfolge für das schnelle Schneiden von Trefferlisten zu bestimmen. Im Vektorraummodell ist dies interessant, da die Länge der Posting Liste der Anzahl der Dokumente entspricht, in denen ein Term auftritt. Damit ist die Länge der Liste gleich der Dokumentfrequenz, mit der wir das globale Gewicht eines Terms berechnen. Eine zweite nützliche Information, die mit in den invertierten Index aufgenommen werden muss ist die Termfrequenz eines Terms innerhalb eines Dokuments. Den Wert hierzu hatten wir indirekt ebenfalls schon einmal mit aufgenommen, nämlich beim Entwurf des Position Index. Dabei wurden die einzelnen Positionen innerhalb eines Dokuments aufgeführt an denen ein Term auftritt. Die Liste enthielt also für jedes Auftreten eines Terms im Dokument einen Eintrag und ihre Länge entspricht somit der Termfrequenz. Als weitere Datenstruktur führen wir eine Liste ein, in der zu jedem Dokument dessen Länge enthalten ist. Zwar könnte man die Vektoren der Dokumente direkt normalisieren und die lokalen Gewichte durch die Länge des Vektors teilen, dies hätte aber einige Nachteile. Einerseits wäre die Länge des Dokuments zumindest implizit in jedem Posting zu diesem Dokument gespeichert eine unnötige Redundanz. Andererseits lassen sich die ganzzahligen Werte der Termfrequenz bei geeigneter Codierung besser speichern, d.h. bei weniger Platzbedarf. Darüber hinaus fällt es mit einer dedizierten Liste der Dokumentlänge einfacher zu einer alternativen Normalisierung zu wechseln oder gar mehrere parallel anzubieten. Algorithmisch lässt sich damit die Suche im Vektorraum relativ einfach umsetzen. Die Terme der Suchanfrage werden einer nach dem anderen abgearbeitet. Die Ranking Werte der Dokumente werden über sogenannte Akkumulatoren Term für Term aufaddiert. Ein 3 Schätzungen und Auswertungen über die Suchgewohnheiten von Web Search Engine Nutzern gibt es viele. Einige immer recht aktuell gehaltene Informationen gibt es bei hitwise [Rel09]. Für Februar 2009 wurde dort angeben, dass mehr als 80% aller Websuchen aus höchstens vier Suchbegriffen bestehen. 86

95 5.4 Praktische Umsetzung Akkumulator ist eine Art Zwischenspeicher zu einem Dokument, in dem dessen Systemrelevanz über die Terme hinweg gesammelt wird. Dazu nimmt man sich für jeden Term die Posting Liste vor und bestimmt zunächst das globale Gewicht zu diesem Term. Danach durchläuft man die Posting Liste, berechnet bei jedem Eintrag das Produkt aus w TF-IDF (t j, d) und w q [j] und addiert dieses Produkt zum Wert jenes Akkumulators, der zum gleichen Dokument gehört wie der Eintrag der Posting Liste der gerade betrachtet wird. Dabei kann man flexibel Akkumulatoren neu anlegen, wenn ein Dokument in keiner vorherigen Posting Liste enthalten war. Wenn alle Terme abgearbeitet sind normalisiert man die Werte in den Akkumulatoren mit der zugehörigen Dokumentlänge. Umsetzung des Vektorraummodells Greifen wir noch einmal die obige Dokumentsammlung und die zugehörige Suche nach Tasse Kanne auf. Der invertierte Index mit entsprechenden Einträgen zu Dokumentfrequenz und Termfrequenz ist in Abbildung 5.3 zu sehen. Abbildung 5.3: Invertierter Index mit Angabe der Dokumentfrequenz und Termfrequenz. Zusätzlich müssen wir uns in einer Liste die Länge der Dokumentvektoren merken, so wie wir sie oben berechnet haben. Auf die Anfrage Tasse Kanne hin nehmen wir uns zunächst die Posting Liste zu Tasse vor, berechnen das globale Gewicht zu diesem Term und dessen Gewichtung in der Anfrage. Danach durchlaufen wir die Posting Einträge. Das globale Gewicht log idf(tasse) können wir über die beim Term gespeicherte df Information (in diesem Fall den Wert 3) und die Anzahl der Dokumente berechnen: ( 5 w global(tasse) = log (idf(tasse)) = log = 0, 22 3) Mit dem ersten Posting Eintrag legen wir einen Akkumulator zu Dokument d 2 an und tragen den folgenden Wert ein: w global(tasse) tf d2 (Tasse) w [Tasse] q = 0, , 22 = 0, 048 Dann gehen wir zum nächsten Eintrag über, legen einen Akkumulator zu Dokument d 3 an und tragen den Wert 0,096 ein. Schließlich wird das gleiche noch für den letzten Eintrag in der Posting Liste zu Tasse durchgeführt. 87

96 5 Das Vektorraum Modell Dann gehen wir zur Posting Liste für den Term Kanne über. Das globale Gewicht beträgt 0,1. Der erste Eintrag betrifft Dokument d 2, zu dem bereits ein Akkumulator angelegt ist. Wir addieren den Wert 0,02, so dass im Akkumulator insgesamt der Wert 0,068 gespeichert ist. Für Dokument d 3 addieren wir den Wert 0,01 und landen bei 0,106. Genauso verfahren wir für d 4. Beim letzten Eintrag in der Liste müssen wir für Dokument d 5 einen neuen Akkumulator anlegen, da wir das Dokument bisher noch nicht bedacht hatten. Nach dem Abarbeiten der Posting Liste zu Kanne sind alle Suchterme berücksichtigt. Es fehlt noch die Normalisierung bezüglich der Dokumentlänge. Dazu schlagen wir in der Dokumentliste zu jedem Akkumulator die Dokumentlänge nach und dividieren entsprechend. Für das Dokument d 2 ergibt sich so: Der Wert zu d 3 hingegen ist: 0, 068 0, 85 = 0, 08 0, 106 = 0, 212 0, 5 Es fällt auf, dass die errechneten Werte sich vom Cosinus Maß unterscheiden. Das liegt daran, dass wir die Länge des Anfragevektors nicht berücksichtigt haben. Die Reihenfolge der Werte und somit auch das Dokumentranking ist aber gleich geblieben. Da man bei diesem Verfahren Term für Term die Suchanfrage bearbeitet und somit auch Term für Term die Akkumulatoren füllt, wird dieser Ansatz unter dem Begriff termat-a-time geführt. Es gibt auch Ansätze, in denen die Akkumulatoren dokumentweise (document-at-a-time) gefüllt werden. Dies ist aufgrund der Sortierung in den Posting Listen möglich, man führt wieder Zeiger in jeder der Listen mit und berechnet den Rankingwert zu dem referenzierten Dokument, das derzeit die niedrigste ID aufweist. Dadurch kann man zu jedem Dokument den Wert für das Ranking in einem Schritt berechnen, wodurch es direkt in die Ergebnisliste einsortiert werden kann. 5.5 Varianten zur TF-IDF Gewichtung Der vorgestellte Ansatz, Termfrequenz und Dokumentfrequenz über deren Kehrwert und Logarithmus zu TF-IDF zu verknüpfen ist nur eine Möglichkeit der Gewichtung. Es gibt verschieden Varianten dazu. Mögliche Ansatzpunkte sind die Verrechnung der Termfrequenz, der Dokumentfrequenz aber auch der Normalisierung bezüglich der Dokumentlänge. So ist eine Überlegung auch die Termfrequenz zu logarithmieren. Die Idee hierbei ist, dass ein bereits häufig enthaltener Term kaum mehr an Bedeutung gewinnt, wenn er noch häufiger im Dokument auftritt. In [MRS08] wird ein Ansatz hierzu erwähnt: 88

97 5.5 Varianten zur TF-IDF Gewichtung 1 + log(tf wf(t j, d i ) = di (t j ) für tf di (t j ) > 0 0 sonst Dies lässt sich dann mit der inversen Dokumentfrequenz zu einem Termgewicht kombinieren: w WF-IDF (t j, d i ) = wf(t j, d i ) log (idf(t j )) Auch Ferber [Fer03] listet einige Möglichkeiten zur Abschwächung großer oder sehr großer Termfrequenzen. Dazu kann auch die Dokumentlänge in gewissem Sinne genutzt werden, nämlich indem die maximale Termfrequenz im Dokument berücksichtigt: w lokal (t j, d i ) = α + (1 α) tf di (t j ) max k=1,...,m ( tfdi (t k ) ) Der Bruch in diesem Ausdruck nimmt Werte zwischen 0 und 1 an. Der Wert α liegt im Intervall [0,1] und kann dazu verwendet werden, den Einfluss des Bruches zu dämpfen und auf einem Basiswert aufzusetzen. Sinnvollerweise werden die Gewichte für solche Terme die nicht im Dokument auftreten dennoch auf 0 gesetzt. Auch folgender Ansatz normalisiert die lokalen Gewichte auf das Intervall [0,1], ohne jedoch das komplette Dokument zu analysieren: w lokal (t j, d i ) = tf d i (t j ) 1 + tf di (t j ) Bezüglich der globalen Gewichte ist es eine Alternative, gar keine globale Gewichte einzusetzen, bzw. sie auf 1 zu setzen. Dann stehen in den Vektoren lediglich die Termfrequenzen. Auch kann idf ohne die Logarithmierung eingesetzt werden. Ein weiterer Ansatz schwächt häufige Terme noch stärker ab, indem sie in Extremfällen sogar negativ gewichtet werden können: w global (t j ) = log ( ) N df(tj ) df(t j ) Dabei stellt N wieder die Größe des Korpus dar. Tritt ein Dokument in mehr als der Hälfte der Dokumente auf, so wird der Bruch kleiner als 1. Der Logarithmus wird damit kleiner als 0. Ein weiterer Punkt an dem man auf die Ergebnisse der Vektorraum Modells Einfluss nehmen kann liegt in der Art wie unterschiedliche Dokumentlängen ausgeglichen werden. Neben der Normalisierung bezüglich der euklidischen Länge gibt es auch hier zunächst die Option, gar keine Normalisierung durchzuführen. Das kann vielleicht vor dem Hintergrund interessant sein, dass keine gewöhnlichen Nutzeranfragen mit Dokumentvektoren verglichen werden sollen, sondern ganze Dokumente. Unterscheidet man dann auch nach Dokumentlänge so sucht man nach inhaltlich ähnlichen Dokumenten, die auch einen vergleichbaren Umfang (bezüglich der Darstellung) haben. 89

98 5 Das Vektorraum Modell Tabelle 5.1: Nomenklatur im SMART System Lokale Gewichte Globale Gewichte Längennormalisierung n natural n no n none tf d (t) 1 1 l logarithm t idf c cosine 1 + log (tf d (t)) log ( N df(t) ) sum M k=1 (w k ) 2 1 d = 1 a augmented p prob idf u pivoted unique tf 0, 5 + 0, 5 d (t) max k=1,...,m (tf d (t k max ( 0, log ( )) N df(t) Aufwändigeres Verfahren, das die Wahrschein- )) df(t) lichkeit der Relevanz in Abhängigkeit von der Dokumentlänge verwendet. b boolean b byte size 1 für tf d (t j ) > 0 1, wobei d.length d.length 0 sonst die Dokumentlänge über die Anzahl der Zeichen ausdrückt. L log ave 1+log(tf d (t)) 1+log(ave k=1,...,m (tf d (t k ))) Salton und McGill haben für das IR System SMART eine sehr kurze Schreibweise eingeführt, mit der sie ausdrücken können, welche Kombination aus lokalen und globalen Gewichten und Dokumentlängennormalisierung in einer bestimmten Konfiguration des Systems eingesetzt werden. Jeweils drei Buchstaben drücken aus, welche Gewichtung und Normalisierung für die Dokumente und die Anfragen zum Einsatz kommt. Die Buchstaben sind in Tabelle 5.1 zu sehen, die sich in ähnlicher Form auch in [MRS08] findet. Die klassische Kombination die wir eingangs vorgestellt hatten würde in SMART also mit ntc.ntc abgekürzt. Die Zeichenfolge lnn.ntb stünde für Dokumente mit logarithmischen lokalen Gewichten und ohne eine globale Gewichtung, die auch nicht normalisiert werden, sowie Anfragen die lokal mit Termfrequenz und global mit idf gewichtet werden und über ihre Bytelänge normalisiert werden (in wie weit eine solche Kombination in der Praxis einen Sinn ergibt ist eine andere Frage). 5.6 Andere Ähnlichkeitsmaße Im Smart Retrieval System steht die Bezeichnung cosine für die Dokumentnormalisierung. Das liegt daran, dass man das Cosinus Maß als Skalarprodukt über den normalisierten Dokumentvektoren auffassen kann. Lässt man die Normalisierung weg, so kann auch das 90

99 5.7 Relevance Feedback nach Rocchio reine Skalarprodukt zur Berechnung einer Ähnlichkeit herangezogen werden. Darüber hinaus gibt es aber noch andere Maße um die Ähnlichkeit oder den Abstand zweier Vektoren zu bestimmen. Das Pseudo-Cosinus-Maß beispielsweise beruht auf einer Kombination aus Skalarprodukt und einer anderen Normalisierung. Statt über die Länge des Vektors bezüglich der euklidischen Norm zu normalisieren wird durch die Summe der Einträge geteilt: sim pseudo ( d i, d k ) = Mj=1 w [j] i w [j] k ( Mj=1 w [j] i ) ( Mj=1 w [j] k Das Dice-Maß lässt sich nicht mehr als normalisiertes Skalarprodukt ausdrücken. Hier wird durch die Summe aller Vektoreinträge geteilt: sim Dice ( d i, d 2 M k ) = j=1 w [j] i w [j] k ( Mj=1 w [j] ) ( Mj=1 i + w [j] ) k Der Jaccard-Koeffizient erinnert an die Berechnung des Verhältnisses der Schnittmenge zur Vereinigung wie wir sie schon bei der Rechtschreibkorrektur mit k-grammen in Kapitel 3 gesehen haben: sim Jaccard ( d i, d k ) = ( Mj=1 w [j] i Mj=1 w [j] i w [j] k ) + ( Mj=1 w [j] k ) ) ( Mj=1 w [j] i w [j] ) k Der Vollständigkeit halber hier noch das Overlap-Maß, das gewissermaßen die minimale Übereinstimmung berechnet: sim overlap ( d i, d k ) = Mj=1 min(w [j] i, w [j] k ) min ( Mj=1 w [j] i, M j=1 w [j] ) k Ferber [Fer03] verweist auf einen Artikel von Jones und Furnas [JF87], in dem die Auswirkungen unterschiedlicher Ähnlichkeitsmaße im zweidimensionalen Raum durch Isolinien verdeutlicht werden. Abbildung 5.4 zeigt solche Isolinien Diagramme für die hier angesprochenen Ähnlichkeitsmaße und einen Anfragevektor mit der Gewichtung 0,3 für Term t 1 und 0,4 für Term t Relevance Feedback nach Rocchio Wenn wir noch einmal an unser eingangs schematisch skizziertes IR System denken, dann fällt auf, dass wir eine Komponente bisher noch gar nicht berücksichtigt haben: die Möglichkeit vom Nutzer ein Feedback zu den Ergebnismengen zu erhalten. Im Vektorraum Modell gibt es hierzu mit dem Rocchio Algorithmus einen recht einfachen Ansatz. 91

100 5 Das Vektorraum Modell (a) Skalarprodukt (b) Dice (c) Cosinus (d) Overlap (e) Pseudo-Cosinus (f) Jaccard Abbildung 5.4: Isolinien Diagramme für unterschiedliche Ähnlichkeitsmaße, wie in [Fer03] und [JF87]. Die Farben markieren Bereiche, in denen die Maße im zweidimensionalen Fall ähnliche Werte annehmen. 92

101 5.7 Relevance Feedback nach Rocchio Gewichtetes boolsches IR als Vektorraum Modell Das im letzten Kapitel vorgestellte nach Zonen gewichtete boolsche IR kann auch als ein Spezialfall des Vektorraum Modells aufgefasst werden. Dazu müssen lediglich Vektorengewichte und das Ähnlichkeitsmaß für die Retrievalfunktion entsprechend modelliert werden. Die Einträge im Vektor ergeben sich aus der Gewichtung der Zonen und dem Vorkommen eines Terms in diesen Zonen. Für jeden Term werden genau die Zonengewichte in denen der Term auftritt zu einem Vektorgewicht addiert: w [j] i = Z g l ρ l (d i, t j ) l=1 Die Gewichte in einer Abfrage werden einfach für jeden Term in der Abfrage auf 1 gesetzt. Dann drückt folgendes Ähnlichkeitsmaß formal die Retrievalfunktion des gewichteten boolschen IR aus: ρ(d i, q) = ( [j] max w i j=1,...,m ) w q [j] Gehen wir davon aus, dass der Nutzer eine Ergebnismenge erhalten hat und nun zu den Einträgen in dieser Menge Bewertungen abgeben kann. Er kann zu den Dokumenten positive (p) oder negative (n) Rückmeldung geben, bzw. hat er ebenfalls die Option zu einigen Dokumenten kein Feedback zu geben. Eine positive Rückmeldung sagt aus, dass dieses Dokument bezüglich des Informationsbedürfnisses relevant war. Eine negative Rückmeldung drückt entsprechend die Bedeutungslosigkeit eines Treffers zum Informationsbedürfnis aus. Dadurch stehen uns nun zwei Mengen von Dokumenten D p und D n zur Verfügung (die wohlgemerkt nicht alle Dokumente der Ergebnismenge umfassen müssen). Die Idee ist nun die Vektoren dieser Dokumente zu verwenden, um den Vektor der Anfrage in die richtige Richtung zu biegen. Dies wird über eine gewichtete Summe aus dem Vektor q und den Vektoren zu den Dokumenten in D p und D n erreicht: 1 q fb = α q + β D p d i D p di γ 1 D n d k D n dk Die Parameter α, β und γ bestimmen die Gewichtung der ursprünglichen Anfrage, der positiven und der negativen Rückmeldungen. Eine gute Wahl für die genauen Werte der Parameter ist (mal wieder) von den Dokumenten und vom Einsatzgebiet abhängig. Allgemeine Analysen deuten jedoch darauf hin, dass α > β > γ gewählt werden sollte. Insbesondere die negativen Rückmeldungen gelten als wenig hilfreich. Eine Sonderfall ist, dass durch die Subtraktion der Dokumentvektoren des negativen Feedbacks auch negative Einträge im modifizierten Anfragevektor auftreten können. Das kann einerseits als durchaus gewollt angesehen werden (wenn bestimmte Begriffe und Do- 93

102 5 Das Vektorraum Modell kumentrelevanz negativ korreliert sind), wird im ursprünglichen Modell jedoch ignoriert, das heißt, negative Werte werden auf 0 gesetzt. Relevance Feedback nach Rocchio Stellen wir uns folgendes Szenario vor: wir planen einen Sommerurlaub nach Frankreich. Bei diesem Trip darf die Hauptstadt natürlich nicht fehlen. Außerdem haben wir zum Geburtstag Hotel-Gutscheine für die Übernachtung in einem Hilton Hotel freier Wahl bekommen. Das wollen wir kombinieren und recherchieren also nach Paris Hilton. Wer diese Anfrage bei Google eingibt weiß auf was wir hinaus wollen: die Anfrage ist hochgradig mehrdeutig und wir erhalten viel eher Ergebnisse zur Person Paris Hilton. Als Dokumentsammlung stellen wir uns zehn Dokumente über acht Termen vor. Folgende Matrix gibt die Verteilung der Terme auf die Dokumente wieder: Paris Hilton Hotel Frankreich Eiffelturm blond Erbin Skandal d d d d d d d d d d Berechnet man mit dem klassischen TF-IDF Ansatz und Cosinus-Maß die Ergebnismenge zur Anfrage Paris Hilton, so erhält man die folgende Trefferliste (die für das Ranking der Ergebnisse verwendete Werte der Retrievalfunktion stehen jeweils dabei): 1. d 3 0, d 6 0, d 7 0, d 4 0, d 1 0, d 8 0, d 10 0, d 9 0, d 2 0, d 5 0,

103 5.7 Relevance Feedback nach Rocchio Als Nutzer können wir nun Feedback geben. Wir sagen, dass die Dokumente d 1 und d 3 (Rankingplätze 5 und 1) zu unserem Informationsbedürfnis passen, und dass die Dokumente d 7 und d 8 (Ränge 3 und 6) eher unpassend sind. Zu den anderen Dokumenten machen wir keine Aussage. Als Gewichte für das Feedback verwenden wir α = 1, β = 0, 75 und γ = 0, 15. Der Vektor q fb ergibt sich dann aus: q fb = 0, 046 0, , , 137 0, 046 0, 398 0, 602 0, , 092 0, , , , 092 0, , , 092 0, 046 0, , 523 0, Setzt man die negativen Einträge auf 0, so erhält man folgenden neuen Anfragevektor: q = 0, 118 0, 087 0, 119 0, 339 0, Dieser modifizierte Anfragevektor führt zu einem deutlich anderen Ergebnis. Die Werte der Retrievalfunktion und auch die Reihenfolge sehen nun so aus: 1. d 1 0, d 3 0, d 2 0, d 4 0, d 5 0, d 8 0, d 10 0, d 6 0, d 7 0, d 9 0,

104 5 Das Vektorraum Modell So praktisch und nützlich Relevance Feedback in vielen Fällen sein mag, ein Problem ist jedoch, dass die Nutzer wohl äußerst selten die Dokumente tatsächlich lesen (oder zumindest überfliegen) und danach ein Feedback geben werden. Alternativ können indirekte Feedback Angaben verwendet werden (welche Dokumente hat der Nutzer angeklickt?). Eine weitere Möglichkeit ist Pseudo-Relevance Feedback. Die als am relevantesten eingeschätzten Dokumente werden direkt als positives Feedback in einen zweiten Durchlauf der Suche gesteckt. Der Nutzer erhält nur die Ergebnisse des zweiten Durchlaufs und bemerkt gar nichts vom zwischengeschalteten Ergebnis. Das mag gut funktionieren, wenn die Trefferliste bereits im ersten Anlauf gut war. In Fällen wie dem obigen Beispiel dürfte das Ergebnis jedoch eher durchwachsen sein. 5.8 Optimierung: Bestimmung der ungefähren Top-K Dokumente Bisher sind wir immer davon ausgegangen, dass wir die Retrievalfunktion vollständig und für alle Dokumente ausrechnen. Das kann bei einem größeren Korpus aufwändig und zeitintensiv sein. In vielen Fällen werden die Nutzer jedoch die Ergebnisliste gar nicht komplett anschauen. Das heißt, es kann genügen nur die K besten Treffer zu bestimmen, anstatt alle Treffer zu erfassen und zu ranken. Weiterhin sind die Werte der Retrievalfunktion lediglich ein Ausdruck der Systemrelevanz und damit nur der Versuch die Relevanz eines Dokumentes für einen Nutzer abzuschätzen. Daraus ergibt sich auch, dass die vom Nutzer empfundene Nützlichkeit einer Ergebnisliste wohl kaum beeinträchtigt wird, wenn die Reihenfolge der Einträge etwas verändert wird oder gar einige Einträge fehlen. Das gilt insbesondere in Szenarien wie einer Websuche, d.h. wenn in großen oder sehr großen Korpora gesucht wird und nicht wirklich alle relevanten Dokumente gefunden werden müssen 4. Diese Beobachtung führt zur Idee, dass man aus Effizienzgründen Schätzungen für die K besten Dokumente in Kauf nimmt, also die ungefähren Top-K Dokumente berechnet. Zwei Ansätze wie dies erreicht werden kann sollen hier kurz angesprochen werden. Ein Ansatz sind Champion Listen. Dabei wird zu jedem Term t eine Liste mit r Dokumenten vorgehalten, die zu diesem Term die höchsten tf Werte aufweisen 5. Bei Anfragen über mehreren Termen werden dann zunächst die Dokumente in diesen Champion Listen zu einer Liste vereinigt und nur auf den Dokumenten in dieser gemeinsamen Liste werden tatsächlich Ähnlichkeitswerte berechnet. Der Wert r muss dabei deutlich größer als K sein. Diese Vorgehensweise lässt sich auch mit statischen Qualitätsmaßen verbinden. Statische Qualitätsmaße treffen Relevanzaussagen über ein Dokument, die von einer Anfrage 4 In Fällen wie der Suche nach Gerichtsurteilen oder Patentschriften hingegen ist es sehr wichtig, dass alle relevanten Dokumente gefunden werden. 5 Da die idf Werte von den Dokumenten unabhängig sind genügen die tf Werte zur Bestimmung der besten Treffer zu einem Term. 96

105 5.9 Zusammenfassung unabhängig sind. Das mag zunächst widersprüchlich klingen, da die Anfrage ja das Informationsbedürfnis ausdrückt, welches wiederum zur Relevanzbewertung führt. Es gibt jedoch Maße die solche Aussagen treffen können, z.b. Googles PageRank [BP98], das die Wichtigkeit eines Dokuments anhand dessen Verlinkung festmacht. Auch wäre es denkbar die Dokumentlänge oder die Komplexität der Sprache in ein statisches Qualitätsmaß einzubauen. Dann kann man sogar globale Championlisten der Dokumente erstellen, die sehr wahrscheinlich in einer Ergebnismenge auftauchen können. Ein anderer Ansatz liegt in einem alternativen Aufbau der Posting Listen. Anstatt wie bisher die Listen nach Dokument-ID zu sortieren, werden diese absteigend nach tf Werten sortiert. Geht man beim Berechnen der Retrievalfunktion term-at-a-time vor, so kann man gegebenenfalls abbrechen, sobald die Termfrequenz unter einen gewissen Schwellwert fällt. Durchläuft man weiterhin die Posting Listen absteigend bezüglich der idf Werte, so braucht man eventuell nicht alle Listen zu durchlaufen, da sie aufgrund niedriger idf Werte auf das Ergebnis sowieso wenig Einfluss hätten. 5.9 Zusammenfassung Das in diesem Kapitel vorgestellte Vektorraummodell ist von den theoretischen Grundlagen recht einfach aufgebaut: Dokumente und Anfragen werden über Vektoren in hochdimensionalen Vektorräumen dargestellt und die Retrievalfunktion bestimmt letztendlich Ähnlichkeiten der Vektoren. In der klassischen TF-IDF Variante werden Term- und inverse Dokumentfrequenz zu Gewichten in den Vektoren verknüpft und die Ähnlichkeit von Vektoren berechnet sich über die Größe des eingeschlossenen Winkels. Es gibt jedoch zahlreiche Möglichkeiten zur Bestimmung der Gewichte in Dokument- und Anfragevektoren sowie zur Normalisierung der Dokument-, bzw. der Vektorlänge. Die Möglichkeit ganze Dokumente zu vergleichen, erlaubt es in diesem Modell sehr einfach Anfragen per Query by Example zu definieren oder die Dokumente im Korpus zu Clustern. Auch der Rocchio Algorithmus für den Einbezug von Nutzer Feedback verwendet die Vektordarstellung der Dokumente. Eine Möglichkeit die Effizienz eines IR Systems auf der Basis des Vektorraummodells zu steigern liegt in der Berechnung ungefährer Top-K Listen, z.b. über Champion Listen, statische Qualitätsmaße oder den Aufbau der Posting Listen sortiert nach Termfrequenzen. 97

106 5 Das Vektorraum Modell 98

107 6 Evaluation Mit der Einführung des Vektorraum Modells stellt sich langsam die Frage nach der Evaluation von IR Systemen. Die verschiedenen Möglichkeiten zur Gewichtung von Termen in Dokumenten und Anfragen, die alternativen Ansätze zur Berechnung von Ähnlichkeit sowie diverse darin enthaltene Parameter führen fast zwangsläufig dazu, dass man testen muss welche Einstellungen in einer bestimmten Anwendung am geeignetsten sind. In diesem Kapitel sollen verschieden Themen der Evaluation angesprochen werden. Das sind einerseits eher weiche Faktoren wie die Nutzerzufriedenheit und wahrgenommene Performanz. Andererseits gibt es aber auch konkrete, objektive Maße, die für die Beurteilung und den Vergleich verschiedener Systeme herangezogen werden. Voraussetzung für die Anwendung der Evaluationsmaße sind Kollektionen von Testdokumenten zu denen es vorgegebene Abfragen und Relevanzeinschätzungen zu den Dokumenten gibt. Hier werden wir sehen, welche bekannten Testkollektionen es gibt und wie diese erstellt werden. 6.1 Das Cranfield Paradigma Bei IR Systemen können prinzipiell die gleichen Evaluationsmaße wie bei allen Softwaresystemen angelegt werden. Das kann ein Erfüllungsgrad der Anforderungen sein, das kann der effiziente Umgang mit Systemressourcen wie Speicherplatz oder Rechenzeit sein, oder das können Fragen der Nutzerfreundlichkeit sein. Ebenso können auch klassische Evaluationsmaße aus dem Bereich der Datenbanken herangezogen werden, insbesondere was die Geschwindigkeit angeht. Wie lange dauert eine Suche, wie lange wird für das Erfassen eines neuen Dokumentes im Index benötigt? Wie viele Transaktionen kann das System in einem vorgegebenen Zeitrahmen durchführen und wie viele Nutzer können gleichzeitig mit dem System arbeiten? Darüber hinaus gibt es aber auch Qualitätsanforderungen die ganz speziell den IR Bereich betreffen. Im Gegensatz zu Datenbanken ist die Ergebnismenge schließlich nicht exakt definiert, sondern lediglich eine Schätzung des IR Systems, welche Dokumente zu einer Anfrage relevant sein könnten. Daraus ergibt sich der Wunsch zu überprüfen, wie sehr die Systemrelevanz einer IR Anwendung mit der tatsächlichen Relevanz der Dokumente übereinstimmt. Die Frage, wie man diesen Aspekt eines IR Systems testen kann beschäftigte die Mitarbeiter in Bibliotheken bereits bevor in großem Maße Computer zur Unterstützung der Informtionssuchenden eingesetzt wurden. Anfangs stand daher eher die Frage im Raum, welches System zur Katalogisierung und Indizierung einer Schriftensammlung am geeignetsten 99

108 6 Evaluation ist. Meist wurde dabei nicht sehr systematisch vorgegangen, sondern anhand vereinzelter Beispiele versucht, die Vor- und Nachteile des einen oder anderen Ansatzes herauszustellen. Einen systematischen Ansatz zur Bewertung von Indizierungsverfahren verfolgte Cyril Cleverdon Anfang der 1960er Jahre am Cranfield College in England [Rob08]. Während es dabei noch um manuell erstellte Indizes ging, so ist die Methodik jedoch bis heute ausschlaggebend und die Evaluationsinitiativen im IR basieren alle auf diesem Ansatz. Man spricht daher auch vom Cranfield Paradigma in der Evaluation von IR Systemen. Der von Cleverdon verfolgte Ansatz bestand darin, alle Indizierungsverfahren (heutzutage bezieht sich dies auf IR Systeme) auf den gleichen Dokumenten und mit den gleichen Anfragen arbeiten zu lassen. Wie die Dokumente und Anfragen dabei verarbeitet werden bleibt dem Verfahren überlassen. Die Dokumente der Ergebnismenge werden anschließend von unabhängigen Juroren auf ihre Relevanz hin untersucht. Für die gesuchte tatsächliche Relevanz wird also die objektive Relevanz herangezogen. Dabei wird jedes Dokument nur einem Juror vorgeführt, es wird absichtlich nicht versucht ein Mehrheitsurteil oder eine Übereinstimmung mehrere Jury Mitglieder zu erreichen. Genau dieser Punkt wurde später genauer untersucht, insbesondere dahingehend, wie sehr die gemessene Leistung eines IR Systems von den Juroren abhängt. In Versuchen wurde dazu jedes Dokument in einem Evaluationsprozess mehreren Juroren vorgeführt und die Übereinstimmung der Relevanzurteile untersucht. Es stellte sich heraus, dass die Juroren in der Tat recht oft nicht der gleichen Meinung sind. Bei der Verwendung der unterschiedlichen Relevanzurteile zur Bewertung von IR Systemen zeigte sich, dass die unterschiedlichen Urteile sehr wohl einen Einfluss auf die absoluten Bewertungsergebnisse hatten, jedoch nicht auf die relativen. Das heißt, letztendlich schnitt jedes einzelne IR System zwar je nach Juror besser oder schlechter im Test ab, die Reihenfolge der System untereinander blieb jedoch nahezu gleich. Ein gutes System (im Vergleich zu anderen) blieb ein gutes System und ein schlechtes System blieb schlecht. Zu Anbeginn der Tests waren die Korpora sehr klein. Die Sammlung von Dokumenten in den Cranfield Tests umfasste nur Dokumente. Bei diesem Umfang war es wenn auch mit hohem Aufwand prinzipiell noch möglich zu jeder Kombination aus Dokument und Anfrage eine Entscheidung zu treffen, ob das Dokumente zur Anfrage relevant ist. Bei modernen, größeren Korpora ist dies nicht mehr der Fall. Der GOV2 Korpus aus den TREC Daten, der heute für Vergleiche Web-basierter IR Systeme zur Verfügung steht, enthält über 25 Millionen Dokumente. Hier ist es schlichtweg unmöglich alle Dokumente anzuschauen. Diesem Problem wird bei Vergleichstests mit der Pooling Methode Rechnung getragen. Dazu erhalten alle Teilnehmer die Dokumentsammlung und die Anfragen sowie die Aufgabenstellung zu jeder Anfrage eine Liste von k Ergebnisdokumenten (typische Werte für k sind 100 oder Dokumente) zurückzuliefern. Die Dokumente der Ergebnislisten werden in einem Pool zusammengeführt und es wird nur dieser Dokumentpool auf seine Relevanz hin untersucht. Abbildung 6.1 stellt diese Vorgehensweise schematisch dar. Da auch dies noch zu einer sehr großen Anzahl an zu begutachtenden Dokumenten führen kann, werden gelegentlich nicht alle sondern nur einige Ergebnislisten in den Pool aufgenommen. 100

109 6.2 Test Daten Abbildung 6.1: Pooling Verfahren zur Evaluation von IR Systemen über großen Korpora. Tabelle 6.1: Kleine Testkorpora Korpus Inhalte Dokumente Anfragen Cranfield Aerodynamik MED Biomedizin TIME Nachrichten CACM Informatik Die Anfragen werden gelegentlich (z.b. im Rahmen der TREC Konferenzen [TRC09]) auch als Topics bezeichnet, da sie nicht nur eine (vorgegebene) Anfrage enthalten, sondern aus einem Titel, einer kurzen Erklärung sowie einer ausführlicheren Beschreibung bestehen. Die Anfragen können letztendlich aus allen Teilen des Topics erstellt werden, es muss für die Evaluation nur angegeben werden, welche Teile in die Suche eingeflossen sind. 6.2 Test Daten Zur Evaluation von IR Systemen gibt es inzwischen eine ganze Reihe von Testkorpora. Insbesondere für den Vergleich mit anderen Systemen empfiehlt es sich hier auf weit verbreitete Sammlungen zurückzugreifen. Im Zusammenhang mit dem IR System SMART kann man einige ältere Testkollektionen frei herunterladen. Dazu gehört unter anderem die Dokumentkollektion der ursprünglichen Cranfield Tests. Weitere bekannte Sammlungen sind CACM, MED und TIME. Hierzu gibt es auch Listen der Anfragen und insbesondere Angaben dazu, welche Dokumente zu einer Anfrage als relevant erachtet werden. Tabelle 6.1 gibt eine Übersicht über die Anzahl der Dokumente und Anfragen in diesen Dokumentsammlungen. Im Rahmen der Text Retrieval Conference (kurz TREC) wurden verschiedene größere Korpora entwickelt, die jedoch nicht mehr kostenlos zu haben sind. Die Topics und Listen 101

110 6 Evaluation der relevanten Dokumente sind jedoch frei verfügbar. Zu jedem Korpus gibt es verschiedene Aufgaben, die als Tracks bezeichnet werden. Die Tracks umfassen Ad Hoc, Routing und verschiedene andere, speziellere Aufgaben. Die TREC Daten haben sich mit der Zeit fast zu einem Standard in der Evaluation von IR Systemen entwickelt. Für Klassifikationsaufgaben (die wir bisher noch nicht näher betrachtet haben) gibt es andere Korpora, die hierfür geeigeneter sind, da bereits Klassen zu den Dokumenten vorgegeben sind. Dazu gehören Reuters 21578, sowie die neueren, wesentlich umfangreicheren Sammlungen Reuters Corpus Volume 1 und Volume 2. Alle drei Korpora bestehen aus Reuters Nachrichten Meldungen, wobei Volume 2 Meldungen im Gegensatz zu den anderen beiden Sammlungen Texte in verschiedenen Sprachen enthält. 6.3 Maße Gemäß dem Cranfield Ansatz können wir für die klassische Aufgabe des Ad Hoc Retrieval (ohne Feedback) also davon ausgehen, dass wir in einem bekannten Korpus D und zu einer gegebenen Anfrage q die Menge G der relevanten Dokumente kennen. Eine solche Vorgabe wird auch als Goldstandard bezeichnet. Betrachten wir zunächst den einfachsten Fall von Evaluation, in dem Ranking keine Rolle spielt (beispielsweise bei der Bewertung eines boolschen IR Systems). Das IR System liefert uns zu einer Anfrage q über dem Korpus D die Ergebnismenge A von Dokumenten. Diese Menge wird wohl in den seltensten Fällen exakt mit G übereinstimmen. Vielmehr wird höchstwahrscheinlich eine Situation wie in Abbildung 6.2 eintreten. Abbildung 6.2: Lage der Ergebnismenge A und des Goldstandards G im Korpus D. Wir müssen also die Übereinstimmung zwischen A und G messen. Dazu können wir einerseits bestimmen, wie viele der relevanten Dokumente das System letztendlich gefunden hat und welchen Anteil an allen relevanten Dokumenten dies ausmacht. Diese Kennziffer wird mit Recall (r) bezeichnet und lässt sich über die Schnittmenge von A und G sowie Mengenmächtigkeiten ausdrücken: A G r = G Der Recall nimmt Werte zwischen 0 und 1 an. Ein Wert von 1 bedeutet, dass alle relevanten Dokumente in der Ergebnismenge enthalten sind, ein Wert von 0 entsprechend, dass keines der relevanten Dokumente gefunden wurde. Höhere Werte sind also besser. 102

111 6.3 Maße Ein anderer interessanter Wert ist Precision (p). Hier wird geprüft, wie viele der Dokumente in der Ergebnismenge tatsächlich relevant sind, wiederum als Anteil der gesamten Ergebnismenge. Man misst also gewissermaßen die Reinheit der Ergebnismenge. Auch Precision lässt sich einfach über Mengen definieren: p = A G A Offensichtlich gilt auch hier wieder, dass Werte zwischen 0 und 1 angenommen werden. Hohe Werte sind ebenfalls besser, insbesondere bedeutet eine Precision von 1, dass nur relevante Dokumente in der Ergebnismenge enthalten sind und eine Precision von 0, dass keine relevanten Dokumente enthalten sind. Eine Besonderheit für den Precision-Wert ist, dass er für leere Ergebnismengen nicht definiert ist 1. Man könnte hier einen Wert von 1 ansetzen, mit der Begründung, dass die Menge sehr rein ist, also keine Falschtreffer enthält. Wir werden in Kürze eine bessere Möglichkeit finden diesen Wert abzuschätzen. Eine drittes Maß, dass sich auf dieser Darstellung der Ergebnismengen und des Godstandards berechnet lässt, ist der Fallout. Hierbei wird betrachtet, welcher Anteil aller irrelevanten Dokumente in der Ergebnismenge enthalten ist. Im Prinzip wird hierbei gemessen, wie gut das System die irrelevanten Dokumente zurückhält. Im Gegensatz zu Recall und Precision sind beim Fallout kleine Werte von Vorteil. o = A \ G D \ G Das Fallout Maß kommt in der Evaluation heutzutage praktisch nicht mehr zum Einsatz. Das dürfte unter anderem an den enormen Datenmengen liegen, mit denen IR Systeme umgehen. Geht man beispielsweise davon aus, dass das World Wide Web 15 Milliarden Dokumente enthält, wovon 1 Million zu einer Anfrage relevant seien. Ein Fall Fallout von nur 0,0001% entspricht dann immer noch irrelevanten Dokumenten in der Ergebnisliste. Die Precision mit ihrem Focus auf die Ergebnisliste allein ist daher ein geeigneteres Maß. Alternativ kann das Ergebnis einer Suche auch anders betrachtet werden. Tabelle 6.2 zeigt eine sogenannte Confusion Matrix, die angibt, welche Fälle bei einer Suche auftreten können. Die guten Fälle stehen in den Zellen A I und B II. In A I stehen die Dokument, die gemäß dem Goldstandard relevant sind und vom IR System in die Ergebnismenge aufgenommen wurden. Man spricht hierbei von den hits (Treffern) oder den true positive (TP) Ergebnissen. Zelle B II enthält die Anzahl der Dokumente, die als nicht relevant eingestuft wurden und auch nicht in der Ergebnismenge auftauchen. Diese gelten als rejected (verworfenen), bzw. true negative (TN) Ergebnisse. Die Fehler, die ein IR System macht werden in den Zellen A II und B I aufgeführt. Zelle A II enthält die relevanten Dokumente, die das IR System übersehen hat, die also nicht in der Ergebnismenge auftauchen. Daher 1 Prinzipiell ist der Recall für eine leere Menge im Goldstandard ebenfalls nicht definiert. Wenn es im Korpus zu einer Anfrage allerdings keine relevanten Dokumente gibt, so ist der gesamte Testaufbau fragwürdig. 103

112 6 Evaluation Tabelle 6.2: Confusion Matrix A B Relevant Nicht relevant I In Ergebnismenge T P / hits F P / noise II Nicht in Ergebnismenge F N / misses T N / rejected werden sie als misses (Verlust, Versäumnisse) bezeichnet und man spricht von false negative (FN) Ergebnissen. Zelle B I hingegen enthält die Dokumente in der Ergebnismenge, die nach Goldstandard als nicht relevant markiert sind. Diese Dokument sind noise (Rauschen, Störung) oder false positives (FP). Im Bezug auf die obigen Mengen und deren Mächtigkeit gilt nun im Zusammenhang mit der Confusion Matrix, dass: D = T P + T N + F P + F N A = T P + F P G = T P + F N A G = T P Damit lassen sich Recall und Precision auch als Ausdrücke über der Confusion Matrix darstellen: r = T P T P + F N T P p = T P + F P Außerdem kann noch ein weiteres Maß herangezogen werden, die Accuracy: T P + T N acc = T P + T N + F P + F N Accuracy wird im Bereich des Data Mining oder Machine Learning häufiger verwendet, im IR ist das Maß weniger hilfreich. Das liegt schlicht daran, dass der Großteil der Dokumente in einem Korpus zu einer bestimmten Anfrage nicht relevant sein dürfte. Daher ist der Werte TN ebenfalls sehr groß und liegt nahe bei D. Ein IR System könnte also bereits durch die einfache Politik, alle Dokument als irrelevant zu bezeichnet, sehr gute Accuracy Werte erzielen. Aber auch Recall und Precision sind problematisch. Sie betrachten die Ergebnismenge aus zwei unterschiedlichen Blickwinkeln und sind von den Werten her sogar gegenläufig. Das lässt sich recht einfach erklären. Ein Recall-Wert von 1 kann immer erreicht werden. Dazu müssen nur alle Dokument in die Ergebnismenge aufgenommen werden. Allerdings ist dann Precision sehr niedrig. Auch ein hoher Precision-Wert kann meist einfach erreicht werden. 104

113 6.3 Maße Man nimmt nur solche Dokumente in die Ergebnismenge auf, die in der Retrievalfunktion einen hohen Wert erzielen, bei denen sich das IR System bezüglich der Relevanz also ziemlich sicher ist. Die meisten davon dürften tatsächlich relevant sein, allerdings dürften auch viele relevante Dokumente des Goldstandards fehlen. Wie können also zwei IR Systeme verglichen werden, von denen eines höhere Recall Werte erzielt und eines höher Precision Werte? Eine Möglichkeit, die beiden Werte zu verknüpfen wurde in [VR79] definiert, das sogenannte F β -Maß 2 : F β = (β2 + 1) r p β 2 p + r Dabei stehen wie oben r für Recall und p für Precision. Der positive Parameter β erlaubt eine unterschiedliche Gewichtung von Recall und Precision. Hohe Werte für β gewichten den Recall stärker, kleine Werte gewichten den Einfluss von Precision höher. Harmonischer Mittelwert Das F β -Maß läßt sich als gewichtetes harmonisches Mittel zwischen Recall und Precision erklären. Das gewichtete harmonische Mittel über den beiden Werte ist definiert als: avg harm (p, r) = Setzt man hier für α den Wert α = 1 für F β. β α 1 + (1 α) 1 p r ein, dann ergibt sich genau die obige Formel In allgemeinen Beurteilungen zur Performanz wird meistens eine Gleichgewichtung beider Größen verwendet, d.h. β erhält einen Wert von 1. Diese am häufigsten verwendete Variante wird mit F 1 als Kurzfassung für F β=1 bezeichnet. Auch F 1 kann wieder über den Werten aus der Confusion Matrix ausgedrückt werden: F 1 = 2 r p p + r = 2 ( ) ( ) T P T P +F N T P T P +F P ( ) ( ) T P T P +F N + T P = T P +F P 2 T P 2 T P + F P + F N Recall, Precision, F 1 und Accuracy. Gehen wir von einer Dokumentsammlung von 100 Dokumenten d 1 bis d 100 aus. Zu einer gegebenen Anfrage ist bekannt, dass die acht Dokumente d 2, d 3, d 6, d 8, d 10, d 14, d 17 und d 29 relevant sind, also den Goldstandard zu dieser Anfrage bilden. Ein IR System liefert die Ergebnismenge {d 2, d 3, d 4, d 7, d 8, d 10, d 12, d 17, d 20, d 29 }. 2 Genau genommen wurde das E-Maß definiert, für das aber gilt: F β = 1 E. 105

114 6 Evaluation Die Schnittmenge zwischen dem Goldstandard und der Ergebnismenge des Systems ist dementsprechend {d 2, d 3, d 8, d 10, d 17, d 29 }. Daher ergeben sich für Recall und Precision folgende Werte: r = p = {d 2, d 3, d 8, d 10, d 17, d 29 } {d 2, d 3, d 6, d 8, d 10, d 14, d 17, d 29 } = 6 = 0, 75 8 {d 2, d 3, d 8, d 10, d 17, d 29 } {d 2, d 3, d 4, d 7, d 8, d 10, d 12, d 17, d 20, d 29 } = 6 10 = 0, 6 Der Wert für F 1 ist somit: F 1 = 2 r p p + r = 2 0, 75 0, 6 0, , 6 = 0, 667 Betrachtet man die Confusion Matrix, so sehen die Einträge folgendermaßen aus: Daraus ergibt sich eine Accuracy von: acc = A B I 6 4 II = 0, Dass Accuracy im IR kein geeignetes Maß ist zeigt sich, wenn man den bereits angesprochenen Fall betrachtet, dass ein System immer eine leere Ergebnismenge zurückgeliefert. Dann erreicht man in diesem Fall immerhin noch eine Accuracy von 0,9, während der Recall und somit auch das F 1 -Maß auf 0 sinken. Eine Evaluation findet sinnvollerweise nicht nur über einer Anfrage auf einer Dokumentsammlung statt, sondern erstreckt sich über mehrere Anfragen und eventuell mehrere Korpora. Dann stellt sich allerdings die Frage, wie die Werte für Recall und Precision über mehrere Versuche hinweg aggregiert werden. Mit der Makro- und Mikromittelwertblidung gibt es hierfür zwei Ansätze. Bei der Makrobewertung wird der Mittelwert über alle Recall und Precision Werte gebildet. Das heißt, es wird letztendlich der Mittelwert über alle Suchvorgänge gebildet. Aus diesem Grund gilt die Makrobewertung auch als Nutzersicht. Bei der Mikrobewertung hingegen wird die Zahl der relevanten und nicht relevanten Dokumente aller Suchen zunächst summiert und danach ein Recall oder Precision Wert über dieser künstlichen Ergebnisbeobachtung gebildet. Damit orientiert sich die Mikrobewertung an den relevanten Dokumenten über allen Anfragen insgesamt und gilt auch als System-orientierte Mittelwertbildung. 106

115 6.3 Maße Nehmen wir an, dass die Menge A i der Ergebnismenge eines IR Systems zur Anfrage q i entspricht und G i den Goldstandard zu dieser Anfrage darstellt, dann berechnen sich Makro- und Mikro-Precision folgendermaßen: p makro = 1 K p mikro = K i=1 A i G i A i Ki=1 A i G i Ki=1 A i Die Berechnung von Makro- und Mikro-Recall oder -F 1 verläuft jeweils völlig analog. Makro- und Mikromittelung Gehen wir von vier Testanfragen q 1 bis q 4 aus, zu denen die Ergebnismengen bezüglich ihres Recalls und ihrer Precision beurteilt wurden. Die folgende Tabelle gibt genauen Aufschluss über die fiktiven Ergebnisse: Anfrage A i G i A i G i Precision Recall q ,67 0,20 q ,60 1,00 q ,57 0,20 q ,80 0,67 Berechnet man über diesen Werten nun den Makro-Recall, so erhält man: r makro = 1 (0, 2 + 1, 0 + 0, 2 + 0, 67) = 0, 52 4 Der Mikro-Recall sieht ganz anders aus. Durch die Zusammenlegung der Ergebnisse ergibt sich hier: r mikro = = 0, Da sich die Mikro-Bewertung an relevanten Dokumenten orientiert hat die Anfrage q 3 einen wesentlich stärkeren Einfluss auf das Gesamtergebnis, da die Menge G 3 deutlich größer ist als bei den anderen Anfragen. Bei Precision fällt der Unterschied in diesem Beispiel mit p makro = 0, 66 und p mikro = 0, 6 nicht ganz so gravierend aus. Bei IR Systemen die ihre Ergebnisse nach absteigender Relevanz sortieren, also ein Ranking vornehmen, können Recall, Precision und F 1 ebenso angewendet werden. Allerdings wird bei diesen Maßen die Reihenfolge nicht berücksichtigt. Diese spielt jedoch eine entscheidende Rolle. Man stelle sich nur zwei Websuchmaschinen vor, die zwar die gleichen 107

116 6 Evaluation 50 relevanten Treffer und die gleichen 50 uninteressante Dokument auflisten, wobei jedoch eine Suchmaschine die relevanten Treffer auf den Plätzen eins bis 50 listet und die andere auf den Plätzen 51 bis 100. Die Werte für Recall, Precision und F 1 sind für beide Systeme gleich. Wenn bei einem IR System jedoch unter den ersten 50 Ergebnissen kein einziges relevantes Dokument enthalten ist, werden Nutzer nur selten noch weiter unten in der Ergebnisliste nach Treffern suchen. Mit diesem Beispiel wird die unterschiedlich Performanz zweier Systeme mit gleicher Ergebnismenge aber unterschiedlichem Ranking recht schön verdeutlicht. Ein Ansatz, der Ranking berücksichtigt und hervorragend zu diesem Beispiel passt, ist Precision at k, auch abgekürzt durch Hierbei wird die Precision über den ersten k Einträgen der Ergebnisliste bestimmt. Ein typischer Werte für k ist 10, da viele Suchmaschinen standardmäßig auf einer Ergebnisseite zunächst nur die ersten 10 Ergebnisse anzeigen. Precision at k. Gehen wir wie oben wieder von den zu einer Anfrage relevanten Dokumenten d 2, d 3, d 6, d 8, d 10, d 14, d 17 und d 29 aus. Eine Suchmaschine liefert nun folgende (gerankte!) Trefferliste: d 17, d 3, d 4, d 10, d 14, d 6, d 45, d 9, d 8, d 21 Die relevant Treffer sind hier zusätzlich unterstrichen, um sie deutlich erkennbar zu machen. Nun kann man Precision at k für verschiedene Werte von k ausrechnen. In der folgenden Tabelle sind Werte für k = 2, k = 3, k = 5 und k = 10 aufgeführt: 2 = 1 2 = 0, = 0, 8 6 = 0, Eine Schwäche von Precision at k liegt in der Wahl des Parameters k. Ein Wert von k = 10 lässt sich anschaulich mit den Nutzerschnittstellen vieler Suchsysteme erklären. Dennoch ist auch diese Festlegung zu einem gewissen Grad willkürlich. Insbesondere wenn nur sehr wenige relevante Dokumente existieren kann zu trügerischen Werten führen. Gibt es beispielsweise nur 5 relevante Dokumente, so kann ein IR System maximal einen Wert von 0,5 erreichen. Der R-Precision Ansatz versucht dies auszugleichen. Hier wird davon ausgegangen, dass bekannt ist, wieviele relevante Dokumente es zu einer Anfrage insgesamt gibt. Sind dies nun R Dokumente, so setzt man in den Wert von k auf R. Das hat zweierlei Effekte. Einerseits erzielt ein hervorragendes System im obigen Beispiel mit 5 relevanten Dokumenten die auf den ersten fünf Rankingplätzen stehen einen perfekten R-Precision Wert von 1. Weiterhin gilt für R-Precision, dass der Recall Wert genau dem Precision Wert entspricht: 108

117 6.3 Maße p R = A G A = A G G = r R Das liegt daran, dass die Ergebnismenge genau so groß wie die Menge des Goldstandards gewählt ist. Daher entspricht R-Precision auch dem Break-Even-Point, also dem Punkt an dem sich Recall und Precision die Waage halten. Auch in Precision-Recall Graphen werden Precision Werte mit Recall Werten in Verbindung gesetzt. Allerdings werden hier mehrere Werte abgetragen. Die Idee dabei ist, für jeden Eintrag in der Ergebnisliste Precision und Recall bis zu diesem Treffer zu bestimmen und diese Werte in einem Graphen abzutragen. Da dies zu einer etwas zackigen Kurve führt 3, werden Precision-Recall Graphen meist mit interpolierten Precision Werten dargestellt. Die interpolierte Precision zu einem beliebigen Recall Wert ist die höchste Precision die mit einem noch höheren Recall erreicht wird. Damit lässt sich auch tatsächlich ein interpolierter Precision Wert für einen Recall von 0, bzw. die leere Ergebnismenge bestimmen. In Abbildung 6.3 ist sowohl die zackige als auch die geglättete Darstellung eines Precision-Recall Graphen zu sehen. Abbildung 6.3: Precision-Recall Graph. Da diese Darstellung von der Anzahl der relevanten Dokumente abhängig ist und auch nur eine Anfrage und deren Ergebnis erfasst können Precision-Recall Graphen vereinfach und zusammengefasst werden. In eleven-point average Precision-Recall Graphen wird über die Precision Werte in mehreren Ergebnissen an den Recall Werten zwischen 0 und 1 in Schritten mit einer Weite von 0,1 gemittelt. Tritt eine bestimmter Recall Wert in einer Ergebnismenge gar nicht auf (weil es z.b. nur 3 relevante Dokument gibt), so wird der interpolierte Precision Wert an dieser Stelle verwendet. Ein Beispiel ist in Abbildung Bei jedem nicht relevanten Dokument bleibt der Recall und somit der x-wert der Kurve gleich, während Precision und somit und der y-wert abfällt. Bei einem TP Treffer hingegen steigen beide Werte an. 109

118 6 Evaluation zu sehen. In einigen Quellen finden sich auch three-point average Precision-Recall Graphen. In diesem Fall werden die Precision Werte bei einem Recall von 0,2, von 0,5 und von 0,8 abgetragen. Abbildung 6.4: Eleven Point Precision-Recall Graph. Um die Informationen die in Precision-Recall Graphen stecken auf eine Zahl herunter zu kochen, verwendet man Mean Average Precision (MAP). Dazu werden zu einer gegebenen Anfrage und deren Ergebnismenge die Precision-Werte bestimmt, die an jedem einzelnen der relevanten Dokumente in der Ergebnisliste vorliegen. Über diesen Precision-Werten wird dann der Mittelwert gebildet (Average Precision) und wiederum über mehrere Anfragen gemittelt (Mean). Formal betrachtet hat man eine Menge Q von Anfragen q i. Zu jeder Anfrage q i ist die Menge {d i,1, d i,2,..., d i,mi } der relevanten Dokumente bekannt. In den Ergebnisliste eines IR Systems steht Dokument d i,j dann an Position k i,j und man kann die Precision P (k i,j ) bis zu dieser Stelle in der Ergebnisliste bestimmen (letztendlich also i,j ). Taucht ein Dokument gar nicht in der Ergebnisliste auf, so wird der Precision Wert entsprechend auf 0 gesetzt. Damit kann man MAP dann formulieren als: MAP = 1 Q Q 1 m i P (k i,j ) i=1 m i j=1 MAP Für die Berechnung von MAP genügt es in der Ergebnisliste anzugeben, welche Dokumente relevant sind und welche nicht. In einer Ergebnisliste von 20 Dokumenten können wir daher einfach mit einem Eintrag von 1 die Relevanz ausdrücken und mit 0 einen nicht relevanten Eintrag: 110

119 6.3 Maße (1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0) Wir haben also relevante Dokumente an den Positionen 1, 3, 4, 7, 10, 12, 15 und 19. An jeder dieser Stellen müssen wir nun die Precision berechnen: ,00 0,67 0,75 0,57 0,50 0,50 0,47 0,42 Außerdem ist bekannt, dass zwei relevante Dokumente in der Ergebnisliste fehlen für die daher eine Precision von 0 angenommen wird. Die Mittelwertbildung über diesen Werten ergibt folgende Average Precision: 1 + 0, , , , 5 + 0, 5 + 0, , = 0, 49 Bildet man über den Average Precision Werten mehrere Anfragen an ein IR System den Mittelwert, so erhält man MAP für dieses System und diesen Testaufbau. Ein Problem mit allen bisherigen Maßen ist die Voraussetzung, dass zu jedem Dokument eindeutig bekannt sein muss, ob es relevant ist oder nicht. Bei Verwendung der Pooling Methode ist dies jedoch nicht der Fall. Bei großen Korpora wird nur ein sehr kleiner Teil aller Dokumente zu einer Anfrage tatsächlich betrachtet. Der Standardansatz für die bisherigen Maße ist, dass alle nicht betrachteten Dokumente automatisch als nicht relevant angesehen werden. Ein Maß, das diese Annahme nicht treffen muss ist bpref [BV04]. Hierbei wird ermittelt, wie oft (bekanntermaßen) nicht relevante Dokument vor relevanten Dokumente gerankt werden, so dass nicht beurteilte Dokument außer Acht gelassen werden können. Wie bei R-Precision geht man davon aus, dass es ingesamt R relevante Dokumente gibt. Dann bestimmt man alle Paare von relevanten und nicht relevanten Paaren und summiert über die relevanten Dokumente (r) auf, wie oft ein nicht relevantes (n) davor steht: bpref = 1 ( ) n steht vor r R r R Es konnte gezeigt werden, dass bpref recht gut mit MAP korreliert, aber bei Verkleinerung der Menge der beurteilten Dokumente deutlich stabiler ist. Verwendet man bei MAP eine deutlich kleinere Menge an Dokumenten im Pooling, so fallen die MAP Werte stark ab. Der bpref Wert bleibt zwar nicht unverändert, hält sich jedoch auf einem ähnlichem Niveau. Problematisch und instabil ist bpref nur, wenn sehr wenige relevante Dokumente vorliegen, da dann die Division in der Summe instabil wird. Dies wird in der bpref-10 Variante abgedämpft, indem man zu R einen konstanen Wert von 10 addiert: 111

120 6 Evaluation bpref-10 = 1 ( ) n steht vor r R r R Nutzerbezug Im Cranfield Paradigma wird der Nutzer ganz bewußt ausgeblendet. Die Performanz eines IR Systems wird auf seine Trefferlisten reduziert, die durch unbeteiligte, objektive Juroren ausgewertet werden. Für einen objektiven Vergleich der Kernkompetenz von IR Systemen ist dies sicherlich ein geeigneter und bewährter Ansatz. Doch spielte der Nutzer für ein System als Ganzes und in einem besonderen Anwendungszusammenhang sehr wohl ein große Rolle. Es gibt einige Möglichkeiten den Nutzer mit in die Bewertung einzubeziehen. Dazu kann man beispielsweise davon ausgehen, dass der Nutzer bereits einige relevante Dokumente kennt. Dies bringt in die Unterscheidung der gesamten Dokumentmenge eine weitere Teilmenge ein: die Menge U. In U sind alle relevanten Dokumente enthalten, von denen der Nutzer bereits weiß und ist somit eine Teilmenge des Goldstandards G. In Abbildung 6.5 ist dieser Zusammenhang der Mengen grafisch dargestellt. Abbildung 6.5: Teilmenge U der dem Nutzer bekannten relevanten Dokumente. Über die Menge U und deren Lage zu A lassen sich nun ebenfalls (nutzerspezifische) Aussagen zur Leistung eines IR Systems bezüglich einer bestimmten Anfrage machen. Dazu gehört mit coverage die Abdeckung der bekannten relevanten Dokumente durch das System: coverage = A U U Coverage entspricht also einer Art Recall bezüglich der dem Nutzer bekannten relevanten Dokumente. Bei der novelty ratio wird hingegen betrachtet, wieviele relevante Dokumente dem Nutzer präsentiert wurden, die er noch nicht kannte. Dazu wird die Mächtigkeit der Menge der unbekannten relevanten Dokumente im Verhältnis zur Mächtigkeit der Menge aller zurückgelieferten relevanten Dokumente betrachtet: 112

121 6.5 Zusammenfassung novelty ratio = A (G \ U) A G Bei beiden Maßen geht man davon aus, dass der Nutzer ganz bestimmte Dokumente im Sinn hat. Lockert man diese Forderung dahingehend auf, dass der Nutzer lediglich eine bestimmte Anzahl von relevanten Dokumenten erwartet (ohne genau zu wissen welche), so gelangt man zum relative Recall, dem Verhältnis der Anzahl der erhaltenen relevanten Dokumente zur Anzahl der erwarteten relevanten Dokumente. Dieses Maß kann interessant sein, weil ein Nutzer seine Informationssuche sehr wahrscheinlich abbricht, wenn er einen relativen Recall von 1 erreicht hat, er also so viele relevante Dokumente gefunden hat wie zuvor erwartet 4. In diese Maße fließen nutzerspezifische Angaben ein, die Ergebnisse sind jedoch noch immer numerischer Natur. Viel schwieriger wird es wenn solche Dinge wie Nutzerzufriedenheit gemessen werden sollen. Schließlich ist die Zufriedenheit der Nutzer schwer fassund meßbar, kann aber durchaus entscheidend für die Akzeptanz und damit den Erfolg eines IR Systems sein. In manchen Anwendungsbereichen lässt sich die Nutzerzufriedenheit indirekt messen, insbesondere im Bereich des E-Commerce. Ein Erfolg liegt hier oft vor, wenn eine Nutzer eine Transaktion tätigt, z.b. einen Einkauf. Wenn man zuvor mitverfolgt, wie lange der Nutzer nach den Produkten suchen musste, ergibt sich so eine Möglichkeit die Qualität der Suchanwendung zu beurteilen. In anderen Szenarien können die Nutzer direkt nach ihren Erfahrungen gefragt werden. Hierbei ist es jedoch schwierig vergleichbare Aussagen zu bekommen. Daher werden häufig objektiv messbare Kriterien angesetzt, wie z.b. der Zeitaufwand den Suchenden haben um zu Ergebnissen zu kommen. Letztendlich haben aller Nutzertests jedoch den gravierenden Nachteil, dass sie sehr aufwändig und zeitintensiv sind. Daher man kann nie den Umfang eines automatischen Tests erreichen, wie ihn die Cranfield Vorgaben ermöglichen. Darüber hinaus bleibt eine subjektive Note der Testnutzer enthalten. 6.5 Zusammenfassung Evaluation von IR Systemen ist wichtig. Insbesondere der Aspekt der Effektivität stellt hierbei ein wichtiges Kriterium dar. Als methodische Basis zur Evaluation hat sich das Cranfield Paradigma bewährt, das die Performanz eines IR Systems über dessen Fähigkeit bestimmt, in einem gegebenen Korpus zu gegebenen Anfragen die Dokumente aufzustöbern die nach der Meinung objektiver Experten als relevant eingestuft sind. Vor diesem Hintergrund gibt es einige Testkollektionen, die Dokumente, Anfragen und Relevanzurteile 4 Viele Nutzer von Websuchmaschinen erwarten vielleicht nur einen relevanten Treffer und geben sich dementsprechend mit dem ersten relevanten Dokument zufrieden. 113

122 6 Evaluation bereitstellen. Im wissenschaftlichen Bereich sind hierbei insbesondere die TREC Kollektionen maßgebend. Auf dieser Basis lassen sich klassische IR Maße wie Recall, Precision und F 1 berechnen, sofern Ranking keine Rolle spielt. Nimmt man die Reihenfolge der Ergebnisse mit in die Bewertung auf, so bieten sich mit Precision at k, R-Precision, Precision-Recall Graphen und MAP Maße an, die in der Lage sind, die Abfolge relevanter und irrelevanter Dokumente in der Ergebnisliste mit zu berücksichtigen. Mit bpref hat sich weiterhin ein Maß etabliert, dass die immer kleiner werdende Zahl an tatsächlich begutachteten Dokumenten berücksichtigt. Hier werden nicht evaluierte Dokumente explizit aus der Rechnung herausgelassen. Um den Nutzer mit in die Evaluation einzubeziehen gibt es entweder den Ansatz, eine dem Nutzer bekannte Menge relevanter Dokumente anzunehmen und dann die Retrievalleistung bezüglich dieser Menge zu beurteilen, oder man trennt sich von Relevanzaussagen und begutachtet direkt oder indirekt die Interaktion und Zufriedenheit der Nutzer mit einem IR System. 114

123 7 Probabilistisches Information Retrieval Bedingt durch die Vagheit der Sprache in den Dokumenten und den Anfragen gibt es im IR keine hundert prozentige Sicherheit, dass ein Dokument zu einer Anfrage relevant ist. Diesem Problem wird im probabilistischen IR damit begegnet, dass Wahrscheinlichkeiten für die Relevanz modelliert werden. Nach dem Vektorraum Modell stellt das probabilistische ein weiteres wichtiges theoretisches Modell dar. In einem umfangreichen theoretischen Teil werden wir dazu zunächst das Binary Independence Modell betrachten, das die grundlegenden Ideen eines probabilistischen IR erklärt. Danach gehen wir auf die praktische Umsetzung der Gewichte ein, insbesondere in der BM25 Variante des Okapi Systems. Schließlich behandeln wir noch probabilistisches Relevance Feedback, das sich sehr schön in die Theorie einfügt. 7.1 Das Binary Independence Modell (BIM) Wie im boolschen und Vektorraummodell, geht man auch im probablistischen IR davon aus, dass die Terme die Relevanz eines Dokuments bezüglich einer Anfrage direkt beeinflussen. Im Binary Independence Modell (BIM) 1 wird außerdem davon ausgegangen, dass die Terme sich in diesem Zusammenhang nicht gegenseitig beeinflussen. Das entspricht der gleichen Annahme wie im Vektorraummodell, wo die Dimensionen der Terme zu einander orthogonal sind. Die Relevanz selbst ist binär, d.h. entweder ein Dokument ist relevant oder es ist nicht relevant. Feinere Abstufungen gibt es nicht. Auch haben andere Dokumente im Korpus keinen Einfluss auf die Relevanz eines Dokumentes. Es ist für den absoluten Retrievalwert eines Dokumentes also egal, ob es geeignetere Dokumente zu einem Informationsbedürfnis gibt, oder ob es sich um das Duplikat eines anderen Dokumentes handelt. Modelliert man die Relevanz als eine Zufallsvariable R, die nach obigen Annahmen nur die Werte 1 (relevant) und 0 (nicht relevant) annimmt, dann sucht man letztendlich die Wahrscheinlichkeit, dass R den Wert 1 annimmt, gegeben ein bestimmtes Dokument d und eine bestimmte Anfrage q. Formal entspricht dies der bedingten Wahrscheinlichkeit P (R = 1 d, q). Dies lässt sich auch folgendermaßen interpretieren. Angenommen, man beobachtet eine bestimmte Anfrage q und ein bestimmtes Dokument d, wie groß ist die Wahrscheinlichkeit, dass d zu q relevant ist. Kann man diese Wahrscheinlichkeit berechnen, so ist anschaulich 1 Manchmal auch Binary Independence Retrieval (BIR). 115

124 7 Probabilistisches Information Retrieval klar, was man im probabilistischen IR zu tun hat. Bei einer Anfrage durchläuft man alle Dokumente, berechnet jeweils deren Wahrscheinlichkeit relevant zu sein und sortiert die Dokumente in der Ergebnisliste nach absteigender Relevanzwahrscheinlichkeit 2. Wie berechnet man diese bedingte Wahrscheinlichkeit? Nun, zunächst einmal wird nicht die Wahrscheinlichkeit über Dokumenten und Anfragen berechnet, sondern es ist fast schon selbstverständlich über einer Darstellung dieser Dokumente und Anfragen. Im BIM wird dabei (wie beim boolschen Retrieval) nur das Auftreten oder Fehlen von Termen modelliert. Das heißt, wir stellen Dokumente und Anfragen als Vektoren über {0, 1} dar, wobei die Einträge in den Vektoren wieder jeweils eindeutig einem festen Term zugeordnet sind. Um klar zu machen, dass wir hier mit diesen Vektordarstellungen arbeiten, bezeichnen wir die Dokument- und Anfragevektoren mit d, bzw. mit q. Somit wollen wir also eigentlich P (R = 1 d, q) bestimmen. Zurück zu dieser zu berechnenden bedingten Wahrscheinlichkeit. Aus der Stochastik wissen wir, dass gilt: P (A, B) = P (A B) = P (A B) P (B) = P (B A) P (A) Damit lässt sich die oben angegebene bedingte Wahrscheinlichkeit umformulieren: P (R = 1 d, q) = P (R = 1, d, q) P ( d, q) = P ( d R = 1, q) P (R = 1, q) P ( d q) P ( q) = P ( d R = 1, q) P (R = 1 q) P ( q) P ( d q) P ( q) = P ( d R = 1, q) P (R = 1 q) P ( d q) Durch diese Umformung (die letztendlich dem Satz von Bayes entspricht) haben wir es nun mit völlig anderen Wahrscheinlichkeiten zu tun. Betrachten wir diese im einzelnen. Angenommen zu einer Anfrage q (mit entsprechendem Vektor q) wurde ein relevantes Dokument gefunden, dann steckt in P ( d R = 1, q) die bedingte Wahrscheinlichkeit, dass das Dokument durch d dargestellt wird. Die bedingte Wahrscheinlichkeit P (R = 1 q) gibt an, wie wahrscheinlich es ist, zu einer Anfrage q ein relevantes Dokument zu finden (bzw. dass Relevanz eintritt), und P ( d q) ist die Wahrscheinlichkeit, gegeben die Anfrage q, dass ein Dokument durch den Vektor d dargestellt wird. 2 Die Relevanz ist zwar binär, die Relevanzwahrscheinlichkeit kann jedoch jeden Wert zwischen 0 und 1 annehmen. 116

125 7.1 Das Binary Independence Modell (BIM) Auf genau die gleiche Art und Weise kann man auch P (R = 0 d, q) umformen, also die Wahrscheinlichkeit, dass zu einem gegebenem Dokument und gegebener Anfrage nicht die Relevanz eintritt. In diesem Fall erhält man dann auf die gleiche Art und Weise: P (R = 0 d, q) = P ( d R = 0, q) P (R = 0 q) P ( d q) Da ein Dokument entweder relevant oder irrelevant ist, ist diese Wahrscheinlichkeit eigentlich nicht weiter interessant, lässt sie sich doch aus P (R = 0 d, q) = 1 P (R = 1 d, q) berechnen. Letztendlich wollen wir schließlich nur wissen, wie wahrscheinlich es ist, dass ein Dokument relevant ist. Von Vorteil ist diese Wahrscheinlichkeit aber, wenn man die Chance (odds) von Relevanz zu Irrelevanz betrachtet. Die Chance ist die Wahrscheinlichkeit, dass eine Ereignis eintritt geteilt durch die Wahrscheinlichkeit, dass dieses Ereignis nicht eintritt. Formal heißt das für ein Ereignis A mit Gegenereignis A: O(A) = P (A) P (A) Insbesondere gilt für die Chance, dass wenn P (A 1 ) > P (A 2 ), dann ist auch O(A 1 ) > O(A 2 ). Für ein Ranking heißt das letztendlich, dass es egal ist, ob wir die Dokumente nach deren Wahrscheinlichkeit für Relevanz oder der Chance für Relevanz sortieren. Rechnerisch fallen bei der Chance aber einige Terme heraus, um die wir uns dann nicht mehr kümmern müssen: O(R = 1 d, q) = P (R = 1 d, q) P (R = 0 d, q) = P ( d R=1, q) P (R=1 q) P ( d q) P ( d R=0, q) P (R=0 q) P ( d q) = P ( d R = 1, q) P (R = 1 q) P ( d R = 0, q) P (R = 0 q) Betrachten wir nach dieser Umformung zunächst den hinteren Teil der Gleichung. Hier stehen die Wahrscheinlichkeiten, dass zu einer gegebenen Anfrage q Relevanz oder Irrelevanz eintreten. Durch die Division entspricht dies letztendlich der Chance für Relevanz: P (R = 1 q) P (R = 0 q) = O(R = 1 q) Dieser Teil der Gleichung ist von einem konkreten Dokument unabhängig. Damit entspricht er (bei Festhalten der Anfrage) einer Konstanten und kann für das Ranking ignoriert werden. Bleiben die Wahrscheinlichkeiten für Dokumentrepräsentationen, gegeben eine Anfrage und Relevanz, bzw. Irrelevanz. Hier schlägt nun die Annahme zu, dass die in den Dokumenten beobachteten Terme paarweise voneinander unabhängig sind, so dass die Wahrscheinlichkeit alle Terme eines Dokumentes zu beobachten gleich dem Produkt der Wahrscheinlichkeiten entspricht, jeden Term einzeln zu beobachten. Gehen wir davon aus, dass das Dokument d die Terme t i1, t i2 bis t ik enthält, dann gelangen wir zu: 117

126 7 Probabilistisches Information Retrieval P ( d R = 1, q) = P (t i1, t i2,..., t ik R = 1, q) = P (t i1 R = 1, q) P (t i2 R = 1, q)... P (t ik R = 1, q) Erweitert man diese Darstellung dahingehend, dass die t ij selbst als Zufallsvariablen aufgefasst werden, die wiederum die Werte 1 (Term in Dokument enthalten) und 0 (Term nicht enthalten) annehmen können, dann kann man dies sogar auf das gesamte Vokabular ausdehnen. Dazu beschreiben wir mit T (d) die Menge der Indizes zu den Termen, die im Dokument d auftreten: P ( d R = 1, q) = i T (d) P (t i = 1 R = 1, q) i/ T (d) P (t i = 0 R = 1, q) Die Aufspaltung in zwei Produkte bildet die Mengen der Terme ab, die im Dokument auftreten und diese, die nicht auftreten. Führen wir alle diese Umformung in die obige Gleichung ein, so gelangen wir zu: O(R = 1 d, q) = i T (d) P (t i = 1 R = 1, q) i/ T (d) P (t i = 0 R = 1, q) i T (d) P (t i = 1 R = 0, q) i/ T O(R = 1 q) (d) P (t i = 0 R = 0, q) Für einen konkreten Term t i gibt es unter den Vorgaben der Relevanz und einer Anfrage nur die Möglichkeit, dass er in einem Dokument auftritt oder nicht. Daher gilt für die zugehörigen Wahrscheinlichkeiten: P (t i = 0 R = 1, q) = 1 P (t i = 1 R = 1, q) Gleiches lässt sich für Irrelevanz sagen (R=0). In Anlehnung an [MRS08] kürzen wir nun die Wahrscheinlichkeiten für einzelne Terme folgendermaßen ab: Dadurch folgt auch, dass: P (t i = 1 R = 1, q) = p ti P (t i = 1 R = 0, q) = u ti P (t i = 0 R = 1, q) = 1 p ti P (t i = 0 R = 0, q) = 1 u ti Tragen wir diese simple Umbenennung in die obige Formel ein, so wird diese deutlich übersichtlicher: O(R = 1 d, q) = i T (d) p ti u ti i/ T (d) 1 p ti 1 u ti O(R = 1 q) 118

127 7.1 Das Binary Independence Modell (BIM) Die nächste Annahme betrifft die Anfrageterme. Gehen wir nämlich davon aus, dass jene Terme, die nicht in der Anfrage vorkommen, die gleiche Wahrscheinlichkeit haben in relevanten wie in irrelevanten Dokumenten aufzutreten, dann kann man diese Wahrscheinlichkeiten ebenfalls ignorieren. Denn, da für solche Terme p t = u t gilt, haben die entsprechenden Faktoren im Produkt einen Wert von 1 und tragen zum Ergebnis nichts bei. Damit kann man die Berechnung auf die Mengen T (q) der Indizes der Terme in der Anfrage einschränken, bzw. nach deren Auftreten im Dokument unterscheiden: O(R = 1 d, q) = i T (q) T (d) p ti u ti i T (q)\t (d) 1 p ti 1 u ti O(R = 1 q) Das zweite Produkt spalten wir nun geschickt auf, indem wir es zunächst um alle Terme in der Anfrage erweitern und dann mit dem Kehrbruch der wieder zu entfernenden Faktoren multiplizieren: i T (q)\t (d) 1 p ti 1 u ti = i T (q) 1 p ti 1 u ti i T (q) T (d) 1 u ti 1 p ti Der hintere Teil hierbei lässt sich dann nämlich in das erste Produkt aus der vorherigen Gleichung aufnehmen, da über die gleichen Terme iteriert wird. Somit ergibt sich dann: O(R = 1 d, q) = i T (q) T (d) p ti (1 u ti ) u ti (1 p ti ) i T (q) 1 p ti 1 u ti O(R = 1 q) Das Produkt über die Terme aus der Anfrage ist nun wieder für alle Dokumente gleich, stellt also ebenso wie O(R = 1 q) eine Konstante dar. In unserer Retrievalfunktion ρ mit der wir letztendlich das Ranking berechnen wollen spielen sie also für die Reihung der Dokumente keine Rolle. Für die Retrievalfunktion wird der Wert weiterhin logarithmiert. Durch die Monotonie des Logarithmus hat dieser ebenfalls keinen Einfluss auf die Reihenfolge, allerdings lässt sich dann der Gesamtausdruck zu einer Summe umformen. Damit entgeht man dem numerischen Problem viele sehr kleine Zahlen multiplizieren zu müssen und dadurch an die Grenzen der Genauigkeit und Darstellungsmöglichkeiten von Fließkommazahlen zu stoßen. Als Retrievalfunktion berechnen wir also letztendlich: ρ(d, q) = log i T (q) T (d) p ti (1 u ti ) = u ti (1 p ti ) i T (q) T (d) log ( ) pti (1 u ti ) u ti (1 p ti ) Es fällt auf, dass wir für ein bestimmtes Dokument letztendlich wieder über Werte summieren, die an Terme geknüpft sind, welche sowohl in der Anfrage als auch in den Dokumenten vorkommen müssen. Dadurch kann man die Summanden als Gewichte w(t, d) für die Terme auffassen, die bei einer Anfrage über den Suchtermen summiert werden: w(t, d) = log ( ) ( ) pt (1 u t ) pt = log + log u t (1 p t ) 1 p t ( ) 1 ut u t 119

128 7 Probabilistisches Information Retrieval Die letzte Umformung zeigt außerdem, dass sich dieses Gewicht quasi in zwei Teile für das Auftretens des Terms in relevanten und irrelevanten Dokumenten aufteilen lässt. Nach all diesen Umformungen stellt sich die Frage wie man an die Wahrscheinlichkeiten p t und u t gelangt. In der Theorie kann man Schätzer dafür angeben, wenn man nämlich davon ausgeht, dass die Menge der zur Anfrage q relevanten Dokumente bekannt ist und die Mächtigkeit S hat 3. Bezeichnen wir weiterhin mit s i die Mächtigkeit der Menge der relevanten Dokumente, die den Term t i enthalten, so kann man die Wahrscheinlichkeit, dass Term t i in einem relevanten Dokument auftritt abschätzen durch: ˆp ti = s i S Die Zahl der Dokumente, die t i enthalten aber nicht relevant sind, erhält man, indem man von der Dokumentfrequenz zu t i die Anzahl der relevanten Dokumente mit t i abzieht. Genauso ergibt sich aus der Anzahl aller Dokumente N und der Anzahl relevanter Dokumente S die Zahl der irrelevanten Dokumente. Und mit diesen beiden Werten schätzt man nun die Wahrscheinlichkeit, dass t i in einem irrelevanten Dokument auftaucht: û ti = df(t i) s i N S Die Schätzer für 1 p t und 1 u t lassen sich hierbei noch etwas direkter formulieren: 1 ˆp ti = 1 s i S = S s i S 1 û ti = 1 df(t i) s i N S = (N S) (df(t i) s i ) N S Setzt man dies in die Retrievalfunktion ein, so erhält man: ρ(d, q) = i T (q) T (d) log s i N S df(t i)+s i S N S df(t i ) s i S s i N S S = i T (q) T (d) log = N S df(t i) + s i N S ( ) si (N S df(t i ) + s i ) (df(t i ) s i ) (S s i ) Der Ausdruck, der für jeden einzelnen Term addiert wird, hat dabei allerdings ein theoretisches Problem. Sobald ein Term in allen relevanten Dokumenten auftritt, nimmt der Teil (S s i ) einen Wert von 0 an, gleiches gilt wenn der Term nur in relevanten Dokumenten auftritt (dann wird df(t i ) s i = 0). In diesen beiden Fällen wird der Nenner des Bruches Null. Ebenso problematisch ist es, wenn ein Term in keinem relevanten Dokument auftritt. Dann ist s i = 0 und somit würden wir über einem Gesamtwert von 0 logarithmieren. Um die Berechenbarkeit in diesen Sonderfällen beizubehalten, gibt es den Standardansatz in den Teilausdrücken jeweils einen konstanten Wert (typischerweise 0,5) zu addieren, so dass diese nicht 0 werden können. Dann wäre der Gesamtausdruck: 3 Bisher hatten wir die Anzahl der relevanten Dokumente meist mit R bezeichnet. Diese Bezeichnung ist aber an dieser Stelle schon mit der Zufallsvariablen für Relevanz belegt. 120

129 7.2 Wahrscheinlichkeitsschätzungen ρ(d, q) = i T (q) T (d) log ( ) (si + 0, 5) (N S df(t i ) + s i + 0, 5) (df(t i ) s i + 0, 5) (S s i + 0, 5) Dieses Addieren eines konstanten Wertes wird als Smoothing bezeichnet und kommt beim Schätzen von Wahrscheinlichkeiten aus beobachteten Werten häufig zum Einsatz. Die Idee des Smoothing ist, das Auftreten jedes theoretisch möglichen Wertes um eine Konstante zu erhöhen, so dass auch Schätzer für Ereignisse angegeben werden können, die in der Beobachtung nicht aufgetreten sind. In unserem Fall entsprechen die vier Ausdrücke im Bruch jeweils einer möglichen Beobachtung. Der Teil (s i ) steht für die Beobachtung Relevanz aufgetreten und Term enthalten, (df(t i ) s i ) steht für nicht relevant und Term enthalten, (S s i ) steht für relevant und Term nicht enthalten und N S df(t i )+s i steht für die Anzahl der Beobachtungen, in denen der Term nicht enthalten war und in denen keine Relevanz vorlag. Daher wird jeder der vier Ausdrücke um einen Wert von 0,5 erhöht. Trotz allem bleiben dies theoretische Überlegungen, denn die Mächtigkeit S der Menge der relevanten Dokumente ist in der Praxis nicht bekannt. Es gibt jedoch Ansätze, wie die Schätzer anders berechnet werden können. Wir werden jetzt auf einige Möglichkeiten und insbesondere die erfolgreiche Okapi / BM25 Gewichtung eingehen, die auf einem probabilistischem Modell beruht. Danach wird noch das probabilistische Relevance Feedback beleuchtet, das ebenfalls dem Schätzen von Wahrscheinlichkeiten dient. 7.2 Wahrscheinlichkeitsschätzungen Schauen wir uns in der obigen Zerlegung der Gewichte w(t, d) zunächst nur den Teil an, der auf der Wahrscheinlichkeit u t beruht, also auf der Wahrscheinlichkeit, dass ein Term in einem irrelevanten Dokument auftritt: ( ) 1 ut log Geht man hier davon aus, dass die relevanten Dokumente zur Anfrage q nur einen sehr kleinen Anteil am Gesamtkorpus ausmachen, so kann man im Umkehrschluss annehmen, dass ein Großteil der Dokumente im Korpus irrelevant sind. Somit könnte man die Wahrscheinlichkeit eines Terms in einem irrelevanten Dokument aufzutreten durch dessen Wahrscheinlichkeit überhaupt in einem Dokument aufzutreten approximieren. Wenn man das wieder über einen Schätzer ausdrückt, so gelangt man zu: u t û t = df(t) N Mit N ist wie immer die Anzahl aller Dokumente im Korpus bezeichnet. Setzen wir diesen Schätzer nun in den entsprechenden Teil der Gewichtung ein, so erhält man: 121

130 7 Probabilistisches Information Retrieval ( ) ( ) 1 ut N df(t) log = log df(t) u t Geht man weiterhin davon aus, dass ein Term meistens in nur sehr wenigen Dokumenten auftritt, dann ist df(t) im Verhältnis zu N sehr klein und beeinflusst den Zähler des Bruches kaum. Somit ergibt sich in etwa: ( ) N df(t) log log df(t) ( ) N df(t) Diese Annäherung liefert somit über das probabilistische Modell eine theoretische Motivation für die IDF-Gewichtung von Termen. Für die Wahrscheinlichkeit p t wird es schwieriger eine Annäherung herzuleiten. Man muss irgendeine Annahme über die Verteilung der Terme in relevanten Dokumenten machen. Eine solche initiale Annahme wird auch als Prior bezeichnet. Es gibt Ansätze p t konstant mit 0,5 für alle Terme anzunehmen, bzw. es ebenfalls aus der relativen Häufigkeit des Gesamtkorpus zu schätzen. Diese Annahmen können dazu genutzt werden, um eine erste Schätzung für p t zu machen, die dann durch Relevance Feedback verbessert wird (siehe Abschnitt 7.5). Termgewichtung nach probabilistischem Modell Betrachten wir ein einfaches Beispiel. Wir greifen dazu auf Dokumente aus Kapitel 5 über dem Vokabular V = {Kaffee, Tee, Tasse, Kanne, Wasser} zurück, die damals folgendermaßen in der Bag of Words Form angegeben waren: 1. Kaffee, Kaffee 2. Tee, Tee, Tasse, Kanne, Kanne 3. Kaffee, Tasse, Tasse, Kanne 4. Kaffee, Kaffee, Kaffee, Tee, Tasse, Tasse, Tasse, Kanne, Kanne, Kanne 5. Kanne, Kanne, Wasser, Wasser Im probabilistischen Ansatz interessiert uns lediglich das Auftauchen oder die Abwesenheit von Termen in den Dokumenten, weshalb wir hier Mehrfachnennungen ignorieren können. Wir wollen nun die Terme in den Dokumenten nach obiger Formel gewichten, also mit: w(t, d) = log ) ( ) 1 ut + log 1 p t u t ( pt Wie eben vorgeschlagen machen wir hier die extrem einfache Annahme, dass p t = 0, 5 ist. Das führt nämlich dazu, dass der erste der beiden Logarithmen zu 0 wird (da 122

131 7.3 Okapi / BM25 log ( ) 0,5 1 0,5 = log(1) = 0 ist). Als Abschätzung für den zweiten Teil ziehen wir die IDF-Werte heran, die wir bereits für das Vektorraummodell berechnet haben. Sie lagen bei: w IDF (Kaffee) = 0, 22 w IDF (Tee) = 0, 4 w IDF (Tasse) = 0, 22 w IDF (Kanne) = 0, 1 w IDF (Wasser) = 0, 7 Wir stellen nun wieder die Anfrage Tasse Kanne. Das bedeutet, dass wir nur diese beiden Terme zu berücksichtigen brauchen und dementsprechend auch nur jene Dokumente betrachten müssen, welche die Suchterme enthalten. Das sind die Dokumente d 2, d 3, d 4 und d 5. Für die Retrievalfunktion muss nun nur noch über die Gewichtung der vorhandenen Terme summiert werden. Das führt zu folgenden Ergebnissen: ρ(d 2, q) = 0, , 1 = 0, 32 ρ(d 3, q) = 0, , 1 = 0, 32 ρ(d 4, q) = 0, , 1 = 0, 32 ρ(d 5, q) = 0, 1 Man würde also insgesamt die Dokumente d 2 bis d 4 gleich ranken, d 5 nachgelagert aufführen und d 1 aus der Ergebnismenge heraushalten. Im Vergleich zum Vektorraummodell wirkt dies ein wenig wie ein Rückschritt. Es wird weniger zwischen der Wichtigkeit der einzelnen Dokumente differenziert. Allerdings sind einerseits deutlich weniger Informationen in die Berechnung eingeflossen (es wurde nur das Auftreten von Termen, nicht deren Häufigkeit betrachtet; die Termfrequenz wird also komplett ignoriert), andererseits wurden sehr einfache Annahmen zu u t und p t gemacht. 7.3 Okapi / BM25 Ein in der Praxis sehr erfolgreiches Schema für die Termgewichtung wurde für das Okapi- System der London City University entwickelt. Im Rahmen dieses Systems wurden verschiedene Gewichtungsmodelle durchprobiert und mit dem Präfix BM durchnummeriert. Das Modell BM25 hat sich als sehr erfolgreich erwiesen und soll hier kurz vorgestellt werden 4. 4 Die theoretische Motivation für diese Gewichtung geht über das BIM hinaus. Hier sollen aber nur die Ergebnisse angesprochen werden. 123

132 7 Probabilistisches Information Retrieval Dazu wird zunächst einiges an Notation eingeführt. Wie bisher bezeichnen wir mit df(t) die Dokumentfrequenz eines Terms t im gesamten Korpus und mit tf d (t) dessen Termfrequenz im Dokument d. Die Anzahl aller Dokumente sei mit N gegeben. Neu kommt die Länge (Anzahl der Wörter) eines Dokumentes l(d) hinzu, sowie die durchschnittliche Länge l avg über allen Dokumenten im Korpus. In der BM25 Gewichtung tauchen außerdem noch einige Parameter auf: hier zunächst nur k 1 und b, wobei k 1 nicht negativ ist und b Werte zwischen 0 und 1 annehmen darf. Aus diesen Zutaten wird folgende Retrievalfunktion zusammengebaut: ρ BM25 (d, q) = i T (q) T (d) log ( ) N df(t i ) (k 1 + 1) tf d (t i ) k 1 ( (1 b) + b ( )) l(d) l avg + tfd (t i ) Gehen wir die einzelnen Teile der Formel zur Gewichtung der Terme in den Dokumenten durch und betrachten jeweils, was dahinter steckt. Am Summenzeichen bemerken wir zunächst, dass auch hier nur über Termen summiert wird, die sowohl in den Dokumenten als auch in der Anfrage auftauchen. Der erste Teil der Gewichte entspricht der globalen IDF Gewichtung wie wir sie bereits im Vektorraummodell kennen gelernt haben. Danach folgt die Verrechnung der Termfrequenzen und der Dokumentlängen. Der Parameter k 1 beeinflusst, wie stark der Einfluss der Termfrequenzen auf die Gewichtung ist. Bei einem Wert von k 1 = 0 reduziert sich der Bruch zu 1 tf d (t i) 0+tf d (t i. Da wir nur über Dokumenten summieren ) in denen die Terme auch enthalten sind ist dieser Ausdruck wohldefiniert und ergibt sich zu 1. Das heißt also, dass die Termfrequenzen bei k 1 = 0 keinen Einfluss auf die Gewichtung haben. Wählt man k 1 größer, so wirkt sich der tf d (t i ) Teil in der Summe unter dem Bruchstrich immer weniger aus, so dass die Termfrequenz einen immer stärkeren Einfluss auf die Gewichtung hat. In Experimenten hat sich gezeigt, dass Werte für k 1 zwischen 1,2 und 2 zu guten Retrievalergebnissen führen. Der Parameter b beeinflusst eine Normalisierung der Gewichte bezüglich der Dokumentlänge. Bei einem Wert von b = 0 findet keine solche Normalisierung statt. Für b = 1 hingegen werden die Termfrequenzen im Verhältnis der Dokumentlänge zur mittleren Dokumentlänge normalisiert. Werte dazwischen drücken eine gedämpfte Normalisierung aus und experimentell wurden mit einem Wert von b im Bereich von 0,75 gute Ergebnisse erzielt. BM25 Gewichtung Wir führen das gleiche Beispiel wie oben fort, also die fünf Dokumente über den Termen Kaffee, Tee, Tasse, Kanne und Wasser und die Anfrage Tasse Kanne. Die Parameter setzen wir wie empfohlen auf k 1 = 1, 5 und b = 0, 75. Zunächst müssen wir für die Längennormalisierung noch die Dokumentlängen angeben. Dazu zählen wir einfach die Wörter und erhalten folgende Dokumentlängen: 124

133 7.3 Okapi / BM25 l(d 1 ) = 2 l(d 2 ) = 5 l(d 3 ) = 4 l(d 4 ) = 10 l(d 5 ) = 4 Daraus ergibt sich auch die mittlere Dokumentlänge l avg, die hier bei genau 5 Wörtern pro Dokument liegt. Am Beispiel von Dokument d 3 berechnen wir nun ausführlich den Wert der Gewichte und über deren Summe somit auch den Wert der Retrievalfunktion. Die dazu nötigen IDF-Werte können wir von oben übernehmen. Damit erhalten wir für den Term Tasse folgendes Gewicht: ( 5 w BM25 (Tasse, d 3 ) = log 3) = 0, , 275 (1, 5 + 1) 2 1, 5 ((1 0, 75) + 0, 75 ( 4 5 = 0, 34 )) + 2 Wenn wir das gleiche Spiel für den Term Kanne in d 3 treiben gelangen wir zu: w BM25 (Kanne, d 3 ) = 0, 1 2, 5 2, 275 Die Retrievalfunktion liefert daher für d 3 den Wert: = 0, 11 ρ BM25 (d 3, q) = 0, , 11 = 0, 45 Analog berechnet man die Werte für die anderen Dokumente und es ergibt sich folgendes Gesamtbild: ρ BM25 (d 1, q) = 0 ρ BM25 (d 2, q) = 0, 36 ρ BM25 (d 3, q) = 0, 45 ρ BM25 (d 4, q) = 0, 43 ρ BM25 (d 5, q) = 0, 15 Mit diesen Werten erhält man also genau die gleiche Reihenfolge in der Ergebnisliste wie wir sie im Vektorraum beobachtet haben: d 3, d 4, d 2 und d 5 ; d 1 ist nicht enthalten. Dass dieses Ergebnis jedoch auch von der Wahl der Parameter abhängt, kann man 125

134 7 Probabilistisches Information Retrieval besonders schnell sehen wenn man am Wert von b dreht. Bereits bei b = 0, 5 fällt die Längennormalisierung geringer aus, so dass d 4 vor d 3 in der Ergebnisliste steht. Es gibt eine zusätzliche Erweiterung der BM25 Gewichtung, die aber nur greift, wenn sehr lange Abfragen auftreten in denen Terme mehrfach genannt werden 5. In diesem Fall wird auch hier der Einfluss der Termfrequenz in der Anfrage berücksichtigt und durch einen weiteren Parameter k 3 geregelt. Für k 3 gelten dabei letztendlich die gleichen Aussagen wie für k 1 : ρ BM25 (d, q) = i T (q) T (d) log ( ) N df(t i ) 7.4 Praktische Umsetzung (k 1 + 1) tf d (t i ) k 1 ( (1 b) + b ( l(d) )) l avg + tfd (t i ) (k 3 + 1) tf q (t i ) k 3 + tf q (t i ) Die praktische Umsetzung eines probabilistischen IR System sieht nicht (viel) anders aus als im Vektorraummodell. Die Gewichte der Terme in den Dokumenten berechnen sich essentiell aus den gleichen Einflussgrößen, nämlich Dokument- und Termfrequenz. Verwendet man die BM25 Gewichtung, so kommt lediglich die Dokumentlänge in Wörtern als neuer Wert hinzu. Da außerdem wieder nur Suchterme und Dokumente die diese Terme enthalten berücksichtigt werden, kann auch hier wieder auf den invertierten Index als Datenstruktur zurückgegriffen werden. Schließlich erlaubt dieser den effizienten Zugriff auf genau diese Daten. Die Berechnung der Retrievalfunktion kann ebenfalls wie im Vektorraummodell über Akkumulatoren erfolgen und nach dem term-at-a-time oder document-at-a-time Ansatz ablaufen. Ein Vorteil bei der BM25 Gewichtung mag vielleicht sogar sein, dass die Längennormalisierung nicht über den Termgewichten in den Dokumenten stattfindet (wie beim Vektorraummodell unter Einsatz des Cosinusmaßes), sondern über Dokumentlängen bezüglich der Anzahl der enthaltenen Wörter. Das führt nämlich dazu, dass bei der Aufnahme eines neuen Dokumentes in den Korpus sich mit der IDF-Gewichtung nicht alle Dokumentlängen ändern. Lediglich die mittlere Dokumentlänge im Korpus muss angepasst werden, was aber kein großes Problem darstellt. 7.5 Probabilistisches Relevance Feedback In Kapitel 5 hatten wir den Rocchio Ansatz für Relevance Feedback im Vektorraum Modell gesehen. Dabei wurde der Anfragevektor linear mit positiv und negativ bewerteten Doku- 5 Das wäre beispielsweise der Fall, wenn man Query by example Ansätze verfolgt, oder komplette Textabschnitte als Suchanfrage verwendet. 126

135 7.5 Probabilistisches Relevance Feedback mentvektoren verrechnet um einen neuen Anfragevektor zu erzeugen. Wir erinnern uns an die Faustregel, dass dabei positiv beurteilte Vektoren stärker gewichtet werden sollten als negativ beurteilte Vektoren. Betrachtet man nun aber einen Term, der sowohl in den positiv als auch in den negativ bewerteten Dokumenten auftritt, so wird dieser relativ stark in den neuen Anfragevektor aufgenommen. Das liegt daran, dass der positive Effekt nicht durch die schwächer gewichteten negativen Beispiele ausgeglichen werden kann. Da ein solcher Term allerdings sowohl in den positiven als auch in den negativen Rückmeldungen auftritt, liegt die Vermutung nahe, dass er bezüglich der Informationssuche irrelevant ist. Eine solche Verteilung eines Termes auf relevante und irrelevante Dokumente lässt sich im probabilistischen Modell besser berücksichtigen. Mit den Angaben der Nutzer zu relevanten und irrelevanten Dokumenten sowie das Wissen über die darin enthaltenen Terme können Schätzer für die Wahrscheinlichkeiten p t und u t bestimmt werden. Vereinfacht gesagt, wird die relative Häufigkeit von Termen in den im Feedback als relevant oder irrelevant markierten Dokumenten als Schätzer herangezogen. Gehen wir wieder davon aus, dass dem Nutzer auf seine Suchanfrage hin eine Ergebnisliste mit Dokumenten präsentiert wurde. In dieser Liste hat der Nutzer einige Dokumente als relevant gekennzeichnet und einige als irrelevant. Die Menge der relevanten Dokumente bezeichnen wir wieder mit D p, die Menge der irrelevanten Dokumente mit D n. Daraus wollen wir nun die Wahrscheinlichkeiten schätzen, dass bei gegebener Anfrage und eingetretener Relevanz der Term t in einem Dokument auftritt (also p t ). Als Schätzer verwenden wir die relative Häufigkeit von t in D p im Verhältnis zu allen im Feedback bewerteten Dokumenten: ˆp t = df D p(t) D p Mit df D p(t i ) bezeichnen wir dabei die Dokumentfrequenz von t in der Menge D p, d.h. wir zählen in wie vielen relevanten Dokumenten der Term t aufgetreten ist. Aufgrund der i.d.r. recht kleinen Menge an Dokumenten zu denen es überhaupt Feedback gibt, kann es auch hier schnell passieren, dass einige Terme gar nicht beobachtet werden. Daher wird auch hier Smoothing angewandt, das bedeutet, dass sowohl die Menge der relevanten Dokumente mit Term t als auch die Menge der relevanten Dokumente ohne Term t jeweils um ein virtuelles halbes Dokument aufgestockt wird. Somit gelangt man zu einem Schätzer von: ˆp t = df Dp(t) + 0, 5 D p + 1 Im Nenner wird 1 addiert, da sich die beiden halben, virtuellen, relevanten Dokumente mit und ohne Term t zu einem ganzen Dokument in der Menge D p addieren. Auf die gleiche Art und Weise lässt sich über den negativ bewerteten Dokumenten in D n ein Schätzer für u t angeben: û t = df Dn(t) + 0, 5 D n

136 7 Probabilistisches Information Retrieval Dieser Schätzer für die Wahrscheinlichkeit eines Terms in den zu q irrelevanten Dokumenten aufzutreten ist jedoch etwas kritischer als der für p t. Schließlich werden all die von vorne herein als unwichtig angenommenen Dokumente nicht berücksichtigt, die dem Nutzer erst gar nicht in der Ergebnisliste präsentiert wurden. Wendet man Pseudo Relevance Feedback an, fragt den Nutzer also gar nicht nach einer Bewertung sondern nimmt die k besten Treffer in der errechneten Ergebnisliste als positives Feedback an, so kann man alle anderen Dokumente als negatives Feedback verwenden. In diesem Fall werden also auch Dokumente berücksichtigt, die in der Ergebnisliste gar nicht aufgetreten sind. Probabilistisches Relevance Feedback Auch hier greifen wir wieder ein altes Beispiel auf. Wir nehmen wieder die Dokumente zu Paris und Hilton, in denen es einmal um das Hotel in der französischen Hauptstadt gehen soll und einmal um die Person Paris Hilton. Dabei hatten wir folgende Verteilung von Termen in den Dokumenten verwendet: Paris Hilton Hotel Frankreich Eiffelturm blond Erbin Skandal d d d d d d d d d d Auch hier interessiert uns letztendlich wieder nur das Auftreten oder das Fehlen eines Terms in den Dokumenten. Geht man bei einer Anfrage nach Paris Hilton mit dem ganz einfachen Schema zur Gewichtung nach IDF vor, so werden fast alle Dokumente gleich bewertet, da die Suchterme in fast allen Dokumenten auftreten. Lediglich d 4 und d 5 stehen im Ranking leicht zurück, da sie jeweils nur einen der Suchterme enthalten. Gehen wir nun davon aus, dass der Nutzer Relevance Feedback gibt. Und zwar sagt er, dass die Dokumente d 1, d 3 und d 5 relevant sind, während d 7 und d 8 irrelevant sind. Damit lassen sich nun neue, bessere Schätzer für p t und u t angeben. Betrachten wir beispielhaft den Term t 4 Frankreich. Er taucht in zwei von drei als relevant markierten Dokumenten auf. Damit ergibt sich der Schätzer: ˆp t4 = df D p(t 4) + 0, 5 D p + 1 = 2, 5 4 = 0,

137 7.5 Probabilistisches Relevance Feedback In den negativ beurteilten Dokumenten tritt t 4 hingegen gar nicht auf. Dementsprechend fällt die Schätzung für u t in diesem Fall wesentlich geringer aus: û t4 = df D n(t 4) + 0, 5 D n + 1 = 0, 5 3 = 0, 167 Wertet man so alle Terme aus, berechnet die Gewichtung der Terme neu und rankt danach die Dokumente über allen beobachteten Termen, so erhält man die Ergebnisliste (jeweils mit Wert der Retrievalfunktion): 1. d 1 1, d 2 1, d 3 0, d 5 0, d 4 1, d 10 1, d 6 1, d 9 1, d 7 1, d 8 2, 498 Hier ist die Bewertung der Dokumente schon wesentlich differenzierter, insbesondere wenn man bedenkt, dass weiterhin nur das Auftreten von Termen in Dokumenten, nicht aber deren Termfrequenz berücksichtigt wird. Da die Menge der beurteilten Dokumente wie gesagt sehr klein sein kann, könnte das daraus gewonnene Feedback zu starken Verzerrungen der Wahrscheinlichkeiten führen. Insbesondere wenn über mehrere Schritte aus Relevance Feedback und neuer Ergebnisliste hinweg iteriert wird, ist es nicht sinnvoll immer alle bisher gewonnenen Erkenntnisse zu verwerfen. Stattdessen berechnet man die Wahrscheinlichkeiten nicht komplett neu, sondern passt sie nur dahingehend an, dass das aktuelle Feedback mit in die Werte einfließt. Dies kann beispielsweise über einen Parameter κ gesteuert werden, so dass sich die Wahrscheinlichkeit im Iterationsschritt j + 1 so aus dem vorherigen Schritt unter der Berücksichtigung des Feedbacks berechnet: ˆp [j+1] t = df Dp(t) + κ p[j] t D p + κ Auch für die BM25 Gewichtung gibt es eine Form, in der Relevance Feedback einfließen kann. Dabei wird der Teil der IDF-Gewichtung komplett durch die im theoretischen Teil entwickelte Gewichtung für probabilistisches IR ersetzt: 129

138 7 Probabilistisches Information Retrieval ρ BM25 (d, q) = ( (df log D p(t i ) + 1) (df 2 D n(t i) + 1) ) 2 (df(t i T (q) T (d) i ) df D p(t i ) + 1) (N df(t 2 i) D p + df D p(t i ) + 1) 2 (k 1 + 1) tf d (t i ) k 1 ( (1 b) + b ( )) l(d) l avg + tfd (t i ) (k 3 + 1) tf q (t i ) k 3 + tf q (t i ) 7.6 Zusammenfassung Mit dem probabilistischen Modell des IR haben wir ein weiteres theoretisches Modell kennen gelernt. Es beruht auf bedingten Wahrscheinlichkeiten und macht in der hier vorgestellten Form Annahmen zur Unabhängigkeit der Terme und deren Einfluss auf die Relevanz eines Dokuments. Für die praktische Umsetzung ist es nötig die Wahrscheinlichkeiten abzuschätzen, dass ein Term in relevanten oder irrelevanten Dokumenten auftritt. Darüber lässt sich einerseits die Wahl der IDF-Gewichtung theoretisch motivieren. Andererseits fällt es aber schwer nur auf den theoretischen Grundlagen des probabilistischen Modells weitere Aussagen zu diesen Wahrscheinlichkeiten zu machen. Einfache Annahmen, sogenannte Priors, führen auch nur zu einfachen Retrievalergebnissen. Unter Hinzunahme weiterer Einflussgrößen konnte mit der BM25 Gewichtung des Okapi Systems jedoch eine sehr erfolgreich Termgewichtung gewonnen werden, die insbesondere in den TREC Vergleichen sehr gut abgeschnitten hat. Schließlich lassen sich auch über ein Relevance Feedback des Nutzers gute Schätzer für die benötigten Wahrscheinlichkeiten bestimmen. Diese zusätzliche Information über Relevanz und Irrelevanz von einigen Dokumenten passt sehr gut zur Idee des probabilistischen IR Modells und fügt sich nahtlos in die Theorie ein. 130

139 8 Websuchmaschinen Das World Wide Web ist für Nutzer heutzutage eine der wichtigsten Informationsquellen. Durch die Architektur des Webs gibt es jedoch kein zentrales Inhaltsverzeichnis, so dass der Einsatz von Information Retrieval Systemen zur Informationssuche von essentieller Bedeutung ist. Solche Web-IR Systeme sind heutzutage in ihrer typischsten Form als Websuchmaschinen anzutreffen. Das Web stellt enorme Ansprüche an ein Information Retrieval System. Die Anzahl der Dokumente sowie die darin enthaltenen Datenmengen sind extrem groß und wachsen mit rasanter Geschwindigkeit weiter. Die Inhalte selbst ändern sich häufig und liegen in einer Vielzahl von Formaten, Sprachen und Stilen vor. In diesem Kapitel werden wir zunächst das World Wide Web an sich betrachten. Es stellt als denzentrales Hypertextsystem bereits selbst ein Informationssystem dar, und wir wollen die wichtigsten Bauteile ein wenig unter die Lupe nehmen. Danach folgt eine genauere Betrachtung der Web-spezifischen Teile eines Web basierten IR Systems insbesondere des Crawlers. Im nächsten Kapitel werden dann Algorithmen wie PageRank oder HITS angesprochen, die aus der Linkstruktur des Webs statische Qualitätsmaße für IR Systeme ableiten. 8.1 Das World Wide Web Das Web stellt im Prinzip ein riesiges, dezentrales Hypertextsystem dar. Und auch wenn das WWW selbst erst Anfang der 90er Jahre von Tim Berners-Lee entwickelt wurde, so gab es schon lange vorher Hypertextsysteme. Die Idee dazu stammt bereits aus dem Jahre 1945, als Vannevar Bush ein hypothetisches Informationssystem namens Memex [Bus45] beschreibt. Memex sollte eine erweiterbare Sammlung an Dokumenten zur Verfügung stellen, die sich gegenseitig referenzieren konnten. Die Art der Referenzen sollte dabei das direkte Laden und Ansehen der referenzierten Dokumente erlauben. Stellte sich Bush sein Memex noch als elektro-mechanisches System vor, in dem die Dokumente auf Microfilm gespeichert waren, so wurden bereits vor der Entwicklung des WWW computergestützte Hypertextsysteme umgesetzt. Dass der große Erfolg dann aber erst mit Berners-Lees Web kam, wird unter anderem der Einfachheit und Fehlertoleranz des Systems zugeschrieben. Es besteht prinzipiell aus drei Säulen: dem Hypertext Transfer Protocol (HTTP), dem Konzept des Uniform Resource Locator (URL) und der Hypertext Markup Language (HTML) zur Kodierung von Dokumenten. 131

140 8 Websuchmaschinen Da alle drei Komponenten auch für Websuchmaschinen eine wichtige Rolle spielen, werden wir uns zunächst diese Teile des Web etwas näher ansehen, bevor wir zu den Suchmaschinen selbst kommen. Das Protokoll HTTP [FGM + 99] dient der Kommunikation zwischen Client und Server. Der Client ist im Web im klassischen Fall der Webbrowser; der Server ist der Host-Rechner, der die Webdokumente zur Verfügung stellt. Suchmaschinen nehmen hier eine besondere Rolle ein, denn sie stehen je nach Funktionsmodul auf der Client- oder der Serverseite. Wenn sie das Web nach Dokumenten durchsuchen, dann treten sie als Clients auf, wenn sie über ein Webinterface auf Anfragen reagieren, nehmen sie die Serverrolle ein. Die Kommunikation zwischen Client und Server ist in HTTP zustandslos. Das bedeutet, dass der Server wie in Abbildung 8.1 auf eine Anfrage 1 (Request) des Clients mit einer Antwort (Repsonse) reagiert und damit zugleich die Kommunikation beendet. Eine weitere Anfrage gilt als neue, von der vorherigen unabhängige Kommunikationsaktion. Dementsprechend gibt es in HTTP für den Client recht einfache Vorgaben, wie er seine Anfrage stellen kann und für den Server, wie die Antwort auszusehen hat. Abbildung 8.1: Ablauf der Kommunikation zwischen Client und Server über HTTP. Eine HTTP-Nachricht besteht prinzipiell aus einem Kopf-Teil und einem Nachrichtenrumpf, die voneinander durch eine Leerzeile getrennt sind. Im Kopf stehen die Informationen des Protokolls selbst, also beispielsweise eine genauere Angabe über den Anfragetyp eines Clients oder das Ergebnis der Anfrage bei einer Antwort des Servers. Im Nachrichtenrumpf werden die Daten transportiert, sei es in Form eines Webdokumentes vom Server zum Client oder auch in der anderen Richtung vom Client zum Server, beispielsweise die Eingaben in Webformularen. Der Rumpf kann allerdings auch leer sein. Dies ist bei Client- Anfragen häufiger der Fall kann aber auch bei der Antwort des Servers vorkommen, z.b. wenn ein Fehler aufgetreten ist. In den HTTP-Anfragen (Requests) erfolgt in der ersten Zeile zunächst die Beschreibung der Anfrage, der angefragten Ressource und der verwendeten HTTP-Version. Der Anfang einer solche Anfrage kann folgendermaßen aussehen: GET /lehre/ir/index.php HTTP/1.1 1 Achtung: Anfrage ist hier im Sinne der Protokollbasierten Kommunikation zwischen Client und Server gemeint, nicht als Formulierung und Ausdruck eines Informsbedürfnisses an ein IR System. 132

141 8.1 Das World Wide Web Das Schlüsselwort GET zeigt an, dass die danach über einen Pfad angegebene Ressource angefordert wird. Bei einem GET werden keine weiteren Daten im Nachrichtenrumpf übertragen. Mit HTTP/1.1 wird erklärt, dass der Client mit Version 1.1 arbeitet. Auch wenn der Nachrichtenrumpf in diesem Falle leer ist, so kann der Kopf jedoch noch weitere Header-Daten enthalten: GET /lehre/ir/index.php HTTP/1.1 Host: User-Agent: Mozilla/5.0 (X11; U; Linux i686; de; rv: ) Gecko/ Ubuntu/8.10 (intrepid) Firefox/ Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO ,utf-8;q=0.7,*;q=0.7 Man sieht schnell, dass alle weiteren Zeilen nach einem einfachen Muster aufgebaut sind: der Name des Header-Feldes gefolgt von einem Doppelpunkt und den Werten zu diesem Feld. Im hier angegebenen Beispiel sind unter anderem Angaben zum verwendeten Browser zu finden (User-Agent), Angaben zu den vom Client unterstützten Formaten (Accept), Kodierungen (Accept-Charset) und Kompressionen (Accept-Encoding). Die Angabe im Header-Feld Host gibt den Domain Namen an, unter der die Ressource abgelegt ist. Dies kann nötig sein, da der Verbindungsaufbau letztendlich über die IP-Adresse des Servers zustande kommt, dieser jedoch unter gleicher IP mehrere Domains bündeln kann. Ein weiteres Header-Felder für Anfragen ist If-Modified-Since gefolgt von einer Zeitangabe. In diesem Fall werden nur dann Daten vom Server übermittelt, wenn sich an der Ressource seit dem angegebenen Zeitpunkt etwas geändert hat. Das ist insbesondere für Suchmaschinen interessant, um bereits indizierte Ressourcen auf Aktualität hin zu überprüfen. Mit dem Header-Feld If-Unmodified-Since gibt es übrigens auch das passende Gegenstück. Außer dem Befehl GET gibt es noch weitere Anfragetypen. Die bekanntesten und wichtigsten sind POST und HEAD 2. Eine POST-Anfrage überträgt im HTTP-Rumpf der Nachricht Daten an den Server 3, mit HEAD wird nur der Kopf einer HTTP-Meldung angefordert. Letzteres kann dazu dienen, um im HTTP-Kopf bestimmte Einträge auszulesen, ohne gleich eine unter Umständen sehr große Menge an Rumpfdaten übertragen zu müssen. Um dies genauer nachvollziehen zu können schauen wir uns die HTTP-Antworten (Response) näher an. Als Antwort auf die obige Anfrage erhält man folgenden HTTP-Kopf: HTTP/ OK Date: Tue, 09 Jun :23:24 GMT 2 Andere Methoden des HTTP Standards wie PUT und DELETE stehen heutzutage aus Sicherheitsgründen in der Regel nicht zur Verfügung. 3 Auch mit GET lassen sich Daten an den Server übertragen, jedoch nur über Parameterangaben in der URL. 133

142 8 Websuchmaschinen Tabelle 8.1: Wertebereiche der HTTP-Statuscodes Werte Ergebnis Weiteres Vorgehen 100-er Meldungen Informative Nachrichten Anfrage wird weiter bearbeitet 200-er Meldungen Erfolg Anfrage erfolgreich beantwortet 300-er Meldungen Umleitung Rückfrage bei Client, Erfolg noch möglich 400-er Meldungen Client Fehler Fehlerhafte Anfrage, Misserfolg 500-er Meldungen Server Fehler Fehler auf Serverseite, Misserfolg Server: Apache/ (Unix) PHP/5.0.5 X-Powered-By: PHP/5.0.5 Keep-Alive: timeout=15, max=97 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html; charset=iso Die erste Zeile gibt zunächst Aufschluss über die Art der Antwort. Und zwar in dem Sinne, dass sie mitteilt, wie der Server auf die Anfrage reagiert. Zuerst wird auch hier die verwendete Version des Protokolls angegeben. Danach folgt Status Code und Status Meldung. Der Code gibt Aufschluss über Erfolg und Misserfolg der Anfrage, die Meldung formuliert das Ergebnis ergänzend in Worten. Die Status Codes sind in Großbereiche aufgeteilt, die wieder mehrere Detailangaben machen können. Tabelle 8.1 nennt und erklärt knapp die Wertebereiche für die Statusmeldungen. Einige der Meldungen wollen wir uns aber dennoch näher anschauen, da sie insbesondere für Suchmaschinen von Interesse sind: Status 200 (OK): Dokument erfolgreich abgerufen. Status 302 (Moved Permanently), 303 (See other) und 307 (Temporary Redirect): Ressource ist unter anderer URL zu finden. Die genaue URL wird über das Header- Feld Location mitgeteilt. Status 304 (Not Modified): Die angefragte Ressource wurde nicht verändert (Bei Anfrage mit Zeitangabe). Status 400 (Bad Request): Syntaktisch fehlerhafte Anfrage. Status 401 (Unauthorized): Zugriff erfordert eine Authentifizierung (Nutzername und Passwort). Status 403 (Fordbidden): Zugriff auf diese Ressource ist verboten (z.b. keine Zugriffsrechte). Status 404 (Not Found): An der angeforderten URL liegt keine Ressource vor. 134

143 8.1 Das World Wide Web Diese Meldungen sind deshalb von Interesse, weil eine Suchmaschine ganz gezielt darauf reagieren kann. Bei permanent verlegten Ressourcen kann eine gespeicherte URL durch die neue ersetzt werden, bei Ressourcen ohne Zugriff oder nicht gefundenen Daten kann eine URL ersatzlos gestrichen werden. Für Server-Antworten gibt es ebenfalls einige Header-Felder, die für Suchmaschinen interessant sein können. Dazu gehören Angaben wie Age (Alter des Dokuments in Sekunden), Content-Encoding (verwendetes Kompressionsverfahren), Content-Length (Länge des Inhaltes in Byte) oder Content-Type (MIME-Type des Inhaltes, verwendeter Zeichensatz). Nun haben wir im Zusammenhang mit HTTP schon mehrfach von Ressourcen und deren Speicherort gesprochen. Um eine Ressource eindeutig zu identifizieren werden im Web URLs genutzt. URLs sind immer nach dem gleichen Schema aufgebaut: <Protokoll>://<Host>/<Pfad>?<Parameter>#<Fragment> Das typische Protokoll im Web ist wie gesagt HTTP, so dass der Großteil der Web-URLs mit beginnt. In HTML Dokumenten trifft man jedoch auch Verweise auf Ressourcen an, auf die über anderen Protokolle zugegriffen werden muss. Eines der bekanntesten Beispiel dürfte das File Transfer Protocol (FTP) sein. Der Host wird über eine IP-Adresse oder einen Domainnamen angegeben, eventuell erweitert um einen IP-Port oder Nutzerdaten zur Authentifizierung. Der Pfad entspricht wohl meist einem Dateipfad auf dem Server. Die Parameter nach dem Fragezeichen dienen zur Übertragung von Informationen an den Server (in beschränktem Umfang). Der Fragmentteil schließlich kann auf einen bestimmten Teil oder Eintrag in der Ressource verweisen. Jede Ressource im WWW, sei es eine Datei oder ein Dienst, wird über eine URL referenziert. Dabei können mehrere URLs durchaus auf die gleiche Ressource verweisen. Das einfachste Beispiel ist hierbei sicherlich die Standardseite, die bei Angabe eines Pfades ohne konkrete Datei angezeigt wird. So verweisen die beiden URLs und beide auf das gleiche HTML Dokument. Aber auch in Fällen, in denen verschiedene Domainnamen auf den gleichen Server und den gleichen Webauftritt aufgelöst werden führen verschiedene URLs zu identischen Dokumenten. Eine weitere Besonderheit in Webdokumenten ist, dass häufig auch relative Pfade in URLs verwendet werden. Dabei wird innerhalb eines Webdokumentes auf andere Ressourcen verwiesen, indem lediglich die Änderungen am Pfadteil der URL spezifiziert werden. Protokoll, Host und eventuell auch Teile des Pfades werden von dem referenzierenden Dokument übernommen. Wird beispielsweise innerhalb des Dokumentes unter ein Verweis mit../ps/uebung.php angegeben, so bedeutet dies, dass in der Pfad-Struktur eine Ebene nach oben gegangen werden muss (..) und dann der Teil ps/uebung.php angehängt wird. Das führt also insgesamt zur absoluten URL Beginnt eine relative URL mit einem führenden Slash (/), so wird nur Protokoll und Host vom referenzierenden Dokument übernommen, die Referenz wird dann als Pfad übernommen. Lautet ein Verweis unter 135

144 8 Websuchmaschinen auf /index.php, so bezieht er sich also auf die absolute URL Die letzte Säule des WWW stellt das HTML-Format dar. HTML ist eine Auszeichnungssprache, die ursprünglich über SGML definiert wurde. Sie hat sich über mehrere Versionsnummern hinweg entwickelt. Die letzte vom W3C als für den produktiven Einsatz geeignet deklarierte Version ist 4.01 [RHJ99], Version 5 [W3C08] ist in Arbeit. Zwischenzeitlich wurden mit XHTML [W3C07] eine auf syntaktischer Ebene etwas stringentere Fassungen in XML formuliert. HTML-Dokumente hatten wir bereits kurz im Kapitel zu Boolschem Retrieval mit gewichteten Zonen angesprochen. Das Format ist denkbar einfach. Vom Prinzip her wird ein Fließtext dadurch strukturiert, dass einzelne Textfragmente mit Tags markiert werden. Die Tags weisen den Textfragmenten eine bestimmte Funktion zu, beispielsweise die einer Überschrift, eines Absatzes, eines Hyperlinks oder einer Zelle in einer Tabelle. Dazu wird der Text von einem öffnenden und einem schließenden Tag umklammert. Weiterhin gibt es in HTML-Dokumenten einen Kopf, der für Metadaten oder andere dokumentweit gültige Angaben gedacht ist, sowie einen Rumpf, der das eigentliche Dokument enthält. Die verfügbaren Auszeichnungselemente können in diesem Rahmen nicht vollständig vorgestellt werden. Im Zusammenhang mit Websuchmaschinen sollen jedoch einige wenige Elemente angesprochen werden. a Dieses Element stellt Anker im Dokument dar. Das können Ziele für Verweise sein (die in einer URL hinter dem # angesprochen werden können), in den meisten Fällen wird es sich jedoch um Verweise auf andere Dokumente handeln, also um klassische Hyperlinks. Der Ziel des Hyperlinks wird über den Wert des Attributes href angegeben. Ein Verweis auf die Homepage zur IR Vorlesung hätte also folgende Form: <a href="http://www.informatik.uni-mainz.de/lehre/ir/index.php"> IR Vorlesung </a> Der Inhalt des Elementes ( IR-Vorlesung ) wird dann als Link dargestellt. base Dieses Element findet sich im Kopf und definiert im Attribut href eine Basis-URL die für relative Verweise verwendet wird. Diese wird in der Regel von der tatsächlichen URL des Dokumentes verschieden sein. meta Ebenfalls eine Kopfangabe, die je nach Typ verschieden Informationen zur Verfügung stellt. Das können Stichwörter, eine Inhaltsangabe oder Zusammenfassung sein. Einige hatten wir bereits in Kapitel 4 kennen gelernt. img Dieses Element dient der Einbettung von Bildern. Über das Attribut alt können Texte angegeben werden, die das Bild ersetzen oder erklären können. Dies ist beispielsweise für sehbehinderte Nutzer gedacht oder für den Fall, dass das Bild nicht vom Server geladen werden konnte. 136

145 8.2 Web Crawler Der Erfolg von HTML (und wohl auch die mangelnde Übernahme von XHTML als meistgenutzter Standard) liegt an der fehlertoleranten Behandlung durch die Browser. Selbst wenn die Autoren eines HTML-Dokumentes syntaktische Fehler machen, wird es in den meisten Fällen dennoch vom Browser angezeigt häufig sogar halbwegs korrekt im Sinne des Autors. Inzwischen gibt es zu HTML einige standardisierte Ergänzungen. Mit JavaScript kann clientseitig Dynamik in die Dokumente gebracht werden. Die Skripte werden im Browser ausgeführt und erlauben das Dokument, dessen Inhalte und Darstellung zu verändern. Mit Cascading Style Sheets (CSS) gibt es die Möglichkeit auf die Darstellung und Formatierung eines Dokumentes Einfluss zu nehmen. Ursprünglich war HTML nämlich eine für die strukturelle und nicht für die darstellungsorientierte Auszeichnung der Dokumente gedacht. Mit CSS wurde dem Bedürfnis der Webdesigner Rechnung getragen, auch die Darstellung unter Kontrolle zu bekommen. Der große Erfolg des Web ist für IR Systeme gleichzeitig auch ein Fluch. Denn die Einfachheit des System führte zu einer weiten Adaption durch Nutzer. Damit wurden gewöhnliche Nutzer plötzlich zu Autoren. Das heißt, dass die Inhalte nicht mehr nur von ausgebildeten Redakteuren sondern in großem Stil auch von Amateuren verfasst wurden. Dadurch gibt es im Web extrem unterschiedliche Qualitäten an Inhalten. Das betrifft die Art der Inhalte, die Sprache, die Grammatik und die Rechtschreibung. Durch die Entwicklung hin zu noch mehr Nutzer-generiertem Content im Web 2.0 durch Blogs und ähnliche Techniken wurde diese Entwicklung noch fossiert. Aber auch auf der Seite der Nutzer der IR Systeme hat sich alles sehr stark in den Mainstream entwickelt. Wurden die IR Systeme früher noch von ausgebildeten Experten genutzt sind es heute normale Alltagsnutzer. Die Anfragen werden häufig ohne gezielte Vorüberlegung und ohne Kenntnis oder Verständnis der Systeme selbst gestellt. 8.2 Web Crawler Eine der Besonderheiten von Websuchmaschinen ist deren Zugriff auf die Dokumentsammlung. Statt eines fest vorgegebenen Korpus, der an vorgegebener Stelle liegt, hat es eine Websuchmaschine mit dem WWW selbst zu tun. Im WWW gibt es keine zentrale Organisationsstruktur, die neue Inhalte kontrolliert, verwaltet oder auch einfach nur erfasst und propagiert. Daher bleibt den Websuchmaschinen nichts anderes übrig als selbst das Web zu durchstreifen, nach neuen, unbekannten oder veränderten Inhalten zu suchen und diese in den eigenen Datenbestand aufzunehmen. In unserer schematischen Darstellung eines IR Systems in Kapitel 1 ließe sich damit also eine weitere Komponente eintragen, die zwischen der Dokumentsammlung (hier dem Web) und der Dokumentverarbeitung sitzt. Diese Komponente wird als Web Crawler, Web Robot oder Web Spider bezeichnet. Aufgabe des Crawlers ist es wie gesagt, das Web zu durchstreifen und Dokumente zum Zwecke der weiteren Vorverarbeitung und Indizierung an das IR System weiterzureichen. 137

146 8 Websuchmaschinen Der Crawler selbst kann ebenfalls wieder in mehrere Komponenten untergliedert werden, wie es in Abbildung 8.2 in Anlehnung an [Glö03] skizziert wird. Abbildung 8.2: Bestandteile eines Web-Crawlers. Die URL-Datenbank enthält eine Sammlung von URLs, die der Crawler noch zu besuchen hat. Diese Sammlung wird auch als Frontier bezeichnet, also als Grenze zum noch nicht erforschten Gebiet des Web. Dabei wird nicht nur die URL selbst gespeichert, sondern einige weitere Daten zu dieser URL und den dadurch verwiesenen Daten. Der größte Teil der Daten kann aus der URL heraus geschätzt werden oder liegt aus einem der letzten Besuche der URL vor: Die IP-Adresse des Server auf den der Domainname aufgelöst wird. So kann der Overhead der DNS Auflösung und insbesondere die Verschwendung kostbarer Netzwerkbandbreite übergangen werden. Insbesondere wenn ein Domainname in mehreren URLs vorkommt. Das Datum des letzten Besuchs dieser URL. Fehlerhäufigkeit des Hosts. Änderungshäufigkeit des Inhalts. Format des Inhalts, entweder aus dem Pfad geschätzt oder aus der Erfahrung des letzten Besuchs. Wichtigkeit der Seite. Diese kann vom Inhalt abhängen (Detail- oder Inhaltsseite), von der Tiefe der Seite im Pfad oder von anderen Kenntnissen über den Host. Die Loader-Komponente kann aus diesen Daten eine Reihenfolge ableiten, in der die URLs in der Datenbanken das nächste Mal besucht werden sollen. Dementsprechend fordert die Komponente eine Teilmenge der URLs an und verteilt diese an die Gatherer. Diese liegen mehrfach vor und stellen die Clients dar, die letztendlich die Anfragen an die Server stellen. 138

147 8.2 Web Crawler Je nach Unterstützung durch den Server kann die Anfrage dabei in einem oder zwei Schritten erfolgen. Zum einen kann die Anfrage konditional gestellt werden, das heißt mit der Vorgabe, dass das Dokument nur dann übertragen werden soll, wenn es sich seit dem letzten Besuch geändert hat. Alternativ kann auch zunächst über den HTTP-Befehl HEAD nur der HTTP-Kopf angefordert werden und darin direkt das Datum der letzten Änderung, bzw. das Alter des Dokuments überprüft werden. Das Ergebnis der Interaktion wird an den Checker übergeben. Dieser besteht aus einer Reihe von Filtern, die auf ein Dokument angewendet werden. Einige der Filter sind eventuell systemspezifisch und werden nicht in jeder Websuchmaschine auftreten, andere gehören hingegen quasi zum Standardrepertoire. Dazu gehört sicherlich die Prüfung, ob das Format des Dokumentes überhaupt bekannt ist und vom System behandelt werden kann. Kann das IR System beispielsweise die Inhalte von PDF-Dateien nicht lesen, so ist es unnötig, solche Dateien zur Indizierung weiterzureichen. Ist das Format bekannt wird es auf syntaktische Korrektheit und Lesbarkeit geprüft. Treten dabei Fehler auf, kann der Checker versuchen, das Dokument zu reparieren (z.b. gültiges HTML herzustellen) oder es als unlesbar verwerfen. Ein weiterer Filter kann sich damit befassen, das Dokument als Dublette zu erkennen. Das bedeutet, dass das Dokument unter anderer URL eventuell bereits indiziert wurde. Exakte Dubletten können über Hashing-Verfahren erkannt werden. In vielen Fällen unterscheiden sich Dokumente in ihren Inhalten allerdings lediglich durch unwesentliche Änderungen, wie z.b. das Datum oder eine Verweisliste auf die aktuellsten Inhalte. Die Erkennung solcher Nahezu-Duplikate ist etwas aufwendiger und soll an dieser Stelle nicht weiter vertieft werden. In einigen Fällen kann ein Abgleich mit einer Blacklist von nicht zu indizierenden Webseiten oder Inhalten ein sinnvoller Filter sein. Dies kann auf der Basis der URL, enthaltener Wörter oder anderer Kriterien erfolgen. Dazu gehört in gewissem Umfang auch die Erkennung von Spam eine Problematik, auf die wir später noch eingehen werden. In manchen Fällen kann es nötig sein, dass der Checker direkt mit den Gatherern interagiert, beispielsweise um fehlende Daten nachzuladen oder eine HTML-basierte Weiterleitung aufzulösen. Sind alle Daten komplett und alle Filter durchlaufen, ohne dass das Dokument verworfen wurde, wird es an das IR System zur Aufbereitung und Indizierung übergeben. Darüber hinaus sammelt der Checker aus HTML Dokumenten die darin referenzierten URLs und legt sie in der URL-Datenbank ab. Auch die URL des gerade besuchten Dokuments wird wieder in der URL-Datenbank gespeichert, so dass diese nach einer gewissen Zeit wieder besucht werden kann. URLs die jedoch wiederholt zu Fehlern geführt haben oder aus anderen Gründen wiederholt von den Filtern verworfen wurden, können auch komplett verworfen werden. Damit URLs aus einem Webdokument in die Datenbank aufgenommen werden können müssen sie vorher normalisiert werden. Das bedeutet aus relativen Verweisen müssen absolute URLs erzeugt werden. Dabei sind die URL des referenzierenden Dokuments sowie etwaige Angaben im base-element zu bachten. Mit der Aufnahme neuer und alter URLs in die URL-Datenbank schließt sich der Kreislauf der Aktionen eines Web Crawlers. Es gibt jedoch noch einige Details zu beachten. Dazu 139

148 8 Websuchmaschinen gehört zum einen die Crawler-Politeness: ein Crawler sollte sich an bestimmte Verhaltensregeln halten. So sollte er den Zugriff auf Hosts möglichst streuen und nicht einen Webserver mit Anfragen überschwemmen. Es gilt die Faustregel, dass zwischen den Anfragen an den selben Server einige Sekunden liegen sollten. Eine weitere Regel ist, dass ein Crawler bei einem Server zunächst die Datei robots.txt anfordert. Dies ist eine sehr einfache, nach dem Robots Exclusion Standard formatierte Datei, welche Angaben dazu macht, welche Clients (Web Crawler) auf welche Bereiche des Webauftrittes zwecks Indizierung zugreifen dürfen. Die Datei führt dazu gegebenenfalls für einzelne Clients namentlich auf, welche Pfade für sie als gesperrt gelten. Es gehört zum guten Benehmen, dass diese Angaben eingehalten werden. Es folgt ein Beispiel einer solchen Datei: # robots.txt for User-agent: * Disallow: /~presse1/ # Die UniInfo soll nicht durchsucht werden auf Wunsch Die Datei wurde vom Server der Uni Mainz geladen und gibt Aufschluss über die wichtigsten Angaben die in einer robots.txt Datei auftreten können. In der erste Zeile sieht man einen Kommentar, der mit dem Zeichen # eingeleitet wird. Danach folgt die erste und in diesem Fall einzige Spezifikation für Crawler, eingeleitet durch User-Agent. Der Stern * deutet an, das dies für alle Crawler gilt. In der nächsten Zeile werden die Einschränkungen erwähnt die hier zutreffen. Über das Schlüsselwort Disallow wird angezeigt, dass gewisse Bereiche der Website nicht angerufen werden dürfen. In diesem Beispiel bezieht sich dies auf alle Dokumente unter dem Pfadpräfix /~presse1/. Die Liste der nicht zu durchsuchenden Pfade kann beliebig erweitert werden, indem weitere Zeilen mit Disallow angehängt werden. Will man für unterschiedliche Crawler individuelle Einschränkungen machen, so können durch weitere Zeilen mit anderen User-Agent Angaben und nachfollgenden Disallow Angaben weitere Einschränkungen gemacht werden, die dann nur für Crawler gelten die zu dieser User-Agent Beschreibung passen. Das folgende Beispiel (ein Auszug aus der robots.txt Datei von Spiegel Online) macht dies deutlich: User-agent: * Disallow: /RealMedia/ Disallow: /archiv/ Disallow: /forum/ Disallow: /cgi-bin/ Disallow: /werbung/ User-agent: WebReaper Disallow: / 140

149 8.2 Web Crawler User-agent: Slurp Crawl-delay: 18 Während für beliebige Clients nur die ersten Angaben gelten, wird für den Crawler WebReaper die Vorgabe gemacht, dass er keinerlei Dateien besuchen darf, da bereits für das Wurzelverzeichnis keine Zugriffserlaubnis gewährt wird. Für den User-Agent Slurp hingegen gilt eine andere Einschränkung: Er darf Seiten nur mit gewissen Pausen zwischen den Anfragen herunterladen. Dies wird durch die Einschränkung Crawl-Delay und eine Angabe der zu wartenden Sekunden ausgedrückt. Andere Möglichkeiten der Einschränkung sind die Angabe der einzigen zugänglichen Seiten (Allow) oder ein helfender Hinweis auf eine Sitemap Seite (Sitemap). Auch in HTML-Dokumenten selbst können über meta-tags Angaben für Crawler gemacht werden. Dazu gibt es das meta-element mit dem name-attributwert robots. Als content-wert können noindex und/oder nofollow angegeben werden, um auszudrücken dass die Seite nicht indiziert werden soll, bzw. dass die verlinkten URLs nicht für weiteres Crawling genutzt werden sollen. Soll eine Seite ganz regulär indiziert und die Links verfolgt werden, so kann im content-attribut der Wert all angegeben werden oder das meta-element schlicht weggelassen werden. Generell, sind die Angaben in der robots.txt Datei lediglich eine freundliche Bitte, sie garantieren nicht, dass sich die Crawler daran halten. In der Regel kann jedoch eine fundierte Überlegung des Websiteadministrators angenommen werden und die Indizierung der Inhalte ist in der Tat wenig sinnvoll. Deshalb und aufgrund der oben erwähnten Crawler Politeness sollten sich die Crawler daran halten. Will man auf der Seite des Webservers den Zugriff auf bestimmte Inhalte tatsächlich verbieten, so müssen andere Maßnahmen getroffen werden (Authentifizierung oder Beschränkung des Zugriffs auf gewisse Netzwerke). Ein weiterer wichtiger Punkt bei der Umsetzung eines Crawlers ist dessen Robustheit und Fehlertoleranz. Offensichtlich darf das Gesamtsystem nicht zum Absturz geführt werden, wenn ein HTML-Dokument ein unbekanntes Tag enthält oder die HTTP-Verbindung zu einem Server zusammenbricht. Es gibt aber noch einige andere Punkte, die ebenfalls zu beachten sind. So ist zu beachten, dass nicht alle URLs tatsächlich zu tatsächlichen Dokumenten führen. Ein einfaches Beispiel sind sogenannte weiche 404-Fehler. Dabei handelt es sich um HTML-Seiten die dem Nutzer sagen sollen, dass er eine ungültige Seite eingegeben hat. Anstatt des HTTP-Statuscode 404 wird jedoch ein Statuscode 200 gesendet und die Fehlermeldung im HTML-Format dem Nutzer präsentiert. Damit ist jedoch zumindest theoretisch eine unbeschränkte Anzahl an gültigen URLs möglich, die nicht zu Fehlern führen, aber auch keine brauchbaren Inhalte für die Suchmaschine liefern. Solche Explosionen in der Menge der URLs werden auch als Crawler-Traps (Crawler Fallen) bezeichnet. Ebenfalls schwierig sind Parameter und Fragmente in den URLs. Die Fragmentangabe kann in der Regel problemlos weggelassen werden, aber was ist mit den Parametern? Dabei kann es sich um wichtige Parameter handeln, welche die Inhalte einer dynamisch erzeugten Seite beeinflussen (z.b. Formulareingaben). Es kann aber auch eine Session-ID sein, die nur dazu dient den Nutzer und dessen Weg über die Website zu verfolgen. Diese Session-IDs werden aber jedesmal neu vergeben und werden nach einem gewissen Timeout ungültig. Auch 141

150 8 Websuchmaschinen dadurch entstehen (bezieht man die Parameter mit ein) jedes mal neue URLs, die aber inhaltlich keine Neuerungen bringen. Eine radikale Lösung, die von vielen Suchmaschinen verfolgt wird ist, die Parameter in den URLs generell nicht zu beachten. Dies führt unter anderem zum Deep-Web oder Hidden-Web Phänomen: Es gibt eine sehr große Zahl von Dokumenten im Web die von Suchmaschinen nicht indiziert werden, da sie für Suchmaschinen nicht zugänglich sind. Sie sind daher auch für Informationssuchende gewissermaßen verborgen und nicht (direkt) zugänglich. Außer robust und fehlertolerant sollte ein Crawler auch effizient (bezüglich Rechenzeit, Speicher und beanspruchte Netzwerkbandbreite), erweiterbar (um neue Formate oder Filter) und skalierbar (Verteilung auf mehrere Prozesse, Threads und Rechner) sein. Dazu kann beispielsweise ein Caching der robots.txt Dateien und DNS-Auflösungen dienen, so dass diese nicht immer neu angefragt werden müssen. 8.3 Spam Die Anfragen an Websuchmaschinen werden häufig in Informations-, Location- und Transaktionsanfragen unterschieden. Informationsanfragen drücken ein klassisches Informationsbedürfnis aus und der Nutzer wird sich wahrscheinlich mehrere Seiten anschauen, um sein Informationsbedürfnis zu befriedigen. Bei Locationanfragen sucht der Nutzer eine bestimmte Webpräsenz, beipielsweise die der Uni Mainz. Hier ist es für eine Suchmaschine wichtig die betreffende Seite möglichst auf dem ersten Platz anzuzeigen. Bei Transaktionsanfragen schließlich will der Anfragende eine Transaktion tätigen und sucht einen entsprechenden Dienst im Web. Die Art der Transaktion kann eine Reisebuchung, ein Einkauf oder ein andere Dienst sein, für den unter Umständen bezahlt werden muss. Es wird offensichtlich, dass ein Anbieter solcher Dienste bei den entsprechenden Anfragen möglichst weit oben in der Trefferliste einer Suchmaschine auftauchen möchte. Schließlich stehen die oberen Positionen für hohes Ranking und somit für hohe Relevanz. Das suggerieren den Nutzern eine hohe Qualität des Anbieters. Auch ist bekannt, dass viele Nutzer von Websuchmaschinen nur selten mehr als die ersten zehn Ergebnisse betrachten. Ein hohes Ranking ist daher für kommerzielle Anbieter umso wichtiger, damit sie überhaupt wahrgenommen werden. Einige Suchmaschinen erlauben es Firmen daher, gegen Bezahlung deren Ranking zu beeinflussen oder Werbung zu bestimmten Anfragen einzublenden. Allerdings, gibt es auch andere Möglichkeiten, wie Autoren versuchen das Ranking ihrer Webseiten zu beeinflussen. Wird dabei mit irreführenden und trügerischen Maßnahmen gearbeitet, so dass irrelevante Dokumente zu einer Anfrage auftauchen oder die Relevanz eines Dokumentes deutlich zu hoch beurteilt wird, spricht man von Spam. Ähnlich wie beim Spam bekommt der Nutzer letztendlich Inhalte zu sehen, die ihn nicht interessieren. Was genau unter Spam fällt und was noch als legale Suchmaschinenoptimierung einer Webseite zählt, ist nicht objektiv abzugrenzen. Die meisten kommerziellen Websuchmaschinen machen klare Vorgaben, was sie erlauben und welche Maßnahmen als Spam gewertet werden (und somit in der Regel zur Löschung aus dem Index führen). Einige Me- 142

151 8.3 Spam thoden, die landläufig als Spam gewertet werden sollen hier kurz angesprochen werden. Sie basieren letztendlich alle auf der unterschiedlichen Wahrnehmung einer Webseite durch den Crawler der nur den Quelltext sieht und dem menschlichen Nutzer, der ein gerendertes Dokument im Browser betrachtet. Sobald eine Suchmaschine Termfrequenzen zur Gewichtung heranzieht, ist es einem hohen Ranking zuträglich, wenn ein Suchterm sehr häufig auftaucht. Daher besteht ein Ansatz zur Beeinflussung des Ranking darin, bestimmte Terme sehr häufig in einem Dokument zu erwähnen. Wird ein solches Keyword Stuffing in den eigentlich Text eingebaut, so verwirrt es jedoch den menschlichen Nutzer. Daher werden die Terme in nicht sichtbaren Dokumentbereichen oder in Form von Blind Texts vor dem Nutzer verborgen. Das kann auf verschiedene Art und Weise geschehen. So können die Terme in meta-angaben im Dokumentkopf verstaut werden diesen sieht der Nutzer nicht. Ebenso können beliebige Inhalte an das Ende des Dokumentes gestellt werden und durch Darstellungstricks unsichtbar gemacht werden. Weiße Schrift auf weißem Hintergrund, div-elemente die aus dem sichtbaren Bereich herausgeschoben oder auf eine Höhe von 0 Punkten geschrumpft werden sind klassische Ansätze dazu. Auch können in den alt-attributen von sehr kleinen oder transparenten Bildern beliebig viele Terme untergebracht werden, ohne dass die Wahrnehmung eines menschlichen Nutzers darunter leidet. Keyword Stuffing kann relativ einfach erkannt werden. Da selbst häufige Stopwörter nur einen bestimmten Prozentsatz aller Wörter in einem Text ausmachen, kann eine Obergrenze für Suchbegriffe im Dokument festgelegt werden. Weist ein Term beispielsweise eine relative Häufigkeit von mehr als 10%, 15% oder 20% auf, so deutet dies auf Keyword Stuffing hin. Ein anderer Ansatz für Spam sind Doorway Seiten. Eine solche Seite ist ein reguläres HTML-Dokument, das zu bestimmten Suchanfragen relevant erscheint. Es enthält jedoch ein meta-element mit einer automatischen Weiterleitung zu einer anderen Seite, die einen anderen Inhalt hat. Somit bekommt ein Nutzer die Doorway Seite eigentlich gar nicht zu sehen sondern landet direkt auf der Weiterleitung. Da diese Weiterleitungen jedoch direkt aus dem Code ersichtlich sind, kann dies von einer Suchmaschine sofort erkannt werden. Als Gegenmaßnahme können Seiten mit Weiterleitung generell ignoriert werden, die Zielseite indiziert werden oder zumindest ein inhaltlich-thematischer Abgleich zwischen den Seiten vorgenommen werden. Der dritte klassische Ansatz, der hier angesprochen wird ist Cloaking. Dabei bekommen die Crawler der Suchmaschinen andere Ergebnisse angezeigt als die Browser Clients der menschlichen Nutzer. Die Unterscheidung kann auf der Basis der IP-Adresse des Clients oder des Eintrages im User-Agent Feld des HTTP-Requestheaders getroffen werden. Je nach Eintrag in diesem Feld liefert der Webserver andere Dokumente aus. Auch hier erhalten Suchmaschinen wieder Seiten die Relevanz zu besonderen Suchbegriffen suggerieren. Zur Erkennung solcher Spamseiten kann eine Suchmaschinen Stichproben machen und die gleiche Seite testweise von einer anderen IP aus und unter der Verwendung einer anderen Angabe zum User-Agent anfordern. Sind die Versionen der Seiten zu unterschiedlich, so deutet dies auf Cloaking hin. 143

152 8 Websuchmaschinen Moderne Suchmaschinen verwerten auch das Geflecht aus Hyperlinks um die Relevanz oder Autorität einer Quelle zu beurteilen. Näheres zu diesen Techniken folgt im nächsten Kapitel. Vereinfacht gesagt ist es für ein Webdokument dabei vorteilhaft, von möglichst vielen anderen Dokumenten über Hyperlinks referenziert zu werden. Daher gibt es inzwischen auch sogenannten Link-Spam, beispielsweise das Einbauen unsichtbarer Hyperlinks oder gar das Erzeugen von Webdokumenten die schlichtweg massiv auf andere Dokumente verweisen (sog. Link Farmen). 8.4 Zusammenfassung Websuchmaschinen haben im Vergleich zu klassischen IR Systemen einige zusätzliche Herausforderungen zu bewältigen, die nicht nur durch die deutlich größeren Datenmengen zustande kommen. Das Sammeln der Dokumente durch Web Crawler, die deutlich unsaubereren Daten in den Dokumenten und die breite Masse an Nutzern, die keine Ausbildung als Informationssuchende haben, sowie die Spamproblematik sind einige der Aufgaben die hier angesprochen wurden. Allerdings haben Websuchmaschinen Information Retrieval zu einem alltäglichem Thema gemacht und sowohl Forschung als auch Anwendung nachhaltig beeinflusst. 144

153 9 PageRank und HITS Es wurde bereits mehrfach angesprochen, dass die Relevanz eines Webdokuments auch über die Hyperlinkstruktur des Webs beurteilt werden kann. Das Thema wurde bei den statischen Qualitätsmaßen zur Optimierung von Anfragen im Vektorraummodell erwähnt und in Kapitel 8 zu Websuchmaschinen unter dem Punkt Link-Spam. Wir schauen uns nun zunächst an, wie das Web als Graph aufgefasst werden kann. Danach werden zwei Algorithmen vorgestellt, die nahezu zeitgleich vorgestellt wurden und auf ähnlichen Ideen basieren: PageRank und HITS. PageRank dürfte etwas bekannter sein, da es der Algorithmus ist, der Googles Suchmaschine zugrunde liegt und dieser seinerzeit im Vergleich zu anderen Suchmaschinen einen enormen Vorteil in der Qualität der Ergebnisse bescherte. Inzwischen dürfte die Linkanalyse zum Standardrepertoire großer Websuchmaschinen gehören. 9.1 Das Web als gerichteter Graph Die Vorstellung das Web als Graph aufzufassen ist gar nicht so abwegig. Die Dokumente stellen die Knoten des Graphen dar und die Hyperlinks zwischen den Dokumenten liefern (gerichtete) Kanten zwischen den Knoten. Nimmt man die Ankertexte der Hyperlinks hinzu, kann man die Kanten sogar mit einem Label versehen. Abbildung 9.1 zeigt eine solche Graphdarstellung zweier Webseiten A und B, wobei A einen mit Die Seite B beschrifteten Link zu B enthält. Abbildung 9.1: Graphdarstellung zweier Seiten die über einen Hyperlink verbunden sind. Die Beschriftung der Links kann für IR-Systeme besonders interessant sein. Schließlich handelt es sich dabei in gewissem Sinne um eine Verschlagwortung der Zielseite. Somit können die Ankertexte oder sogar erweiterte Ankertexte (Umgebung um den Link herum) mit in die Indexwörter des referenzierten Dokumentes aufgenommen werden. Nehmen wir noch ein paar mehr Seiten hinzu, so wird der Graph etwas umfangreicher. Fügen wir eine Seite D hinzu, die ebenfalls B referenziert und von A referenziert wird, sowie eine Seite C, welche die drei anderen Dokumente referenziert aber selbst nicht verlinkt wird, so sieht die Situation (unter Vernachlässigung der Labels) aus wie in Abbildung

154 9 PageRank und HITS Abbildung 9.2: Webgraph mit mehreren Seiten. Interessante Eigenschaften der Knoten sind für uns die Anzahl der ein- und ausgehenden Kanten. Zu beachten ist dabei jedoch, dass wir im Web bei Betrachtung eines Dokumentes direkt dessen Ausgangsgrad, nicht jedoch den Eingangsgrad angeben können. Zur Bestimmung der Anzahl eingehender Knoten müssen alle anderen Seiten dahingehend analysiert werden, ob sie auf das fragliche Dokument verweisen. Generell sind die Knoten im Web nur sehr dünn miteinander verbunden. Insbesondere gibt es Teilbereiche die komplett vom Rest des Webs abgetrennt sind. Das Web ist also nicht zusammenhängend. Außerdem gibt es Seiten die von keiner anderen Seite verlinkt werden, sowie Knoten die auf keine anderen Dokumente verlinken (z.b. Dokumente, die nicht im HTML-Format vorliegen). Dadurch entstehen in der Linkstruktur Sackgassen und unerreichbare Knoten. 9.2 PageRank Die Idee die hinter PageRank steckt ist folgende: Eine Seite, die häufig verlinkt wird, muss gute Inhalte bereitstellen. Weiterhin ist eine Seite, die von einer guten Seite verlinkt wird ebenfalls tendentiell eher gut. Insbesondere der letzte Aspekt spielt dabei eine wichtige Rolle, sonst würde es genügen lediglich den Eingangsgrad einer Seite zu berechnen. Bezieht man allerdings auch die Qualität der Ursprungsseite eines Hyperlinks mit in die Bewertung ein, wird das Ganze etwas schwieriger. Larry Page und Sergej Brin, die Erfinder des PageRank Algorithmus, bedienten sich daher einer gedanklichen Hilfskonstruktion [BP98]. Man stelle sich einen Webnutzer vor, der ziellos durch das Web surft. Dabei klickt dieser Random Surfer auf jeder Webseite rein zufällig auf irgendeinen der darin enthaltenen Links um zur nächsten Seite zu gelangen. Dabei kommt er früher oder später auch mehrfach auf die gleiche Seite. Die Seiten, auf denen er häufiger landet sind besser verlinkt als andere und somit nach obiger Vorstellung qualitativ hochwertiger. Das Schöne an diesem gedanklichen Experiment ist, dass sich die Güte einer Seite auch auf die von dort aus verlinkten Seiten überträgt. Denn wenn der Random Surfer auf qualitativ hochwertigen Seiten häufiger landet, dann gelangt er durch 146

155 9.2 PageRank die zufällige Auswahl eines beliebigen Hyperlinks auch relativ häufig auf alle von dort aus verlinkten Seiten. Random Surfer Gehen wir von einem Webgraph aus, wie er in Abbildung 9.3 dargestellt ist. Der Graph enthält acht Knoten für die Seiten A bis H. Der Random Surfer soll auf Seite A starten. Abbildung 9.3: Ein etwas größerer Webgraph auf dem der Random Surfer zufällig Seiten besucht. Vom Knoten A aus wählt er zufällig den Link zu B aus. Dort gibt es nur einen ausgehenden Link, so dass er bei G landet. Hier gibt es nun wieder Auswahl und er nimmt den Link zurück nach B, so dass er danach direkt wieder in G landet. Nehmen wir an, dass sein weiterer Pfad ihn über die Knoten H, A, F, C, E, G, H, A, B und G führt. Zählt man nach diesen 15 besuchten Seiten durch, wie oft der Surfer welche Seite besucht hat erhält man folgende Zahlen: A B C D E F G H Bereits hier fällt auf, dass einige Seite deutlich häufiger besucht werden als andere. Die Seiten A, B und G fallen hier auf. Allerdings ist das nach so wenigen Schritten noch keine wirklich aussagekräftige Statistik. Es gibt einige Probleme bei diesem Verfahren, die sich mit dem Random Surfer Modell recht einfach erklären und auch in der Lösung anschaulich beschreiben lassen. Das erste Problem sind Sackgassen, also Knoten im Webgraph, von denen aus es kein Weiterkommen gibt. Im Beispielgraphen aus Abbildung 9.3 ist das für den Knoten D 147

156 9 PageRank und HITS der Fall. Von dort führt keine Kante zu einem anderen Knoten. Das können wie bereits oben erwähnt einfach Knoten sein, die nicht einem HTML-Dokument entsprechen, sondern einem Format, das keine Hyperlinks unterstützte, beispielsweise eine Bilddatei. Genauso kommen aber auch HTML-Seiten in Frage, die schlicht keine Hyperlinks enthalten, etwa eine Druckversion zu einem Artikel. Landet der Random Surfer in einer solchen Sackgasse, so kann er nicht nach dem bewährten Muster weitersurfen. Den Ausweg, den sich Brin und Page hier ausgedacht haben, ist der Teleport. Bei einem Teleport landet der Random Surfer zufällig auf irgendeiner Seite des Webs. Anschaulich lässt sich das damit vergleichen, dass er eine URL in das Adressfeld des Browsers eingibt. Damit gelangt er schließlich aus der Sackgasse heraus. Graphtheoretisch entspricht das dem Einfügen von Kanten vom Sackgassenknoten zu allen anderen Knoten. Das zweite Problem tritt in Graphen auf, die nicht zusammenhängend sind. Lässt sich der Webgraph in zwei oder mehr Teile zerlegen, die nicht durch Kanten verbunden sind, so kann der Random Surfer nie aus dem Teilbereich herauskommen, in dem er angefangen hat. Auch hier helfen Teleports weiter. Bei jedem Schritt den der Random Surfer macht, gibt es eine gewisse Wahrscheinlichkeit, mit der er einfach auf eine zufällige Seite springt und keinen der Hyperlinks in der gerade betrachteten Seite verwendet. Diese jederzeit möglichen, zufälligen Teleports helfen auch bei einem anderen Problem: wenn die Hyperlinks in einem Teilbereich des Webgraphen in einen Kreislauf führen 1. Abbildung 9.4 zeigt eine sehr einfache Form eines solchen Falles. Sobald der Random Surfer auf einen der drei roten Knoten gelangt, bleibt er in diesem Teil des Graphen hängen, ohne dass er direkt eine Sackgasse erkennt. Abbildung 9.4: Über Teleports kommt der Random Surfer auch aus Kreisläufen heraus. Da nun unterschiedliche Wahrscheinlichkeiten ins Spiel kommt, lässt sich dieses Konzept der zufälligen Teleports nicht mehr ganz so einfach in den Webgraph integrieren. Stattdessen lässt sich das Verhalten des Random Surfers nun aber sehr gut über Markow-Ketten modellieren. Eine Markow-Kette besteht aus einer Menge von Zuständen, zwischen denen Übergänge stattfinden können ganz ähnlich dem Verhalten, mit dem sich unser Random Surfer von 1 Die Teleports lösen nicht alle Probleme die durch solche Kreisläufe entstehen. Der Random Surfer bleibt zwar nicht mehr in diesen Schleifen hängen, jedoch kommt es noch immer zu Verzerrungen der PageRank Werte. Um auch dieses Problem in den Griff zu bekommen sind weitere Maßnahmen nötig. 148

157 9.2 PageRank Seite zu Seite bewegt. Die Übergänge sind mit Wahrscheinlichkeiten behaftet, das heißt die Übergänge werden nicht alle gleich häufig sondern gemäß einer Wahrscheinlichkeitsverteilung verfolgt. Zur Darstellung einer Markow-Kette mit n Zuständen eignet sich eine quadratische n n Matrix P. Der Eintrag p ij in dieser Matrix stellt darin die Wahrscheinlichkeit dar, von Zustand i zu Zustand j überzugehen. Daraus leitet sich auch ab, dass diese Einträge Werte zwischen 0 und 1 haben und die Summe aller Einträge in einer Zeile immer 1 ergeben muss. Eine Matrix mit diesen Eigenschaften heißt stochastische Matrix. Die Einträge in der Matrix, die das Verhalten des Random Surfers darstellen sollen, lassen sich folgendermaßen berechnen. Dazu bezeichne o(i) für die i-te Webseite die Anzahl der ausgehenden Hyperlinks zu anderen Seiten. Das entspricht in der Graphdarstellung der Anzahl ausgehender Kanten. Insgesamt gehen wir von n Webseiten aus. Weiterhin brauchen wir die Wahrscheinlichkeit, mit welcher der Random Surfer einen zufälligen Teleport macht, also zu einer beliebigen anderen Seite springt. Wir bezeichnen diese Wahrscheinlichkeit mit α. Ist die Seite i eine Sackgasse, gilt also o(i) = 0, so setzten wir alle Wert p ij auf 1 n. Somit ist die Übergangswahrscheinlichkeit für alle Seiten gleich und entspricht dem zufälligen Teleport an eine andere Stelle des Web. Ist die Seite keine Sackgasse, gilt also o(i) 1, so müssen wir zwischen per Hyperlink referenzierten und nicht verlinkten Seiten unterscheiden. Das Ziel ist, alle verlinkten Seiten mit gleicher Wahrscheinlichkeit anzusurfen, und den Rest zwar ebenfalls gleichmäßig aber nur mit sehr geringer Wahrscheinlichkeit, abhängig von der Wahl von α. Modelliert man dieses Verhalten so, dass der Random Surfer zunächst mit Wahrscheinlichkeit α die Entscheidung trifft, einen Teleport durchzuführen, so teilt sich diese Wahrscheinlichkeit auf alle n Knoten auf. Mit Wahrscheinlichkeit (1 α) verwendet er jedoch einen regulären Hyperlink, so dass sich diese Wahrscheinlichkeit dann auf die o(i) Knoten aufteilt, auf die verwiesen wird. Damit erhält man also für Knoten, die nicht verlinkt sind eine Übergangswahrscheinlichkeit von α und für die verlinkten Knoten eine Wahrscheinlichkeit von n α + (1 α). Der erste Term in dieser Summe rührt daher, dass der Random Surfer natürlich n o(i) auch zufällig auf eine verlinkte Seite springen könnte. Matrix P zu einem Webgraph Stellen wir die stochastische Matrix P für den Graphen aus Abbildung 9.3 auf. Dabei setzen wir den Parameter α für zufällige Teleports auf einen Wert von 0, 1. Wir nummerieren die Knoten von A (Knoten 1) bis H (Knoten 8) durch. Knoten A verweist auf drei andere Knoten. Somit ergibt sich für die Übergänge zu den Knoten B, D und F eine Übergangswahrscheinlichkeit von 0,1 + 0,9 = 0, Für die anderen Knoten 8 3 ergibt sich eine Übergangswahrscheinlichkeit von 0,1 = 0, Für die Knoten B, C, 8 E, F, G und H werden die Übergänge völlig analog berechnet. Knoten D hingegen hat keine Kanten zu anderen Knoten. Daher werden für diesen Knoten alle Übergangs- 149

158 9 PageRank und HITS wahrscheinlichkeiten auf 1 8 der Form: = 0, 125 gesetzt. Damit ergibt sich ingesamt eine Matrix P = 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0125 Die Modellierung durch Markow-Ketten soll nun dabei helfen herauszufinden, auf welchen Seiten, bzw. Knoten der Random Surfer wie oft landet. Die Anpassungen durch das Einfügen der Teleportationen haben dazu geführt, dass aus jedem Zustand heraus jeder andere in endlich vielen Schritten mit einer Wahrscheinlichkeit größer 0 erreicht werden kann. Damit erfüllt die Markow-Kette die Voraussetzung, dass die Wahrscheinlichkeit des Surfers in einem bestimmten Zustand zu sein gegen einen festen Wert konvergiert. Dieser Wert entspricht dem zugehörigen Eintrag im linken Eigenvektor zum größten Eigenwert. Für den größten Eigenwert gilt außerdem, dass er einen Wert von 1 hat. Man kann diesen Zusammenhang auch so ausdrücken, dass über die Zeitschritte t hinweg für die Anzahl der Besuche v(i, t) im Zustand i gilt: v(i, t) lim t t = π(i) Die Werte π(i) stellen die Einträge im Eigenvektor zum größten Eigenwert dar. Die Berechnung der PageRank Werte läuft also auf eine Eigenvektorberechnung hinaus. Anstatt einem linken Eigenvektor zu P können wir auch einen rechten Eigenvektor zu P T bestimmen, was zu den gleichen Ergebnissen führt. Für die Berechnung von Eigenwerten gibt es verschiedene Verfahren. Für die PageRank- Berechnung hat sich jedoch eines als besonders vorteilhaft erwiesen: die Potenzmethode 2. Dabei wird ein anfänglicher Vektor x mit zufälligen oder gleichen Einträgen für jeden Wert solange wiederholt mit der transponierten Matrix P T multipliziert, bis die Werte konvergieren. Das Ergebnis ist der Eigenvektor zum größten Eigenwert. Der Nachteil der Potenzmethode liegt darin, dass sie verhältnismäßig langsam konvergiert. Konvergenz ist jedoch gar nicht unbedingt nötig. Da die PageRank-Werte wie so häufig im IR nur für das Ranking herangezogen werden, sind die tatsächlichen Werte gar 2 Gelegentlich findet sich auch der Ausdruck Powermethod, der aus der englischsprachigen Literatur stammt. 150

159 9.2 PageRank nicht so sehr von Interesse. Vielmehr genügt es die Reihenfolge der Seiten abzuschätzen. Daher kann die Iteration der Potenzmethode bereits abgebrochen werden, wenn sich die Reihenfolge der Seiten nicht mehr ändert. Der große Vorteil der Methode liegt jedoch in der Art der Berechnung. Letztendlich handelt es sich um die Multiplikation einer Matrix mit einem Vektor. Jeder einzelne Eintrag im Ergebnisvektor einer Iteration berechnet sich aus dem Eingabevektor und einer Zeile der Matrix. Diese Berechnung ist von der Berechnung aller anderen Einträge unabhängig. Damit eignet sich das Verfahren wunderbar für eine Parallelisierung. Und da die einzelnen Berechnungen letztendlich auf zwei Vektoren (Eingabevektor und ein Zeilenvektor) basieren, ist es außerdem nicht nötig die komplette Matrix für die Berechnung vorzuhalten. Damit ergibt sich folgende Iterationsgleichung, in der P für die stochastische Matrix steht, die nach obigem Prinzip erstellt wird, und x 0 den initialen Vektor für die Iteration darstellt. Dieser kann für n Knoten mit den Werten 1 in jedem Eintrag initialisiert werden: n x k = P T x k 1 Berechnung der PageRank-Werte Führen wir das obige Beispiel fort. Die Matrix P haben wir bereits berechnet. Die Einträge im Vektor x 0 für die Berechnung der PageRank Werte setzen wir anfänglich alle auf den gleichen Wert: x 0 = 0, 125 0, 125 0, 125 0, 125 0, 125 0, 125 0, 125 0, 125 Dieser Vektor wird nun von rechts an die Matrix P T multipliziert. Nach dem ersten Schritt erhält man damit die Werte des Vektors x 2 : x 1 = P T x 0 = 0, 087 0, 143 0, 120 0, 143 0, 049 0, 120 0, 199 0,

160 9 PageRank und HITS Führt man die Berechnung fort so werden die Werte schon nach elf Iterationsschritten relativ stabil und man erhält den Vektor: x 11 = 0, 089 0, 184 0, 102 0, 100 0, 042 0, 070 0, 255 0, 157 Die PageRank-Wertung ergibt daher für die Seiten folgende Reihenfolge: G, B, H, C, D, A, F, E In Abbildung 9.5 werden die PageRank-Werte direkt im Graphen über Farbhelligkeit und die Größe der Knoten ausgedrückt. Abbildung 9.5: Webgraph mit Darstellung der PageRank-Werte über Farbhelligkeit und Knotengröße. Die PageRank-Bewertung einer Seite ist von einer konkreten Anfrage unabhängig. Damit stellt sie ein statisches Qualitätskriterium dar. Die Graphenstruktur des Webs ändert sich zwar ständig, jedoch dürfte ein Großteil der Hyperlinks auf kurze Sicht relativ stabil sein. Daher muss man die PageRank-Berechnung nicht bei jeder neu entdeckten Kante neu durchführen. Stattdessen kann man die PageRank-Werte der Seiten in festen Abständen bestimmen und beispielsweise wöchentlich aktualisierte Zahlen für das Ranking der Suchergebnisse verwenden. 152

161 9.3 HITS 9.3 HITS Der HITS Algorithmus [Kle98] wurde von Jon Kleinberg mehr oder weniger zeitgleich zu PageRank entwickelt und vorgestellt. Die Abkürzung HITS steht für hyperlink-induced topic search und verdeutlicht, dass auch hier die Hyperlinkstruktur zwischen Dokumenten für einen Suche verwendet wird. Allerdings ist HITS nicht für die Berechnung eines globalen und statischen Qualitätsmaßes gedacht, sondern um die Ergebnisse zu einer konkreten Suchanfrage qualitativ besser auswerten und ranken zu können. Die Idee hinter HITS klingt auf den ersten Blick ähnlich wie die Argumentation zu PageRank: gute Seiten werden häufig verlinkt und wenn gute Seiten eine andere Seite verlinkt, dann ist das ebenfalls ein Maß für Qualität. Allerdings gilt eine Seite ebenfalls als qualitativ besser, wenn sie auf gute andere Seiten verweist. Die Qualitätsbewertung einer Seite läuft also in gewissem Sinne auch gegen die Kantenrichtung der Hyperlinks. Um diesem Ansatz Rechnung zu tragen, wird die Qualität der Seiten bei HITS etwas differenzierter betrachtet. Und zwar wird zwischen sogenannten Hubs und Authorities im Web-Graphen unterschieden. Authorities sind Knoten im Graph (bzw. Webseiten) die gute Inhalte bereitstellen. Hubs hingegen sind Knoten, die auf gute Inhalte verweisen. Hubs und Authorities bedingen sich gegenseitig, denn ein Knoten ist ein besserer Hub, wenn er auf bessere Authority- Knoten verweist. Umgekehrt zählen Knoten dann als gute Authorities, wenn sie durch gute Hubs referenziert werden. Dieser Ringschluss kann glücklicherweise recht einfach aufgelöst werden, wie wir gleich sehen werden. Um die Hubs und Authorities in einem Graphen ausfindig zu machen, werden für jeden Knoten i zwei Werte berechnet: a(i) als dessen Authority-Wert und h(i) für dessen Hub- Wert. Die beiden Werte sind voneinander abhängig definiert. Der Authority-Wert eines Knoten ergibt sich aus der Summe aller Hub-Werte jener Seiten, die auf ihn verweisen: a(i) j i h(j) Dabei wird über alle Knoten j summiert, die auf i verweisen, was durch die Notation j i dargestellt werden soll. Umgekehrt sind die Hub-Werte von den Authority-Werten jener Knoten abhängig, die sie referenzieren. Hier ergibt sich die Definition: h(i) j i a(j) Man beachte, dass sich die Linkrichtung im Index der Summation geändert hat. Nun wird über alle Knoten j summiert, die von i verlinkt werden. Da die Werte offensichtlich von der Linkstruktur im Webgraphen abhängen, müssen wir auch diese wieder irgendwie modellieren. Dazu verwenden wir eine n n Adjazenzmatrix M, in welcher der Eintrag m ij in Zeile i und Spalte j genau dann eine 1 enthält, wenn vom Knoten i eine Kante zum Knoten j verläuft. Andernfalls ist der Eintrag Null. Die obigen Berechnungen für a(i) und h(i) lassen sich dann folgendermaßen ausdrücken: 153

162 9 PageRank und HITS a(i) h(i) n m ji h(j) j=1 n m ij a(j) j=1 Stellt man die Authority- und Hub-Werte als Vektoren a und h dar, kann man deren Berechnung über die Matrix M ausdrücken. Dazu benötigt man M in seiner ursprünglichen und in seiner transponierten Form M T. Bei der transponierten Matrix sind vereinfacht gesagt Zeilen und Spalten vertauscht und das entspricht der unterschiedlichen Verwendung von eingehenden und ausgehenden Links für die Berechnung von Authorities und Hubs. Für die obigen Formeln ergibt sich damit: a M T h h M a Setzt man nun die Berechnung für den Vektor h in die Berechnung von a ein und die Berechnung von a in die Berechnung von h, so kommt man zu folgender Aussage: a(i) M T M a h(i) M M T h Damit lässt sich ein iteratives Verfahren ableiten, mit dem einer beiden Vektoren berechnet werden kann. Die Werte des jeweils anderen Vektors lassen sich dann über die obigen Vorschriften in einem Schritt aus dem berechneten Vektor ableiten. Im folgenden bestimmen wir die Authority-Werte zu den Seiten des Webgraphen, und können die Hub-Werte dann über h = M a berechnen. Für die Berechnung von a initialisieren wir die Werte a(i) alle mit dem gleichen Wert. Das soll ausdrücken, dass initial alle Knoten als gleichwertig angesehen werden. Diesen Startvektor bezeichnen wir mit a 0. Danach werden schrittweise neue Werte berechnet, für den k-ten Schritt über: a k = M T M a k 1 Diese Gleichung erinnert sehr stark an die Vorgehensweise beim PageRank-Verfahren. Denn in der Mitte steht mit M T M letztendlich wieder ein Matrix, so dass das Vorgehen wie bei der Potenzmethode zur Bestimmung der PageRank-Werte abläuft. Allerdings gibt es hierbei einen Unterschied: M T M ist keine stochastische Matrix mit den gleichen Eigenschaften wie P. Daher ist nicht garantiert, dass der größte Eigenwert 1 ist und somit ist auch nicht gesagt, dass das Verfahren gegen einen festen Vektor konvergiert. 154

163 9.3 HITS Die Potenzmethode an sich ist jedoch auch für diesen Fall geeignet, es wird im Vergleich zu oben lediglich ein weiterer Schritt hinzugefügt: die Längennormalisierung des Vektors. Das bedeutet, dass durch die Matrixmultiplikation aus a k 1 nicht direkt a k berechnet wird, sondern ein Zwischenschritt (hier mit a k bezeichnet) eingeführt wird: a k = M T M a k 1 a k = 1 a k a k Damit hat der Vektor a immer die Länge 1 und das Verfahren konvergiert gegen den Einheitseigenvektor zum größten Eigenwert. Berechnung der Authority- und Hub-Werte Wir verwenden wieder den relativ überschaubaren Graphen aus Abbildung 9.3, der bereits zur Berechnung von PageRank-Werten herhalten musste. Zunächst erstellen wir die Adjazenzmatrix M, die folgende Form hat: M = Wir berechnen nun iterativ die Authority-Werte, aus denen wir dann die Hub-Werte ableiten können. Für die Iteration benötigen wir die Matrix M T M, die wir einmal vorausberechnen können. Multipliziert man die transponierte Fassung von M mit M selbst, so erhält man: M T M = Den Vektor a 0 initialisieren wir mit Einträgen vom Wert 1, die dann durch die Längennormalisierung zum Wert 0, 354 werden. Der Vektor a 0 hat damit also die Form: 155

164 9 PageRank und HITS a 0 = 0, 354 0, 354 0, 354 0, 354 0, 354 0, 354 0, 354 0, 354 Nach der Multiplikation mit M T M ergibt sich daraus: a 1 = M T M a 0 = 2, 83 3, 54 1, 77 3, 54 1, 77 1, 77 3, 18 1, 41 Dieser Vektor hat ein Länge von 7,38, und nach der Normalisierung ergibt sich somit der Vektor a 1 mit den Authority-Werten nach dem ersten Iterationsschritt: a 1 = 1 a 1 a 1 = 0, 383 0, 479 0, 239 0, 479 0, 239 0, 239 0, 431 0, 192 Bereits im zehnten Iterationsschritt sind die berechneten Werte relativ stabil. Man erhält folgenden Vektor für die Authority-Werte der Seiten: a 10 = 0, 395 0, 480 0, 224 0, 496 0, 261 0, 182 0, 452 0, 111 Somit werden die Seiten bezüglich ihrer Autorität folgendermaßen angeordnet: 156

165 9.3 HITS D, B, G, A, E, C, F, H Stellt man diese Werte wieder im Graphen durch Knotengröße und Farbhelligkeit dar ergibt sich der Graph in Abbildung 9.6. Abbildung 9.6: Webgraph mit Darstellung der HITS Authority-Werte über Farbhelligkeit und Knotengröße. Aus diesem Ergebnis heraus lassen sich nun in einem Schritt die passenden Hub- Werte zu den Knoten berechnen. Dazu genügt es wie bereits erwähnt den Vektor der Authority-Werte von rechts an die Adjazenzmatrix M heranzumultiplizieren und nach einer Längennormalisierung erhält man : h = 0, 410 0, 160 0, , 103 0, 255 0, 209 0, 379 Es fällt auf, dass der vierte Eintrag also der zu Knoten D gehörige einen Hub-Wert von 0 erhält. Das ist jedoch anschaulich klar: D enthält keine ausgehenden Kanten und kann somit nicht auf gute Seiten verweisen. In der formalen Berechnung läuft die Summe zur Rückrechnung der Authority-Werte auf die Hubs somit über die leere 157

166 9 PageRank und HITS Abbildung 9.7: Webgraph mit Darstellung der HITS Hub-Werte über Farbhelligkeit und Knotengröße. Menge. Entsprechend wird der Knoten D in der Graphdarstellung in Abbildung 9.7 nur durch einen Punkt repräsentiert. Es wurde bereits angesprochen, dass HITS nicht für globale Qualitätskriterien entwickelt wurde, sondern suchspezifisch angewendet wird. Eine Begründung dafür kann sein, dass eine Seite nicht bezüglich jedes Informationsbedürfnisses als Autorität gelten dürfte. Außerdem wäre es denkbar, dass es Seiten gibt, die im Zusammenhang mit einer Suchanfrage als Hub in Zusammenhang mit einer anderen Suchanfrage als Autorität auftreten. Das wäre beispielsweise dann der Fall, wenn eine Website sich inhaltlich mit dem Thema Webdesign beschäftigt und in diesem Zusammenhang viele Tools verlinkt. Dann wäre sie bezüglich der Anfrage Webdesign eher eine Autorität, bezüglich der Anfrage HTML Editoren eher ein Hub. Es stellt sich also die Frage, wie HITS suchspezifisch angewendet wird. Die Vorgehensweise ist so, dass zunächst über die Suchterme eine Ergebnismenge von Dokumenten bestimmt wird. Das kann über eines der klassischen IR-Modelle geschehen. Ein Ranking muss an dieser Stelle noch nicht vorliegen. Diese Menge der Dokumente wird als root set bezeichnet, stellt also eine Startmenge dar. Unter Verwendung des Webgraphen werden nun alle Dokumente bestimmt, die einen Link zu einem Dokument in der root set enthalten, oder aus dieser heraus selbst verlinkt werden. Abbildung 9.8 verdeutlicht, wie zur Startmenge weitere Dokumente hinzugenommen werden. Auf dieser erweiterten Menge von Dokumenten sowie den Links zwischen diesen Knoten werden nun die Hub- und Authority-Werte berechnet. Durch den Aufbau der Menge ausgehend von einer Ergebnismenge zu einer Suchanfrage, kann davon ausgegangen werden, dass alle Dokumente sich mehr oder weniger mit dem gleichen Thema beschäftigen und somit suchspezifisch sind. 158

167 9.4 Zusammenfassung Abbildung 9.8: Für HITS wird eine Startmenge mit Dokumenten (gelb) um alle Dokumente erweitert die diese referenzieren (blau) oder von diesen referenziert werden (orange). Dass die Menge überhaupt erweitert wird hat einige anschauliche Gründe. Zum einen können damit auch inhaltlich relevante Seiten erfasst werden, die keinen der Suchbegriffe selbst enthalten. Das entspricht einer ähnlichen Idee wie die Aufnahme der Ankertexte in die Dokumentbeschreibung, nämlich dass die Hyperlinks eine inhaltliche Verwandtheit der Dokumente ausdrücken. Hat man in der Startmenge eine Seite mit hohem Authority- Wert, so bekommt man über die eingehenden Links gute Hubs mit in die Dokumentemenge. Hat man einen guten Hub, so findet man über die ausgehenden Links aus der Startmenge gute Authorities. In gewissem Umfang können über dieses Verfahren sogar Sprachbarrieren überwunden werden, beispielsweise wenn eine deutsche Webseite auf englische Quellen verweist. Die Erweiterung der Startmenge birgt jedoch auch Risiken. Wenn eine Seite Inhalte zu mehreren Themengebieten bereitstellt, dann können auch nicht relevante Seiten aufgenommen werden. Handelt es sich dabei um gute Hubs, so können die nicht relevanten Seiten sogar hohe Authority-Werte erzielen, obwohl sie überhaupt nicht zur Suchanfrage passen. Diese Phänomen wird als topic drift bezeichnet. 9.4 Zusammenfassung Die Möglichkeit die Dokumente im Web und deren Hyperlinks als Graph darzustellen eröffnet neue Perspektiven für die Websuche. Bereits die Option Terme aus den Ankertexten oder Fenstern um die Ankertexte herum zur Indizierung der verlinkten Dokumente zu verwenden erlaubt teilweise eine bessere und treffendere Beschreibung von Webseiten. 159

168 9 PageRank und HITS Durch die Linkanalyse können völlig andere Aspekte der Seiten ermittelt werden. Das PageRank-Verfahren erlaubt es, statische Qualitätsaussagen zu treffen. Dazu wird anschaulich gesagt die relative Häufigkeit ermittelt, mit der ein Random Surfer auf den einzelnen Seiten landet. Der HITS Algorithmus wurde entwickelt, um nachgelagert nach einer regulären Suche ein Ranking für die Ergebnisseiten zu berechnen. Dazu werden Authority- und Hubknoten im Webgraph ermittelt, die entweder gute Inhalte bereitstellen oder auf solche verweisen. 160

169 10 Nutzerinteraktion Wir haben uns bisher hauptsächlich mit den eher technischen Aspekten der IR Systeme beschäftigt. Die Schnittstelle zum Nutzer ist allerdings ebenso wichtig und soll nun ein wenig näher beleuchtet werden. Gerade die zunehmende Nutzung von IR Systemen durch Amateure führt dabei zu besonderen Herausforderungen. Die Schnittstellen müssen wesentlich intuitiver und einfacher sein, da die Nutzer in den meisten Fällen keine professionelle Ausbildung in der Informationssuche mitbringen oder gar eine Schulung am eingesetzten IR System erfahren haben. In diesem Kapitel werfen wir zunächst einen Blick auf die Modellierung des Suchvorganges selbst, um danach die Aktionen und Aktionstypen während der Suche näher analysieren zu können. Auch die Unterstützungsmöglichkeiten durch ein IR System werden klassifiziert und feiner unterschieden, bevor wir am Ende einige Beispiele zu Nutzerschnittstellen sehen, die in der Praxis Anwendung finden oder in der Forschung untersucht werden Modellierung des Suchvorgangs Um die Interaktion mit dem Nutzer zu verstehen und verbessern zu können kann man sich zunächst mit dem Suchvorgang selbst beschäftigen. Das heißt, dass man näher untersuchen möchte, wie die Nutzer suchen und auf welchen Wegen sie ein Informationsbedürfnis zu befriedigen versuchen. Der einfachste Ansatz zur Modellierung des Suchvorganges entspricht dem Ablauf, wie er in vielen aus dem Web bekannten Suchmaschinen umgesetzt ist. Der Nutzer wird sich zunächst bewusst, dass ihm eine Information fehlt. Daraufhin formuliert er eine Anfrage und sendet diese an das IR System. Er erhält die Liste mit Ergebnisdokumenten, wertet diese aus und steht dann vor der Frage, ob er die benötigten Informationen erhalten hat. Ist dies der Fall, so ist die Suche zu Ende. Ist das Informationsbedürfnis nicht befriedigt, so muss er die Anfrage umformulieren oder gar komplett neu formulieren, um sein Informationsbedürfnis (hoffentlich) besser zu beschreiben und somit bessere Ergebnisse zu erhalten. Dieser Ablauf ist in Abbildung 10.1 als Flussdiagramm dargestellt. Dieser relativ einfache Ablauf wird von den meisten Suchsystemen abgebildet. Im Prinzip beschränkt sich die Interaktion auf die Formulierung von Anfragen und das Ausgeben der Ergebnisliste. Eventuell kann ein Relevancefeedback zur Umformulierung der Anfrage verwendet werden, da damit das Informationsbedürfnis besser beschrieben wird. Wichtig dabei ist jedoch die grundlegende Annahme, dass das Informationsbedürfnis selbst fest bleibt. 161

170 10 Nutzerinteraktion Abbildung 10.1: Flussdiagramm für ein einfaches Suchmodell des Nutzers. Daher beschäftigt sich IR vereinfacht gesagt mit zwei Abstraktionsebenen und einem Matching. Zum einen abstrahiert ein IR System Dokumente zu einer Dokumentendarstellung, zum anderen abstrahiert der Nutzer sein Informationsbedürfnis zu einer Anfrage. Zwischen diesen beiden Darstellungen wird dann wie in Abbildung 10.2 veranschaulicht ein Matching berechnet. Eine Verbesserung der Suchleistung kann an einer geeigneteren Dokumentendarstellung, einer besseren Matchingfunktion oder eine treffenderen Beschreibung des Informationsbedürfnisses ansetzen. Da die ersten beiden Punkte in einem produktiven System mehr oder weniger fix sind, kann der Nutzer in diesem Modell seinen Sucherfolg nur dadurch beeinflussen, dass er sein Informationsbedürfnis besser beschreibt. Abbildung 10.2: Matching der Abstraktion von Dokument und Anfrage in IR Systemen. Das Informationsbedürfnis bleibt fest (aus [Bat89]). Beobachten wir jedoch einen menschlichen Nutzer bei der Suche, so lassen sich viele Aktionen und Verhaltensweisen mit diesem einfachen Modell nicht abbilden. So können sich während der Suche weitere Fragestellungen ergeben, die anderer Informationen bedürfen. Will der Nutzer beispielsweise wissen was das Binary Independence Model im probabilis- 162

171 10.1 Modellierung des Suchvorgangs tischen IR ist, so muss er zwischenzeitlich eventuell recherchieren, was der Satz von Bayes aussagt. Ein anderer Grund für eine nicht-lineare Suche kann das sein, was Belkin [Bel82] als anomalous states of knowledge (ASK) bezeichnet. Diese Anomalien im Wissenszustand eines Menschen treten auf, wenn ihm Informationen fehlen um eine Aufgabe oder ein Problem zu lösen. Damit lösen ASKs letztendlich die Informationsbedürfnisse aus. Häufig fällt es aber schwer das Informationsbedürfnis klar zu beschreiben. Das kann einfach daran liegen, dass dem Menschen (oder Nutzer eines IR-Systems) schlicht weitergehende Informationen fehlen, um sein Informationsbedürfnis klar zu erfassen. Belkin argumentiert, dass es in diesen Fällen eventuell nützlich wäre, wenn ein Nutzer nicht sein Informationsbedürfnis, sondern den ASK beschreibt wie so etwas praktisch umzusetzen ist, bleibt jedoch offen. Anschaulich kann dies aber mit einem Suchverhalten des Nutzers verglichen werden, bei dem er sich der eigentlichen Fragestellung nur langsam nähert. Während die Anfragen an ein IR System zunächst eher grob und thematisch breit sind, kann er damit seine Wissenslücken vielleicht verkleinern und erhält Hinweise darauf, welche Informationen er zur Problemlösung genau benötigt. All dies läuft im Endeffekt jedoch darauf hinaus, dass die Annahme vieler IR System nicht zutrifft, dass der Nutzer sein Informationsbedürfnis kenne und das Problem primär in der Art und Weise liege, es verständlich auszudrücken. Ein ganz anderer Punkt ist, dass die Entwicklung hin zur Recherche in Online- und Hypertextsystemen zu neuen Interaktionsmöglichkeiten des Nutzers während seiner Suche nach Informationen führt. So kann er über Hyperlinks die Suchanwendung verlassen, in verlinkten Dokumenten navigieren und danach wieder zu Suchmaschine zurückkehren. All diese Aktionen gehören im eigentlichen Sinne mit zur Suche, könnten also auch im Rahmen des Suchsystems ablaufen und erfasst werden. Die Nebenläufigkeit von Prozessen in Computerprogrammen ermöglicht weiterhin dass parallele Verfolgen mehrere Suchen. Im einfachsten Fall kann dies mit mehreren Browserfenstern 1 geschehen, wobei in jedem eine eigene Suche läuft, zwischen denen die Nutzer hin- und herschalten. Ein Modellansatz, der unter anderem auch diese (Irr-)Wege während der Informationssuche zu beschreiben versucht ist das Berrypicking Modell von Marcia J. Bates [Bat89]. Bates setzt an der Annahme an, dass im klassischen und einfachen Modell aus Abbildung 10.1 von einem konstanten Informationsbedürfnis ausgegangen wird. Wie wir aber bereits gesehen haben, ist das Informationsbedürfnis in vielen Fällen nicht fix. Es zerfällt in mehrere Teilaspekte und entwickelt sich mit der Zeit, da der Nutzer neue Informationen und Erkenntnisse in das Weiterverfolgen seiner Suche mit einbezieht. Im Berrypicking Modell wird dem Rechnung getragen. Vergleichbar mit einem Beerensammler im Wald greift der Nutzer hier und da einige Dokumente, Inhaltsschnipsel und Informationen auf, die dazu führen, dass sich sein Informationsbedürfnis mit der Zeit ändert, dementsprechend passt er auch seine Anfragen an. In Abbildung 10.3 ist eine visuelle Darstellung eines solchen Suchprozesses zu sehen. 1 Oder in modernen Browsern über tabbed browsing : der Darstellung mehrerer Seiten gleichzeitig in Karteireitern. 163

172 10 Nutzerinteraktion Abbildung 10.3: Ein Suchpfad im Berrypicking Modell. Die blauen Kästchen Q 0 bis Q 5 stehen für Anfragen die der Nutzer an ein IR System stellt. Aus den Ergebnislisten zu den Anfragen zieht er einige Dokumente oder Informationsschnipsel heraus. Die grünen, mit einem T gekennzeichneten Kreise stehen für Gedanken, Einfälle oder Erkenntnisse des Nutzers, welche die Suche beeinflussen oder in eine andere Richtung lenken können. Diese Richtungswechsel und Änderungen in der Suche werden durch den verschlungenen Weg durch das Interessensgebiet verdeutlicht. Bates bettete diese Darstellung zusätzlich in ein viel größeres Universum an Wissen ein. Wichtig beim Berrypicking ist, dass die unterschiedlichen Anfragen nicht nur andere Ausdrücke oder Darstellungen des gleichen Informationsbedürfnisses sind, sondern die Entwicklung dieses Informationsbedürfnisses beinhalten. Ebenso ist nicht die Dokumentsammlung am Ende des Prozesses das eigentliche Ziel, sondern der kumulative Informationsgewinn über den Suchverlauf hinweg. Bates nennt einige Beispiele aus typischen (manuellen) Suchvorgängen im wissenschaftlichen Kontext, die sich sogar in ihrer Kombination über Berrypicking ausdrücken lassen. Dazu gehört das Verfolgen von Fußnoten oder Zitaten in Dokumenten, das Überwachen von regelmäßig veröffentlichten Journalen, das Durchstöbern inhaltlich verwandter Literatur (z.b. über örtliche Nähe bei thematischer Aufstellung in einer Bibliothek), der Einsatz klassischer IR Systeme oder die Suche nach Autoren. Offensichtlich kann eine dieser Suchstrategien eine andere anstoßen, beispielsweise wenn eine Suche in einem IR-System ein relevantes Dokument hervorgebracht hat, man dann das zugehörige Journal nach anderen interessanten Beiträgen durchforstet oder weitere Schriften des gleichen Autors sucht. Ein weiterer bemerkenswerter Punkt am Berrypicking Modell ist, dass es in gewissem Umfang auch Nutzeraktion erfasst, die nicht direkt mit dem Suchsystem zu tun haben. Die mit T bezeichneten Punkte beschreiben schließlich Vorgänge, die im Nutzer selbst ablau- 164

173 10.2 Interaktionsformen fen. Das kann auch eine Vielzahl an Aktivitäten umfassen, beispielsweise die Evaluation, Interpretation oder Zusammenfassung von Dokumenten, das Erkennen von Trends, das Ziehen von Vergleichen oder das Ausmachen von interessanten Teilgebieten. Aus diesem Grund wird der Prozess des Informationssuche gelegentlich in Suche und Retrieval auf der einen Seite und Analyse und Synthese auf der anderen Seite unterteilt Interaktionsformen Nach den soeben betrachteten Modellierungen des Suchvorganges, wollen wir nun zu den Interaktionen zwischen Nutzer und System kommen. Zunächst sollen hier die unterschiedlichen Ebenen der Nutzeraktionen beschrieben werden. Dabei orientieren wir uns an der Unterscheidung in [Bat90], welche zwischen Moves (Zügen), Tactics, Stratagems und Strategies unterscheidet. Die Moves stellen dabei die unterste Ebene dar. Sie entsprechen der kleinsten, möglichen Einheit, sozusagen den elementaren Aktionen. Es bleibt ein wenig offen, wie elementar solche Aktionen aufgefasst werden sollen. So kann die Eingabe einer Anfrage insgesamt als Move aufgefasst werden, oder bereits die Eingabe eines einzelnen Suchterms oder Operators. Auch das Verfolgen eines Hyperlinks könnte ein Move sein, ebenso wie das Überfliegen eines Dokumentes, um ein Schlüsselwort auszumachen. Die Taktiken können aus einem oder mehreren Moves bestehen und beschreiben Verhaltensweisen, mit denen der Suchprozess qualitativ verbessert oder verschnellert werden kann. Sie beinhalten eine gewisse Planung und Voraussicht, bzw. die gezielte Reaktion auf ein Ereignis oder Problem. So kann eine Taktik sein, die Suche auf ein allgemeineres Thema zu erweitern, wenn zu wenig Treffer gefunden werden, oder das Ersetzen von Termen durch Synonyme um alternative Dokumente ausfindig zu machen. Auch das Verfolgen mehrerer paralleler Suchen kann eine Taktik sein. Stratageme kombinieren mehrere Taktiken und Moves um eine Informationsdomäne besser zu erschließen oder deren Strukturen auszunutzen. Das können Aktionen wie das bereits oben erwähnte Durchstöbern eines Journals, das Verfolgen von Zitaten und Fußnoten oder die Suche nach bestimmten Autoren sein. Stratageme sind komplexer als Taktiken, da sie häufig aus Wiederholungen der gleichen Aktionen bestehen. Stratageme grenzen sich von Strategien durch ihre Beschränkung auf eine Informationsdomäne ab. Die Strategie schließlich umfasst die komplette Suche. Dabei werden Moves, Taktiken und Stratageme verwendet, kombiniert und aneinandergereiht um das eigentlich Ziel einer Informationssuche zu erfüllen. So könnte der Aufgabe sich mit einem neuen Thema vertraut zu machen mit der Strategie begegnet werden, sich zunächst in der Wikipedia einen passenden Eintrag zu suchen, dort die Verweise zu Quellen zu verfolgen, nach wichtigen verwandten Begriffen im Web zu suchen, eventuell sich in ein übergeordnetes Thema einzulesen oder Teilfelder zu identifizieren oder inhaltliche Literatur in der Bibliothek ausfindig zu machen. 165

174 10 Nutzerinteraktion Jede Ebene stellt eine Art der Nutzeraktion dar, auch wenn sich letztendlich alles auf die elementaren Moves und Kombinationen dieser Moves abbilden lässt. Wichtig dabei ist, dass eine Abfolge von Moves deutlich mehr sein kann als lediglich die Summe der Einzelaktionen. Im heutzutage sehr wichtigen Umfeld des Webs können bestimmte Bewegungstypen der Nutzer unterschieden werden. Beim Browsing folgt der Nutzer den Hyperlinks zwischen den Dokumenten. Er verfolgt dabei inhaltliche Links, die ihn zu ganz anderen Informationsquellen bringen können. Die Motivation ist eher spontan und aus dem Kontext heraus. Sehr ähnlich ist die Navigation, bei welcher der Nutzer ein vordefinierte Struktur innerhalb einer Informationsquelle nutzt, um zielgerichtet zu einem bestimmten Dokument oder Themenbereich zu gelangen. Anschaulich könnte zwischen Browsing und Navigation durch die Verwendung von Navigationsmenüs oder von dokumentinternen Hyperlinks unterschieden werden. Verwendet der Nutzer ein Suchsystem, das er mit eine Anfrage füttert, so spricht man von Querying. Das umfasst die klassischen Interaktionen mit einem IR System, kann allerdings auch alternative Formen annehmen. Schließlich wird auch häufig noch Scanning als typische Aktivität im Web aufgeführt. Als Scanning wird das Überfliegen eines Web- Dokumentes bezeichnet 2, bei dem der Nutzer nur einige wenige Aspekte aufnimmt und wenige Stichpunkte hier und dort liest. Ziel des Scannings ist die Entscheidung, ob ein Dokument interessant sein könnte. Ein weiterer Schritt kann dann je nach getroffener Entscheidung das Verwerfen oder das eingehendere Lesen des Dokumentes sein. Auch Ideen für eine neue Suchanfrage oder das Aufspüren von Hyperlinks zu potenziell interessanten Dokumenten kann als Ergebnis aus dem Scannen eines Dokumentes hervorgehen. Für die konkrete Interaktion mit dem System gibt es aus eher technischer Sicht andere Punkt die betrachtet werden sollten. Dazu gehören natürlich allgemeine Grundlagen der Gestaltung von Nutzerschnittstellen. Ein solcher Punkt ist, dass dem Nutzer informatives Feedback zu seinen Aktionen gegeben werden sollte. Das beinhaltet beispielsweise solche Dinge wie Statusmeldungen, wenn eine Anfrage längere Zeit für die Ausführung benötigt. Spezifischer für IR Systeme ist die Angabe von Hinweisen, wieso ein Dokument in die Ergebnisliste aufgenommen wurde. Websuchmaschinen bieten dazu Dokumentausschnitte an, um die Suchbegriffe im Dokumentkontext darzustellen. Diese keywords in context (KWIC) helfen dem Nutzer abzuschätzen, ob der Begriff im richtigen, intendierten Zusammenhang gebraucht wird, bzw. ob er zum Hauptthema im Dokument gehört. Auch die Möglichkeit Aktionen rückgängig machen zu können gilt als ein zentraler Punkt in der Nutzerfreundlichkeit einer Schnittstelle. Bei einem IR System kann dies bedeuten, zur letzten Anfrage und Ergebnismenge zurückschalten zu können oder im Relevance Feedback zuvor verworfene Dokument wieder zu berücksichtigen. Die Zwischenspeicherung von Ergebnissen unterstützt den Nutzer gleichzeitig auch dabei, sich nicht alles merken zu müssen. Er kann abgebrochene Suchvorgänge später an gleicher Stelle wieder fortsetzen und braucht keine Angst zu haben in Sackgassen zu laufen. 2 Natürlich können auch viele andere Medien inhaltlich überflogen werden, im Web spielt Scanning allerdings eine besondere Rolle. 166

175 10.2 Interaktionsformen Da nicht alle Nutzer gleich sind, sollte die Schnittstelle personalisierbar sein. Das kann bereits durch unterschiedliche Versionen für neue Nutzer und Experten des Systems realisiert werden. Neulinge werden von vielen Optionen oft überfordert, da sie die genaue Funktionsweise und damit deren eventuelle Auswirkungen nicht einschätzen können. Die Abbildungen 10.4 und 10.5 zeigen, wie bei Google zwischen der Standardbenutzerschnittstelle und einem Suchformular mit mehr Optionen unterschieden wird. Das Umschalten erfolgt über einen Link neben dem Eingabefeld in der Standardsuchmaske. Abbildung 10.4: Die Standardbenutzerschnittstelle bei Google. Die Unterscheidung zwischen neuen und erfahreneren Nutzern kann selbstverständlich auch viel feiner und über mehrere Schritte verlaufen. Denkbar ist ebenfalls, dass verschiedene Einstellungs- und Interaktionsmöglichkeiten einzeln nach Bedarf und Wunsch einund ausgeblendet werden können. In der Darstellung der Ergebnisse also gewissermaßen der Visualisierung der Informationen gibt es ebenfalls weitere Ansätze als das simple Auflisten. Dokumente können beispielsweise nach Medientyp oder inhaltlicher Nähe gruppiert 3 werden. Je nach Umfang der Ergebnismenge ist es auch wichtig, dem Nutzer Möglichkeiten zur Verfügung zu stellen, um die Ergebnisse geeignet zu durchstöbern. Das Portionieren in kleinere Häppchen, die schrittweise angeschaut werden können oder ein Herein- und Herauszoomen in die Ergebnismenge wird als Panning und Zooming bezeichnet. Ebenso ist statt des Zooming eine Lupenfunktion denkbar, welche einzelne Treffer und deren direkt benachbarter Kontext darstellt. Gibt es verschiedene Darstellungsmöglichkeiten der Ergebnisse, so können diese auch kombiniert werden um bestimmte Aspekte der Dokumente gleichzeitig darzustellen. Wirken sich Änderungen in einer Darstellung auf die anderen aus, so spricht man von Brushing und Linking. 3 Wie Dokumente inhaltlich gruppiert werden können ist ein Thema für sich, auf das an dieser Stelle nicht näher eingegangen werden soll. 167

176 10 Nutzerinteraktion Abbildung 10.5: Experten und erfahrene Nutzer können weitere Parameter einstellen Ebenen der Unterstützung Nachdem nun der Vorgang der Suche und die Ebenen und Möglichkeiten der Interaktion näher beleuchtet wurden, stellt sich die Frage, wie ein System den Nutzer dabei unterstützen kann. In [Bat90] werden neben unterschiedlichen Ebenen der Aktionen auch unterschiedliche Ebenen der Systemunterstützung unterschieden. Die Ebenen sind von Level 0 bis 4 durchnummeriert und können bezüglich jeder Aktion oder Aktionsebene als Unterstützungsmöglichkeit angesehen werden. Level 0 entspricht keinerlei Unterstützung durch das System. Das bedeutet, der Nutzer muss entsprechende Aktionen manuell und außerhalb des Systems durchführen. In Level 1 kann das System auf gewisse Aktionen hinweisen oder diese schlicht auflisten, ohne sie zwangsweise selbst automatisch zu unterstützen. So kann das System eventuell auf eine fehlerhafte Schreibweise der Suchterme hinweisen (da wenige Treffer gefunden wurden), ohne dass eine Korrektur vom System vorgeschlagen oder durchgeführt werden könnte. Das Durchführen von Aktionen auf Anweisung des Nutzers hin entspricht dann Level 2. Führt man obiges Beispiel fort, so entspräche dies einem Korrekturvorschlag durch das System, den der Nutzer dann übernehmen kann. In Level 3 der Unterstützung ist dann etwas mehr Cleverness nötig. Hier soll das System den Suchprozess überwachen und analysieren und Aktionen vorschlagen. Dabei wird unterschieden, ob der Nutzer die Vorschläge explizit 168

177 10.3 Ebenen der Unterstützung anfordern muss (Level 3a) oder ob das System von sich aus Vorschläge unterbreitet, sobald es einen Bedarf erkennt (Level 3b). Als Beispiel ließe sich hier eventuell anführen, dass das System erkennen könnte, wenn der Nutzer immer mehrere Ergebnisseiten durchblättert und ihn darauf hinweist, dass er die Anzahl der angezeigten Dokumente erhöhen könnte. Etwas anspruchsvoller wäre das Erkennen eines thematischen Zusammenhangs zwischen mehreren Suchanfragen und der Ableitung weiterer themenspezifischer Suchterme. In Level 4 wird das System dann selbstständig aktiv. Auch hier gibt es zwei Feinabstufungen, nämlich dass das System den Nutzer über seine Aktionen informiert (Level 4a) oder dass es die Aktionen ohne weiteren Hinweis durchführt (Level 4b). Ein Beispiel für solches eigenständiges Handeln wäre die Auflösung von Zitaten und das Hinzunehmen von zitierten Arbeiten in die Ergebnismenge. Aber auch einfachere Ansätze wie die automatische Rechtschreibkorrektur kommen hierfür in Frage. In vielen Fällen zielen Forschung und Entwicklung im IR auf eine vollständige Automatisierung der Aktionen ab, streben also das Level 4 an. Dabei stellt sich jedoch die Frage, inwieweit die Nutzer dies überhaupt wünschen. Hier unterscheidet man wohl am besten wieder zwischen Amateuren und Profinutzern. Letztere bevorzugen häufig zumindest die Option einige Automatismen abschalten oder Einstellungen manuell vornehmen zu können. Den Anfängern hingegen werden durch die Automatisierung viele Aufgaben abgenommen mit denen sie überfordert wären. Abbildung 10.6: Matrix des Forschungsstandes bezüglich Unterstützungsebene für welche Aktionsebene (gemäß [Bat90]) Bates [Bat90] stellte bereits vor einigen Jahren die Matrix in Abbildung 10.6 auf, um den Stand der Forschung und interessante Forschungsgebiete für die Nutzerunterstützung auf unterschiedlichen Aktionsebenen darzustellen. Wie gesagt ist die Vollautomation das Ziel vieler Forschungsbestrebungen im IR. Auf alle Aktionsebenen werden entsprechend über für Level 4b experimentelle Systeme angesetzt. Aktuelle und produktive Systeme unterstützen in den meisten Fällen den Nutzer im Bereich der Moves und auch dort nur auf den Leveln 1 und 2. Weitergehende Unterstützung hält Bates bei den Moves für wenig sinnvoll, da aus einzelnen, elementaren Aktionen wie den Moves kaum Vorschläge abgeleitet werden können. Das bezöge sich bereits zumindest auf die Aktionsebene der Taktiken. In diesem 169

178 10 Nutzerinteraktion Bereich der Taktiken und Stratageme auf den Unterstützungsleveln 1 bis 3 sieht sie auch die stärksten Anstrengung und interessantesten Forschungsgebiete zur Verbesserung der Nutzerunterstützung Beispiele Gegen Ende dieses Kapitels sollen noch einmal konkrete Beispiele für Nutzerinteraktion gegeben werden. Dabei sollen verschiedene Aspekte beleuchtet werden. Fangen wir zunächst bei (mehr oder weniger) gewöhnlichen Websuchmaschinen an. Die Unterstützung der Nutzer bei der Formulierung ihrer Anfrage hatten wir bereits früher erwähnt. Viele Suchmaschinen liefern dem Nutzer bereits während der Eingabe passende Ergänzungen zu Termanfängen inklusive einer Angabe der zu erwartenden Trefferzahl. Auch Rechtschreibkorrektur wird weitläufig angewendet und der Nutzer wird darauf hingewiesen, wenn der Verdacht naheliegt, dass er sich vertippt hat. Abbildung 10.7: Interface der Quintura Suchmaschine. Eine ganz andere Möglichkeit bietet die Suchmaschine Quintura 4. Hier werden nicht nur Suchergebnisse sondern auch verwandte Suchbegriffe dargestellt. Im Screenshot in Abbildung 10.7 sieht man die verwandten Suchbegriffe auf der linken Seite verteilt und in unterschiedlicher Schriftgröße dargestellt. Zentral werden die Begriff der letzten Suche dargestellt (hier: Information und Retrieval ). Fährt man mit der Maus über einen der anderen Suchbegriffe wird dieser temporär zur Suche hinzugenommen. Daher ändert sich 4 (Zuletzt aufgerufen am ) 170

179 10.4 Beispiele sofort die Liste der Suchergebnisse und auch die Menge und Darstellung der verwandten Suchbegriffe. Ein Klick auf den Suchbegriff nimmt ihn permanent in die Suche auf, was auch im Eingabefeld zu sehen ist. Andernfalls kann man einen Begriff über ein kleines Symbol mit Minuszeichen auch für die Suche ausschließen (NOT-Operator). Die beiden Pfeile über der Suchbegriffdarstellung ermöglichen es, die letzten Änderungen an der Anfrage sehr schnell und einfach rückgängig zu machen. Insgesamt erlaubt Quintura somit eine recht schöne Kombination aus Feedback, explorativer Suche und klassischer Anfrageformulierung. Gleichzeitig erhält der Nutzer direkte und informative Rückmeldung auf seine Eingaben, da die dargestellte Ergebnismenge sofort auf Änderungen reagiert. Abbildung 10.8: Snap liefert eine Vorschau zu gefundene Dokumenten. In Bezug auf die Darstellung der Ergebnisse gibt es weitere Beispiele, wie der Nutzer unterstützt werden kann. Die Suchmaschine Snap 5 liefert zum Beispiel ein großes Vorschaubild auf die gefunden Seiten (siehe Abbildung 10.8). Dies kann dem Nutzer helfen, einen ersten Eindruck über die gefundene Seite zu bekommen, ohne sie explizit aufrufen zu müssen. Eine solche Vorschau kann auch von Vorteil sein, wenn es darum geht ein bereits einmal gefundenes Dokument wieder ausfindig zu machen. Hat der Nutzer die exakte URL vergessen, kann er sich über eine solche Suche und die Vorschau eventuell an den visuellen Gesamteindruck des Dokumentes erinnern. Für das Umschalten zwischen den Previews zu den einzelnen Treffern kann der Nutzer auf die Treffer klicken, oder auch per einfacher Tastaturkommandos über die Cursortasten navigieren. 5 (Zuletzt aufgerufen am ) 171

180 10 Nutzerinteraktion Abbildung 10.9: Clusty gruppiert die gefundenen Treffer und liefert einen Überblick über diese Gruppen auf der linken Seite. Das Clusty 6 System organisiert die Suchergebnisse für den Nutzer. Es bildet Gruppen inhaltlich verwandter Dokumente und stellt diese Cluster wie in Abbildung 10.9 gezeigt auf der linken Seite dar. Wählt man einen Cluster aus, so werden die Suchergebnisse auf diese Teilgruppe eingeschränkt, der Nutzer sieht auch hier sofort die Auswirkungen seiner Aktion. Außer der Einschränkung auf Teile der Ergebnismengen erlauben die Cluster durch ihre Bezeichnung aber auch das Erkennen und Ausfindigmachen von Teilgebieten oder Spezialthemen. So lieferte die Anfrage nach Information Retrieval bei Clusty unter anderem zu den Gruppen Research, Multimedia oder Language Processing. Über die Gruppe Research erhält man den Hinweis, dass IR auch ein Forschungsthema ist, Multimedia liefert ein Teilgebiet und Language Processing ein benachbartes Themengebiet. Mit diesem Ansatz könnten also teilweise bestimmte Suchtaktiken unterstützt werden. Auch bei Factbites 7 werden Ergebnisse gruppiert. Allerdings werden hier möglichst treffende Textschnipsel zu jedem gefundenen Dokument zusammengestellt. Bereits die Darstellung macht deutlich, dass hierbei mehr als keywords in context gemeint ist. Stattdessen soll fast schon eine Erklärung des Suchbegriffes gegeben werden. Dafür spricht auch die relativ umfangreiche Darstellung der einzelnen Treffer. Wie in Abbildung zu sehen, passen in das Browserfenster kaum mehr als zwei oder drei Treffer, so dass man schnell scrollen muss. Damit ist auch klar, dass Factbites sich nicht zum Ziel setzt, dem Nutzer möglichst viele Ergebnisdokumente zu präsentieren. 6 (Zuletzt aufgerufen am ) 7 (Zuletzt aufgerufen am ) 172

181 10.4 Beispiele Abbildung 10.10: Ausführliche Treffer der Suchterme in den Dokumenten bei Factbites. Für eine explorative Suche empfiehlt sich eine visuelle Darstellung und die Anordnung ähnlicher Dokumente durch lokale Nähe. Wie die Ähnlichkeit der Dokumente definiert ist kann sehr unterschiedlich sein. So können für Bilder Bildinformationen, Textbeschreibungen und Metadaten genutzt werden. Bilder sind auch deshalb gut für eine explorative Suche geeignet, da selbst starke Verkleinerungen meist noch relativ gut erkennbar sind. Bei Texten ist eine solche platzmäßige Komprimierung in der Anzeige schwieriger. Campbell [Cam00] realisiert eine solche Suche gewissermaßen in Anlehnung an das Berrypicking Modell. Der Nutzer durchläuft einen Pfad in der Landschaft der Dokumente und bekommt jeweils die nächsten Auswahloptionen angezeigt (siehe Abbildung 10.11). Campbell fügt der explorativen Suche allerdings noch ein Gedächtnis hinzu, so dass bisher betrachtete Objekte einen Einfluss auf die nächste Auswahl an möglichen Schritten haben. Das Gedächtnis verblasst mit der Zeit: je länger der Besuch eines Informationsobjektes her ist, desto weniger Einfluss hat es auf die Bestimmung möglicher Schritte. Geht man von Suchsystemen weg, so gibt es auch andere Möglichkeiten Nutzer bei der Informationssuche zu unterstützen. Bei den in Abbildung gezeigten Document Word Clouds [Got09] werden Termgewichte genutzt um Wörter in einem Dokument entsprechend ihrer Gewichtung größer oder kleiner darzustellen. Dieses Darstellung ist von den im Web 2.0 verbreiteten Tag Clouds inspiriert. Den Nutzern fällt es damit beim Überfliegen eines Dokuments leichter die wichtigen Begriffe im Text auszumachen und sie können damit schneller ein Urteil treffen, ob das Dokument für ihre Suche tatsächlich relevant ist. Wichtig 173

182 10 Nutzerinteraktion Abbildung 10.11: Explorative Suche mit Gedächtnis (aus [Cam00]). Abbildung 10.12: Document Word Clouds: Wichtige Begriffe im linken Dokument werden rechts größer dargestellt. dabei ist natürlich, dass aussagekräftige und vor allem die richtigen Terme hervorgehoben werden. 174

183 10.5 Zusammenfassung 10.5 Zusammenfassung Die Interaktion mit dem Nutzer spielt eine wichtige Rolle im IR. Schließlich soll ein IR System nicht nur Dokumente finden, sondern den Nutzer bei seiner Suche unterstützen. Modelle des Suchvorgangs versuchen dabei zu beschreiben, wie die Suche abläuft. Das einfache Modell aus mit linearem Verlauf aus Anfrageformulierung, Anfrage, Ergebnismenge und deren Auswertung mit eventueller Rückkopplung zur Anfragereformulierung genügt in den meisten Fällen nicht um reale Suchvorgänge zu beschreiben. Der Berrypicking Ansatz beschreibt den Verlauf einer Suche deutlich treffender. Die Aktionen des Nutzers und auch die Unterstützungsansätze durch ein IR System können in mehrere Kategorien aufgeteilt werden. Von einzelnen, elementaren Aktionen zu Suchstrategien und von keiner Unterstützung durch das System hin zur Vollautomation. Die meisten aktuellen Systeme bieten lediglich Unterstützung bei der Durchführung elementarer Aktion, während die Vollautomation häufig das Ziel experimenteller Systeme aus der Forschung ist. Dennoch sollte dem Nutzer die Wahl gelassen werden, die automatische Unterstützung zurückzufahren oder komplett auszuschalten. 175

184 10 Nutzerinteraktion 176

185 11 Language Models Language Models stellen formale Beschreibungen für eine Sprache dar, genauer genommen für die Erzeugung von Texten die den Regeln dieser Sprache entsprechen. Es handelt sich um probabilistische Modelle zur Spracherzeugung. Die Idee Language Models für IR einzusetzen basiert darauf, dass sich zu einem existierenden Text über die darin enthaltenen Wörter ein passendes Modell ableiten läßt. Für den Einsatz in IR Systemen kann man somit zu jedem Dokument eine entsprechendes Modell generieren und zu einer Anfrage prüfen, welches Dokumentmodell die Anfrage am ehesten erzeugen könnte. Wir werden in diesem Kapitel Language Models zunächst allgemein betrachten, die ihren Ursprung und Haupteinsatz eigentlich in anderen Anwendungsgebieten finden. Danach können wir uns deren Einsatz für IR-Zwecke genauer anschauen und auf die Umsetzung des Language Model Ansatzes in der IR Praxis eingehen Einführung in Language Models Statistische Sprachmodelle auf dem Gebiet des IR wird meist der englische Begriff Language Models (LM) verwendet sind ein Ansatz um die Erzeugung von Texten zu beschreiben. Es wird also ähnlich wie bei Grammatiken angegeben, wie Zeichenketten aus Symbolen oder Token zusammengesetzt werden. Die Symbole, bzw. Token entsprechen bei LM meist ganzen Wörtern einer (natürlichen) Sprache. Ein Unterschied zu den Grammatiken liegt darin, dass bei der Erzeugung von Texten Wahrscheinlichkeitsverteilungen eine große Rolle spielen. In einem LM wird nämlich jedem Token eine Wahrscheinlichkeit für dessen Erzeugung zugewiesen. Weiterhin gibt es eine Wahrscheinlichkeit dafür, dass die Erzeugung eines Textes abgeschlossen ist, d.h. dass keine weitere Token erzeugt werden. Dass das Ende der Wortfolge ausdrücklich modelliert werden muss, liegt darin, dass die Wahrscheinlichkeiten aller möglichen Aktionen also ein bestimmtes Wort erzeugen oder die Erzeugung beenden sich in der Summe zu 1 ergeben muss. Im Modell lässt sich dies beispielsweise über ein ausgewiesenes stop Token ausdrücken. Insgesamt führt dies dazu, dass bezüglich eines bestimmten LM einige Texte wahrscheinlicher erzeugt werden als andere. Umgekehrt heißt das auch, dass man einem gegebenen Text eine Wahrscheinlichkeit zuordnen kann, unter der er mit einem ebenfalls gegebenen LM erzeugt wurde. Auch hier spielt letztendlich wieder die Wahrscheinlichkeit für das Ende einer Wortsequenz eine Rolle, denn damit summieren sich die Wahrscheinlichkeiten aller erzeugbaren Texte ebenfalls zu einem Wert von 1 auf. 177

186 11 Language Models Ein einfaches Language Model Gehen wir von einem sehr einfachen Sprachmodell M E aus, das Texte mit den Wörtern Katzen, Mäuse, Bananen, Hunde und fangen erzeugen kann. Dabei legen wir die folgende Wahrscheinlichkeitsverteilung zugrunde: P (Katzen) = 0, 3 P (Mäuse) = 0, 2 P (Bananen) = 0, 05 P (Hunde) = 0, 1 P (fangen) = 0, 25 P (stop) = 0, 1 Betrachten wir nun den Satz Katzen fangen Mäuse so wird dieser in M E mit folgender Wahrscheinlichkeit erzeugt: P ME (Katzen fangen Mäuse) = P (Katzen) P (fangen) P (Mäuse) P (STOP) = 0, 0015 Es soll noch einmal darauf hingewiesen werden, dass wir die Wahrscheinlichkeit für stop mit berücksichtigen müssen, um das Ende der Zeichenkette zu modellieren. Für andere Texte sehen die Wahrscheinlichkeiten anders aus, für Hunde fangen Bananen beispielweise: P ME (Katzen fangen Mäuse) = P (Hunde) P (fangen) P (Bananen) P (STOP) = 0, An dieser Stelle sollte noch angemerkt werden, dass sich mit diesem Modell auch Wortfolgen erzeugen lassen, die nicht sonderlich viel Sinn ergeben, so etwa Bananen Mäuse fangen fangen mit einer Wahrscheinlichkeit von 0, Ein weiterer interessanter Punkt ist, dass man bei mehreren gegebenen LM und einer Wortfolge jeweils die Wahrscheinlichkeiten bestimmen kann, mit denen die Folge von den einzelnen LM erzeugt wurde. Damit lässt sich dann auch bestimmen, welches Modell den Text wohl am ehesten erzeugt hat. Dies ist ein Punkt, der letztendlich beim Einsatz im IR von Interesse ist, wie wir später sehen werden. Ein weiteres, alternatives Language Model Nehmen wir zum obigen Modell M E noch ein weiteres Modell M E2 hinzu, das die gleichen Wörter aber mit unterschiedlicher Wahrscheinlichkeit erzeugt: 178

187 11.1 Einführung in Language Models P (Katzen) = 0, 2 P (Mäuse) = 0, 15 P (Bananen) = 0, 1 P (Hunde) = 0, 25 P (fangen) = 0, 15 P (stop) = 0, 15 Betrachten wir nun den Text Hunde fangen Katzen so sind die Wahrscheinlichkeiten der Erzeugung in den beiden Modellen verschieden: P ME (Hunde fangen Katzen) = 0, P ME2 (Hunde fangen Katzen) = 0, Das legt die Vermutung nahe, dass diese Wortfolge wohl eher von M E2 als von M E erzeugt wurde. Language Models finden ihren Einsatz häufig in der Erkennung gesprochener Sprache, der Digitalisierung von handschriftlichen Texten oder der Analyse von Texten zwecks Erkennung von grammatikalischen Strukturen. Für diese Einsatzzwecke wäre eine schlichte Wahrscheinlichkeitsverteilung der einzelnen Wörter bei weitem nicht ausreichend. Schließlich werden die Wörter sonst ohne ihren Kontext betrachtete, was in den obigen Beispielen unter anderem dazu führt, dass die Wahrscheinlichkeit innerhalb der Modelle für die Erzeugung von Hunde fangen Katzen genauso groß ist wie die für Katzen Hunde fangen. Daher werden für die erwähnten Anwendungen die Verteilungen von den zuvor erzeugten (bzw. bei der Analyse von den zuvor gesehenen) Wörtern abhängig gemacht. Will man also die Wahrscheinlichkeit für eine bestimmte Wortsequenz bestimmen, so muss man mit bedingten Wahrscheinlichkeiten arbeiten: P (w 1 w 2 w 3 w 4 w 5 ) = P (w 1 ) P (w 2 w 1 ) P (w 3 w 1 w 2 ) P (w 4 w 1 w 2 w 3 ) P (w 5 w 1 w 2 w 3 w 4 ) Je nachdem, von wie vielen vorhergehenden Wörtern man die Wahrscheinlichkeit abhängig macht, erhält man einen unterschiedlichen zu betrachtenden Horizont. Grenzt man obiges Beispiel auf einen Horizont von 2 vorhergehenden Wörtern ein, so erhält man: P (w 1 w 2 w 3 w 4 w 5 ) = P (w 1 ) P (w 2 w 1 ) P (w 3 w 1 w 2 ) P (w 4 w 2 w 3 ) P (w 5 w 3 w 4 ) 179

188 11 Language Models Gelegentlich führt man als Erweiterung noch ein künstliches Token s für den Sequenzanfang ein, so dass man alle Wahrscheinlichkeiten nach dem gleichen Muster darstellen kann: P (w 1 w 2 w 3 w 4 w 5 ) = P (w 1 ss) P (w 2 sw 1 ) P (w 3 w 1 w 2 ) P (w 4 w 2 w 3 ) P (w 5 w 3 w 4 ) Durch die Beschränkung auf einen endlichen Horizont kann man LM durch Markow- Ketten darstellen 1. Die zuvor erzeugten und noch betrachteten Wörter bilden die Zustände aus, von denen die Übergangswahrscheinlichkeiten in den nächsten Zustand und hierbei auch die Produktion eines weiteren Wortes abhängen. Betrachtet man die letzten n Wörter erhält man eine Markow-Kette n-ter Ordnung. Der endliche Horizont lässt sich auch anders interpretieren. Betrachtet man bei der Analyse eines Textes zwei vergangene Wörter, um die Wahrscheinlichkeit des nächsten Wortes zu bestimmen, so hat man es effektiv mit Trigrammen zu tun: man betrachtet die Dreiergruppe aus den zwei vorherigen und dem aktuellen Wort. Ein solches LM wird daher auch als Trigramm LM bezeichnet. Fließt nur ein vorhergehendes Wort in die bedingten Wahrscheinlichkeiten ein, so erhält man entsprechende Bigramm Modelle und bei dem eingangs verwendeten, sehr einfachen Modell, das keine vorhergehenden Wörter betrachtete spricht man von einem Unigramm LM. Um Sprachmodelle aus Beispieltexten abzuleiten, muss man entsprechend umfangreiche Daten an n-grammen aufweisen können, wobei n von der gewählten Ordnung der Markow-Kette abhängt. Auf Verfahren zur Ableitung der bedingten Wahrscheinlichkeiten aus solchen Trainingsdaten soll an dieser Stelle nicht eingegangen werden. Wir werden uns in den nächsten Abschnitten stattdessen auf den konkreten Einsatz und die praktische Umsetzung von LM im IR beschränken Einsatz von Language Models im IR Ziel des LM Ansatzes im IR ist es, die Wahrscheinlichkeit P (d q) zu bestimmen. Diese lässt sich interpretieren als die Wahrscheinlichkeit, dass ein Dokument d aus einer Anfrage q hervorgeht, bzw. dass es zu dieser Anfrage relevant ist. Letztendlich will man dann zu einer gegebenen Anfrage die Dokumente nach absteigender Wahrscheinlichkeit P (d q) ranken. Das erinnert an den Einsatz der Wahrscheinlichkeit P (R = 1 d, q) im BIM in Kapitel 7, hier wird jedoch der Umweg über die Zufallsvariable R für Relevanz weggelassen. Ganz ähnlich wird die Wahrscheinlichkeit jedoch auch hier mit dem Satz von Bayes umgeformt, um eine Form mit anderen Wahrscheinlichkeitstermen zu erhalten, die besser handhabbar sind: 1 Auch die Modellierung des Random Surfers für das PageRank Verfahren lief auf eine Darstellung durch Markow-Ketten hinaus. Hier hing die Wahrscheinlichkeit eine bestimmte Seite im Web zu besuchen von der zuletzt besuchten Seite ab. Diese einfache Abhängigkeit der Wahrscheinlichkeiten von nur einem vorherigen Ereignis erlaubt die geeignete Darstellung als stochastische Matrix. 180

189 11.2 Einsatz von Language Models im IR P (d q) = P (q d) P (d) P (q) Auf der rechten Seite stehen nun die Wahrscheinlichkeiten P (d), P (q) und P (q d). P (q) bezeichnet die Wahrscheinlichkeit für eine bestimmte Anfrage. Diese ist bei einer gegebenen Anfrage q immer gleich, stellt also für das Ranking der Dokumente bezüglich dieser Anfrage einen konstanten Wert dar. Somit kann dieser Term vernachlässigt werden, da er an der Ranking-Reihenfolge nichts ändert. Die Wahrscheinlichkeit P (d) bezeichnet die Wahrscheinlichkeit, dass ein bestimmtes Dokument relevant ist. Hier wird meistens eine Gleichverteilung angenommen, so dass dieser Teil ebenfalls als Konstante behandelt und ignoriert werden kann. Alternativ könnten hier allerdings auch statische Qualitätsmaße eines Dokumentes in die Bewertung einfließen. So könnten Dokumente mit neuerem Datum, höherer Autorität 2 oder Nutzerbewertung entsprechend eine höhere Wahrscheinlichkeit P (d) zugewiesen bekommen. Solche statischen Qualitätsmaße fließen dann zwar in das endgültige Ranking mit ein, sind jedoch naturgemäß von der Anfrage unabhängig und können vorberechnet werden. Somit verbleibt nur die Wahrscheinlichkeit P (q d) als einziger zum Anfragezeitpunkt zu berechnender und ausschlaggebender Faktor für das Ranking. An dieser Stelle kommen dann auch LM zum Einsatz. Die Idee ist es, aus den Dokumenten jeweils eigene Sprachmodelle abzuleiten und mit diesen Modellen die Wahrscheinlichkeit zu ermitteln mit der eine bestimmte Anfrage erzeugt würde. Dieser LM Ansatz im IR wird als query likelihood bezeichnet und entspricht in etwa dem Gedankengang eines Nutzers, der sich überlegt, welche Begriffe wohl am wahrscheinlichsten in einem Dokument auftreten, an dem er interessiert sein könnte. Somit besteht die Aufgabe darin, zunächst zu jedem Dokument ein LM M d aufzustellen. Sobald dann eine Anfrage gestellt wird, muss zu jedem Sprachmodell M d die Wahrscheinlichkeit P Md (q) bestimmt werden, mit der M d die Anfrage q erzeugt. Betrachtet man P (q) und P (d) als konstant, kann das Ranking nach absteigender Wahrscheinlichkeit P Md (q) stattfinden. Für das Erstellen der LM M d zu einem Dokument d steht damit aber nur das Dokument selbst als Trainingsdatensatz zur Verfügung. Aus diesem Grund können nur sehr einfache Modelle abgeleitet werden. Es hat sich sogar gezeigt, dass die Daten in der Regel so dünn besetzt sind, dass lediglich Unigrammmodelle vernünftige Ergebnisse liefern. Modelle auf der Basis höherer n-gramme können ihre Vorteile nicht ausspielen, da schlicht nicht genügend n-gramme in einem einzelnen Dokument zur Verfügung stehen um daraus verlässliche Wahrscheinlichkeitswerte zu schätzen. Da in einem Unigramm LM die Wahrscheinlichkeit eines Wortes letztendlich völlig unabhängig von den vorherigen Wörtern ist, spielt die Reihenfolge der aufgetretenen Wörter keine Rolle mehr. Das heißt, das man letztendlich ein Bag of Words Dokumentmodell verwendet. Man verzichtet damit zwar (zwangsweise) auf einen Großteil der Mächtigkeit 2 Autorität beispielsweise im Sinne des HITS Algorithmus (s. Kapitel 9) oder eines ermittelten Expertenwertes des Autors. 181

190 11 Language Models von Language Models, allerdings wird dadurch die Berechnung der Wahrscheinlichkeiten einfacher: im Prinzip hat man es mit einer Multinomialverteilung der Terme zu tun. Eine Multinomialverteilung entspricht anschaulich gesehen einem Urnenmodell mit verschiedenartigen Kugeln und Zurücklegen. Zu jeder Kugelsorte ist deren Anteil an der Gesamtzahl der Kugeln bekannt und somit auch die Wahrscheinlichkeit eine Kugel dieser Sorte zu ziehen. In unserem Fall entsprechen die Kugelsorten den Termen und die Wahrscheinlichkeiten werden durch das LM vorgegeben. Zu einer Anfrage q interessieren wir uns nun dafür, wie wahrscheinlich es ist, genau die Terme der Anfrage aus der Urne zu ziehen. Zu beachten ist dabei, dass Terme in den Anfragen durchaus mehrfach vorkommen dürfen. Gehen wir von einem Vokabular mit den Termen t 1 bis t M aus, einem Modell M d für Dokument d und einer Anfrage q mit n Termen 3 und zugehörigen Termfrequenzen tf q (t), dann ist die Wahrscheinlichkeit für P (q d) = P Md (q) gegeben durch: P Md (q) = n! tf q (t 1 )! tf q (t 2 )!... tf q (t M )! (P M d (t 1 )) tf q (t 1) (P Md (t 2 )) tf q (t 2)... (P Md (t M )) tf q (t M ) Der Bruch, der in dieser Gleichung den erste Faktor darstellt, hängt komplett und einzig von der Anfrage q ab. Damit ist er für alle Dokumente konstant und kann in der Berechnung eines Rankings ebenfalls ignoriert werden. Im Produkt über die Wahrscheinlichkeiten P Md (t i ) fallen weiterhin alle die Faktoren zu Termen heraus, die nicht in der Anfrage auftauchen, da (P Md (t i )) tf q (t i) sich für tf q (t i ) = 0 immer zu einem Wert von 1 ergibt. Hält man sich die oben erwähnte Option offen, die Wahrscheinlichkeitsverteilung für P (d) beliebig modellieren zu wollen, so erhalten wir für die Retrievalfunktion ρ folgendes: ρ(d, q) = P (d) (P Md (t i )) tf q (t i) t i q Im Endeffekt reduziert sich also alles darauf, zu einem gegebenen Dokument die Wahrscheinlichkeiten P Md (t i ) zu schätzen Schätzen der Wahrscheinlichkeiten für LM Der Standardansatz zur Schätzung der Wahrscheinlichkeiten für LM im IR basiert auf einer Maximum Likelihood Estimation (MLE). Das bedeutet, dass man anhand der beobachteten Termzahl in den Dokumenten eine Wahrscheinlichkeit abschätzt, unter der das beobachtete Auftreten die maximale Wahrscheinlichkeit hat. Dazu verwendet man die Termfrequenzen der einzelnen Terme in den Dokumenten sowie die Länge L des Dokuments gemessen über die Gesamtzahl der enthaltenen Terme. Die Wahrscheinlichkeit einen bestimmten Term zu beobachten, kann dann über die relative Häufigkeit des Terms im Dokument geschätzt werden: 3 Der Wert von n lässt sich auch als Summe über den Termfrequenzen in der Anfrage q angeben und liegt bei: n = M i=1 tf q(t i ) 182

191 11.3 Schätzen der Wahrscheinlichkeiten für LM ˆP Md (t i ) = tf d(t i ) L d Setzt man diesen Schätzer in die Retrievalfunktion ein, so erhält man insgesamt eine Gleichung von der Form: ρ(d, q) = P (d) ( tfd (t i ) t i q L d ) tfq (t i ) Eine solche Retrievalfunktion lässt sich wiederum sehr einfach aus den Daten berechnen, die wir bereits für andere Modelle im invertierten Index abgelegt haben: Die Termfrequenzen zu einzelnen Termen in den Dokumenten und einen Ausdruck zur Dokumentlänge. Somit wäre auch hier ein einfacher Wechsel von einem bestehenden System auf der Basis eines anderen theoretischen Modells zu LM problemlos möglich. Die Schätzung der Wahrscheinlichkeiten über die relativen Häufigkeiten weist jedoch einige Probleme auf. Das liegt hauptsächlich an den verhältnismäßig kleinen Trainingsdatensätzen. Gewisse Terme können rein zufällig häufiger auftreten als andere, ohne dass sie zum eigentlichen Thema passen. Sie verzerren über ihren Beitrag zur Dokumentlänge damit auch die Wahrscheinlichkeiten der anderen Terme. Suchterme die im Dokument gar nicht auftreten, erhalten hingegen im Modell eine Wahrscheinlichkeit von 0 zugewiesen. Das bedeutet implizit, dass die Suchterme alle in einem Dokument auftreten müssen 4. In einigen Anwendungsfällen mag das sinnvoll sein, beispielsweise bei einer Websuche. Allgemein ist dies allerdings eine Einschränkung, der sich die Nutzer zumindest bewusst sein müssen. Aber auch bei seltenen Termen treten durch diese Abschätzung unerwünschte Effekte auf. Ob ein Fachbegriff in einem Dokument ein- oder zweimal auftritt, ändert kaum etwas an dessen Bezug zum eigentlichen Thema des Dokuments. Von der Wahrscheinlichkeitsschätzung für das Sprachmodell verdoppelt sich allerdings der Wert der Retrievalfunktion! Es ist also nötig, den Einfluss der in den Dokumenten beobachteten Termfrequenzen auf die Schätzungen für die Wahrscheinlichkeiten etwas abzuschwächen. Als Lösung hierfür eignet sich wieder Smoothing, das bereits im probabilistischen IR in Kapitel 7 zum Einsatz kam. Damals wurden konstante Werte zu jeder Termfrequenz addiert, um auch ungesehen Terme mit einer positiven (wenn auch sehr kleinen) Wahrscheinlichkeit auszustatten. Das wäre im Prinzip auch für den LM Ansatz tauglich. Es gibt hier jedoch auch andere Möglichkeiten, um Smoothing zu realisieren. So kann die Wahrscheinlichkeit für einen Term, der nicht im betrachteten Dokument enthalten ist, über die Wahrscheinlichkeit dieses Terms in irgendeinem (beliebigen) Dokument aufzutauchen abgeschätzt werden. Das heißt also, für den Fall, dass tf d (t) = 0 eintritt, könnte man die Wahrscheinlichkeit im Dokumentmodell durch Erfahrungen im Korpus zumindest nach oben abschätzen: 4 Das kommt daher, dass sobald ein Term aus der Anfrage im Dokument fehlt, dieser eine Erzeugungswahrscheinlichkeit von 0 zugewiesen bekommt. Diese führt über das Produkt der Wahrscheinlichkeiten insgesamt zu einem Retrievalwert von

192 11 Language Models ˆP Md (t i ) cf(t i) d D L d Eine solche Annahme für die initiale Verteilung für die Terme wird als Prior bezeichnet. Es entspricht letztendlich dem Aufbau eines LM M C über dem gesamten Korpus C. Dieses Modell direkt für unbeobachtete Terme in die dokumentbasierten LM zu übernehmen dürfte jedoch etwas überzogen sein. Schließlich würde auf diese Art und Weise ein im Korpus häufig aber im Dokument gar nicht beobachteter Term zu einer recht hohen Wahrscheinlichkeit in M d gelangen. Daher muss der globale Schätzer etwas abgeschwächt werden. Um weiterhin auch den Einfluss auf andere beobachtete Terme auszuweiten sollten diese Anpassung nicht nur für nicht vorhandene sondern für alle Terme angewendet werden. Ein Ansatz dazu besteht in der Möglichkeit die Wahrscheinlichkeitsschätzungen aus dem Gesamtkorpus mit denen aus den einzelnen Dokumenten linear zu kombinieren: ˆP M d (t i ) = λ ˆP Md (t i ) + (1 λ) ˆP MC (t i ) Der Wert λ [0, 1] ist dabei ein Parameter mit dem man den Einfluss des Smoothing bestimmen kann. Mit einem Wert von 1 schaltet man Smoothing komplett aus, bei einem Wert von 0 gibt es sozusagen nur noch Smoothing (die Terme in den Dokumenten haben keinen Einfluss mehr). Werte zwischen 0 und 1 schieben den Schwerpunkt entsprechend in die eine oder andere Richtung. Dieser Ansatz wird auch als Jelinek-Mercer Smoothing bezeichnet. Eine weitere Möglichkeit besteht darin, die bekannte Verteilungsschätzung aus dem Dokument durch die Schätzung über dem Korpus teilweise zu aktualisieren, ähnlich wie es beim probabilistischen Relevance Feedback gemacht werden konnte: ˆP M d (t i ) = tf d(t i ) + κ ˆP MC (t i ) L d + κ Auch hier beeinflusst der Parameter κ 0 die Stärke des Smoothing. Ein Wert von κ = 0 schaltet Smoothing aus, höhere Werte für κ sorgen für einen entsprechend stärkeren Einfluss des Korpusmodels M C. LM Ansatz zu IR Wir bemühen wieder den Beispielkorpus aus früheren Kapiteln über dem Vokabular V = {Kaffee, Tee, Tasse, Kanne, Wasser}. Zur Erinnerung, die Dokumente sahen folgendermaßen aus: 1. Kaffee, Kaffee 2. Tee, Tee, Tasse, Kanne, Kanne 3. Kaffee, Tasse, Tasse, Kanne 184

193 11.3 Schätzen der Wahrscheinlichkeiten für LM 4. Kaffee, Kaffee, Kaffee, Tee, Tasse, Tasse, Tasse, Kanne, Kanne, Kanne 5. Kanne, Kanne, Wasser, Wasser Zunächst schätzen wir dokumentweise die Wahrscheinlichkeiten für die Beobachtung der jeweiligen Terme. Dazu benötigen wir die Termfrequenzen und die Gesamtzahl an Termen in den Dokumenten. Nehmen wir beispielsweise Dokument d 3 heraus, so haben wir eine Dokumentlänge von vier Termen. Die Schätzer für die Termwahrscheinlichkeiten in einem LM zu d 3 sehen dann folgendermaßen aus: ˆP Md3 (Kaffee) = 1 = 4 0, 25 ˆP Md3 (Tee) = 0 = 4 0 ˆP Md3 (Tasse) = 2 4 = 0, 5 ˆP Md3 (Kanne) = 1 = 4 0, 25 ˆP Md3 (Wasser) = 0 = 4 0 Geht man für die übrigen Dokumente ähnlich vor, so erhält man insgesamt folgende Wahrscheinlichkeitsschätzungen für die Sprachmodelle der einzelnen Dokumente: ˆP (Kaffee) ˆP (Tee) ˆP (Tasse) ˆP (Kanne) ˆP (Wasser) M d1 : M d2 : 0 0, 4 0, 2 0, 4 0 M d3 : 0, , 5 0, 25 0 M d4 : 0, 3 0, 1 0, 3 0, 3 0 M d5 : , 5 0, 5 Bisher haben wir kein Smoothing eingesetzt, was zu vielen Schätzern mit einem Wert von 0 führt. Da für die Retrievalfunktion letztendlich diese Wahrscheinlichkeitsschätzungen multipliziert werden haben 0 Werte einen extremen Einfluss, da das gesamte Produkt zu 0 wird. Wenden wir also die Jelinek-Mercer Methode für Smoothing an. Dazu berechnen wir zunächst die Schätzer für die globalen Wahrscheinlichkeiten einen Term zu beobachten. Diese basieren auf der Korpusfrequenz und der Gesamtzahl an Wörtern im Korpus. Für den Term Tasse ergibt sich damit also folgendes: ˆP MC (Tasse) = cf(tasse) d D L d = 6 25 = 0, 24 Berechnet man die Schätzer für alle Terme, erhält man ein Sprachmodell M C für den gesamten Korpus, das auf folgenden Wahrscheinlichkeiten beruht: 185

194 11 Language Models ˆP MC (Kaffee) = 6 25 ˆP MC (Tee) = 3 25 ˆP MC (Tasse) = 6 25 ˆP MC (Kanne) = 8 25 ˆP MC (Wasser) = 2 25 = 0, 24 = 0, 12 = 0, 24 = 0, 32 = 0, 08 Für das Smoothing werden nun die Wahrscheinlichkeiten aus den Dokumentmodellen mit dem globalen Modell linear kombiniert. Wir besetzen hier den Parameter λ mit einem Wert von 0,5. Damit werden das globale Modell und das Dokumentmodell gleich gewichtet. Die Wahrscheinlichkeit für den Term Tasse in Dokument d 3 ändert sich damit folgendermaßen: ˆP Md3 = 0, 5 0, 5 + (1 0, 5) 0, 24 = 0, 37 Führt man Smoothing für alle Terme in allen Dokumentmodellen durch, so sehen die Wahrscheinlichkeitswerte so aus: ˆP (Kaffee) ˆP (Tee) ˆP (Tasse) ˆP (Kanne) ˆP (Wasser) M d1 : 0, 62 0, 06 0, 12 0, 16 0, 04 M d2 : 0, 12 0, 26 0, 22 0, 36 0, 04 M d3 : 0, 25 0, 06 0, 37 0, 29 0, 04 M d4 : 0, 27 0, 11 0, 27 0, 31 0, 04 M d5 : 0, 12 0, 06 0, 12 0, 41 0, 29 Wie bereits in vorherigen Beispielen stellen wir die Anfrage Tasse Kanne. Über die Sprachmodelle berechnen wir nun die Wahrscheinlichkeit, dass ein Dokument die Anfrage erzeugt. Für Dokument d 1 geben wir die komplette Berechnung exemplarisch an: ρ(d 1, Tasse Kanne) = ( ˆPMd1 (Tasse) ) tf q (Tasse) ( ˆPMd1 (Kanne) ) tf q (Kanne) = (0, 12) 1 (0, 16) 1 = 0, 019 Insgesamt erhält man über alle Dokumente hinweg die folgenden Retrievalwerte: 186

195 11.4 Praktische Umsetzung ρ(d 1, q) = 0, 019 ρ(d 2, q) = 0, 079 ρ(d 3, q) = 0, 105 ρ(d 4, q) = 0, 084 ρ(d 5, q) = 0, 049 Damit erhalten wir also das Ranking d 3, d 4, d 2, d 5 und d 1. Es fällt auf, dass der Retrievalwert selbst für Dokument d 1 größer als 0 ist, obwohl d 1 keinen der Suchterme enthält. Das liegt am Smoothing, da hierdurch selbst im Dokument ungesehene Terme im LM eine kleine Wahrscheinlichkeit für ihre Erzeugung zugewiesen bekommen. Ob man solche Treffer dem Nutzer anzeigen sollte ist jedoch fraglich. Im Beispiel haben wir den Parameter λ ohne weitere Erklärung oder Motivation auf einen Wert von 0,5 gesetzt. In einem tatsächlichen IR System wird man etwas mehr Arbeit in die Wahl dieses oder eines anderen Smoothing-Parameters stecken müssen. Dazu kann auf einem Evaluationskorpus die Performanz des Systems bei verschiedenen Parametereinstellungen optimiert werden. Eine weitere Möglichkeit besteht darin, die Parameter in Abhängigkeit von der Query-Länge zu wählen. Bei einer kurzen Anfrage mit wenigen Termen kann beispielsweise mit schwächerem Smoothing gearbeitet werden als bei längeren Anfragen mit vielen Termen 5. Auf der Basis von Sprachmodellen lassen sich auch andere Ansätze vergleichen. Anstatt Modelle zu den Dokumenten zu erstellen und dann die Wahrscheinlichkeit zu berechnen, mit der ein Dokumentmodell die Anfrage erzeugt kann auch anders herum vorgegangen werden. Man stellt ein LM zur Anfrage auf und prüft, mit welcher Wahrscheinlichkeit dieses ein Dokument erzeugt. Schließlich, könnte man auch Sprachmodelle sowohl für die Dokumente als auch für die Anfrage erzeugen und die Modelle über eine geeignete Metrik miteinander vergleichen. Dieser Ansatz läuft letztendlich auf einen Vergleich der Wahrscheinlichkeitsverteilungen in den jeweiligen Modellen hinaus Praktische Umsetzung Für die Umsetzung eines IR Systems auf der Basis von Sprachmodellen benötigt man prinzipiell wiederum nur die üblichen Zutaten. Für die Schätzung der Termwahrscheinlichkeiten innerhalb eines Dokumentes wird auf die Dokumentlänge und die Termfrequenzen 5 Bei wenigen Anfragetermen kann man relativ gefahrlos verlangen, dass sie alle im Dokument enthalten sein sollen. Bei längeren Anfragen jedoch etwa einem ganzen Textabsatz sollte es jedoch durchaus erlaubt sein, dass nicht alle Terme der Anfrage auch im Dokument enthalten sind. 187

196 11 Language Models zugegriffen. Die Termfrequenzen legt man wie gehabt in einem invertierten Index ab, die Dokumentlänge in einer weiteren, dokumentorientierten Datenstruktur. Für das Smoothing braucht man dann noch Angaben zu den Korpusfrequenzen und der Summe aller Dokumentlängen. Die Korpusfrequenz eines Terms kann entweder aus der Summe der Termfrequenzen berechnet werden, oder aber wie die Dokumentfrequenzen im Vokabular beim Term gespeichert werden. Damit sind alle nötigen Daten für die Anwendungen eines IR Ansatzes auf Language Model Basis vorhanden. Beim Berechnen der Retrievalfunktion stellt sich jedoch noch ein anderes, eher technisches Problem. Es werden viele, sehr kleine (Wahrscheinlichkeits-)Werte miteinander multipliziert. Dabei stösst man ähnlich wie beim BIR schnell an die Grenzen der Rechengenauigkeit. Entsprechend kann man auch hier wieder den Logarithmus als monotone Funktion anwenden, so dass man letztendlich mit einer Summe statt einem Produkt hantieren kann: ρ (d, q) = log t i q ( ˆPMd (t i ) ) tf q (t i ) = log ( ˆPMd (t i ) ) tf q (t i ) t i q = ( tfq (t i ) log ( ˆPMd (t i ) )) t i q Eine weitere Schwierigkeit stellt sich bezüglich der Dokumente. Wie wir anhand des Beispiels gesehen haben, wird durch das Smoothing jedem Dokumentmodell eine kleine Wahrscheinlichkeit zugewiesen eine gegebene Anfrage zu erzeugen. Dementsprechend müsste prinzipiell die Retrievalfunktion für alle Dokumente ausgewertet werden. Dies ist jedoch wenig sinnvoll. Stattdessen kann man das Vorhandensein zumindest eines Suchterms verlangen. Dass führt dann in Kombination mit der Logarithmierung dazu, dass man wieder auf ein Akkumulatorenkonzept zurückgreifen kann. Wir beschreiben hier wie schon beim Vektorraummodell wieder eine term-at-a-time Vorgehensweise, das heißt man geht die Anfrage Term für Term durch. Zunächst berechnet man für jeden Term den globalen Schätzer zu dessen Auftrittswahrscheinlichkeit. Danach durchläuft man die Postingliste und bestimmt für jeden Eintrag die dokumentspezifische Auftrittswahrscheinlichkeit. Je nach Smoothing-Ansatz werden die Wahrscheinlichkeiten miteinander verrechnet, man logarithmiert das Ergebnis und multipliziert anschließend noch mit der Termfrequenz in der Anfrage. Diese Zwischenwerte werden für jedes angetroffene Dokument in einem Akkumulator zwischengespeichert. So verfährt man für alle Einträge in den Postinglisten, sortiert die Ergebnisdokumente absteigend nach den in den Akkumulatoren eingetragenen Werten und erhält damit die gerankten Ergebnisse. 188

197 11.5 Zusammenfassung Ähnlich wie beim Vektorraummodell sind hierbei einige Möglichkeiten denkbar, um die Effizienz des Ansatzes zu steigern. An dieser Stelle soll jedoch nicht näher auf solche Optimierungsverfahren eingegangen werden Zusammenfassung Language Models sind ein weiteres theoretisches IR Modell. Sie basieren auf erzeugenden Sprachmodellen und bestimmen letztendlich eine Wahrscheinlichkeit mit der eine Anfrage aus einem Dokument hervorgeht. Die Ergebnisdokumente können dann nach absteigender Wahrscheinlichkeit ausgegeben werden, mit der sie die Anfrage erzeugen. Smoothing spielt eine wichtige Rolle im LM Ansatz. Dies liegt insbesondere daran, dass in Sprachmodellen den nicht gesehenen Termen eine Wahrscheinlichkeit von 0 zugewiesen wird. Somit erhält über das Produkt dieser Wahrscheinlichkeiten auch das Dokument insgesamt ein Wahrscheinlichkeit von 0, die Anfrage mit einem solchen Term zu erzeugen. Man kann diese Schwachstelle ausgleichen, indem man mit Hilfe von Smoothing die Auftrittswahrscheinlichkeiten eines Terms im Gesamtkorpus in die Dokumentmodelle einfließen lässt. Von der Umsetzung her können Sprachmodelle sehr einfach in ein bestehendes Vektorraum- oder probabilistisches Modell integriert werden. Ein invertierter Index und wenige zusätzliche Angaben zu Korpusfrequenz und Dokumentlänge genügen, um LM effizient umzusetzen. 189

198 11 Language Models 190

199 12 Cross Language Information Retrieval Bisher haben wir uns mit IR Systemen beschäftigt, die auf Dokumenten operieren, welche alle in der gleichen Sprache verfasst sind. Wir hatten zwar die Spracherkennung als eine Aufgabe in der Vorverarbeitung kurz erwähnt, das daraus gewonnene Wissen über die Sprache eines vorliegenden Dokumentes sollte jedoch lediglich helfen, danach die richtigen Werkzeuge beispielsweise für die Tokenisierung, die Lemmatisierung, das Stemming oder die Stopworterkennung auszuwählen. Beim Cross Language Information Retrieval (CLIR), also dem IR über Sprachgrenzen hinweg, geht es um mehr. Hier gibt es zumindest Unterschiede zwischen der Sprache der Dokumente und der Sprache der Anfragen. Das bedeutet, dass man beispielsweise Anfragen auf Deutsch mit englischen Dokumenten in Einklang bringen muss. Die Situation kann aber noch komplexer werden, nämlich wenn ein CLIR System mit Anfragen und Dokumenten in jeweils mehreren verschiedenen Sprachen umgehen können soll. In diesem Kapitel gehen wir auf die Besonderheiten beim CLIR ein, insbesondere natürlich auf Herangehensweisen und Retrievalmethoden. Für den Ansatz der Language Models werden wir eine recht einfache Erweiterung für den mehrsprachigen Fall sehen. Schließlich wird am Ende des Kapitels die Explizite Semantische Analyse vorgestellt, die sich ebenfalls sehr elegant auf Dokumente in verschiedenen Sprachen ausdehnen lässt Einsatzgebiete des CLIR IR auf der Basis von Dokumenten in verschiedenen Sprachen kann in unterschiedlichen Fällen von Interesse sein. Bereits im Webumfeld hat es eine Suchmaschine mit Dokumenten und Anfragen in unterschiedlichen Sprachen zu tun. Auch hier ist es für das IR System wichtig zu wissen, in welcher Sprache die Anfrage gestellt wurde, so dass dem Nutzer entsprechende Dokumente in der gleichen Sprache zurückgeliefert werden können. Diesen Fall könnte man jedoch eher als Multi Language Information Retrieval bezeichnen, da das IR System zwar mit verschiedenen Sprachen umgehen können muss, die Sprachen untereinander allerdings in gewissem Sinne unabhängig sind. Beim Cross Language Information Retrieval geht es vereinfacht gesagt darum, zu einer Anfrage in einer gegebenen Sprache Dokumente auch in anderen Sprachen zu finden und zurück zu liefern. Oder noch allgemeiner: zu einer Anfrage in beliebiger Sprache relevante Dokumente in ebenfalls beliebiger Sprache zu finden. Einsatzszenarien für dieses Information Retrieval über Sprachgrenzen hinweg gibt es einige. 191

200 12 Cross Language Information Retrieval (a) (b) Abbildung 12.1: Google Bildersuche nach sailing boat (a) und segelboot (b). Im einfachsten Fall eignet sich CLIR bei der Unterstützung mehrsprachiger Nutzer. So kann ein Nutzer über sehr gute passive Sprachkenntnisse verfügen, d.h. er ist in der Lage Texte in einer Fremdsprache gut nachvollziehen und verstehen zu können. Die aktiven Sprachkenntnisse sind allerdings in der Regel weniger gut entwickelt, d.h. es fällt einem Nutzer häufig deutlich schwerer einen eigenen Text in der Fremdsprache zu formulieren. Das führt dann auch dazu, dass es dem Nutzer unter Umständen schwer fällt eine gute Anfrage zu formulieren, um Dokumente in einer anderen Sprache zu erhalten. Und selbst wenn die aktiven Sprachkenntnisse gut ausgebildet sind, macht es dem Nutzer das Leben einfacher, wenn er seine Anfrage lediglich einmal und nur in einer Sprache stellen muss nicht zuletzt, da er dann im Idealfall nur eine Ergebnisliste betrachten muss. In anderen Fällen sind es wirklich heterogene Korpora mit verschiedenen Sprachen, die das eigentliche Problem darstellen. Patentdatenbanken, beispielsweise auf europäischer Ebene, enthalten Dokumente in unterschiedlichen Sprachen. Eine Suche nach Patenten muss dementsprechend auf mehreren Sprachen ablaufen, damit keine relevanten Dokumente übersehen werden. Ein ähnliches Szenario findet sich sogar schon bei der Suche in Bibliothekskatalogen. Prinzipiell ist ein englischsprachiges Buch mit dem Titel Web Search Engines auch zur deutschen Anfrage Internetsuchmaschinen relevant. Auch im Bereich des Multimedia Information Retrieval, also der Suche nach Bildern, Video- oder Audiomaterial, spielt CLIR eine Rolle. Nämlich dann wenn die Suche hauptsächlich über Schlagworten und Metadaten abläuft. In Abbildung 12.1 sieht man beispielsweise die Ergebnisse zur Bildsuche nach sailing boat und segelboot bei Google. Die Bilder passen zwar jeweils thematisch zur Anfrage, allerdings gibt es zumindest in den ersten zwölf Treffern keine Übereinstimmung. 192

201 12.1 Einsatzgebiete des CLIR Die Vermutung liegt nahe, dass die Ergebnismengen sich deshalb unterscheiden, weil die einen Bilder unter dem englischen Begriff sailing boat indiziert sind, während die anderen Bilder mit segelboot verschlagwortet wurden. Dass die beiden Suchbegriffe inhaltlich das gleiche Konzept in lediglich anderen Sprachen beschreiben, scheint bei der Suche hier nicht bekannt zu sein (oder wird zumindest nicht verwendet). Entsprechend sind sprachübergreifende Suchen auch im Multimediabereich ein wichtiges Thema, insbesondere natürlich dann wenn die eigentlichen Dokumente wie bei den Bildern in Abbildung 12.1 sprachunabhängig sind. Im Bezug auf die verschiedensprachigen Korpora auf die über ein CLIR System zugegriffen wird kann man hinsichtlich der enthaltenen Dokumente etwas differenziertere Angaben machen. Hat man es mit Korpora von unabhängigen aber thematisch ähnlich ausgerichteten Dokumenten zu tun spricht man von vergleichbaren Korpora. Ein Beispiel für ein vergleichbares Korpus könnte eine Sammlung von Zeitungsartikeln sein, die im gleichen Zeitraum aber in verschiedenen Zeitungen und Sprachen erschienen sind. Bei einem parallelen Korpus hingegen stehen die Dokumente als Übersetzungen zur Verfügung. Das heißt, dass es zu jedem Dokument (im Idealfall) eine inhaltlich gleichwertige Übersetzung in alle anderen Sprachen gibt. Ein Beispiel hierfür wären offizielle Dokumente der Europäischen Union, die in allen Sprachen der Mitgliedsländern veröffentlicht werden müssen. Gibt es nicht zu allen Dokumenten Übersetzungen, sondern sind nur zu einigen Dokumenten und Sprachen die inhaltliche Übereinstimmung bekannt, so wird gelegentlich auch die Bezeichnung ausgerichteter Korpus (aligned corpus) verwendet. Ein prominentes Beispiel in diesem Fall wären die Wikipedia-Projekte in unterschiedlichen Sprachen, da hier zwischen den Einträgen in den einzelnen Sprachen durch Querverweise auf bekannte gleichwertige Einträge in anderen Sprachen verwiesen wird. Zur Evaluation von CLIR Systemen geht man prinzipiell wie bei regulären IR Systemen vor, die auf einsprachigen Korpora arbeiten. Das heißt, man stellt gemäß dem Cranfield Paradigma ein Testkorpus mit Dokumenten, eine Sammlung von Anfragen und zugehörigen Relevanzurteilen zur Verfügung. Lediglich die Sprache der Anfragen und Dokumente sind unterschiedlich. Das europäische Cross Language Evaluation Forum (CLEF) [CLEF09] stellt im Rahmen eines jährlichen Workshops solche Daten und zugehörige Tasks zur Verfügung. Der NTCIR Workshop [NP09] hat einen ähnlichen Fokus, allerdings sind hier stärker asiatische Sprachen vertreten, vor allem Chinesisch, Japanisch und Koreanisch. Auch im Rahmen der TREC [TRC09] Konferenz gab es schon CLIR Aufgaben zu meistern. Häufig werden zu Evaluationszwecken Bilinguale Szenarien aufgestellt, d.h. das Testkorpus liegt beispielsweise in Englisch vor, die Anfragen in Deutsch. Da je nach Sprachen die Aufgabe des CLIR unterschiedlich schwierig sein kann, hat man durch die bilinguale Auswertung die Chance die sprachbezogenen Stärken und Schwächen eines Ansatzes besser analysieren zu können. Um weiterhin die systematischen Vor- und Nachteile eines verwendeten theoretischen Modells beurteilen zu können werden Vergleiche zwischen dem monolingualen und bilingualen Einsatz gezogen. Das bedeutet, dass die Ergebnisse eines CLIR Systems relativ zu den Ergebnissen des gleichen Aufbaus auf einem monolingualen Evaluationsszenario angegeben werden. Damit lassen sich dann Aussagen treffen, wieviel 193

202 12 Cross Language Information Retrieval Performanz durch die Sprachunterschiede verloren geht. Je nach Aufgabe können moderne CLIR Systeme über 90% der MAP-Leistung eines monolingualen Systems erreichen CLIR auf der Basis von direkten Übersetzungen Der wahrscheinlich direkteste Ansatz für CLIR besteht in der Erstellung von Übersetzungen mit Hilfe von computerbasierten Übersetzungsprogrammen. Dabei soll an dieser Stelle auf die Übersetzung selbst zunächst noch nicht eingegangen werden, sondern wir gehen von einer abstrakten Komponente aus, welche die Funktionalität zur Übersetzung von Texten zur Verfügung stellt. Wir gehen nun der Einfachheit halber immer vom bilingualen Fall aus, in dem die Anfrage in einer Sprache L q und die Dokumente in einer anderen Sprache L D vorliegen. Prinzipiell könnte man sich dann drei Vorgehensweisen vorstellen, mit denen man an die Übersetzungen herangeht. Nehmen wir also beispielsweise an, die Anfragen liegen auf Deutsch und die Dokumente auf Englisch vor. Dann wäre der in Abbildung 12.2 dargestellte Ansatz wohl der offensichtlichste. Die Anfragen des Nutzers werden von der Sprache L q nach L D übersetzt, hier also von Deutsch nach Englisch. Danach kann die übersetzte Query mit den Dokumentdarstellungen in Sprache L D in einem Matching Prozess verglichen und eine Ergebnisliste abgeleitet werden. In diesem Fall muss für jede Anfrage eine Übersetzung durchgeführt werden. Abbildung 12.2: Übersetzung der Anfragen in die Sprache der Dokumente. Alternativ könnte man wie in Abbildung 12.3 vorgehen. Die Dokumente werden während der Vorverarbeitung in die Zielsprache des Nutzers übersetzt. Die interne Dokumentdarstellung beruht also auf der Sprache L q und nicht auf der Sprache L D. Das hat den Vorteil, 194

203 12.2 CLIR auf der Basis von direkten Übersetzungen dass der Übersetzungsvorgang nur während der Indizierungsphase ansteht, nicht aber während der Anfrage. Ein Nachteil dabei ist allerdings, dass die Sprache der Anfrage bereits zum Zeitpunkt des Aufbaus des Index festgelegt wird. Ein Wechsel hin zu einer anderen Sprache L q ist später nicht möglich, ohne dass ein neuer Index aufgebaut werden muss. Ein Ausweg wäre es, für jede mögliche Sprache der Anfrage einen eigenen Index aufzubauen und zu pflegen. Abbildung 12.3: Übersetzung der Dokumente in die Sprache der Anfrage. Die Idee mehrere Indizes für verschiedene Sprachen anzulegen wird auch in der dritten Lösungsalternative angewendet. Wie in Abbildung 12.4 zu sehen gibt es hier parallel Dokumentdarstellungen für die verschiedenen Sprachen. Darüber hinaus werden auch die Anfragen übersetzt und es werden letztendlich zwei Matchings durchgeführt. Einerseits werden die übersetzten Anfragen mit den Darstellungen der Originaldokumente verglichen und andererseits die unveränderten Anfragen gegen die übersetzten Dokumentdarstellungen. Anschließend müssen die beiden Ergebnislisten noch miteinander kombiniert werden. Dabei hilft auch die Verknüpfung der Dokumentdarstellung in den verschiedenen Sprachen. Zu jeder Darstellung ist bekannt wie die Darstellung in einer anderen Sprache aussieht, so dass man im Endeffekte auf einem künstlich erzeugten, parallelen Korpus arbeitet. Der Aufwand für diesen Ansatz ist sicherlich am höchsten, da sowohl die Dokumente als auch die Anfragen übersetzt werden müssen und für jede Sprachvariante ein eigener Index angelegt und gepflegt werden muss. Allerdings besteht auch gerade dadurch die Hoffnung, dass Schwächen in der Übersetzung auf mindestens einem der Wege weniger stark ausfallen können und sich somit die Ergebnismenge insgesamt verbessert. Um die Übersetzungen zu erzeugen kann man sehr unterschiedlich vorgehen. Der einfachste Ansatz beruht auf einer wortweisen Übersetzung basierend auf einem Wörterbuch für die Ursprungs- und Zielsprache. Bereits hier stößt man schnell auf das Problem, dass 195

204 12 Cross Language Information Retrieval Abbildung 12.4: Übersetzung sowohl der Anfragen als auch der Dokumente. es zu einem Wort in einer Sprache mehrere Übersetzungsmöglichkeiten gibt. Auf dieses Problem kann man mit einer Gewichtung reagieren, welche geläufigere Bedeutungen und Übersetzungen höher gewichten als seltene. So können mehrere Übersetzungsmöglichkeiten eines Anfrageterms über unterschiedlichen Gewichtungen mit den Dokumenttermen verrechnet werden. Darüber hinaus stellt sich die Frage wie man das Wörterbuch anwendet. Werden die Terme im Wörterbuch und in den Dokumenten über Stemming auf einen (hoffentlich korrekten) gemeinsamen Stamm reduziert, um die Übersetzung durchzuführen, oder listet das Wörterbuch Übersetzungen für jede Wortform auf? Wie können Variationen in der Groß-und Kleinschreibung behandelt werden? Wie wird mit Eigennamen umgegangen? Letzterer Punkt klingt einfacher als er tatsächlich ist. Viele Namen von Ländern und Städten werden beispielsweise übersetzt. Was in Deutsch als Mailand bezeichnet wird heißt auf Englisch Milan und auf Italienisch Milano. Auch bei Personen tritt dieses Phänomen gelegentlich auf, dem deutschen Friedrich II. (der Große) steht die englische Form Frederick II. oder die italienische Fassung Federico II. gegenüber. Auch bei Transliteration, also der Übersetzung eines Namens in ein anderes Alphabet, können solche Probleme auftreten. Dies passiert wenn beispielsweise die Aussprache des Originalnamens in der Zielsprache nachgebildet werden soll. Ein Beispiel hierfür wären die geringfügig unterschiedlichen Transliteration des Namens Andrei Markow vom kyrillischen in das 196

205 12.3 Language Models für CLIR lateinische Alphabet, der anders als im Deutschen auf Englisch meist Andrey Markov und auf Italienisch Andrej Markov ausgeschrieben wird. Etwas mehr Aufwand muss man betreiben, wenn man nicht wort- sondern satz- oder abschnittsweise übersetzt. Hierzu werden NLP Techniken eingesetzt die deutlich über den Rahmen dieser Veranstaltung hinausgehen. So müssen Satzstrukturen und Zusammenhänge zwischen einzelnen Wörtern erkannt werden um eine möglichst sinngemäße Übersetzung erzeugen zu können. Entsprechende Software wird dann selten für ein IR System entwickelt sondern als Bibliothek oder Service integriert. Im wissenschaftlichen Bereich erfreut sich der webbasierte Übersetzungsdienst von Google derzeit recht großer Beliebtheit, da er sehr einfach in bestehende Anwendungen eingebunden werden kann. Wenn man mit Dokumenten in verschiedenen, exotischen Sprachen arbeiten muss, kann es schnell passieren, dass nicht für jede Sprachkombination eine Komponente für die direkte Übersetzung zu finden ist. In diesen Fällen wird man einen Umweg über eine dritte Sprache wählen müssen, die sogenannte Pivot-Sprache. Alle Texte werden zunächst in die Pivot-Sprache übersetzt und von dort aus in die eigentliche Zielsprache. Die Fehler, Ungenauigkeiten oder Verluste an Semantik die durch zwei Übersetzungsschritte auftreten sind in der Regel erwartungsgemäß höher als bei einer direkten Übersetzung. Egal wie die Übersetzungen gewählt und durchgeführt werden, letztendlich erhält man immer eine übersetzte Fassung eines Dokumentes, welches dann als Bag of Words oder in einer anderen Darstellung im IR System hinterlegt werden kann. Prinzipiell kann danach also jedes theoretische IR-Modell angewendet werden um ein CLIR System umzusetzen Language Models für CLIR Ein theoretisches Modell in das sich eine wortweise Übersetzung sehr schön integriert läßt, ist der LM Ansatz aus Kapitel 11. Da die Idee des LM Ansatzes darauf beruht, die Wahrscheinlichkeit für die Erzeugung der Anfrage aus einem Dokument zu berechnen, lässt sich hier die Übersetzung als ein weiterführender Schritt einfügen. Das heißt, man berechnet für den Cross Language Einsatz von LM für jedes Dokument die Wahrscheinlichkeit die Anfrage zu erzeugen und diese in die verwendete Anfragesprache zu übersetzen. Betrachten wir zunächst noch einmal die monolinguale Retrievalfunktion für LM unter Einsatz des Jelinek-Mercer Smoothings und ohne Vorgewichtung der Dokumente: ρ(d, q) = (λ P Md (t i ) + (1 λ) P MC (t i )) tf q (t i) t i q Wenn wir nun davon ausgehen, dass das Dokument d in Sprache L D und die Anfrage q in Sprache L q vorliegen, dann müssen wir auch zwischen den Termen in Sprache L D und L q unterscheiden. Wir versehen daher die Termbezeichnungen t nun zusätzlich entsprechend mit einem Indexsymbol D oder q, d.h. wir bezeichnen mit t q i den i-ten Term in Sprache L q und mit t D j den j-ten Term in Sprache L D. Aus der obigen Formel wird also: 197

206 12 Cross Language Information Retrieval ρ(d, q) = (λ P Md (t q i ) + (1 λ) P MC (t q i )) tfq(t q t q i q Somit ist klar, dass die Retrievalfunktion eigentlich komplett über Termen in der Anfragesprache L q arbeitet. Die Sprachmodelle M d und M C jedoch basieren bisher noch auf Termen in der Sprache L D der Dokumente. Das heißt an dieser Stelle muss eine Anpassung stattfinden. Das Modell M d sollte die Wahrscheinlichkeit modellieren die Anfrageterme aus dem Dokument d zu erzeugen. Zusätzlich zur Frage der Erzeugung einer Anfrage (in Sprache L D ) müssen wir nun noch die Wahrscheinlichkeit berechnen, dass die Terme dieser Anfrage aus L D in die Terme der tatsächlichen Anfrage in Sprache L q übersetzt werden. Formal brauchen wir also eine Wahrscheinlichkeit P tr (t D j t q i ), mit welcher der Term t D j nach t q i übersetzt wird. Dann ergibt sich für einen Term der Anfrage die Erzeugungswahrscheinlichkeit: P Md (t q i ) = t D j V ( PMd (t D j ) P tr (t D j t q i ) ) Anschaulich gesehen, berechnet man für jeden Term t D j im Dokument d die Wahrscheinlichkeit dieses Wort zu erzeugen und dieses danach in den Term t q i zu übersetzen. Das ganze kann man dahingehend vereinfachen, dass man nicht alle Terme in d betrachtet, sondern nur die, für die es auch tatsächlich eine Übersetzung gibt 1. Bezeichnen wir mit tr 1 (t q i ) die Menge aller Terme aus L D die nach t q i übersetzt werden können, so erhält man: P Md (t q i ) = t D j tr 1 (t q i ) ( PMd (t D j ) P tr (t D j t q i ) ) Ähnlich könnte man für die Wahrscheinlichkeiten aus dem Modell M C vorgehen, welches das Auftreten von im Dokument nicht beobachten Termen modellieren soll. Verfügt man jedoch über einen geeigneten vergleichbaren Referenzkorpus C q in der Sprache L q, so kann man hierfür direkt ein globales Modell M q C einsetzen und braucht nicht den Umweg über eine Übersetzung zu gehen. Das bedeutet, dass man die Auftrittswahrscheinlichkeiten der Terme für das Smoothing über die Korpusfrequenzen im Referenzkorpus in Sprache L q berechnet. Fasst man all dies zusammen, erhält man für den CLIR Fall im Language Model Ansatz folgende Retrievalfunktion: i ) ρ CL (d, q) = λ t q i q t D j tr 1 (t q i ) ( PMd (t D j ) P tr (t D j t q i ) ) + (1 λ) P M q (tq C i ) tf q (t q i ) 1 Andernfalls ist die Wahrscheinlichkeit P tr (t D j t q i ) = 0 und hat auf das Ergebnis der Summe keinen Einfluss. 198

207 12.3 Language Models für CLIR CLIR auf der Basis des LM Ansatzes Wie im theoretischen Teil vorgegeben, betrachten wir Dokumente in englischer Sprache, in denen über deutsche Anfragen gesucht werden soll. Das (englischsprachige) Vokabular V D besteht aus den Termen forest, grade, note, piano, wing und wood. Die Dokumente sehen in ihrer Bag of Words Darstellung folgendermaßen aus: 1. note, note, piano, piano 2. forest, wing, wood, wood, wood 3. grade, piano, piano, piano 4. forest, forest, note, note, note, wood 5. grade, grade, note, note, note, wing, wing Aus diesen Dokumentdarstellungen können wir nun (englische) Language Models entwickeln, und die Auftrittswahrscheinlichkeiten über die Termfrequenzen in den Dokumenten abschätzen. ˆP (forest) ˆP (grade) ˆP (note) ˆP (piano) ˆP (wing) ˆP (wood) M d1 : 0 0 0, 5 0, M d2 : 0, , 2 0, 6 M d3 : 0 0, , M d4 : 0, , , 17 M d5 : 0 0, 29 0, , 29 0 Für das deutsche Vokabular V q verwenden wir die Terme Flügel, Holz, Klavier, Note, Notiz und Wald. Nun benötigen wir noch ein Wörterbuch, das jedem englischen Term deutsche Übersetzungen zuweist. Zusätzlich brauchen wir eine Angabe, wie wahrscheinlich die jeweilige Übersetzung ist. Wir geben die Übersetzungen nun mit den zugehörigen Wahrscheinlichkeiten in Klammern an, sofern es mehrere Übersetzungen gibt: forest: Wald grade: Note note: Note (0,2) ; Notiz (0,8) piano: Flügel (0,4) ; Klavier (0,6) wing: Flügel wood: Holz (0,9) ; Wald (0,1) 199

208 12 Cross Language Information Retrieval Damit lassen sich nun die Übersetzungen in die Sprachmodelle integrieren und somit sprachübergreifende LM bestimmen, die zu englischsprachigen Dokumenten eine Wahrscheinlichkeit angeben, eine deutsche Anfrage zu erzeugen. Für Dokument d 1 und den Term Flügel gehen wir die Berechnung detailliert durch. Es gibt zwei Terme in V D die in Flügel übersetzt werden können, nämlich wing und piano. Daher ergibt sich: P Md1 (Flügel) = P Md1 (wing) P tr (wing Flügel) + P Md1 (piano) P tr (piano Flügel) = , 5 0, 4 = 0, 2 Führt man diese Berechnungen für alle Dokumente, alle Terme und alle in Frage kommenden Übersetzungen durch, so erhält man folgende Wahrscheinlichkeitsschätzungen für die sprachübergreifenden LM zu den einzelnen Dokumenten: ˆP (Flügel) ˆP (Holz) ˆP (Klavier) ˆP (Note) ˆP (Notiz) ˆP (Wald) M d1 : 0, 2 0 0, 3 0, 1 0, 4 0 M d2 : 0, 2 0, , 26 M d3 : 0, 3 0 0, 45 0, M d4 : 0 0, , 1 0, 4 0, 35 M d5 : 0, , 37 0, 34 0 Für das globale Modell M C brauchen wir darüber hinaus noch Schätzer für das generelle Auftreten der einzelnen deutschen Terme. Hierfür nehmen wir folgende cf Werte über einem vergleichbaren Referenzkorpus an: cf(flügel) = 5 cf(klavier) = 3 cf(holz) = 5 cf(note) = 4 cf(notiz) = 7 cf(wald) = 2 Über die Anzahl aller Wörter im Referenzkorpus (hier 26) können dann die Wahrscheinlichkeiten für das Modell M C geschätzt werden. Rechnet man auch diese noch über Jelinek-Mercer Smoothing bei einem Parameterwert von λ = 0, 5 in die Sprachmodelle ein, so erhält man letztendlich folgende Wahrscheinlichkeiten: 200

209 12.4 Cross Language Explicit Semantic Analysis ˆP (Flügel) ˆP (Holz) ˆP (Klavier) ˆP (Note) ˆP (Notiz) ˆP (Wald) M d 1 : 0, 196 0, 096 0, 208 0, 127 0, 335 0, 038 M d 2 : 0, 196 0, 366 0, 058 0, 077 0, 135 0, 168 M d 3 : 0, 246 0, 096 0, 283 0, 202 0, 135 0, 038 M d 4 : 0, 096 0, 171 0, 058 0, 127 0, 335 0, 213 M d 5 : 0, 239 0, 096 0, 058 0, 263 0, 306 0, 038 Formuliert man nun eine Anfrage, so kann man für die Rankingfunktion zu jedem englischen Dokumente die Wahrscheinlichkeit berechnen, die deutsche Anfrage zu generieren. Die Berechnung verläuft nun völlig analog zum monolingualen Fall und für die Anfrage q = Flügel Notiz Holz erhielten wir folgendes Ranking: ρ CL (d 1, q) = 0, ρ CL (d 2, q) = 0, ρ CL (d 3, q) = 0, ρ CL (d 4, q) = 0, ρ CL (d 5, q) = 0, Das bedeutet, dass zu dieser Anfrage das Dokument d 2 als am relevantesten angesehen wird, gefolgt von den Dokumenten d 5, d 1, d 4 und zuletzt d 3. Auch inhaltlich lässt sich dieses Ranking recht gut nachvollziehen, insbesondere wenn man die angenommenen Wahrscheinlichkeiten für die Übersetzung mit berücksichtigt Cross Language Explicit Semantic Analysis Ein anderer Ansatz für CLIR basiert auf der Expliziten Semantischen Analyse (explicit semantic analysis, ESA) [GM07]. Bei der ESA handelt es sich um einen Ansatz der dafür gedacht war die semantische Ähnlichkeit zwischen einzelnen Wörtern oder ganzen Texten zu bestimmen allerdings zunächst nur zwischen Texten in der gleichen Sprache. Wir betrachten hier zunächst den monolingualen Fall, um dann die Cross Language Erweiterung zu ergänzen. Die Idee des ESA basiert auf der semantischen Verwandtschaft eines Textes zu sogenannten Konzepten. Die Konzepte sollen in gewissem Sinne die natürlichen Kategorien nachbilden in denen wir Menschen denken. So erkennt man beispielsweise leicht, dass die Tätigkeiten Aufsatz verfassen, Buchtext erstellen und Zeitungsartikel schreiben dem Konzept Text erstellen zuzuordnen sind. Denkt man ein wenig darüber nach, so wird 201

210 12 Cross Language Information Retrieval Abbildung 12.5: Explizite Semantische Analyse: Dokumente werden auf gemeinsame Ähnlichkeiten zu abstrakten Konzepten verglichen. klar, dass die Konzepte sehr unterschiedlich sein können. Neben konkreteren Konzepten wie Gebäude, Tier oder Fluss kann man sich Konzepte für Tätigkeiten wie Fortbewegung, Schwimmen oder Tanzen und schließlich abstrakte Konzepte wie Frieden oder Information vorstellen. Für die Bestimmung der semantischen Nähe zweier Texte d 1 und d 2 verwendet man in der ESA eine feste Menge C = {c 1, c 2, c 3,..., c n } von Konzepten und bestimmt wie in Abbildung 12.5 gezeigt die Verwandtschaft der Texte zu jedem dieser Konzepte. Drückt man die Verwandtschaft mit einem Konzept als numerischen Wert aus, so erhält man letztendlich eine Vektordarstellung zu jedem Dokument in der Form d i = (w i1, w i2, w i3,..., w in ), wobei der Eintrag w ij den Wert für die Verwandtschaft von Dokument d i zu Konzept c j darstellt. Der Vektorraum, in dem die Dokumente in dieser Form dargestellt werden wird auch als Konzeptraum bezeichnet. Die Nähe zweier Dokumente kann dann über eine Ähnlichkeitsfunktion im Konzeptraum berechnet werden, beispielsweise über das Cosinusmaß (siehe Kapitel 5). Letztendlich weist man Dokumenten eine semantische Nähe zu, wenn sie eine ähnliche Verwandtschaft zu den gleichen Konzepten aufweisen. Die Wahl der Konzepte und die Berechnung der Konzeptverwandtschaft stellen offensichtlich wichtige Zutaten in der ESA dar. Schließlich wirken sie sich direkt auf die Konzeptraumdarstellung der Texte aus. Bei der Einführung der ESA wurden klassische IR- Techniken zur Verwandtschaftsberechnung verwendet und Konzepte über Artikel in der Wikipedia realisiert. 202

211 12.4 Cross Language Explicit Semantic Analysis Die Wikipedia so die Argumentation stellt die größte, frei verfügbare Sammlung menschlichen Wissens dar. Jeder Artikel befasst sich mit einem bestimmten Thema, das meist ausführlich aber fokussiert erläutert wird. Daher werden die Artikel als Darstellung von Konzepten betrachtet. Um die Verwandtschaft zwischen einem Wort oder einem Text und einem Konzept zu bestimmen, verwendet man gewissermaßen die Retrievalfunktion aus dem Vektorraummodell. Man berechnet zunächst TF-IDF Gewichte zu den Termen der Konzeptdokumente, d.h. über dem Korpus der Wikipedia-Artikel. Die beiden Texte, deren inhaltliche Nähe man bestimmen möchte, interpretiert man dann quasi als Anfragen, bestimmt die TF-IDF Werte für die darin enthaltenen Werte und berechnet das Skalarprodukt zwischen diesen Texten und allen Termgewichten in den Konzeptdokumenten. So erhält man die Darstellung im Konzeptraum. Formal bedeutet dies, dass man für ein Konzept c i in dessen zugehörigen Konzeptdokument d(c i ) die TF-IDF Werte w TF-IDF (t j, d(c i )) zu den enthaltenen Termen t j bestimmt. Auf die gleiche Art und Weise geht man für die zu vergleichenden Texte d k vor. Die Verwandtschaft des Textes zu einem Konzept berechnet sich dann folgendermaßen: w dk,c i = t j d k w TF-IDF (t j, d(c i )) w TF-IDF (t j, d k ) Die Konzeptraumdarstellung eines Dokumentes ist dann wie in Abbildung 12.6 angedeutet der Vektor mit den Verwandtschaftseinträgen zu jedem einzelnen Konzept (dargestellt durch ihre Wikipediaartikel): d k = (w dk,c 1, w dk,c 2, w dk,c 3,..., w dk,c n ) Die semantische Nähe der beiden Dokumente d 1 und d 2 ergibt sich schließlich über das Cosinusmaß zwischen den Konzeptraumvektoren: sim ESA (d 1, d 2 ) = cos( d 1, d 2 ) = d 1 d 2 d 1 d 2 Da man mit sim ESA prinzipiell auch Anfragen und Dokumente vergleichen kann eignet sich ESA auch für Ad Hoc Anfragen im IR, bei denen es nicht um semantische Ähnlichkeit sondern um Relevanzabschätzungen zwischen Anfragen und Dokumenten geht. Was den Ansatz für CLIR so interessant macht, ist die Sprachunabhängigkeit des Konzeptraumes. Denn auch wenn in der obigen Umsetzung die Konzepte durch sprachbasierte Dokumente repräsentiert werden, sind die Konzepte selbst abstrakt und könnten auf die unterschiedlichsten Arten und Weisen dargestellt werden. Die CL-ESA [PSA08] setzt genau hierfür auf eine einfache und elegante Lösung, die sich eine Eigenschaft des Wikipediaprojektes zu Nutze macht: es gibt mehrere Wikipedias in verschiedenen Sprachen. Darüber hinaus sind die Artikel sprachübergreifend miteinander verknüpft. Gibt es einen Artikel auf Deutsch und auf Englisch, dann verweisen die beiden Artikel aufeinander. Betrachtet man die Gesamtheit aller Wikipediaartikel in verschiedenen Sprachen, so handelt es sich damit um einen ausgerichteten Korpus. 203

212 12 Cross Language Information Retrieval Abbildung 12.6: ESA auf Wikipedia Basis: Vergleich zweier Dokumente über deren Verwandtschaft zu Konzeptdokumenten. Wie in Abbildung 12.7 gezeigt kann dann die ESA sehr einfach sprachübergreifend realisiert werden. Dokumente, die beispielsweise in deutscher Sprache vorliegen, werden über die deutschsprachigen Wikpediaartikel mit einem Konzept verglichen und englischsprachige Dokumente über die Inhalte der englischen Wikipedia. Damit kann für jede Sprache ein Vektor im Konzeptraum aufgebaut wird, bei dem jeder Eintrag die Nähe zum gleichen Konzept darstellt. Von der formalen Seite der Berechnung her ändert sich damit fast nichts an der ESA, es müssen lediglich die richtigen Sprachen für die Konzeptdarstellung ausgewählt werden. Liegt ein Dokument in Sprache L vor, so muss für die Berechnung der Einträge im Konzeptraum entsprechend das Konzeptdokument d L (c i ) in der passenden Sprache verwendet werden: w dk,c i = t j d k w TF-IDF (t j, d L (c i )) w TF-IDF (t j, d k ) CL-ESA Selbst für ein einfaches Beispiel zur CL-ESA brauchen wir eine ganze Reihe an Dokumenten. Da wären einerseits die Dokumentdarstellungen der Konzepte, jeweils in verschiedenen Sprachen sowie die eigentlichen Dokumente für die es eine semantische Ähnlichkeit zu berechnen gilt. Um das Beispiel dennoch halbwegs übersichtlich zu 204

213 12.4 Cross Language Explicit Semantic Analysis Abbildung 12.7: CL-ESA: Die Konzepte werden durch verknüpfte Artikel in verschiedensprachigen Wikipedias dargestellt. halten, verwenden wir nur sehr wenige Konzepte und schränken auch das Vokabular in den Dokumenten sehr stark ein. Wir verwenden lediglich die drei in den Abbildungen 12.5 bis 12.7 dargestellten Konzepte: Baum, Haus und Katze. Zur Darstellung der Konzepte verwenden wir Auszüge aus den gleichnamigen Wikipedia-Artikeln auf Deutsch sowie den Artikeln Tree, House und Felidae 2 auf Englisch. Über diesen beiden Korpora wurde jeweils das Vokabular sehr stark reduziert und besteht aus wenigen, handverlesenen Termen, die in einem oder mehreren Dokumenten mehrfach vorkamen. Zu diesen Termen wurde jeweils die Termfrequenz in den Konzeptdarstellungen bestimmt, so dass sich für die elf Terme in V DE in den Artikeln der deutschen Wikipedia folgendes Bild ergibt: 2 Der deutsche Wikipedia Artikel Katze entspricht dem englischen Felidae Eintrag, während der englische Artikel mit dem Titel Cat dem deutschen Hauskatzenartikel gleichzusetzen ist. 205

214 12 Cross Language Information Retrieval Term d DE (c 1 ) : Katze d DE (c 2 ) : Haus d DE (c 3 ) : Baum Baum Familie Fell Gebäude Haus Holz Katze Krone Raubtier Stamm Wurzel Für die englischen Konzeptdokumente wurden zwölf Terme in das Vokabular V EN aufgenommen, die folgendermaßen verteilt sind: Term d EN (c 1 ) : Felidae d EN (c 2 ) : House d EN (c 3 ) : Tree buidling carnivorous cat construction family house human plant size species tree wood Aus diesen Daten wurden nun (wie in Kapitel 5) TF-IDF Werte für die Terme in den einzelnen Konzepten errechnet. Da einige Terme in alle Konzeptdokumenten auftreten, wurde die Anzahl der Dokumente im Korpus für die IDF Berechnung in diesem Beispiel nicht mit 3 sondern mit einem Wert von 4 angesetzt. Andernfalls wäre der IDF Wert dieser Terme auf 0 gesunken und hätte damit alle zugehörigen TF-IDF Werte ebenfalls auf 0 gedrückt. Die geringe Anzahl an Dokumenten und die dadurch verschobenen Werte für die Dokumentfrequenzen rechtfertigen diesen Schritt zum Zwecke des Beispiels. Daraus ergeben sich die Gewichtswerte der Terme für die deutschen Korpusdokumente in der Form von: 206

215 12.4 Cross Language Explicit Semantic Analysis und für die englischen Dokumente: Term d DE (c 1 ) d DE (c 2 ) d DE (c 3 ) Baum , 45 Familie 1, 37 0, 5 1, 12 Fell 1, Gebäude 0 7, 83 0 Haus 2, 11 26, 49 0 Holz 0 0, 9 13, 55 Katze 59, Krone 0 0 8, 43 Raubtier 3, Stamm 1, , 92 Wurzel , 06 Term d EN (c 1 ) d EN (c 2 ) d EN (c 3 ) buidling 0 3, 91 0, 3 carnivorous 2, cat 19, construction 0 4, 52 3, 61 family 1, 51 2, 11 0 house 0 34, 92 0 human 0, 12 0, 62 0, 25 plant , 24 size 0, 9 0 1, 51 species 4, , 52 tree 0, , 05 wood 0 1, 51 6, 92 Die Dokumente für die wir die semantischen Ähnlichkeiten berechnen wollen, kommen für dieses Beispiel ebenfalls aus der Wikipedia. Es handelt sich zunächst jeweils um den deutschen und englischen Artikel zum Thema Kratzbaum, bzw. Scratching Post, die wir nun mit d 1 und d 2 bezeichnen. Die Dokumente bestehen aus folgenden Termen des deutschen und englischen Vokabulars, die Termfrequenzen sind in Klammern angegeben: d 1 : Baum(2), Katze (3) d 2 : cat (10), tree (1), wood (2) Berechnet man nun die TF-IDF Termgewichte dieser beiden Dokumente über dem deutschen und englischen Korpus der Konzeptdokumente, so erhält man folgende Vektordarstellung bezüglich des Vokabularraumes: 207

216 12 Cross Language Information Retrieval d V DE 1 = ( 1, , ) d V EN 2 = ( 0 0 6, , 3 0, 6 ) Über die Skalarprodukte dieser Darstellung der Dokumente mit der entsprechenden Repräsentation der Konzeptdokumente gelangt man zur Darstellung im Konzeptraum: d C 1 = ( 107, , 44 ) d C 2 = ( 119, 71 0, 91 17, 13 ) Da die Konzeptraumdarstellungen auf dem gleichen Vektorraum basieren, können die Vektoren nun miteinander verglichen werden. Bestimmt man das Cosinusmaß auf d C 1 und d C 2, so erhält man: sim CL-ESA (d 1, d 2 ) = d C 1 d C 2 d C 1 d C 2 = 0, 855 Den beiden Dokumenten, die in der Tat das gleiche Thema in verschiedenen Sprachen behandeln wird also eine recht hohe semantische Ähnlichkeit beschieden. Nehmen wir noch ein weiteres Dokument d 3 hinzu: den deutschen Wikipedia Artikel Stammbaum. Dieser enthält folgende Terme des deutschen Vokabulars: d 3 : Baum (12), Familie (2), Stamm (15), Wurzel (1) Überführt man dieses Dokument zunächst in die Vektordarstellung im deutschen Vokabularraum und dann in den Konzeptraum, so gelangt man zu folgendem Vektor: d C 3 = ( 7, 14 0, , 08 ) Bestimmt man nun das Cosinusmaß zur Konzeptraumdarstellung zum englischen Scratching Post Artikel d 2, erhält man eine deutlich geringere semantische Ähnlichkeit von: sim CL-ESA (d 2, d 3 ) = d C 2 d C 3 d C 2 d C 3 = 0,

217 12.5 Zusammenfassung 12.5 Zusammenfassung Beim Cross Language Information Retrieval liegen Anfragen und Dokumente in unterschiedlichen Sprachen vor. Das führt dazu, dass in irgendeiner Form zwischen den Sprachen übersetzt werden muss. Die Übersetzungen können auf der Seite der Anfragen geschehen, so dass diese zu den Dokumenten passen. Ebenso können die Dokumente bereits vorab in verschiedene Sprachen übersetzt werden und die Anfrage läuft über einem Index zur entsprechenden Sprache. Schließlich können auch sowohl die Anfragen als auch die Dokumente übersetzt werden, in der Hoffnung semantische Verluste in der Übersetzung der Anfragen durch gute Dokumentübersetzungen ausgleichen zu können und umgekehrt. Der IR Ansatz auf der Basis von Language Models lässt sich recht einfach und anschaulich um eine Übersetzungskomponente erweitern. Die Idee besteht darin, die Wahrscheinlichkeit aus einem Dokument eine Anfrage zu erzeugen darum zu ergänzen, die Anfrage in eine andere Sprache zu übersetzen. Bei der CL-ESA hingegen wird ein ausgerichteter Korpus verwendet um sprachübergreifend abstrakte Konzepte darzustellen und verschiedensprachige Dokumente werden über ihre Verwandschaftsgrade zu den Konzepten in einem sprachunabhängigen Konzeptraum verglichen. 209

218 12 Cross Language Information Retrieval 210

219 13 Textklassifikation Es gibt viele Anwendungen, bei denen Dokumente vorgegebenen Kategorien oder Klassen zugewiesen werden müssen. Ganz allgemein wird die Bestimmung der Zugehörigkeit oder Nicht-Zugehörigkeit von Objekten zu gegebenen Kategorien als Klassifikation bezeichnet eine Aufgabe die übrigens nicht nur bei Texten von Interesse ist. Wir werden in diesem Kapitel zunächst die Aufgabenstellung der Klassifikation etwas näher beschreiben und typische Anwendungsbeispiele kennen lernen. Danach beschäftigen wir uns mit der Evaluation von Klassifikationsmodellen und stellen anschließend verschiedene Ansätze vor, mit denen sich Klassifikatoren aus Beispieldaten automatisch ableiten lassen Einführung in die Textklassifikation Bei der Klassifikation von Texten ist die Aufgabenstellung anders als bei der bisher betrachteten Beantwortung von Ad Hoc Anfragen. Anstatt zu einem durch eine Anfrage ausgedrückten Informationsbedürfnis relevante Dokumente zu suchen, sollen bei einer Klassifikationsaufgabe die Dokumente einer oder mehreren inhaltlich motivierten Kategorien zugeordnet werden. Vereinfacht könnte man die Aufgabe wie in Abbildung 13.1 darstellen: Ein Klassifikator hier dargestellt durch γ muss für ein gegebenes Dokument d aus einer ebenfalls vorgegebenen Auswahl von Kategorien c 1 bis c J die inhaltlich passenden heraussuchen. Abbildung 13.1: Textklassifikation: Ein Dokument d muss einer oder mehreren Kategorien inhaltlich zugeordnet werden. 211

220 13 Textklassifikation Die Beschaffenheit der Kategorien manchmal wird auch von Klassen gesprochen kann sehr unterschiedlich sein. Die Kategorien können flach oder hierarchisch geordnet sein. Ebenso können sich Kategorien überlappen, d.h. es kann Dokumente geben die in mehr als einer Kategorie enthalten sind. Auch die Zahl der Kategorien kann je nach Aufgabe stark variieren. Damit eine Unterscheidung einen Sinn ergibt werden zumindest zwei Kategorien gebraucht 1, nach oben sind der Zahl der Kategorien jedoch keine Grenzen gesetzt. Beispiele aus der Praxis, in denen die Klassifikation von Texten eine Rolle spielt, gibt es viele. Mit eine der bekanntesten Anwendungen dürften Spamfilter in Programmen sein. Das Erkennen von unerwünschten Werb s kann als eine Klassifikation in die Kategorien Spam und nicht Spam aufgefasst werden. In der Tat kommen für diese Anwendung häufig auch Verfahren zur Textklassifikation zum Einsatz. Neben inhaltsbasierten Eigenschaften der Mails, wie beispielsweise das Auftreten bestimmter Schlagwörter, werden zur Spamerkennung auch weitere Angaben aus den Metadaten und externe Expertise genutzt, beispielsweise Blacklists mit bekannten Spamservern. Über die IP des Absenders, das Datum der Mail oder die Form der Sender-Adresse kann so zusätzliche Sicherheit für die Klassifikation gewonnen werden. Ein anderes Beispiel für die binäre Textklassifikation mit nur zwei Kategorien sind sogenannte vertikale (Web-)Suchmaschinen. Vertikale Suchmaschinen konzentrieren sich auf ein bestimmtes Themengebiet, beispielsweise IT-Technologie. Dementsprechend werden auch nur solche Dokumente in den Index aufgenommen, die in dieses Themengebiet passen. Daher muss hier schon bei der Vorverarbeitung der Dokumente die Entscheidung/Klassifikation fallen, ob ein gegebenes Dokument sich mit dem vorgegebenen Thema beschäftigt oder eben nicht. Im Webumfeld gilt es, diese Entscheidung möglichst früh zu treffen, so dass unnötige Arbeitsschritte vermieden werden. Im Idealfall kann bereits die Crawler-Komponente abschätzen, welche URLs verfolgt werden müssen und welche voraussichtlich nicht zu Dokumenten mit Themenbezug führen. Solche Crawler, die sich auf bestimmte Dokumentkategorien konzentrieren werden auch als geführte Crawler (guided crawler) oder fokussierte Crawler bezeichnet [PS05]. Der allgemeine Vorteil einer vertikalen Suchmaschine liegt darin, dass die Anfragen innerhalb einer festen Themendomäne ausgewertet werden. Das heißt, wenn ein Nutzer in einer Suchmaschine zum Thema Webtechnologie nach dem Begriff Apache sucht, braucht er sich keine Gedanken zu machen, dass in der Ergebnismenge neben Dokumenten über Software der Apache Foundation auch Dokumente zum nordamerikanischen Indianerstamm zu finden sind. Eine themenbezogene Klassifikation mit mehreren Kategorien kann man sich bei der Analyse von Nachrichtenartikeln vorstellen. So könnten bei einer Zeitungsredaktion die eingehenden Meldungen der Presseagenturen automatisch den Fachredakteuren zugeteilt werden. Dazu müssten die Meldungen dann je nach vorhandenen Ressorts beispielsweise in die Kategorien Politik, Wirtschaft, Sport oder Kultur klassifiziert werden. 1 Es gibt durchaus Fälle, in denen teilweise von One-Class Problems gesprochen wird, also die Klassifikation mit nur einer Klasse. Diese Interpretation bezieht sich darauf, dass Texte entweder in eine vorgegebene Klasse passen oder nicht, wobei das Komplement der Klasse als zu heterogen gilt, um als eigene Klasse aufgefasst zu werden. Dies ist beispielsweise bei der Autorenverifikation der Fall [KS04]. 212

221 13.1 Einführung in die Textklassifikation Die Klassifikation von Text kann aber auch auf ganz anderer inhaltlicher Ebene ablaufen. So fällt auch die Zeichensatz- und Spracherkennung der Vorverarbeitung unter die Klassifikation von Texten. In diesen Fällen bestehen die Kategorien aus verschiedenen Zeichensatzkodierungen wie ASCII, UTF-8, UTF-16 oder ISO , bzw. aus Sprachen wie Deutsch, Englisch und Italienisch. Für diese Anwendung werden keine Wörter sondern andere Eigenschaften der Texte verwendet um die Klassifikation durchzuführen. Als weiteres Beispiel mit stärkerem Bezug zum klassischen Information Retrieval kann das Routing angeführt werden. Beim Routing geht es, wie schon in der Einführung in Kapitel 1 erwähnt, darum, zu einer feststehenden Anfrage die relevanten Dokumente aus einem Strom von Dokumenten herauszufiltern (Weshalb diese Aufgabe teilweise auch als Filtering bezeichnet wird). So könnte ein Nutzer eventuell über alle neuen Artikel zum Thema Webtechnologien informiert werden wollen, die auf einem allgemeinen Nachrichtenportal veröffentlicht werden. Routing kann deshalb als Klassifikation aufgefasst werden, da es zu einem gegebenen Dokument eigentlich nur zwei Entscheidungsmöglichkeiten gibt: entweder das Dokument ist relevant zur definierten Anfrage oder es ist irrelevant. Damit handelt es sich auch hier wieder um eine Klassifikation mit zwei Kategorien. Ein letztes Anwendungsbeispiel für Klassifikation, das in den letzten Jahren etwas mehr Beachtung gefunden hat, ist die Sentiment-Analyse. Hier geht es darum, die subjektive Meinung oder Stimmung des Autors bezüglich eines in einem Text behandelten Themas zu erfassen. Das kann beispielsweise bei Filmrezensionen oder Produktbewertungen von Interesse sein, um automatisch ein Stimmungsbild auf der Basis von großen Textdatenmengen erheben zu können. Es gibt noch viele weitere Beispiele für Anwendungen in denen die Klassifikation von Texten eine Rolle spielt. Die prinzipielle Aufgabe der Klassifikation sollte jedoch klar geworden sein, ebenso wie die Praxisrelevanz dieses Themas. Als nächstes wollen wir die Aufgabenstellung der Klassifikation ein wenig präzisieren und formal fassen. Hierfür bleiben wir zunächst beim einfachsten Fall, in dem die Kategorien sich nicht überlappen und es keine hierarchische Struktur auf den Kategorien gibt. Formal gesehen sieht die Aufgabenstellung dann folgendermaßen aus: Gegeben eine Menge D = {d 1, d 2,..., d n } von Dokumenten 2 und eine Menge C = {c 1, c 2,..., c J } von Kategorien, dann soll jedem Dokument d i eine (inhaltlich passende) Kategorie c j zugeordnet werden. Dieser Zusammenhang kann auch als Funktion von D nach C ausgedrückt werden: γ : D C Will man diese Formalisierung auf überlappende Kategorien verallgemeinern, so kann man jedem Dokument eine Teilmenge K aus C zuordnen und somit auch mehrere, bzw. jede beliebige Kombination von Kategorien. Damit stellt γ in diesem Fall eine Abbildung in die Potenzmenge P(C) dar. 2 Gelegntlich werden wir auch von der Klassifikation einzelner Dokumente sprechen. Das steht in keinem Wiederspruch zu dieser Definition, dann hat die Menge D eben ein Mächtigkeit von

222 13 Textklassifikation γ : D P(C) An dieser Stelle ergeben sich zwei zentrale Fragen aus dieser Formalisierung. Erstens, wie bestimmt man ein solche Funktion γ, und zweitens, was bedeutet inhaltlich passend in Bezug auf die Klassifikation? Die Bestimmung der γ-funktion entspricht dem automatischen oder manuellen Erstellen eines Modells, welches später die Klassifikation vornimmt. Da die manuelle Vorgehensweise i.d.r. zu aufwändig ist wird hierfür sogenanntes maschinelles Lernen (Machine Learning, ML) eingesetzt. Dazu wertet ein Algorithmus Beispieldaten aus, zu denen die Kategorien bekannt sind und leitet daraus das Klassifikationsmodell ab. Häufig werden die abgeleiteten Klassifikationsmodelle unter dem gleichen Namen verwendet, wie das ML-Verfahren mit dem sie erstellt wurden, also z.b. als SVM oder Naive-Bayes Klassifikator. Die angesprochenen Beispieldaten dienen dabei zum Trainieren des Modells. Diese Vorgehensweise wird auch als überwachtes Lernen (supervised learning) bezeichnet, da ein menschlicher Nutzer durch die Vorgabe der Trainingsdaten das Verfahren anleitet und gewissermaßen als Lehrer fungiert. Anders sieht dies bei unüberwachten Methoden aus, bei denen ein Verfahren von sich aus Muster oder Regelmäßigkeiten erkennen soll. Dies ist beispielsweise bei der Clusteranalyse der Fall, die wir in Kapitel 14 betrachten werden. Trainingsdaten werden in der Regel von menschlichen Experten erzeugt. Sie weisen Dokumenten die passendste, bzw. mehrere passende Kategorien zu. Gelegentlich findet man auch den Ausdruck, dass die Daten mit einem Label versehen werden. Ein solche Annotation von Dokumenten mit Kategorien kann ausdrücklich durch den Experten geschehen. In manchen Anwendungsfällen führen Menschen eine Klassifikation jedoch fast unbewusst und indirekt durch. Ein typisches Beispiel ist das Markieren einer als Spam, oder das Verschieben einer Mail in einen thematisch motivierten Unterordner. Diese Aktionen können ebenfalls als Expertenvorgaben für die Klassifikation interpretiert werden und erzeugen somit Trainingsdaten. Ein allgemeines Problem im Bereich des Machine Learning ist das Übertrainieren, auch als overfitting bezeichnet. Ein Klassifikator (oder auch andere Konstrukte) sind übertrainiert, wenn sie sich bei der Klassifikation zu stark an den Trainingsdaten orientieren. Das ist kontraproduktiv, da die Trainingsdaten lediglich als Ausprägung eines allgemeineren Konzeptes dienen sollen. Bei der Klassifikation werden also einzelne Dokumente beispielhaft für Dokumente in einer bestimmten Kategorie (z.b. Spam, Politik oder englischsprachige Texte) herangezogen. Entsprechend muss beim Maschinellen Lernen eine gewisse Verallgemeinerung der gesehenen Trainingsdaten stattfinden. Andernfalls dürfte die Klassifikationsleistung auf neuen Daten schlecht ausfallen. Abbildung 13.2 stellt das Problem anschaulich dar, indem es die erlernten Zusammenhänge der Trainingsdaten als gestrichelte Linie visualisiert. Im rechten Bild 13.2(b) wird auf ein allgemeines Konzept generalisiert, im linken 13.2(a) richtet sich die Klassifikation zu stark nach den Trainingsbeispielen. Entsprechend wird in einem Fall das durch den grauen Punkt dargestellte, neue Dokument einer Kategorie zugewiesen, während dies im anderen Fall nicht geschieht. Overfitting kann im 214

223 13.2 Evaluation von Klassifikation Extremfall als auswendig lernen angesehen werden, d.h. es werden nur solche Dokumente einer bestimmten Klasse zugeordnet, die bereits beim Training beobachtet wurden. (a) (b) Abbildung 13.2: Veranschaulichung des Overfittingproblems. Bisher sind wir hauptsächlich von Klassifikationen ausgegangen, in den die Kategorien sich nicht überschneiden. Das wird auch für den Rest des Kapitels so bleiben, denn überschneidende Kategorien können als ein Spezialfall der binären Klassifikation angesehen werden. Schließlich genügt es für jede Kategorie die individuelle Entscheidung zu treffen, ob ein Dokument dieser Kategorie zugewiesen werden soll oder nicht. Damit fällt die Mehrfachklassifikation in n Kategorien auf n-faches binäres Klassifizieren zurück Evaluation von Klassifikation Die Bestimmung, ob die Klassifikationen eines gegebenen Modells inhaltlich passend sind, beruht auf der Auswertung von zuvor ungesehenen Daten. Das bedeutet man verwendet wiederum Dokumente zu denen die Klasse bekannt ist, die aber beim Training nicht zum Einsatz kamen. Mit diesen Testdaten kann dann gemessen werden, wie oft ein Klassifikationsmodell einem Datensatz die richtige Kategorie zuweist. Wie auch bei der Evaluation von IR-Systemen gibt es hierfür einige Maße, die durchaus sehr ähnlich aussehen. Betrachten wir zunächst den einfachsten Fall der binären Klassifikation. Wir müssen ein gegebenes Dokument d in eine der beiden Klassen c 1 und c 2 einteilen. Im Falle der binären Klassifikation wird häufig auch einfach nur zwischen zwischen c 1 und nicht c 1 unterschieden. Schließlich ergibt sich aus nicht c 1 automatisch die Schlussfolgerung, dass das Dokument der Klasse c 2 zugeordnet werden muss. Aus der bekannten, vorgegebenen Zugehörigkeit des Dokuments zu einer Klasse und der im Klassifikationsverfahren ermittelten Klasse ergeben sich insgesamt vier mögliche Ergebnisse des Klassifikationsvorganges. Wenn d zu c 1 gehört und dieser Kategorie auch zugeordnet wurde, dann ist dies ein wünschenswertes, korrektes Ergebnis, ebenso wie der Fall, dass d zu c 2 gehört und c 2 zugewiesen 215

224 13 Textklassifikation wurde. Ein Fehler passiert, wenn d zu c 1 gehört aber in c 2 eingruppiert wird, bzw. im umgekehrten Fall, wenn d eigentlich in c 2 gehört aber als c 1 klassifiziert wird. Werden mehrere Testklassifikationen durchgeführt, dann lassen sich alle Ergebnisse in einer Confusion Matrix darstellen, wie sie in Tabelle 13.1 zu sehen ist. Interpretiert man die Klassifikation wie zuvor erwähnt als die Unterscheidung zwischen c 1 und nicht c 1, dann wird die Analogie zur Confusion Matrix aus Kapitel 6, Tabelle 6.2 mit den Auffassungen von relevanten und irrelevanten Dokumenten direkt klar. Tabelle 13.1: Confusion Matrix für die Ergebnisse binärer Klassifikation. Tatsächliche Zugehörigkeit c 1 c 2 c Klassifikationsergebnis 1 korrekt Fehler c 2 Fehler korrekt Entsprechend kann (aus Sicht der Klasse c 1 ) auch von true positiv (gehört zu c 1 und wurde c 1 zugeordnet), true negative (gehört nicht zu c 1 und wurde c 1 auch nicht zugeordnet), false positiv (gehört nicht zu c 1 und wurde dennoch c 1 zugeordnet) und false negativ (gehört zu c 1, wurde aber c 1 nicht zugeordnet) Ergebnissen gesprochen worden. Damit ließen sich auch wieder Evaluationsmaße wie Recall, Precision und F 1 ausdrücken wohlgemerkt immer bezüglich der Klasse c 1. Die Confusion Matrix lässt sich aber auch leicht auf einen allgemeineren Fall mit J Klassen erweitern. Dazu zählt man schlicht alle Klassen auf und erfasst, in welche Klassen die Dokumente eingruppiert werden und in welchen sie tatsächlich liegen. Damit sieht die Matrix dann aus wie in Tabelle Tabelle 13.2: Confusion Matrix für die Ergebnisse einer Mehrklassen-Klassifikation. Tatsächliche Zugehörigkeit c 1 c 2 c 3 c J Klassifikationsergebnis c 1 korrekt Fehler Fehler Fehler c 2 Fehler korrekt Fehler Fehler c 3 Fehler Fehler korrekt Fehler c J Fehler Fehler Fehler korrekt Ein Qualitätsmaß für Klassifikationsergebnisse, das sich problemlos auf mehrere Klassen erweitern lässt ist Accuracy. Im Gegenteil zu Recall und Precision ist es hier nämlich nicht nötig den Fokus auf eine bestimmte Klasse zu setzen. Accuracy ist definiert als die relative Häufigkeit der korrekten Ergebnisse über allen vorgenommenen Klassifkationen. Bezeichnen wir mit a ij den Eintrag in der Confusion Matrix der die Anzahl der Dokumente aus Klasse c j enthält, die der Klasse c i zugeordnet wurden (also der Eintrag in der i-ten Zeile und j-ten Spalte), dann ist die allgemeine Formel für die Accuracy: 216

225 13.2 Evaluation von Klassifikation acc = ni=1 a ii ni=1 nj=1 a ij Das passende Gegenstück zur Accuracy ist die Error Rate. Sie drückt aus, welchen Anteil die Fehler an allen Klassifikationen hatten. Sie ist dementsprechend gegeben durch: err = ni=1 nj=1,j i a ij ni=1 nj=1 a ij = 1 acc Qualitätsmaße in der Klassifikationen Gehen wir von den drei inhaltlich motivierten Kategorien Wirtschaft, Politik und Touristik aus und wollen Nachrichtenartikel in diese Kategorien einsortieren. Wir erfassen die Ergebnisse dieser Klassifikation und tragen sie in eine 3 3 Confusion Matrix ein: Klassifikation Tatsächlich Wirtschaft Politik Touristik Summe Wirtschaft Politik Touristik Summe Aus dieser Matrix lässt sich beispielsweise ersehen, dass von insgesamt sieben Artikeln aus dem Themenbereich Wirtschaft fünf korrekt klassifiziert wurden und zwei fälschlicherweise in die Kategorie Politik eingeordnet wurden. Bezüglich dem Thema Wirtschaft haben wir also einen Recall von r = 5 = 0, 71. Andererseits wurden insgesamt drei Artikel der Kategorie Wirtschaft zugeordnet, von denen einer eigentlich zu 7 Politik und zwei zu Touristik gehören. Daher erzielt die Klassifikation bezüglich der Kategorie Wirtschaft einen Precision-Wert von p = 5 = 0, 63 und somit insgesamt 8 einen F 1 -Wert von 0, 67 = 2 r p für Wirtschaft. Errechnet man für jede Kategorie r+p einzeln die Precision, Recall und F 1 -Werte so erhält man insgesamt: Recall Precision F 1 Wirtschaft 0,71 0,63 0,67 Politik 0,91 0,63 0,74 Touristik 0,50 1,00 0,67 Mit der Accuracy ergibt sich ein Wert mit dem sich die gesamte Klassifikation bewerten lässt. Dazu müssen lediglich die Summe der korrekten Ergebnisse auf der 217

226 13 Textklassifikation Hauptdiagonalen der Matrix ins Verhältnis zu allen Klassifikationsergebnissen gesetzt werden: acc = = 0, 7 Daraus ergibt sich dann auch direkt die Error Rate: err = 1 acc = 0, 3 Accuracy wurde bereits bei der Evaluation von IR Systemen als Qualitätsmaß angeführt. Damals wurde sie jedoch als wenig hilfreich verworfen, da in vielen Fällen eine leere Ergebnismenge bereits sehr gute Accuracy Werte erzielen kann. Das lag daran, dass der Anteil der relevanten Dokumente in einem sehr großen Korpus i.d.r. sehr klein ist und in einer leeren Ergebnismenge somit verhältnismäßig sehr wenige Fehler vom Typ relevant aber nicht gefunden gemacht werden. Ein ähnliches Phänomen kann auch bei Klassifikationsaufgaben auftreten, nämlich dann wenn in den Testdaten einzelne Klassen stark überrepräsentiert sind. Die Ergebnisse auf diesen Klassen stechen dann gewissermaßen andere, schlechter vertretene Klassen aus. Nimmt man im obigen Beispiel an, dass in der Kategorie Politik insgesamt 1000 statt lediglich elf Artikel enthalten sind, wovon wie oben weiterhin einer fälschlicherweise der Kategorie Wirtschaft zugeordnet wird, die restlichen 999 aber richtig klassifiziert, dann erzielt man eine Accuracy Wert von 0,991. Weist man bei gleicher Konstellation der Artikel (sieben aus Wirtschaft, 1000 aus Politik und 12 aus Touristik) alle konsequent der Kategorie Politik zu, so erhält man eine nur unerheblich niedrigere Accuracy von 0,981. Da man sowohl für das Trainieren als auch für die Evaluation Daten braucht, zu denen die Kategorie jeweils bekannt ist, müssen für beide Aufgaben letztendlich Dokumente von Experten manuell klassifiziert werden. Das ist in der Regel aufwändig und somit ist die Zahl der Dokumente mit Kategorielabel meist begrenzt. Prinzipiell sind die Daten gleichermaßen für Training und Evaluation geeignet, so dass sich die Frage stellt, wie die Daten aufgeteilt werden sollen. Offensichtlich dürfen Dokumente nicht doppelt verwendet werden, d.h. sowohl für Training als auch für die Bewertung des erlernten Schemas. Ein Vorgehen, dass bei der Evaluation von Machine Learning Verfahren häufig angewendet wird, ist cross-validation. Dazu teilt man die vorhandenen Daten zufällig in k etwa gleich große, paarweise disjunkte Teilmengen ein. Dabei sollten aber die relativen Verhältnisse der Dokumente in den einzelnen Kategorien auch in den Teilmengen weitestgehend erhalten bleiben. Danach verwendet man k 1 der Teilmengen als Trainingsdaten und nutzt die verbliebene letzte Teilmenge für die Evaluation. Dieses Vorgehen kann man nun insgesamt k-mal wiederholen, indem man immer eine andere der Teilmengen für die Evaluation verwendet. Die Ergebnisse dieser k Durchläufe kann man dann mitteln und erhält somit eine bessere Ausnutzung der Daten für Training und Evaluation. Diese Vorgehen wird als k-fold cross-validation bezeichnet. 218

227 13.3 Regelbasierte Systeme Um weiterhin zu vermeiden, dass bei der zufälligen Aufteilung in Teilmengen unglückliche Kombinationen von Dokumenten auftreten, kann man den Gesamtprozess ebenfalls mehrfach wiederholen und jeweils andere Aufteilungen in Teilmengen vornehmen. Das zehnmalige Wiederholen bei einer Unterteilung in zehn Teilmengen findet sich oft in der Literatur und ist unter dem Begriff 10-times 10-fold cross-validation bekannt Regelbasierte Systeme Der erste hier betrachtet Ansatz zur Klassifikation von Dokumenten basiert auf der Definition von Regeln. Die Regeln die dabei zum Einsatz kommen sind recht einfach und entsprechen vom Stil her Aussagen wie Wenn die das Wort Viagra enthält dann gehört sie zur Kategorie Spam oder Ein Dokument, in dem die Begriffe Gesetz und Regierung auftreten fällt in die Kategorie Politik. Solche Regeln lassen sich recht einfach nachvollziehen und können sogar schnell von Hand erstellt werden. Für uns interessant ist an dieser Stelle jedoch, dass man die Regeln auch aus Trainingsdaten ableiten kann. Regelbasierte Systeme sind an sich für eine Vielzahl von Klassifikationsaufgaben geeignet wir betrachten sie hier aber strikt im Kontext der Textklassifikation. Eine allgemeinere Einführung in die Thematik findet sich in [WF00] oder [TSK06]. Doch zunächst zu den Regeln selbst. Wie in den beiden obigen Beispielen angedeutet, haben die Regeln eine Wenn-dann Form, das heißt, sie bestehen aus einem Bedingungsteil und einer Schlussfolgerung. Die Bedingungen orientieren sich an den Eigenschaften der zu klassifizierenden Objekte. In unserem Fall entsprechen die Objekte den Dokumenten. Welche Eigenschaften einem Dokument zugeordnet sind hängt von der gewählten Darstellung der Dokumente ab. Bei einer Dokumentrepräsentation auf der Basis von enthaltenen Wörtern, sind die Eigenschaften eben diese Wörter. Die Ausprägung der Eigenschaften können boolsche Werte, Termfrequenzen, TF-IDF Gewichte oder andere wortbezogene Maße sein. Repräsentiert man die Dokumente über Bigramme, den Namen des Autors oder andere Eigenschaften erhält man entsprechend andere Ausprägungen die es zu beachten gilt. In diesem Zusammenhang bleiben wir wie in den oben aufgeführten Eingangsbeispielen angedeutet bei einer Darstellung der Dokumente auf Wortebene und betrachten auch nur ob ein Term in einem Dokument auftritt oder nicht. Damit werden Dokumente letztendlich auf die Mengen der enthalten Terme abgebildet. Die Bedingungen der Regeln basieren daher auch auf Aussagen dazu, ob ein Term in einem Dokument enthalten ist oder nicht. Genau genommen werden die Regeln unterteilt in eine Vorbedingung A (precondition, rule antecedent) und eine Schlussfolgerung (rule consequent), die in unserem Fall einer Klasse c i entspricht. Eine einzelne Regel r i ist also von der Form: r i = A i c i Die Vorbedingung richtet sich nach dem Vorkommen oder Fehlen von bestimmten Termen in einem Dokument, kann also dargestellt werden als: 219

228 13 Textklassifikation A i = ((t i1 / d) (t i2 d) (t i3 d) (t i4 / d)... (t in d)) Wobei d jeweils das betrachtete Dokument ist, dargestellt als Menge der enthaltenen Terme. Über Terme, die in der Vorbedingung nicht auftreten, wird keine Aussage gemacht und somit sind sie für das Zutreffen der Vorbedingung nicht ausschlaggebend. Das bedeutet, dass es letztendlich egal ist, ob die entsprechenden Terme in einem Dokument enthalten sind oder nicht. Interessant an dieser Darstellung (und dem gesamten Konzept der regelbasierten Klassifikation) ist, dass die Regeln letztendlich Anfragen in einem boolschen IR Modell entsprechen. Schließlich lässt sich obiges A i auch als Anfrage q Ai formulieren, wodurch die Anwendung des Routing als Klassifikationsaufgabe noch einmal verdeutlicht wird: q Ai = ( t i1 ) t i2 t i3 ( t i4 )... t in Gelegentlich schränkt man diese Formen darauf ein, dass nur enthaltene Terme in der Vorbedingung berücksichtigt werden. Das liegt daran, dass man über nicht enthaltene Terme selten sehr scharfe Auswahlkriterien erhält. An diesem Vorgehen werden wir uns für den Rest des Abschnitts orientieren, so dass unsere Regeln nur Aussagen über Terme machen die enthalten sein müssen. Die Formulierung der Vorbedingung als boolsche Anfrage spart weiterhin Platz beim Notieren der Regeln. In einem regelbasierten Klassifikator werden nun mehrere Regeln zu einem Regelsatz R zusammengefasst, mit dessen Hilfe dann die Klassifikation stattfindet. Jedes Dokument wird darauf geprüft, welche Regel aus R dazu passt (bezüglich der Vorbedingung) und entsprechend wird eine Kategorie zugewiesen. Bei diesem Vorgehen wäre es durchaus möglich, dass zu einem Dokument mehrere Vorbedingungen mit unterschiedlichen Schlussfolgerungen (d.h. Kategorien) passen. Diese Möglichkeit der Mehrfachklassifikation wird jedoch meist ausgeschlossen, indem von den Regeln verlangt wird, dass ihre Vorbedingungen sich wechselseitig ausschließen (engl. mutually exculsive rules). Das heißt, dass für jeden Datensatz höchstens eine Regel zutrifft. Alternativ können die Regeln in eine Reihenfolge gebracht werden, so dass eine Regel nur dann zur Anwendung kommt, wenn keine der vorherigen Regeln zutrifft. Weiterhin wird meist auch gefordert, dass der Regelsatz ausschöpfend (engl. exhaustive) ist, d.h. dass es für jeden möglichen Datensatz auch tatsächlich eine Regel mit passender Vorbedingung gibt. Menschliche Nutzer sind meist recht gut darin, solche Regeln oder Vorbedingungen intuitiv und auf die Schnelle zu formulieren. Ähnlich wie beim Stellen von Ad Hoc Anfragen können sie treffende Begriffe auswählen, die eine Kategorie gut beschreiben und sehr wahrscheinlich in den zugehörigen Dokumenten auftreten werden. Hat man nun Testdaten zur Verfügung so kann man zur Beurteilung von Regeln einen jeweils Regel-spezifischen Accuracy-Wert bestimmen. Das heißt, man betrachtet alle Testdatensätze, auf welche die Vorbedingung zutrifft und prüft wie oft die Schlussfolgerungen zu korrekten und wie oft zu fehlerhaften Klassifikationen führt. Da in diesem Fall Accuracy über nur einer Regel r betrachtet wird, bezeichnet man diesen Wert auch mit acc(r). 220

229 13.3 Regelbasierte Systeme Ein weiterer Wert der für eine Regel von Interesse sein kann ist Coverage. Coverage betrachtet die Anzahl aller Testdaten auf welche die Vorbedingung zutrifft im Verhältnis zu allen Testdaten. Das bedeutet, wenn D die Menge aller Testdaten darstellt und A(D) die Teilmenge der Testdaten auf welche die Vorbedingung A einer Regel r = A c zutrifft, dann ist Coverage für diese Regel gegeben durch: cov(r) = A(D) D Coverage bestimmt in gewissem Sinne wie weitreichend eine Regel ist. Hat eine Regel einen sehr kleinen Coverage-Wert, so liegt die Vermutung nahe, dass sie zu speziell ist und somit zu Overfitting führt. Eine Regel mit hohem Coverage-Wert trifft hingegen auf einen sehr großen Teil der (Test-)daten zu. Hier stellt sich dann eher die Frage, in wie weit die Schlussfolgerung der Regel richtige Ergebnisse erzielt, weshalb dann der Accuracy-Wert betrachtet werden muss. Manuell erstellte Regeln Verwenden wir wieder die Kategorien Wirtschaft, Politik und Touristik. Wir stellen zu jeder der drei Kategorien eine einfach Regel auf, die inhaltlich jeweils recht leicht nachvollziehbar ist: r 1 = (Firma) c Wirtschaft r 2 = (Gesetz Regierung) c Politik r 3 = (Reise Strand) c Touristik Mit anderen Worten, enthält ein Dokument den Term Firma weist ihm die Regel r 1 die Kategorie Wirtschaft zu. Enthält es Gesetz und Regierung so gehört es nach r 2 zum Thema Politik und wenn die Terme Reise und Strand gemeinsam auftreten, so soll das entsprechende Dokumente nach Regel r 3 der Kategorie Touristik zugeordnet werden. Zum Überprüfen unserer Regeln verwenden wir ein Korpus mit 30 Dokumenten, wobei jeweils zehn in den Kategorien Wirtschaft, Politik und Touristik liegen. Tabelle 13.3 auf Seite 222 gibt einen Überblick über die Terme des Vokabulars und die Termfrequenzen in den einzelnen Dokumenten, sowie die Zuordnung von Kategorien zu den Dokumenten d 1 bis d 30. Der Übersichtlichkeit halber wurden Einträge mit 0-Werten in der Term-Dokumentmatrix komplett ausgelassen. Wir wollen nun die Qualität unserer Regeln über Coverage und Accuracy bestimmen. Dazu interessieren uns die Anzahl der Dokumente, die auf die einzelnen Vorbedingungen zutreffen. In der Term-Dokumentmatrix brauchen wir dazu die Termfrequenzen 221

230 13 Textklassifikation Tabelle 13.3: Beispieldaten für Klassifikationsaufgaben. Agentur Boot Firma Flugzeug Gesetz Insel Präsident Dokument Kategorie d Wirtschaft d Wirtschaft d Wirtschaft d Wirtschaft d Wirtschaft d Wirtschaft d 7 2 Wirtschaft d Wirtschaft d Wirtschaft d Wirtschaft d Politik d Politik d Politik d Politik d Politik d Politik d Politik d Politik d Politik d Politik d Touristik d Touristik d Touristik d Touristik d Touristik d Touristik d Touristik d Touristik d Touristik d Touristik Regierung Reise Stadt Steuer Strand Umsatz 222

231 13.3 Regelbasierte Systeme selbst gar nicht näher zu beachten 3, sondern müssen nur unterscheiden, ob ein Term überhaupt in einem Dokument enthalten ist. Zur Regel r 1 mit der Vorbedingung, dass der Term Firma enthalten sein muss, passen die elf Dokumente d 1, d 2, d 3, d 5, d 7, d 9, d 10, d 13, d 15, d 18 und d 22. Da wir insgesamt 30 Dokumente zu begutachten haben ergibt sich somit ein Coverage-Wert von: cov(r 1 ) = 11 = 0, Von den elf Dokumenten welche die Vorbedingung erfüllen liegen immerhin sieben tatsächlich in der Kategorie Wirtschaft, die von r 1 als Schlussfolgerung zugewiesen wird. Daher erzielt r 1 einen Accuracy-Wert von: acc(r 1 ) = 7 11 = 0, 64 Auf die gleiche Art und Weise kann man nun Coverage und Accuracy für die anderen beiden Regeln berechenen und erhält insgesamt: Accuracy Coverage r 1 0,64 0,37 r 2 0,8 0,17 r 3 1,0 0,13 Die Regeln in diesem Beispiel schließen sich weder wechselseitig aus, noch sind sie ausschöpfend. So wird beispielsweise Dokument d 6 von keiner der Vorbedingungen erfasst, während Dokument d 15 sowohl die Vorbedingung von Regel r 1 als auch die von Regel r 2 erfüllt. Allerdings haben wir hier auch nur drei sehr einfache Regeln aufgestellt und insbesondere jede Kategorie nur mit einer einzelnen Regel bedacht. Es gibt noch weitere Möglichkeiten wie die Qualität einer Regel gemessen werden kann. Hier sind insbesondere solche von Interesse, die direkt oder indirekt sowohl Accuracy als auch Coverage verwenden um die Qualität einer Regel zu messen. Die Berücksichtigung der Accuracy dient dazu, dass Regeln mit gutem Ergebnis bevorzugt werden, die Berücksichtigung von Coverage dient dazu, dass keine zu speziellen Regeln erzeugt werden, d.h. um overfitting zu vermeiden. In diesem Zusammenhang sollen hier drei Qualitätsmaße angesprochen werden. Wir benötigen dazu einige Einflussgrößen, die in diesen Maßen berücksichtigt werden. Die Größen beziehen sich teilweise auf eine zu evaluierende Regel r = A c j mit Vorbedingung A und Schlussfolgerung c j, teilweise sind sie jedoch nur von den Testdaten abhängig. D: Menge aller Testdokumente. 3 Wir werden die gleichen Dokumente aber im Laufe des Kapitels immer wieder verwenden, so dass die Termfrequenzen an anderer Stelle tatsächlich eine Rolle spielen. 223

232 13 Textklassifikation p: Anzahl der Testdokumente, die von der Regel r korrekt klassifiziert werden. f: Anzahl der Testdokumente, die von der Regel r falsch klassifiziert werden. J: Anzahl der Kategorien insgesamt, entspricht C. n: Anzahl der Testdokumente insgesamt, entspricht D. g j : Anzahl der Trainingsdokumente, die tatsächlich in der Kategorie c j liegen. Im Prinzip also der Goldstandard für die Evaluation der Regel r im Bezug auf die in der Schlussfolgerung zugewiesene Kategorie. Gewisse Zusammenhänge ergeben sich direkt aus diesen Werten, so ist beispielsweise p+f die Anzahl der Trainingsdokumente aus D, die zur Vorbedingung A passen. Diesen Wert hatten wir zuvor schon einmal mit A(D) bezeichnet. Auch die Anzahl der Dokumente in D, die nicht zur Kategorie c gehören lässt sich bestimmen. Sie ergibt sich aus der Differenz der Anzahl aller Dokumente und den Dokumenten die in c liegen, also durch: n g. Das erste Maß stellt gewissermaßen einen Schätzer für die Wahrscheinlichkeit dar, dass eine Regel richtige Klassifikationen liefert. Wie wir bereits an anderer Stelle gesehen haben, spielt bei Schätzern Smoothing eine Rolle, um nicht gesehene Ereignisse zu berücksichtigen. Beim Laplace-Smoothing wird dazu schlicht ein konstanter Wert K (häufig wird K = 1 gesetzt) für die Beobachtungen jedes möglichen Ereignisses hinzuaddiert. Stellt man sich nun die Klassifikation als Zufallsexperiment und die Kategorien als Ergebnis vor, so gelangt man zu folgendem Schätzer für die Wahrscheinlichkeit, dass eine Regel korrekte Ergebnisse liefert: q Laplace (r, D) = p + 1 p + f + J Klar ist, dass die Accuracy dieses als Laplace-Maß bezeichnete Qualitätsmaß beeinflusst. Denn: je höher p im Verhältnis zu p+f ist, desto größer ist der Wert des Maßes. Der Einfluss von Coverage ergibt sich indirekt. Denn je mehr Dokumente von der Vorbedingung erfasst werden, desto geringer ist der Einfluss des Parameters J, also der Anzahl der Kategorien die im Nenner hinzuaddiert wird. Anschaulich könnte man sagen, dass die Regeln mit großem Einfluss (d.h. Coverage) weniger stark durch das Smoothing beeinflusst werden. Ein anderes Qualitätsmaß basiert auf einem Likelihood-Quotienten Test. Im Prinzip wird dabei ein statistischer Signifikanztest durchgeführt, um zu zeigen, dass eine Regel besser ist als eine rein zufällige Klassifikation. Je nachdem wie stark die Regel von der Zufallsklassifikation abweicht, d.h. je sicherer der Signifikanztest ausfällt, desto höher ist ihre Qualität. Der Einfluss der Accuracy drückt sich vereinfacht gesagt als Erwartungswert aus, ein hoher Coverage-Wert sorgt für eine stärkere Sicherheit bezüglich der Wahrscheinlichkeitsschätzungen aus (da mehr Dokumente betrachtet und somit in gewissem Sinne mehr Ergebnisse von Wahrscheinlichkeitsexperimenten durchgeführt wurden). In der Formel ergibt sich für uns: 224

233 13.3 Regelbasierte Systeme q Likelihood-Ratio (r, D) = 2 (p log 2 ( p (p + f) gj n ) + f log 2 ( f (p + f) n g j n Mit (p + f) gj und (p + f) n g j stehen dabei in der Formel der Erwartungswert für korrekte und falsche Klassifikationen bei zufällige Klassifikation von allen p + f Dokumenten, n n die von der Vorbedingung der Regel erfasst werden. Das sogenannte Foil s Information Gain Maß berechnet im Gegensatz zu den ersten beiden Maßen die Verbesserung einer neuen Regel r gegenüber einer Referenzregel r. Dies ist insbesondere dann von Interesse, wenn bestehende Regeln modifiziert werden sollen. Gehen wir davon aus, dass die alte Regel p korrekte und f falsche Klassifikationen auf den Trainingsdaten erzielt, dann ist Foil s information gain definiert als: ( ( ) p q Foil (r, r, D) = p log 2 p + f ( )) p log 2 p + f In den Logarithmen stehen hier wiederum die relativen Häufigkeiten für korrekt klassifizierte Dokumente, einmal bezüglich der neuen, einmal bezüglich der alten Regel. Qualitätsmaße für Klassifkationsregeln Bleiben wir zumindest von den Zahlen her bei unserem vorherigen Beispiel mit 30 Dokumenten von denen jeweils zehn in einer der drei Kategorien liegen. Wir haben in diesem Beispiel also Werte von J = 3, g = 10 und n = 30, die sich aus den Dokumenten in D ergeben und somit für alle Regeln gleich sind. Wir wollen nun die Qualität von drei Regeln vergleichen, deren Vorbedingungen auf unterschiedlich viele Dokumente passen und die unterschiedlich viele Fehler machen: Regel r 1 hat eine Vorbedingung die zu fünf Dokumenten passt und die vier davon richtig klassifiziert. Regel r 2 passt zwar nur auf zwei Dokumente, dafür werden diese aber alle richtig klassifiziert. Die Vorbedingung von Regel r 3 schließlich erfasst zehn Dokumenten, wovon acht korrekt klassifiziert werden. Für Foil s Information Gain gehen weiterhin davon aus, dass wir eine Referenzregel r F haben, die 15 Dokumente erfasst und davon neun korrekt klassifiziert. Die folgende Tabelle listet die Einflussfaktoren für die drei vorgestellten Qualitätsmaße noch einmal numerisch auf und gibt die Werte für das Laplace-Maß, das Likelihood-Ratio- Maß und Foil s information Gain an: )) 225

234 13 Textklassifikation p f Laplace Likelihood Foil r F 9 6 0,556 13,440 r ,625 10,630 1,660 r ,600 6,340 1,474 r ,690 21,261 3,320 Es fällt auf, dass Regel r 3 unter allen Maßen am besten bewertet wird. Dies liegt daran, dass sie weit mehr Dokumente abdeckt als die anderen Regeln. Am deutlichsten wird der Einfluss des höheren Coverage-Wertes gegenüber Regel r 1, die letztendlich die gleiche Accuracy erzielt wie r 3. Bei Regelsystemen, die aus mehreren Regeln bestehen welche sich nicht zwangsweise wechselseitig ausschließen, stellt sich die Frage wie mit dem Fall umgegangen wird, dass mehrere Vorbedingungen zutreffen. Eine Lösung hierfür ist, die Regeln wie bereits erwähnt in eine Reihenfolge zu bringen, nach der sie abgearbeitet werden. Dass heißt, die Vorbedingungen der Regeln werden gemäß dieser Reihenfolge geprüft. Zur Klassifikation wird dann die Regel angewandt, deren Vorbedingung als erstes passt. Dies ergibt beispielsweise dann einen Sinn, wenn zunächst speziellere Regeln und weiter unten in der Reihenfolge allgemeinere Regeln aufgeführt werden. Die Reihenfolge kann auch über Maße wie Coverage und Accuracy oder auch nach der in der Schlussfolgerung zugewiesenen Klasse bestimmt werden. Alternativ können auch alle vorhandenen Regeln ausgewertet werden und man zählt für jedes Dokument die anfallenden Zuordnungen zu den einzelnen Kategorien. Jede Zuordnung wird als eine Stimme für eine Kategorie gewertet und das Dokument wird am Ende in die Kategorie mit den meisten Stimmen eingeordnet. Um die Qualität einzelner Regeln zu berücksichtigen können die Stimmen mit Accuracy-Werten oder anderen Qualitätsmaßen gewichtet werden. Doch unabhängig davon, wie man die Regeln auswertet oder anordnet, auf großen Datenmengen oder bei vielen Kategorien wird das manuelle Erstellen von Regeln schnell unübersichtlich und schwierig. Kommen wir also zurück zur Aufgabe die Regeln automatisch aus den Trainingsdaten zu erlernen. Es gibt viele Ansätze, um regelbasierte Klassifikatoren automatisch zu erstellen. Der Ansatz den wir uns hier anschauen ist einer der intuitivsten und lässt sich schnell und einfach umsetzen, weshalb er wohl auch in der Praxis recht beliebt ist. Beim Sequential Covering Algorithmus wird ein geordneter Regelsatz erzeugt, bei dem Kategorie für Kategorie schrittweise mehrere Regeln aus den Trainingsdaten abgeleitet werden. Das heißt, der Algorithmus geht klassenweise vor und erzeugt zunächst nur Regeln für eine Kategorie. Sobald die Regelerzeugung für diese Kategorie abgeschlossen ist, geht der Algorithmus zur nächsten Kategorie über. Dieses Vorgehen wird fortgesetzt, bis alle Kategorien behandelt wurden. In welcher Reihenfolge die Kategorien dabei betrachtet werden kann von verschiedenen Parametern abhängig gemacht werden. So kann es aus der Anwendung heraus bestimmte 226

235 13.3 Regelbasierte Systeme Präferenzen geben, bei welchen Kategorien es wichtiger ist, sie korrekt zu erkennen. Das heißt, es gibt Vorgaben, für welche Kategorien false positive Ergebnisse in Kauf genommen werden, solange die Anzahl der false negative Fehler gering bleibt. Die Regeln für solche Kategorien mit hoher Priorität sollten dann als erste aufgeführt werden da sie somit auch zuerst ausgewertet werden. Gibt es keine solche Prioritäten kann die Regelerstellung nach Anzahl der verfügbaren Trainingsdatensätze zu den jeweiligen Kategorien durchgeführt werden. Wurde letztendlich eine Reihenfolge der Kategorien festgelegt, so kann der eigentliche Prozess zur Regelerstellung beginnen. Dabei wird der Reihe nach für jede Kategorie eine Regel erzeugt, die vereinfacht gesagt möglichst viele Datensätze abdeckt und diese möglichst korrekt klassifiziert. Dazu bedient man sich der oben angesprochenen Qualitätsmaße. Wie genau die Regeln konstruiert werden sehen wir gleich. Sobald jedoch eine Regel feststeht, wird sie dem Regelsatz als neue und niedrigrangigste Regel hinzugefügt und aus der Menge der Trainingsdaten werden alle Datensätze entfernt, die von der Regel abgedeckt werden. Das heißt, es werden alle Daten entfernt, auf welche die Vorbedingung zutrifft sowohl die korrekt als auch die falsch klassifizierten. Eine Kategorie gilt als abgearbeitet, wenn eine gewisse Abbruchbedingung erreicht wird, beispielsweise, dass keine Trainingsdaten zu dieser Kategorie mehr vorhanden sind, oder dass die erzeugten Regeln von zu schlechter Qualität sind. Algorithmus 13.1 gibt formal an, wie das Sequential Covering Verfahren abläuft. Algorithmus 13.1 : Sequential Covering Algorithmus zum Erlernen von Klassifikationsregeln. Input : C = {c 1,..., c J } Liste der Kategorien, sortiert nach Priorität. Input : D = {d 1,..., d n } Menge der Trainingsdokumente. Output : R geordneter Regelsatz. function SequentialCovering(C,D); begin R new List; foreach c j C do repeat (r = A c j ) learnrule(c j, D); D D \ A(D); R.append(r); until Abbruchbedingung für Kategorie c j erfüllt ; return R end Bleibt die Frage, wie in der Methode learnrule(c j, D) die Regeln erstellt werden? Eine ausschöpfende Prüfung aller möglichen Kombinationen von Termen kommt nicht in Frage, da die Anzahl aller möglichen Kombinationen von Terme exponentiell mit der Größe des Vokabulars wächst. Um diese Problematik zu umgehen, werden Regeln schrittweise aufge- 227

236 13 Textklassifikation baut und in jedem Schritt über das Qualitätsmaß evaluiert. Nach einer Greedy-Strategie wird dann immer der vielversprechendste Schritt weiterverfolgt, also die Regel, welche bezüglich des Qualitätsmaßes am besten abschneidet. Für den Aufbau der Regeln gibt es zwei Vorgehensweisen: von allgemeinen zu spezielleren Regeln oder von speziellen zu allgemeineren Regeln. Im ersten Fall fängt man mit einer sehr allgemeinen Regel an, die keinerlei Vorbedingungen macht. Entsprechend macht diese Regel sehr viele Fehler, da sie alle Dokumente einer Kategorie zuordnet. Nun werden der Regel testweise einzelne Terme zur Vorbedingung hinzugefügt. Jede dieser möglichen Erweiterungen wird mit dem Qualitätsmaß geprüft und die beste Variante wird in die nächste Runde der Verfeinerung geschickt. Dann wird testweise mit einem weiteren Term ergänzt und es wird wiederum die bezüglich des Qualitätsmaßes beste Ergänzung weiterverfolgt. Diese Iteration bricht ab, sobald ein zuvor festgelegtes Abbruchkriterium erreicht wird. So kann beispielsweise abgebrochen werden, sobald das Hinzufügen neuer Terme keine weitere Verbesserung der Regel bringt, oder wenn der Coverage Wert zu stark sinkt. Umgekehrt kann man auch bei sehr speziellen Regeln anfangen und diese verallgemeinern. Dazu wählt man ein Beispieldokument aus der Kategorie aus, für die gerade Regeln erzeugt werden sollen. Die Terme die in diesem Dokument enthalten sind dienen dann als Vorbedingung für eine sehr spezielle Regel. Mit welchem Beispieldokument man anfängt kann mit dem Qualitätsmaß über den aus dem Dokument erzeugten speziellen Regelsatz bestimmt werden. Nun verallgemeinert man diese Regel, indem man testweise einzelne Terme aus der Regel entfernt. Auch hier wird dann schrittweise immer die Verallgemeinerung weiter verfolgt, die am besten bezüglich des Qualitätsmaßes abschneidet. Schritt für Schritt enthält die Regel dann immer weniger Terme und überdeckt somit mehr Testdaten. Auch hier wird die Verallgemeinerung nur solange fortgeführt bis ein Abbruchkriterium erreicht wird. So kann die Verallgemeinerung gestoppt werden, sobald die Regel auf den Trainingsdaten Fehler macht oder die Qualität der Regel sich nicht mehr verbessert. Erlernen von Regeln mit dem Sequential Covering Algorithmus Gehen wir wieder von den 30 Beispieldokumenten in den Kategorien Wirtschaft, Politik und Touristik aus, die in Tabelle 13.3 auf Seite 222 aufgeführt sind und die wir hier als Menge D bezeichnen. Für den Sequential Covering Algorithmus belassen wir die Kategorien in der vorgegebenen Reihenfolge, d.h. wir erlernen zunächst die Regeln für Wirtschaft, dann die für Dokumente aus dem Bereich Politik und zuletzt für Touristik. Bezüglich des Aufbaus der Regeln gehen wir von allgemeinen zu spezielleren Regeln vor und verwenden das relativ einfach anzuwendende Laplace-Maß als Gütekriterium an. Wir brechen das Verfeinern einer Regel ab, wenn bezüglich des Qualitätsmaßes keine Verbesserung mehr eintritt, und die Regelerzeugung für eine Kategorie endet, wenn alle Beispieldokumente behandelt wurden oder es keine bessere als die allgemeine Regel ohne Vorbedingungen gibt. 228

237 13.3 Regelbasierte Systeme Wir beginnen also mit der Erzeugung von Regeln für die Kategorie Wirtschaft, d.h. die Dokumente d 1 bis d 10 sind positive Trainingsbeispiele, während d 11 bis d 30 Negativbeispiele sind. Weiterhin fangen wir zunächst mit der sehr allgemeinen Regel mit leerer Vorbedingung an: r [0] 1 = () c Wirtschaft Diese Regel weist allen Dokumenten die Kategorie Wirtschaft zu, da sie keinerlei Vorbedingungen stellt. Sie zeichnet sich entsprechend durch einen sehr hohen Coverage- Wert von 1 aus aber auch durch eine mäßige Accuracy von 1. Bezüglich des von uns 3 hier verwendeten Laplace-Qualitätsmaßes ergibt sich für r [0] 1 : q Laplace (r [0] 1, D) = = = 0, 333 Nun prüfen wir für jeden Term, ob sich die Qualität der Regel verbessert, wenn wir ihn in die Vorbedingungen aufnehmen. Der erste Term in unserem Vokabular ist Agentur, so dass die erst Möglichkeit eine Regel mit einem Term in der Vorbedingung aufzustellen so aussieht: r [1,1] 1 = (Agentur) c Wirtschaft Es gibt insgesamt sechs Dokumente in D in denen der Term Agentur auftritt, wovon drei in die Kategorie Wirtschaft fallen. Somit ergibt sich für diese Spezialisierung der Ausgangsregel r [0] 1 eine Accuracy von 0,5 und ein Coverage Wert von 0,2. Bezüglich des hier ausschlaggebenden Laplace-Maßes bedeutet dies: q Laplace (r [1,1] 1, D) = = 4 9 = 0, 444 Das bedeutet, dass bereits diese Ergänzung der Vorbedingung zu einer Regel führt, die unter dem Qualitätsmaß besser als die allgemeine Anfangsregel r [0] 1 abschneidet, da sie einen höheren Wert erzielt. Betrachten wir die weiteren möglichen Spezialisierungen mit den anderen Termen des Vokabulars, so erhalten wir folgende Regeln und folgende Werte für das Laplace-Maß: 229

238 13 Textklassifikation Regel Vorbedingung q Laplace r [1,1] 1 (Agentur) 0, 444 r [1,2] 1 (Boot) 0, 286 r [1,3] 1 (Firma) 0, 571 r [1,4] 1 (Flugzeug) 0, 183 r [1,5] 1 (Gesetz) 0, 273 r [1,6] 1 (Insel) 0, 222 r [1,7] 1 (Präsident) 0, 25 r [1,8] 1 (Regierung) 0, 2 r [1,9] 1 (Reise) 0, 091 r [1,10] 1 (Stadt) 0, 273 r [1,11] 1 (Steuer) 0, 417 r [1,12] 1 (Strand) 0, 125 r [1,13] 1 (Umsatz) 0, 667 Bedingt durch die Greedy-Strategie wählen wir nun also die Regel mit dem besten Ergebnis bezüglich des Qualitätsmaßes aus: die Regel r [1,13] 1. Wir machen sie zum Ergebnis des Auswahlschrittes r [1] 1 mit dem wir weiterarbeiten: r [1] 1 = r [1,13] 1 = (Umsatz) c Wirtschaft Der Vollständigkeit halber betrachten wir noch kurz Accuracy und Coverage für diese Regel. Es gibt neun Trainingsdokumente, die der Vorbedingung von r [1] 1 genügen, so dass wir einen Coverage-Wert von 0,3 erzielen. Von den neun Dokumenten liegen immerhin sieben tatsächlich in der Kategorie Wirtschaft, was zu einer Accuracy von 7 führt. 9 Es folgt der nächste Schritt, bei dem wir wiederum die bisher entwickelte Regel weiter spezialisieren, indem wir einen weiteren Terme zur Vorbedingung hinzufügen. Fangen wir auch hier wieder mit Agentur an, so erhalten wir: r [2,1] 1 = (Umsatz Agentur) c Wirtschaft Mit dieser Regel erfassen wir insgesamt drei Dokumente in D, die auch tatsächlich alle zur Kategorie Wirtschaft gehören. Wir haben hier also Coverage von 0,1 und Accuracy von 1, was bezüglich des Laplace-Maßes nicht zu einer Verbesserung gegenüber r [1] 1 führt, da der Wert des Qualitätsmaßes bei beiden Regeln gleich ist: q Laplace (r [2,1] 1, D) = = 4 6 = 0, 667 Führen wir jedoch die Erweiterung auch mit den anderen Termen des Vokabulars durch, so ergibt sich tatsächlich noch eine Alternative, die bessere Ergebnisse erzielt: 230

239 13.3 Regelbasierte Systeme Regel Vorbedingung q Laplace r [2,1] 1 (Umsatz Agentur) 0, 667 r [2,2] 1 (Umsatz Boot) 0, 4 r [2,3] 1 (Umsatz Firma) 0, 75 r [2,4] 1 (Umsatz Flugzeug) 0, 25 r [2,5] 1 (Umsatz Gesetz) 0, 6 r [2,6] 1 (Umsatz Insel) 0, 4 r [2,7] 1 (Umsatz Präsident) 0, 5 r [2,8] 1 (Umsatz Regierung) 0, 4 r [2,9] 1 (Umsatz Reise) 0, 25 r [2,10] 1 (Umsatz Stadt) 0, 333 r [2,11] 1 (Umsatz Steuer) 0, 571 r [2,12] 1 (Umsatz Strand) 0, 333 Die Spezialisierung r [2,3] 1 nämlich, in der Firma in die Vorbedingungen aufgenommen wird, überdeckt fünf Dokumente die alle in der Kategorie Wirtschaft liegen. Aufgrund des besseren Wertes des Laplace-Maßes geht also diese Regel in die nächst Runde: r [2] 1 = r [2,3] 1 = (Umsatz Firma) c Wirtschaft Auch im dritten Schritt der Entwicklung der ersten Regel müssen nun wieder alle möglichen Erweiterungen durchprobiert und bezüglich des Laplace-Maßes ausgewertet werden: Regel Vorbedingung q Laplace r [3,1] 1 (Umsatz Firma Agentur) 0, 6 r [3,2] 1 (Umsatz Firma Boot) 0, 5 r [3,3] 1 (Umsatz Firma Flugzeug) 0, 333 r [3,4] 1 (Umsatz Firma Gesetz) 0, 333 r [3,5] 1 (Umsatz Firma Insel) 0, 5 r [3,6] 1 (Umsatz Firma Präsident) 0, 333 r [3,7] 1 (Umsatz Firma Regierung) 0, 333 r [3,8] 1 (Umsatz Firma Reise) 0, 333 r [3,9] 1 (Umsatz Firma Stadt) 0, 333 r [3,10] 1 (Umsatz Firma Steuer) 0, 5 r [3,11] 1 (Umsatz Firma Strand) 0, 333 Diesmal erzielt r [3,1] 1 den besten Qualitätswert, welcher allerdings unterhalb des Wertes für die Regel r [2] 1 liegt. Dies lässt sich auch anschaulich recht schön nachvollziehen. Regel r [2] 1 hatte bereits eine Accuracy von 1 erreicht, durch Spezialisierung der 231

240 13 Textklassifikation Vorbedingung kann nur noch der Coverage-Wert eingeschränkt werden. Somit birgt die Hinzunahme eines neuen Terms in die Vorbedingung nur das Risiko des overfittings, ohne die Qualität bezüglich der Klassifikation zu verbessern. Da also unter dem Laplace-Maß keine Verbesserung erzielt wird, bricht die Suche nach der ersten Regel an dieser Stelle ab und wir fügen r [2] 1 als erste Regel in den Regelsatz des Klassifikators ein: R : r 1 = (Umsatz Firma) c Wirtschaft Gemäß der Vorgaben in Algorithmus 13.1 müssen nun alle Dokumente aus der Trainingsmenge D entfernt werden, die den Vorbedingungen der Regel r 1 genügen. In diesem Beispiel sind dies die Dokumente d 1, d 3, d 5, d 9 und d 10. Mit der reduzierten Menge an Trainingsdokumenten gehen wir nun daran, die zweite Regel zu entwickeln. Wie zuvor fangen wir mit der allgemeinen Regel ohne Vorbedingung und mit der Kategorie Wirtschaft als Schlussfolgerung an: r [0] 2 = () c Wirtschaft Aufgrund der veränderten Menge der Trainingsdokumente ergibt sich diesmal ein anderer Wert für das Laplace-Maß, da nur noch fünf von insgesamt 25 Dokumenten in der Kategorie Wirtschaft liegen: q Laplace (r [0] 2, D) = = 6 = 0, Erweitern wir die Vorbedingung der Regel testweise um die Terme aus dem Vokabular, so stellen wir fest, dass auch hier die Aufnahme des Terms Umsatz zur besten Bewertung unter dem Laplace-Maß führt. Die entsprechende Regel r [1,13] 2 erzielt einen Wert von: q Laplace (r [1,13] 2, D) = = 3 = 0, Nimmt man im zweiten Schritt noch den Term Gesetz hinzu, so ergibt sich eine weitere Verbesserung zu einem Laplace-Wert von: q Laplace (r [2,5] 2, D) = = 3 5 = 0, 6 Dieser Wert lässt sich durch Hinzunahme von weiteren Termen nicht mehr verbessern, so dass wir diese Regel als r 2 in den Regelsatz aufnehmen: R : r 1 = (Umsatz Firma) c Wirtschaft r 2 = (Umsatz Gesetz) c Wirtschaft 232

241 13.3 Regelbasierte Systeme Im Anschluss werden die Dokumente d 4 und d 8 aus den Trainingsdaten entfernt, da sie von der Vorbedingung zu r 2 erfasst werden und wir verbleiben mit 23 Trainingsdokumenten. Auch die Erzeugung der dritten Regel läuft analog ab. Es ergibt sich diesmal bereits nach einem Schritt, dass folgende Regel nicht weiter verbessert werden kann: r [1] 3 = (Firma) c Wirtschaft Wir fügen also auch diese Regel dem Regelsatz hinzu. Interessant ist an dieser Stelle jedoch, dass diese Regel keine Accuracy von 1 auf den Trainingsdaten erzielt. Daher fallen beim anschließenden Reduzieren der Trainingsmenge nicht nur die Dokumente d 2 und d 7 aus, die auch tatsächlich in der Kategorie Wirtschaft liegen, sondern zusätzlich die Dokumente d 13, d 15 und d 18 aus Politik und d 22 aus Touristik. Für die vierte Regel zur Kategorie Wirtschaft ergibt sich im nächsten Durchlauf die Vorbedingung, dass die Terme Stadt und Steuer enthalten sein müssen. Die Regel erfasst mit d 6 auch das letzte Trainingsbeispiel der Kategorie Wirtschaft, so dass danach Regeln für eine andere Kategorie erlernt werden können. Unser Regelsatz R enthält nach der Behandlung der ersten Kategorie vier Regeln: R : r 1 = (Umsatz Firma) c Wirtschaft r 2 = (Umsatz Gesetz) c Wirtschaft r 3 = (Firma) c Wirtschaft r 4 = (Stadt Steuer) c Wirtschaft Wir wenden uns nun der Kategorie Politik zu. Es sind 16 Dokumente in der Trainingsmenge verblieben, von denen sieben in diese Kategorie fallen. Genau wie zuvor werden auch hier wieder schrittweise Regeln erzeugt, jeweils durch termweise Einschränkung der allgemeinen Regel ohne Vorbedingung. Außer der eingeschränkten Trainingsmenge ändert sich lediglich die Auffassung von korrekten und falschen Klassifikationen, da nun die Dokumente mit Label Politik als positive Beispiele herangezogen werden müssen. In dieser Kategorie werden zwei Regeln erlernt, nach denen bereits aller Beispiele behandelt sind. Für die Erkennung der Kategorie Touristik sind in unserem Fall nur noch Beispieldokumente aus dieser Klasse übrig, so dass die allgemeine Regel ohne Vorbedingung bereits perfekte Ergebnisse erzielt und nicht weiter verbessert werden kann. Insgesamt erhalten wir folgenden Regelsatz: 233

242 13 Textklassifikation R : r 1 = (Umsatz Firma) c Wirtschaft r 2 = (Umsatz Gesetz) c Wirtschaft r 3 = (Firma) c Wirtschaft r 4 = (Stadt Steuer) c Wirtschaft r 5 = (Regierung) c Politik r 6 = (Steuer) c Politik r 7 = () c Touristik In dieser Berechnung haben wir alle unsere Daten für das Trainieren des Klassifikators verbraucht, so dass eine Evaluation der erhaltenen Regeln ohne die Zugabe von neuen, manuell mit Label versehenen Daten nicht möglich ist. Wir können jedoch probeweise betrachten, wie die beiden Dokumente d a und d b mit den folgenden Termen klassifiziert werden: d a : Agentur, Insel, Reise, Strand d b : Firma, Gesetz, Regierung, Steuer Die erste Regel, die für Dokument d a zutrifft ist die letzte Regel r 7 die mit ihrer allgemeinen Vorbedingungen jedes Dokument erfasst, das nicht zuvor klassifiziert wurde. Somit bekommt d a die Kategorie Touristik zugewiesen, was sich anhand der Terme auch anschaulich nachvollziehen lässt. Dokument d b hingegen erfüllt die Vorbedingung zu Regel r 3, dass der Term Firma enthalten ist. Daher wird diesem Dokument die Kategorie Wirtschaft zugeordnet, obwohl sich von den Termen inhaltlich die Kategorie Politik vielleicht eher anbieten würde. Anstatt neue Dokumente einzuführen, hätten wir auch eine Strategie mit crossvalidation fahren können. Bei einem klassischen 10-times 10-fold cross-validation Ansatz ergaben sich für das hier demonstrierte Verfahren einen regelbasierten Klassifikator zu erlernen durchschnittliche Accuracy-Werte 4 von 0,59 bis 0,62. Nachgelagert nach dem Algorithmus zum Erlernen von Regeln könnten noch verschiedene Strategien zur Optimierung der Regeln verfolgt werden. So fällt in unserem Beispiel auf, dass Regel r 3 eine allgemeinere Fassung von r 1 ist. Will man die Aussagen zur Qualität der beiden Regeln nicht weiter verwenden, so könnte man diese Regeln zusammenfassen. 4 Eine Evaluation mit 10-times 10-fold cross-validation liefert natürlich nur einen konkreten durchschnittlichen Accuracy-Wert. Da unsere Datenbasis hier allerdings sehr dünn ist, wurden mehrere Durchläufe durchgeführt, um sicher zu gehen, dass nicht trotz der bereits evaluationsimmanenten zehnfachen Wiederholung ein Ausreißer nach oben oder unten beobachtet wurde. 234

243 13.4 Naive Bayes Ein anderer Ansatz zur Optimierung wäre es, zu spezielle Regeln zu entfernen, d.h. solche Regeln die zu kleine Coverage-Werte aufweisen. Bei der Suche nach Regeln selbst, kann ebenfalls anders verfahren werden. Statt des Greedy-Ansatzes, bei dem immer nur die beste Regel weiterverfolgt wird, könnte alternativ ein Beam-Search basiertes Verfahren zur Anwendung kommen. Dabei werden in jedem Schritt die k besten Regeln ermittelt, für die jeweils die möglichen weiteren Verfeinerung analysiert werden. Es wird dann jeweils die beste der untersuchten Alternativen als Regel in den Regelsatz aufgenommen. Darüber hinaus gibt es neben dem Sequential Covering Algorithmus noch viele andere Ansätze um regelbasierte Klassifikatoren aus Trainingsdaten abzuleiten. Diese sollen an dieser Stelle jedoch nicht weiter behandelt werden. Bei weiterem Interesse empfiehlt sich ein Blick in Literatur zum Thema Data Mining und Machine Learning, beispielsweise die Bücher von Witten und Frank [WF00] oder von Tan, Steinbach und Kumar [TSK06] Naive Bayes Ganz anders als die im letzten Abschnitt betrachteten regelbasierten Klassifikatoren gehen Naive Bayes Klassifikatoren vor. Anstatt feste Regeln aufzustellen, die mit boolschen Anfragen verglichen werden können, wird bei Naive Bayes (kurz: NB) ein probabilistisches Modell zu den Kategorien und den darin vorkommenden Termen erlernt. Das bedeutet, dass aus den Trainigsdaten Wahrscheinlichkeitsverteilungen geschätzt werden und die Klassifikation eines neuen, zuvor ungesehenen Dokumentes sich danach richtet, in welcher Kategorie das Dokument wohl am wahrscheinlichsten enthalten wäre. Ziel bei NB ist es also, zu einem gegebenen Dokument eine Aussage zu machen, mit welcher Wahrscheinlichkeit es in eine Kategorie fällt. Ganz in der Tradition der probabilistischen Modelle im IR, wie wir sie in Kapitel 7 und 11 gesehen haben, lässt sich dies als bedingte Wahrscheinlichkeit formulieren: P (c j d) Dieser Ausdruck liefert zu einem gegebenen Dokument d die Wahrscheinlichkeit, dass dieses zur Kategorie c j gehört. Die Klassifikation selbst läuft dann so ab, dass einem Dokument die Kategorie zugewiesen wird, für welche der Wert P (c j d) maximal wird. Formal lässt sich die Klassifikationsfunktion γ also folgendermaßen angeben: γ NB (d) = arg max c j C P (c j d) Um die Wahrscheinlichkeit P (c j d) berechnen zu können wendet man wie schon der Name des Verfahrens andeutet auch hier wieder den Satz von Bayes an und erhält somit: P (c j d) = P (c j) P (d c j ) P (d) 235

244 13 Textklassifikation Darin stecken nun wieder andere Wahrscheinlichkeiten die sich anschaulich interpretieren lassen. Hinter P (c j ) steckt die Wahrscheinlichkeit eine bestimmte Kategorie zu beobachten. Diese spielt bei NB Klassifikatoren durchaus eine wichtige Rolle. Sie führt dazu, dass ein Dokument, das gleichermaßen in zwei Kategorien passen würde, der Kategorie zugeschlagen wird, die insgesamt wahrscheinlicher ist. Der Ausdruck P (d) beschreibt die Wahrscheinlichkeit für das zu klassifizierende Dokument. Ähnlich wie die Anfragen in probabilistischen IR Modellen ist das Dokument allerdings für eine konkrete Klassifikationaufgabe fest und somit stellt dieser Wert über alle Kategorien hinweg einen konstanten Faktor dar. Weil am Ende aber nur die wahrscheinlichste Kategorie von Interesse ist, kann ein solcher Faktor in der Berechnung von γ vernachlässigt werden. Entsprechend lassen wir den Ausdruck in den nachfolgenden Berechnung weg und drücken mit dem Zeichen aus, dass der Wert den wir berechnen zwar nicht exakt mit der Wahrscheinlichkeit P (c j d) übereinstimmt aber proportional zu ihr ist. Bleibt schließlich der Ausdruck P (d c j ), welcher als die Wahrscheinlichkeit interpretiert werden kann, in der Klasse c j das Dokument d zu beobachten. Dass NB Klassifikatoren ein Naive im Namen tragen liegt an einer essentiellen Annahme die bei ihrem Einsatz gemacht wird: die Attribute der zu klassifizierenden Objekte hängen nur von der Kategorie ab und sind untereinander unabhängig. Für Dokumente bedeutet dies je nach Dokumentdarstellung, dass die Wahrscheinlichkeiten für das Auftreten einzelner Terme, von Bigrammen oder die Werte anderer Eigenschaften nur von der Kategorie abhängen. Dass diese Annahme nicht der Realität entspricht wird direkt klar, wenn man bedenkt, dass gewisse Wörter deutlich häufiger in Kombination auftreten (z.b. Redewendungen, Mehrwortkonstrukte). Aus diesem Grund kann man sagen, die Annahme ist übertrieben oder eben naiv. Wie kann nun die obige Umformung der bedingten Wahrscheinlichkeit P (c j d) genutzt werden, um einen Klassifikator zu bauen? Die zentrale Idee ist es, die Wahrscheinlichkeiten für P (c j ) und P (d c j ) aus Trainingsdaten zu schätzen, um somit für neue Dokumente Aussagen über die Zugehörigkeit zu Kategorien machen zu können. Dazu geht man wie auch bei anderen ML Verfahren davon aus, dass die Trainingsbeispiele ein repräsentatives Abbild der realen Welt darstellen. Das bedeutet einerseits, dass die relative Häufigkeit der Kategorien in etwa der Verteilung des tatsächlichen Auftretens entspricht, und andererseits, dass die in den Trainingsdokumenten beobachteten Eigenschaften typisch für die Kategorien sind. Bezüglich der nun schon mehrfach angesprochenen Dokumenteigenschaften beschränken wir uns wie schon im letzten Abschnitt wieder auf die in den Dokumenten enthaltenen Terme. Da diesmal auch die Termfrequenzen eine Rolle spielen arbeiten wir letztendlich mit einer Bag of Words Darstellung der Dokumente. Auf der Basis der Annahme, dass die Wahrscheinlichkeiten für das Auftreten von Termen in den Dokumenten nur von der Kategorie und nicht von anderen Termen abhängt, können wir die obige Formel etwas vereinfachen. Damit lässt sich nämlich die Wahrscheinlichkeit P (d c j ) in ein Produkt über Wahrscheinlichkeiten einzelner Terme umformen. Nehmen wir nämlich an, dass das Dokument d aus der Abfolge t 1 t 2 t 3... t Ld von Termen besteht, so ergibt sich: 236

245 13.4 Naive Bayes P (d c j ) = P (d = (t 1 t 2 t 3... t Ld ) c j ) = P (t 1 c j ) P (t 2 c j ) P (t 3 c j )... P (t Ld c j ) Fasst man den letzten Ausdruck zu einem Produkt zusammen und fügt ihn unter Weglassen von P (d) in die obige Gleichung ein, so erhält man damit: L d P (c j d) P (c j ) P (t i c j ) Dabei ist t i als der Term an der i-ten Stelle im Dokument zu interpretieren, entsprechend läuft der Index i bis zu L d, der Länge des Dokuments. Da wir jedoch von einem Bag of Words Modell ausgehen und die Reihenfolge vernachlässigen, können wir an dieser Stelle die Wahrscheinlichkeiten zu gleichlautenden Termen zusammenfassen. Denn wenn der k-te Term im Vokabular t k an drei Stellen im Dokument auftaucht, bedeutet dies lediglich, dass wir die Wahrscheinlichkeit für t k dreimal in das Produkt einfließen lassen müssen 5. Dies lässt sich formal so darstellen: i=1 P (c j d) P (c j ) P (t k c j ) tf d (t k) Der Vorteil dieser Umformungen ist, dass wir die hier aufgeführten Wahrscheinlichkeiten P (c j ) und P (t k c j ) direkt aus den Trainingsdaten schätzen können. Dazu wenden wir in beiden Fällen die MLE an (vgl. 11.3). Für die Kategorien müssen wir dazu letztendlich nur die relative Häufigkeit der Kategorien in den Trainingsdaten bestimmen und können diese als Schätzer verwenden: t k d ˆP (c j ) = g j D Dabei steht D wieder für die Menge der Trainingsdokumente und g j für die Anzahl dieser Dokumente, die der Kategorie c j zugeordnet sind. Ebenso kann für das Schätzen der Wahrscheinlichkeiten P (t k c j ) vorgegangen werden. Bezeichnen wir mit tf cj (t k ) die Anzahl der Vorkommnisse von t k in allen Trainingsdokumenten die zur Kategorie c j gehören 6. Dann können wir die relative Häufigkeit eines Terms in einer Kategorie bestimmen und als Schätzer für die Wahrscheinlichkeit P (t k c j ) einsetzen: ˆP (t k c j ) = tf cj (t k ) t i V tf cj (t i ) 5 Im Prinzip muss kombinatorisch auch noch die Anzahl der Möglichkeiten betrachten, den Term t k an drei Stellen eines Dokumentes d der Länge L d unterzubringen, dabei handelt es sich jedoch um einen Term, der für ein gegebenes Dokument konstant ist und somit an der proportionalen Beziehung zur Wahrscheinlichkeit P (c j d) nichts ändert. 6 Der Bezeichner tf cj (t k ) erinnert durchaus mit Absicht an Termfrequenzen. Letztendlich bestimmt man hier die Termfrequenz von t k in der gesamten Kategorie. 237

246 13 Textklassifikation Im Nenner steht dabei die Summe aller Terme in allen Trainingsdokumenten zur Kategorie c j. Im Endeffekt wird hier also bestimmt welcher Bruchteil aller Terme in dieser Kategorie auf den Term t k entfällt. Dieses Vorgehen erinnert stark an den LM Ansatz zum IR, in dem letztendlich Wahrscheinlichkeiten für das Auftreten von Termen in Dokumenten geschätzt wurden. Für die Sprachmodelle wurde die Wahrscheinlichkeit einen Term zu beobachten ebenfalls über die relative Häufigkeit dieses Terms geschätzt. In der Tat beruhen beide Ansätze auf den gleichen Ideen und Modellannahmen einer Multinomialverteilung, weshalb diese Form des NB Klassifikators auch als multinomiales NB bezeichnet wird. Anschaulich kann man sich einen solchen NB so vorstellen: fasst man die Trainingsdokumente einer Kategorie zu einem langen Dokument zusammen, so baut man im NB Ansatzes gewissermaßen ein LM, das Dokumente zu dieser Kategorie erzeugen kann. Ein deutlicher Unterschied ist jedoch, dass die Wahrscheinlichkeit P (c j ) für die Kategorien hier direkt aus den Trainingsdaten modelliert werden kann. Bei den LM für klassische Ad Hoc Anfragen konnten höchstens statische Qualitätsmaße als Prior für das gleichwertige Konzept der Dokumentwahrscheinlichkeiten P (d) eingesetzt werden. Ein Problem, das aber für NB Klassifikatoren genauso besteht wie beim Einsatz von LM für IR Zwecke, sind Terme, die in den Trainingsdokumenten zu einer Kategorie nicht auftreten. Solche Terme erhalten nämlich vom obigen Schätzer eine Wahrscheinlichkeit von 0 zugewiesen. Kommt also in einem Dokument ein Term vor, der beim Training zu einer Kategorie nie aufgetreten ist, so führt dies aufgrund der Multiplikation der Einzelwahrscheinlichkeiten dazu, dass die Kategorie dem Dokument insgesamt mit Wahrscheinlichkeit 0 zugerechnet wird. Genau wie bei den Language Models kommt daher auch bei NB Klassifikatoren Smoothing zum Einsatz. Allerdings wird hier kein Referenzkorpus verwendet, sondern man setzt das einfachere Laplace-Smoothing ein, bei dem die tatsächliche Häufigkeit jedes Terms um einen Wert von 1 erhöht wird. Das führt dazu, dass der obige Schätzer angepasst werden muss zu: ˆP (t k c j ) = t i V tf cj (t k ) + 1 ( tfcj (t i ) + 1 ) = t i V tf cj (t k ) + 1 ( tfcj (t i ) ) + V Setzt man diesen sowie den Schätzer für die Kategorienwahrscheinlichkeit in die Funktion γ ein, so erhält man insgesamt die folgende Formel zur Darstellung von Naive Bayes Klassifikatoren: γ NB (d) = arg max c j C g j D t k d t i V d (t tf cj (t k ) + 1 ( tf ) k tfcj (t i ) ) + V 238

247 13.4 Naive Bayes Textklassifikation mit multinomialem Naive Bayes Klassifikator Wie schon bei den regelbasierten Klassifikatoren wollen wir einen NB Klassifikator zunächst auf allen Dokumenten aus Tabelle 13.3 trainieren, um uns das Verfahren an sich zu verdeutlichen. Zunächst können wir dabei die Wahrscheinlichkeiten für die einzelnen Kategorien schätzen. Dies ist in diesem Beispiel relativ uninteressant, da letztendlich für jede der drei Kategorien Wirtschaft, Politik und Touristik zehn Beispieldokumente zur Verfügung stehen. Daher erhalten wir die etwas unspektakulären Schätzer: ˆP (c Wirtschaft ) = 1 3 ˆP (c Politik ) = 1 3 ˆP (c Touristik ) = 1 3 Auch wenn die Schätzer für die Wahrscheinlichkeiten der Kategorien alle gleich sind und somit die Klassifikation von Dokumenten nicht wirklich beeinflussen werden wir die Werte der Vollständigkeit halber dennoch mitführen. Danach brauchen wir die Aufteilung der Trainingsdaten in einzelne Dokumente vom Prinzip her nicht weiter zu betrachten. Schließlich interessiert uns zu jedem Term des Vokabulars nur noch, wie oft er in den Dokumenten einer Kategorie insgesamt aufgetreten ist. Wir können daher die Termfrequenzen in den Dokumenten aufsummieren und zusammenfassen so wie in Tabelle 13.4 dargestellt. Die Angabe einer Länge bezieht sich dabei auf die Gesamtzahl an Termen, die in den Kategorien aufgetreten ist. Dieser Wert wird im nächsten Schritt für die Berechnung der Schätzer benötigt. Tabelle 13.4: Häufigkeiten der Terme in den einzelnen Kategorien Agentur Boot Firma Flugzeug Gesetz Insel Präsident Kategorie Länge c Wirtschaft c Politik c Touristik Auf der Basis dieser Werte werden nun die Schätzer für die Wahrscheinlichkeiten P (t k c j ) berechnet. Betrachten wir hier stellvertretend für die anderen Kombinationen die Wahrscheinlichkeit P (Agentur c Wirtschaft ), so erhalten wir folgenden Schätzer: Regierung Reise Stadt ˆP (Agentur c Wirtschaft ) = = 5 78 Steuer = 0, 06 Strand Umsatz 239

248 13 Textklassifikation Wie man anhand der Addition von 1 im Zähler und 13 im Nenner erkennen kann, ist bereits ein Laplace-Smoothing in den Schätzer eingeflossen. Genauso geht man nun für alle Terme und Kategorien vor, so dass man letztendlich die Wahrscheinlichkeitsschätzer in Tabelle 13.5 erhält. Tabelle 13.5: Wahrscheinlichkeiten für die Terme in den einzelnen Kategorien. Agentur Boot Firma Flugzeug Gesetz Insel Kategorie c Wirtschaft 0,06 0,04 0,21 0,03 0,06 0,03 0,04 0,04 0,01 0,06 0,15 0,01 0,26 c Politik 0,01 0,01 0,05 0,03 0,24 0,02 0,19 0,18 0,03 0,05 0,14 0,01 0,02 c Touristik 0,12 0,06 0,02 0,13 0,04 0,09 0,02 0,01 0,20 0,07 0,01 0,21 0,02 Damit ist das Trainieren des NB Klassifikators bereits abgeschlossen. Um zu verdeutlichen, wie die Klassifikation selbst abläuft, greifen wir wieder die beiden Dokumente d a und d b aus dem vorherigen Abschnitt auf. Diesmal benötigen wir auch Angaben zu den Termfrequenzen, die hier in Klammern notiert sind: Präsident d a : Agentur (1), Insel (2), Reise (2), Strand (4) Regierung d b : Firma (1), Gesetz (2), Regierung(5), Steuer (3) Betrachten wir zunächst Dokument d a. Wir müssen für jede unserer Kategorien testen, wie wahrscheinlich es ist, dass d a darin liegt. Das heißt, wir müssen für jede Kategorie das folgende Produkt auswerten: Reise Stadt Steuer P (c j ) P (Agentur c j ) P (Insel c j ) 2 P (Reise c j ) 2 P (Strand c j ) 4 Setzen wir hier die Schätzer für Wahrscheinlichkeiten zur Kategorie Wirtschaft ein, so ergibt sich: 1 3 0, 06 (0, 03)2 (0, 01) 2 (0, 01) 4 = 1, Führt man die Berechnung für alle Kategorien durch, so gelangt man zu folgenden Werten, die jeweils proportional zur Wahrscheinlichkeit sind, dass d a in der entsprechenden Kategorie liegt: Wirtschaft : 1, Politik : 1, Touristik : 2, Da hier der Wert für die Kategorie Touristik am größten ist, wird das Dokument d a dieser Kategorie zugeordnet. Führt man die gleichen Berechnung für d b durch, so gelangt man zu folgenden Werten, aus denen hervorgeht, dass d b der Kategorie Politik zugeschlagen wird: Strand Umsatz 240

249 13.4 Naive Bayes Wirtschaft : 8, Politik : 5, Touristik : 1, Wenden wir für eine etwas solidere Evaluation wieder 10-times 10-fold cross-validation an, so erzielt dieses NB Verfahren eine durchschnittliche Accuracy zwischen 0,81 und 0,84. Anhand des Beispiels sieht man auch, dass sehr kleine Werte miteinander multipliziert werden. Bei längeren Dokumenten stößt man also schnell wieder an die Grenzen der Rechengenauigkeit. Allerdings kann auch hier die Standardlösung herangezogen werden die uns bereits an anderen Stellen begegnet ist: man rechnet mit der Summe der logarithmierten Wahrscheinlichkeitswerte: P (c j d) log (P (c j )) + log ( P (t k c j ) ) tf d (t k) Im Gegensatz zum bisher beschriebenen multinomialen NB Modell wird im Bernoulli NB Ansatz die Wahrscheinlichkeit P (d c j ) aus der Ausgangsformel etwas anders aufgelöst. Statt die Wahrscheinlichkeiten einzelner Terme über deren relative Häufigkeit in den Trainingsdokumenten zu einer Kategorie zu modellieren wird lediglich auf das Vorhandensein oder Fehlen von Termen in den Trainingsdokumenten geachtet. Bedingt durch die beiden einzigen Möglichkeiten Term vorhanden und Term nicht vorhanden als Ergebnis der Beobachtung eines Dokumentes hat man es in diesem Fall mit Bernoulli Verteilungen zu tun. Mehr von der praktischen Seite aus betrachtet heißt das, dass statt kategorieglobalen Termfrequenzen kategoriespezifische Dokumentfrequenzen verwendet werden, um die Wahrscheinlichkeit zu schätzen, dass ein bestimmter Term in einer Kategorie auftritt. Die Wahrscheinlichkeit P (t k c j ) beschreibt hier also eine andere Größe. Für die zugehörigen Schätzer müssen wir bestimmen, in wie vielen Trainingsdokumenten zur Kategorie c j der Term t k auftritt (egal ob mehrfach oder nur einmal). Wir bezeichnen diese kategoriespezifische Dokumentfrequenz mit df cj (t k ) und verwenden wie schon zuvor g j für die Anzahl der Trainingsdokumente in Kategorie c j. Um den Fall abzudecken, dass ein Term in keinem einzigen Trainingsdokument auftritt, wird auch bei diesem Schätzer wieder Laplace-Smoothing eingesetzt und man erhält: t k d ˆP (t k c j ) = df c j (t k ) + 1 g j + 2 Es fällt auf, dass beim Smoothing im Nenner ein konstanter Wert von 2 addiert wird, der von der Größe des Vokabulars und der Anzahl der Dokumente unabhängig ist. Das liegt daran, dass wir wie oben erwähnt nun nur darauf achten, ob ein Term in einem Dokument enthalten ist oder nicht. Somit gibt es für einen Term nur zwei mögliche Beobachtungen: 241

250 13 Textklassifikation entweder er ist enthalten oder eben nicht. Und diese beiden möglichen Beobachtungen werden beim Smoothing für die Berechnung des Schätzer jeweils um 1 erhöht. Folgerichtig müssen wir nun eigentlich auch noch die Wahrscheinlichkeit bestimmen, dass ein Term nicht in einem Dokument auftritt. Dies ist jedoch das Gegenereignis zur Beobachtung, dass der Term enthalten ist und ergibt sich somit direkt über: ˆP (t k c j ) = 1 ˆP (t k c j ) = g j df cj (t k ) + 1 g j + 2 Mit diesen Schätzern kann man nun für ein Dokument d die Wahrscheinlichkeit P (d c j ) als Kombinationen von enthaltenen und fehlenden Termen berechnen. Nehmen wir dazu an, dass die Terme t 1 bis t n in d enthalten sind. Dann ergibt sich: P (d c j ) = P (d = {t 1, t 2, t 3,..., t n } c j ) = (P (t i c j )) t i d t i V \d (P (t i c j )) Man sieht direkt wie bei den Bernoulli NB Klassifikatoren sowohl die enthaltenen als auch die fehlenden Terme in einem zu klassifizierenden Dokument berücksichtigt werden. Baut man diese Form in die Gesamtformel ein, so erhält man: P (c j d) P (c j ) (P (t i c j )) t i d t i V \d (P (t i c j )) Textklassifikation mit Bernoulli Naive Bayes Klassifikator Um die Unterschiede zum multinomialen NB Ansatz noch deutlicher zu machen, erstellen wir nun einen Bernoulli NB Klassifikator zu unseren Beispieldokumenten. Zur Berechnung der Schätzer interessieren wir uns diesmal nicht für relativen Häufigkeiten der Terme in den Kategorien, sondern vielmehr für den Anteil der Trainingsdokumente, welche den Term enthalten. Tabelle 13.6 listet auf, welcher Term in jeweils wievielen Trainingsdokumenten der drei Kategorien auftritt: Tabelle 13.6: Anzahl der Trainingsdokumente in den Kategorien die bestimmte Terme enthalten. Agentur Boot Firma Flugzeug Gesetz Insel Präsident Regierung Reise Stadt Steuer Strand Umsatz Kategorie c Wirtschaft c Politik c Touristik Ziehen wir auch hier wieder stellvertretend für die anderen Kombination die Wahrscheinlichkeit P (Agentur c wirtschaft ) heran, so ergibt sich aus den Daten in Tabelle 13.6 der Schätzer: 242

251 13.4 Naive Bayes ˆP (Agentur c Wirtschaft ) = = 4 = 0, Die Wahrscheinlichkeitsschätzung, dass der Term Agentur nicht in einem Dokument aus der Kategorie Wirtschaft auftaucht ergibt sich entsprechend daraus, dass es sieben Trainingsdokumente gibt, in denen der Term nicht aufgetreten ist: ˆP (Agentur c j ) = = 8 = 0, Wie aber bereits angesprochen ist dies schlicht die Wahrscheinlichkeit des Gegenereignisses und kann daher über 1 P (Agentur c Wirtschaft ) berechnet werden. Aus diesem Grund genügt es auch, für den Klassifikator die Wahrscheinlichkeiten für das Ereignis Term enthalten zu speichern. Diese Werte sind in Tabelle 13.7 für alle Terme und Kategorien aufgeführt. Tabelle 13.7: Wahrscheinlichkeitsschätzung für Bernoulli NB Klassifikator. Agentur Boot Firma Flugzeug Gesetz Insel Kategorie c Wirtschaft 0,33 0,17 0,67 0,17 0,25 0,17 0,25 0,17 0,08 0,25 0,42 0,08 0,67 c Politik 0,08 0,08 0,33 0,17 0,5 0,17 0,58 0,58 0,25 0,25 0,50 0,08 0,17 c Touristik 0,33 0,33 0,17 0,58 0,17 0,42 0,17 0,08 0,58 0,42 0,08 0,50 0,17 Präsident Regierung Reise Stadt Steuer Strand Umsatz Berechenen wir auch in diesem Modell die Kategorien für die beiden Dokumente d a und d b. Da uns diesmal wieder nur interessiert ob ein Term enthalten ist oder nicht, können wir die Termfrequenzen ignorieren. Für d a muss dann zu jeder Kategorie c j jeweils das folgende Produkt berechnet werden: P (c j ) P (Agentur c j ) P (Boot c j ) P (Firma c j ) P (Flugzeug c j ) P (Gesetz c j ) P (Insel c j ) P (Präsident c j ) P (Regierung c j ) P (Reise c j ) P (Stadt c j ) P (Steuer c j ) P (Strand c j ) P (Umsatz c j ) Daraus ergeben sich folgende Werte in den drei Kategorien Wirtschaft, Politik und Touristik : Wirtschaft : 6, Politik : 4, Touristik : 2, Das heißt, dass d a auch unter diesem Modell in die Kategorie Touristik eingeordnet wird. Für d b hingegen ergibt sich die Kategorie Politik, wie man an diesen Werten sehen kann: 243

252 13 Textklassifikation Wirtschaft : 7, Politik : 5, Touristik : 1, Auch für den Bernoulli NB Klassifikator können wir zu Evaluationszwecken schließlich eine 10-times 10-fold cross validation laufen lassen. Dabei ergeben sich mittlere Accuracy-Werte zwischen 0,71 und 0,75. Der Einsatz von Bernoulli NB Klassifikatoren kann dann sinnvoll sein, wenn das Fehlen eines Termes einen klaren Einfluss auf die Klassifikation hat. Wie wir allerdings schon in anderem Zusammenhang angemerkt haben, sind fehlende Terme in Texten selten aussagekräftig (vgl. die Anmerkungen zur regelbasierten Klassifikation oder die schwache Gewichtung von negativem Relevance Feedback in 5.7). Bei der maschinellen Klassifikation anderer Objekte kann das Fehlen einer bestimmten Eigenschaft jedoch durchaus gute Hinweise auf die Kategorie geben, man denke beispielsweise an positive oder negative Ergebnisse von medizinischen Tests um einen Krankheitsbefund zu erstellen. Ein anderer Punkt den es zu bedenken gilt ist, dass zu jedem zu klassifizierenden Dokument alle Terme des Vokabulars berücksichtigt werden müssen unabhängig davon wie viele Terme letztendlich im Dokument auftreten. Das kann bei einem umfangreichen Vokabular durchaus zu Einbußen bei der Performanz führen. Erkennung der Sprache von Suchanfragen mit multinomialem Naive Bayes Klassifikator In Kapitel 12 haben wir bei CLIR Systemen mit der Übersetzung von Dokumenten oder Anfragen gearbeitet. Für den erfolgreichen Einsatz eines Übersetzungsmoduls muss man zunächst die Sprache des Ausgangstextes genau kennen. Das Erkennen der Sprache stellt wie in der Einleitung erwähnt ebenfalls eine Klassifikationsaufgabe dar. Für längere Texte, wie sie normalerweise in Dokumenten auftreten, gibt es dazu eine ganze Reihe von sehr zuverlässigen Ansätzen. Wie sieht es aber mit den Anfragen aus? Anfragen sind in der Regel sehr kurz, enthalten keine vollständigen Sätze und sind relativ häufig gespickt mit Eigennamen von Personen, Firmen, Produkten oder geografischen Orten. Zerlegt man die Anfrage nicht in Wörter sondern in zeichenbasierte n-gramme, so können Naive Bayes Klassifikatoren hier noch erstaunlich zuverlässige Ergebnisse liefern. Nimmt man einzelne Wörtern aus Wörterbüchern, so erkennt ein NB Klassifikator in mehr als 80% der Fälle die Sprache richtig. Auf Texten, die sehr ähnlich zu Anfragen sind, wird sogar eine Accuracy von 99,4% erreicht [GL10]. 244

253 13.5 Der Rocchio Algorithmus zur Textklassifikation 13.5 Der Rocchio Algorithmus zur Textklassifikation Nachdem uns bei der regelbasierten Klassifikation das boolsche Modell und bei Naive Bayes Klassifikatoren probabilistische Modelle begegnet sind, kommen wir nun zu einem Klassifikationsverfahren auf der Basis des Vektorraummodells. Der Rocchio Ansatz zur Textklassifikation 7 verwendet die Vektordarstellungen von Dokumenten, um ein prototypisches Beispieldokument für jede Kategorie abzuleiten. Für ein ungesehenes Dokument d wird dann überprüft, welches der Prototypdokumente am dichtesten an d liegt. Nach diesem nächstliegenden Prototyp richtet sich dann die Klassifikation von d. Die Darstellung der Dokumente beruht auf den gleichen Prinzipien wie im Vektorraummodell. Jeder Term des Vokabulars spannt eine Dimension in einem Vektorraum auf. Ein Dokument wird durch einen Vektor von Gewichten zu jedem einzelnen Term dargestellt. Die Gewichte werden beispielsweise per TF-IDF berechnet und typischerweise findet eine Normierung der Dokumente auf Einheitslänge statt. Letztendlich hat man es also mit der gleichen Darstellung der Dokumente wie bei einem Vektorraum IR-System zu tun. Die grundlegende Idee (und gewissermaßen die Voraussetzung für den Erfolg des Ansatzes) bei einer Klassifikation im Vektorraum ist, dass die Dokumente einer Kategorie durch ähnliche Vektoren dargestellt werden. Bei Klassifikations- oder später auch Clusteraufgaben bedeutet das, dass die durch die Vektoren beschriebenen Punkte dicht beisammen liegen. Somit kommt hier ein Abstandsmaß zum Einsatz, um räumliche Nähe oder Entfernung zu modellieren. Als Abstandsmaße dienen meist Metriken. Eine Metrik δ ist definiert als eine Abbildung von Zwei-Tupeln (bei uns von Dokumenten) auf die nicht negativen reellen Zahlen, formal durch: δ : D D [0, } R Weiterhin gelten für Metriken einige weitere Bedingungen [For96], die wir hier direkt im Kontext des Einsatzes als Abstandsmaß zwischen Dokumenten in der Vektorraumdarstellung beschreiben: Jedes Dokument hat zu sich selbst den Abstand 0. Das bedeutet, dass für alle Dokumente in ihrer Vektordarstellung d gilt, dass: δ( d, d) = 0 Weiterhin gilt, dass eine Metrik für zwei verschiedene also nicht-identische Dokumente einen positiven Wert annimmt. Formal bedeutet dies für zwei Dokumentvektoren d 1 und d 2 mit d 1 d 2, dass: δ( d 1, d 2 ) > 0 7 Es handelt sich um ein anderes Verfahren als der Rocchio Ansatz für Relevance Feedback, der in 5.7 vorgestellt wurde. Beide Verfahren basieren jedoch auf ähnlichen Operation über Dokumentvektoren 245

254 13 Textklassifikation Es muss noch einmal darauf hingewiesen werden, dass diese Aussage für eine Metrik über den vektorbasierten Dokumentdarstellungen gilt. Für eine Abstandsaussage über den Dokumenten selbst wird diese Voraussetzung in der Regel nicht verlangt allein schon deshalb weil unterschiedliche Dokumente bei einer Bag of Words Darstellung auf den gleichen Vektor abgebildet werden 8. Symmetrie: Der Abstand zwischen zwei Dokumenten d 1 und d 2 ist unabhängig vom Blickwinkel. Dass heißt der Abstand von d 1 zu d 2 ist gleich dem Abstand von d 2 zu d 1. Formal: δ( d 1, d 2 ) = δ( d 2, d 1 ) d 2, d 1 D Dreiecksungleichung: Für drei Dokumente d 1, d 2 und d 3 gilt: δ( d 1, d 2 ) δ( d 1, d 3 ) + δ( d 3, d 2 ) Für die Darstellung von Dokumenten im Vektorraum bietet sich der Einsatz von Metriken als Abstandsmaß an, jedoch kommen Abstände auch bei anderen Darstellungen zum Einsatz. Je nachdem wie die Abstände dann berechnet werden erfüllen diese nicht mehr alle Voraussetzungen einer Metrik. Verwendet man beispielsweise die Anzahl der Hyperlinks zwischen zwei Webseiten für die Berechnung eines Abstandes so führt dies in der Regel zu asymmetrischen Abständen, da die Verweise im Web gerichtet und nicht bidirektional sind. Da ein Dokument ein anderes deutlich häufiger verlinken kann, gelangt man zu unterschiedlichen Abständen. Nichtmetrische Abstände treten insbesondere auch dann auf, wenn die Abstände nicht durch einen Algorithmus berechnet werden, sondern von Nutzern festgelegt werden. Dies wäre beispielsweise der Fall wenn verschiedene Nutzer die inhaltliche Nähe von einem gegebenen Dokument zu einem anderen auf einer Skala zwischen 1 und 10 ausdrücken sollen. Solche Schätzungen für die Abstände dürften bedingt durch unterschiedliche Nutzer, Blickwinkel und Kontexte höchstwahrscheinlich zu asymmetrischen Abständen führen, die auch die Dreiecksungleichung nicht unbedingt erfüllen. In Kapitel 5 wurde für die Berechnung der Retrievalfunktion im Vektorraum kein Abstandsmaß sondern ein Ähnlichkeitsmaß eingesetzt. Während bei Abstandsmaßen kleine Werte für einen starken inhaltlichen Zusammenhang zwischen den Dokumenten stehen, wurde dieser bei Ähnlichkeitsmaßen durch einen Wert von 1 oder zumindest nahe bei diesem absoluten Maximalwert ausgedrückt. Umgekehrt bedeutete ein Ähnlichkeitswert von 0, dass die Dokumente keine inhaltlichen Gemeinsamkeiten haben, während ein Abstandsmaß dies durch einen relativ großen Wert ausdrückt. Der Unterschied zwischen Abstandsund Ähnlichkeitsmaßen ist jedoch gar nicht so groß wie er zu sein scheint. In der Tat 8 So werden zum Beispiel das Dokument die Katze jagt die Maus und das Dokument die Maus jagt die Katze in einem Bag of Words Modell durch den gleichen Vektor dargestellt. Somit haben sie bezüglich einer Metrik im Vektorraum den Abstand 0, obwohl es sich um unterschiedliche Dokumente handelt. 246

255 13.5 Der Rocchio Algorithmus zur Textklassifikation gibt es einige Standardansätze, um zu einem Abstandsmaß ein Ähnlichkeitsmaß oder zu Ähnlichkeitsmaßen Abstandsmaße zu konstruieren. So erhält man zu einem Ähnlichkeitsmaß sim eine Abstandfunktion dist, indem man den Ähnlichkeitswert vom Maximalwert 1 abzieht: dist(d 1, d 2 ) = 1 sim(d 1, d 2 ) Alternativ kann man auch den Negativwert des Logarithmus des Ähnlichkeitsmaßes verwenden. Damit erhält man auch Abstände zwischen Dokumenten, die größer als 1 sind. Problematisch wird der Ansatz aber, wenn eine Ähnlichkeit von 0 auftritt, da der Logarithmus für Werte gegen 0 gegen minus unendlich strebt. dist(d 1, d 2 ) = log (sim(d 1, d 2 )) Umrechnen von Ähnlichkeits- auf Abstandswerte Die Abstandswerte die durch die beiden eben genannten Umrechnungsmöglichkeiten entstehen entwickeln sich erwartungsgemäß sehr unterschiedlich. Die folgende Tabelle gibt beispielhaft an, wie die konstruierten Abstandsmaße für verschiedene Ähnlichkeitswerte aussehen: sim(d 1, d 2 ) 1 sim(d 1, d 2 ) log (sim(d 1, d 2 )) 1,0 0,0 0,00 0,9 0,1 0,05 0,8 0,2 0,10 0,7 0,3 0,15 0,6 0,4 0,22 0,5 0,5 0,30 0,4 0,6 0,40 0,3 0,7 0,52 0,2 0,8 0,70 0,1 0,9 1,00 0,0 1,0 Für den umgekehrten Fall, also aus einem Abstandsmaß dist ein Ähnlichkeitsmaß abzuleiten, gibt es ebenfalls verschiedene Ansätze. Sofern für das Abstandsmaß ein Maximalwert dist max bekannt ist, kann man die Abstände diesbezüglich normieren und von 1 abziehen: sim(d 1, d 2 ) = 1 dist(d 1, d 2 ) dist max Kann man keinen Maximalwert angeben, so kann man eine dieser beiden Varianten einsetzen: 247

256 13 Textklassifikation sim(d 1, d 2 ) = dist(d 1, d 2 ) sim(d 1, d 2 ) = e dist(d 1,d 2 ) Diese beiden Ansätze liefern jedoch nie einen Ähnlichkeitswert von 0. Dies lässt sich aber auch anschaulich begründen. Da keine Maximalwert für die Abstände angegeben werden kann, kann es immer noch ein Dokument mit größerem Abstand und somit zwangsläufig mit geringerer Ähnlichkeit geben. Umrechnen von Abstands- auf Ähnlichkeitswerte Auch hier soll in einer Tabelle kurz ein Überblick über die Entwicklung der umgerechneten Ähnlichkeitsmaße im Vergleich zu den Abständen gegeben werden: dist(d 1, d 2 ) 1 dist(d 1,d 2 ) 1 dist max 1+dist(d 1,d 2 ) e dist(d 1,d 2 ) 0,00 1,000 1,000 1,000 0,10 1,000 0,909 0,905 0,25 1,000 0,800 0,779 0,50 1,000 0,667 0,607 1,00 0,999 0,500 0,368 2,00 0,998 0,333 0,135 5,00 0,995 0,167 0,007 10,00 0,990 0,091 0, ,00 0,900 0,010 0, ,00 0,500 0,002 0, ,00 0,000 0,001 0,000 Für die Umrechnung über die Exponentialfunktion sind hier für die Abstandswerte ab 10 Ähnlichkeitswerte von 0 eingetragen. Dies täuscht jedoch, die Werte sind größer als Null, allerdings so geringfügig, dass dies bei der Darstellung mit drei Nachkommastellen nicht mehr angezeigt wird. Für den Rocchio-Algorithmus zur Klassifikation und die TF-IDF-Vektorraumdarstellung der Dokumente verwenden wir als Abstandsmaß an dieser Stelle die euklidische Metrik, also in unserem Fall: δ( d 1, d 2 ) = M ( [i] w 1 w [i] ) 2 2 i=1 248

257 13.5 Der Rocchio Algorithmus zur Textklassifikation Dabei steht M für die Mächtigkeit des Vokabulars und w [i] j für das Gewicht des i-ten Terms im j-ten Dokument. Diese Metrik bietet sich auch deshalb, an weil sie bisher schon für die Längennormierung der Dokumentvektoren eingesetzt wurde. Bedingt durch die Längennormierung ergibt sich noch ein anderes Phänomen. Da nur Vektoren mit einer Länge von 1 vorkommen, liegen die dadurch beschriebenen Punkte alle auf einer hochdimensionalen Sphäre. Da im TF-IDF-Fall die Einträge der Vektoren weiterhin nur positive Werte annehmen, wird sogar nur ein Ausschnitt der Sphäre genutzt. Zur Verdeutlichung zeigt Abbildung 13.3 den für Dokumentvektoren über drei Termen in Frage kommenden Ausschnitt der Sphäre im R 3. Abbildung 13.3: Ausschnitt der Sphäre auf der die Dokumentrepräsentationen im dreidimensionalen Vektorraum mit normierten TF-IDF Gewichten liegen. Durch diese Einschränkung des Vektorraumes auf einen Sphärenausschnitt ergibt sich für die euklidische Abstandsmessung sogar, dass ein direkter Zusammenhang mit dem Cosinusmaß besteht. Das heißt, dass wenn zwischen den Vektoren d 1 und d 2 ein größerer Abstand besteht als zwischen d 3 und d 4, dann ist auch der Winkel zwischen d 1 und d 2 größer als zwischen d 3 und d 4 (und somit das Cosinusmaß kleiner). Zu Darstellungszwecken werden wir in Beispielen weiterhin die Dokumente häufig als Punkt in einer Ebene darstellen, wie wir es zu Beginn des Kapitels für die Verdeutlichung des Overfitting Problems getan haben. Das vereinfacht die Wahrnehmung und Darstellung im Vergleich zu einem Sphärenausschnitt. Durch diese in Abbildung 13.4 und 13.5 angedeutete Projektion entstehen zwar ebenfalls Verzerrungen bei den Abständen, für unsere Beispiele soll dies jedoch nicht stören. Für das Rechnen mit Abständen setzen wir auf die tatsächlichen Werte der Euklidischen Metrik. Kommen wir nun zurück zum eigentlichen Klassifikationsverfahren und der Annahme, dass die Vektoren der Dokumente aus einer Kategorie untereinander räumlich dicht beisammen und gleichzeitig zu den anderen Kategorien weiter entfernt liegen. Wir erwarten 249

258 13 Textklassifikation Abbildung 13.4: Projektion der Punkte vom Sphärenausschnitt auf eine Hyperebene (hier als orange Gerade im 2D Fall). Abbildung 13.5: Projektionsebene für den dreidimensionalen Fall also eine Situation wie in Abbildung 13.6, in der sich die Kategorien als Grüppchen von Dokumenten abzeichenen. Die Dokumente sind hier als farbige Punkte dargestellt, hinter denen jeweils ein Vektor steckt, und bei denen die Farbe die Zugehörigkeit zur gleichen Kategorie symbolisiert. Im Rocchio Ansatz zur Klassifikation wird nun für jede Kategorie ein prototypischer Dokumentvektor berechnet. Dieser Prototyp soll gewissermaßen ein ideales, typisches Dokument der Kategorie repräsentieren. Rocchio verwendet Zentroiden als Prototypen: Vektoren die über den Mittelwert der gesamten Trainingsvektoren einer Kategorie bestimmt 250

259 13.5 Der Rocchio Algorithmus zur Textklassifikation Abbildung 13.6: Annahme bei Vektorraumklassifikation: Die Dokumente der Kategorien liegen jeweils räumlich nahe bei einander. werden 9. Formal ergibt sich der Zentroid z j zur Kategorie c j über die zugehörige Menge von Trainingsdokumenten D j durch die Gleichung: z j = 1 d D j d D j Mit der Berechnung der Zentroiden ist die Trainingsphase eines Rocchio Klassifikators auch schon abgeschlossen. Die Trainingsdokumente selbst brauchen nicht weiter gespeichert werden, es genügt völlig, sich für jede Kategorie den Vektor z j zu merken. Wie der Name schon andeutet, liegen die Zentroiden im Zentrum der Traininungsdokumente zu einer Kategorie. Berechnet man die Zentroiden für die Lage der Dokumente aus Abbildung 13.6 und fügt diese in die Zeichnung ein, so dürfte sich ein Bild wie in Abbildung 13.7 ergeben. Die Zentroiden sind hier als kleine Kreuze eingetragen, die jeweils farblich zur zugehörigen Kategorie passen. Die Klassifikation eines Dokumentes d läuft denkbar einfach. Das Dokument wird in die Vektorraumdarstellung gebracht und auf Einheitslänge normiert. Danach wird, wie in Abbildung 13.8 gezeigt, der Abstand zu jedem einzelnen Zentroiden berechnet. Das Dokument d wird dann jener Klasse zugeordnet, deren Zentroid am nächsten liegt. Formal gesehen sieht die Klassifikationsfunktion γ also so aus: ( ) γ Rocchio (d) = arg min δ( d, zj c j C 9 Hier liegt auch die Gemeinsamkeit mit dem Rocchio Algorithmus zum Relevance Feedback. Auch beim Relevance Feedback wurden Mittelwerte über den Vektoren zu relevanten und irrelevanten Dokumenten berechnet, um dann den Anfragevektor anzupassen. 251

260 13 Textklassifikation Abbildung 13.7: Zentroiden berechnen sich als Mittelwert der Trainingsdokumentvektoren. Abbildung 13.8: Dokumente werden der Kategorie zugeordnet, deren Zentroid am nächsten liegt. Klassifikation mit Rocchio Algorithmus Wir erstellen wieder einen Klassifikator zu unseren 30 Dokumenten aus den Kategorien Wirtschaft, Politik und Touristik, wie sie in Tabelle 13.3 zu sehen sind. Diese müssen wir nun zunächst in die TF-IDF Vektordarstellung überführen und anschließend normieren. Die Bestimmung von Termfrequenzen, Dokumentfrequenzen, die Berechnung der TF-IDF Gewichte und die Normierung der Vektoren verläuft völlig analog zu den Beispielen in Kapitel 5. Daher beschränken wir uns an dieser Stelle darauf, die resultierenden Dokumentvektoren in Tabelle 13.8 aufzuführen. Der Übersichtlichkeit halber sind 0-Werte wieder komplett weggelassen worden. Neben den Trainingsdokumenten enthält die Tabelle auch die Vektordarstellung der beiden Dokumente d a und d b, welche wir nach dem Trainieren des Klassifikators klassifizieren wollen. Nun müssen wir für jede der drei Kategorien den Zentroiden berechnen. Dazu addieren wir die Gewichte der Trainingsdokumente zu jedem einzelnen Term auf und 252

261 13.5 Der Rocchio Algorithmus zur Textklassifikation Tabelle 13.8: Normierte TF-IDF Vektoren zu den Dokumenten aus Tabelle Agentur Boot Firma Flugzeug Gesetz Insel Präsident d 1 0,61 0,76 0,23 d 2 0,44 0,26 0,86 d 3 0,37 0,22 0,9 d 4 0,46 0,34 0,7 0,42 d 5 0,46 0,29 0,46 0,7 d 6 0,43 0,43 0,79 d 7 1 d 8 0,36 0,29 0,27 0,8 0,27 d 9 0,64 0,77 d 10 0,41 0,31 0,86 d 11 0,61 0,56 0,56 d 12 0,88 0,41 0,25 d 13 0,14 0,72 0,66 0,16 d 14 0,9 0,27 0,33 d 15 0,19 0,49 0,45 0,54 0,49 d 16 0,59 0,27 0,73 0,24 d 17 0,65 0,24 0,72 d 18 0,23 0,69 0,69 d 19 0,91 0,41 d 20 0,8 0,6 d 21 0,38 0,2 0,9 d 22 0,19 0,49 0,74 0,25 0,33 d 23 0,48 0,31 0,76 0,31 d 24 0,74 0,4 0,55 d 25 0,79 0,33 0,4 0,33 d 26 0,96 0,29 d 27 0,14 0,43 0,14 0,43 0,77 d 28 0,83 0,56 d 29 0,27 0,7 0,64 0,16 d 30 0,71 0,1 0,69 d a 0,19 0,38 0,31 0,85 d b 0,12 0,31 0,85 0,42 Regierung Reise Stadt Steuer Strand Umsatz Kategorie Wirtschaft Politik Touristik 253

262 13 Textklassifikation dividieren durch die Anzahl der Trainingsdokumente. Für die Kategorie Wirtschaft ergibt sich dadurch: z Wirtschaft = , , , 36 0, 41 0, , , , , , 31 0, 43 0, , 29 0, 46 0, , 27 0, , , 43 0, , 7 + 0, , 8 0 0, , 9 + 0, , 7 + 0, , , 86 = 0, 14 0, 04 0, 38 0, 04 0, 08 0, 05 0, 05 0, , 13 0, , 41 Gleichermaßen berechnen sich die Zentroiden für Politik und Touristik, was dann insgesamt zu den folgenden Ergebnissen führt 10 : z T Wirtschaft = ( 0, 14 0, 04 0, 38 0, 04 0, 08 0, 05 0, 05 0, , 13 0, , 41 ) z T Politik = ( 0 0 0, 06 0, 06 0, 36 0, 08 0, 29 0, 35 0, 07 0, 07 0, , 02 ) z T Touristik = ( 0, 24 0, 11 0, 02 0, 29 0, 04 0, 2 0, , 29 0, , 32 0, 02 ) Für die beiden Dokumente d a und d b müssen nun lediglich die Abstände zu diesen Prototypvektoren berechnet werden, um die Klassifikation durchzuführen. Für d a erhält man die Abstände: δ( d a, z Wirtschaft ) = 1, 16 δ( d a, z Politik ) = 1, 15 δ( d a, z Touristik ) = 0, 65 Der Prototypvektor der Kategorie Touristik hat also deutlich den kleinsten Abstand zum Dokument d a, weshalb es in diese Kategorie klassifiziert wird. Gemessen an den Termen im Dokument ist dies wiederum ein inhaltlich sehr gut nachvollziehbares Ergebnis. 10 Aus Platzgründen werden die Vektoren hier in ihrer transponierten Form dargestellt. 254

263 13.5 Der Rocchio Algorithmus zur Textklassifikation Für d b ergibt sich ebenfalls recht deutlich und nachvollziehbar die Kategorie Politik, wie sich aus den Abständen zu den Zentroiden ablesen lässt: δ( d b, z Wirtschaft ) = 1, 01 δ( d b, z Politik ) = 0, 61 δ( d b, z Touristik ) = 1, 17 Um auch den Rocchio Klassifikator etwas eindringlicher zu prüfen, wenden wir auch hier wieder 10-times 10-fold cross-validation auf der Basis der 30 Beispieldokumente an. Die mittlere Accuracy schwankte bei mehreren Durchläufen nur geringfügig und lag zwischen 0,86 und 0,87. Durch die Vorgehensweise, ein zu klassifizierendes Dokument der Kategorie des nächstgelegenen Prototypvektors zuzuordnen, wird der Vektorraum der Dokumentdarstellungen in Segmente unterteilt. Die Unterteilung erfolgt entlang solcher Punkte im Raum, die zu mindestens zwei Zentroiden den gleichen minimalen Abstand aufweisen. An diesen kann sich ein Rocchio Klassifikator vom Prinzip her nicht für eine Kategorie entscheiden, sie bilden somit die Grenze zwischen unterschiedlichen Klassifkationsentscheidungen. Betrachten wir zunächst nur zwei Zentroiden und vernachlässigen die Fälle in denen ein Punkt zu drei oder mehr Prototypvektoren den gleichen Abstand hat. Die Punkte, die von beiden Zentroiden gleich weit entfernt sind liegen wie in Abbildung 13.9 verdeutlicht alle auf einer Geraden. Diese Gerade trennt gewissermaßen den Raum auf, so dass alle Punkte auf einer Seite der Gerade der einen Kategorie zugeschlagen werden und alle Punkte auf der anderen Seite der zweiten Kategorie. Abbildung 13.9: Die Trennlinie zwischen zwei Kategorien ist ein Gerade. Betrachtet man nun auch die anderen Zentroiden, so entstehen mehrere Geraden, welche die Trennlinien zwischen allen Kategorien markieren. Berücksichtigt man nun die Schnitt- 255

264 13 Textklassifikation punkte dieser Geraden und die Abstände zu den Zentroiden, so ergibt sich die oben genannte Segmentierung des Vektorraumes. Es entsteht ein sogenanntes Voronoi Diagramm, wie es in Abbildung gezeigt ist. Die Punkte in den farbig markierten Flächen liegen jeweils näher am zugehörigen Zentroiden als an allen anderen Zentroiden. Die Klassifikation bestimmt also letztendlich auf welcher dieser Flächen ein zu klassifizierendes Dokument in seiner Vektorraumdarstellung liegt. Abbildung 13.10: Voronoi Diagramm zu den Zentroiden. Der Rocchio-Algorithmus ist leicht nachzuvollziehen und kann schnell implementiert werden. Im obigen Beispiel hat er gute Ergebnisse geliefert und auch in der beispielhaften Visualisierung in Abbildung findet er gute Prototypvektoren. Es lassen sich aber leicht Fälle konstruieren, in denen Rocchio systematisch Fehler macht und konzeptionell schlechter abschneiden muss. Dies ist beispielsweise dann der Fall, wenn die Dokumente zweier Kategorien ungleichmäßig verteilt sind, d.h. wenn sie unterschiedlich große Flächen einnehmen. Abbildung skizziert einen solchen Fall. Die blau dargestellten Dokumente aus der einen Kategorie sind verstreuter als die der gelben Kategorie. Da der Rocchio-Algorithmus allerdings eine solche Streuung der Trainingsbeispiele gar nicht erfasst, zählt letztendlich nur die Lage der Zentroiden. Die gestrichelte Linie gibt auch hier wieder die Trennung zwischen den beiden Kategorien nach dem Rocchio Klassifikator an. Es wird deutlich, dass bereits ein Anteil der blauen Dokumente in den Trainingsdaten näher am Zentroiden der gelben Kategorie als am blauen Zentroiden liegt. Ist die Verteilung der Trainingsbeispiele repräsentativ, so wird es dementsprechend auch später zu Falschklassifikationen kommen. Es lassen sich auch noch andere ungünstige Fälle erzeugen. Bedingt dadurch, dass die Flächen in Voronoi Diagrammen konvex sind, können Rocchio Klassifikatoren beispielsweise auch verzahnte Kategorien nicht fehlerfrei erkennen. 256

265 13.6 K Nearest Neighbour Abbildung 13.11: Voronoi Diagramm zu den Zentroiden K Nearest Neighbour Das K Nearest Neighbour (KNN) Klassifikationsverfahren eignet sich ebenfalls für die Anwendung auf Vektorraumdarstellungen von Dokumenten. Anders als der Rocchio Ansatz wurde es nicht speziell für Dokumentvektoren entwickelt, sondern wird auch in anderen Anwendungsszenarien und auf anderen Daten eingesetzt. Auch bei KNN wird eine Klassifikationsentscheidung auf der Basis von Abständen zu Vektoren getroffen, die für eine bestimmte Kategorie stehen. Einer der großen Unterschiede liegt darin, dass es nicht nur einen prototypischen Vektor für jede Kategorie gibt, sondern dass eine Kategorie von mehreren Vektoren repräsentiert werden kann. Und um die Trainingsdaten gewissermaßen optimal auszunutzen, wird jede Kategorie durch alle Trainingsbeispiele dargestellt, die für sie zur Verfügung stehen. Dementsprechend gibt es bei KNN keine wirkliche Trainingsphase. Stattdessen werden die Trainingsdokumente komplett im Klassifikator gespeichert und für die Klassifikationsphase vorgehalten. Zur Klassifikation eines Dokumentes wird dann dessen Abstand zu allen Trainingsdokumenten berechnet. An dieser Stelle kommt der namensgebende Parameter k des Verfahrens zum Einsatz. Es werden von allen Trainingsdokumenten die k nächstgelegenen ausgewählt und es werden deren Kategorien betrachtet. Die Kategorie, die unter diesen k nächsten Nachbarvektoren am häufigsten vorkommt wird dem zu klassifizierenden Dokument zugewiesen. Dokumente mit KNN klassifizieren Erstellen wir aus unseren 30 Standarddokumenten einen KNN Klassifikator. Den Parameter k besetzen wir mit verschiedenen Werten, um die Auswirkungen zu beobachten. Wir werden Werte von k = 1, k = 5 und k = 10 ausprobieren. In der Trainingsphase müssen wir die Dokumente lediglich in die TF-IDF Darstellung bringen. Die entsprechenden Vektoren wurden bereits in Tabelle 13.8 aufgestellt. In der gleichen Tabelle sind auch die TF-IDF Werte für die beiden Beispieldokumente 257

266 13 Textklassifikation d a und d b zu sehen, die wir auch hier wieder mit dem erlernenten Klassifikator einer Kategorie zuordnen lassen wollen. Berechnet man nun die Abstände der Vektoren für die Dokumente d 1 bis d 30 zu den Vektoren für d a und d b, so erhält man die Abstände in Tabelle Die Tabelle enthält ebenfalls ein Ranking, das die Reihenfolge der zehn Dokumente mit den kleinsten Abständen zu den zu klassifizierenden Dokumenten vorgibt. Tabelle 13.9: Abstände der Trainingsvektoren zu den Dokumenten da und db Abstand zu d a Rang Abstand zu d b Rang Kategorie d 1 1,330 1,350 d 2 1,414 1,378 d 3 1,414 1,313 d 4 1,414 0,743 4 d 5 1, ,390 d 6 1,414 1,156 9 d 7 1,414 1,329 d 8 1,365 1,071 8 d 9 1,414 1,360 d 10 1,414 1,389 d 11 1,414 1,237 d 12 1,414 0,873 6 d 13 1,414 1,177 d 14 1,414 0,940 7 d 15 1,414 0,864 5 d 16 1,354 0,632 2 d 17 1,414 0,618 1 d 18 1,414 1, d 19 1,320 0,678 3 d 20 1, ,223 d 21 0, ,414 d 22 0, ,399 d 23 1, ,414 d 24 0, ,414 d 25 1, ,414 d 26 1,414 1,414 d 27 0, ,318 d 28 1, ,414 d 29 1,229 1,414 d 30 0, ,414 Für k = 1 muss nun also zu beiden Dokumenten der jeweils nahegelegenste Nachbar bestimmt werden. Für d a ist dies das Dokument d 21 mit einem Abstand von 0,56. Wirtschaft Politik Touristik 258

267 13.6 K Nearest Neighbour Der gerinste Abstand zu d b tritt mit einem Wert von 0,618 bei Dokument d 17 auf. Da für k = 1 jeweils nur ein Dokument in der berücksichtigten und ausgewerteten Nachbarschaft liegt, gibt dieses dann auch direkt die Klassifikation vor. Somit wird d a in die Kategorie Touristik und d b in die Kategorie Politik eingeordnet. Setzen wir k auf einen Wert von 5, so müssen wir entsprechend mehr Trainingsdokumente für eine Klassifikation berücksichtigen. Von den fünf am nächsten an d a gelegenen Dokumenten gehören alle zur Kategorie Touristik, weshalb auch hier die Klassifikation denkbar einfach ausfällt. Die fünf nächsten Nachbarn zu d b liegen jedoch nicht alle in der gleichen Kategorie. Das viertnächste Dokument d 4 liegt in der Kategorie Wirtschaft während die anderen der Kategorie Politik angehören. Durch diesen klaren Überhang an Dokumenten in einer Kategorie ist die Klassifikation aber auch in diesem Fall eindeutig. Ähnlich sieht die Situation bei einer Wahl von k = 10 aus. Von den zehn nächsten Nachbarn zu d a liegen acht Trainingsdokument in der Kategorie Touristik und jeweils eines in Politik und eines in Wirtschaft. Bei d b verteilen sich die Nachbarn mit sieben Dokumenten auf Politik und mit drei auf Wirtschaft. Daher werden auch hier wieder die Kategorien Touristik, bzw. Politik zugewiesen. Bei einer Evaluation auf der Basis von 10-times 10-fold cross-validation auf den 30 Dokumenten erzielt KNN unterschiedliche Accuracy-Werte je nach Wahl von k. Die folgende Tabelle gibt eine Übersicht über die erzielten Ergebnisse: k Mittlere Accuracy 1 0,83 bis 0,85 5 0,86 bis 0, ,82 bis 0,84 Für die Parameterwahl von k = 10 ist hierbei zu bedenken, dass es durch den crossvalidation Ansatz zu jeder Kategorie nur neun Beispieldokumente gibt. Das bedeutet, dass sich unter den zehn nächsten Nachbarn zwangsweise Dokumente aus mindestens zwei verschiedenen Kategorien befinden. Eine wichtige Fragestellung bei KNN ist die Wahl des Parameters k. Wie wir im Beispiel gesehen haben, müssen wir uns bei k = 1 immer nur den nächstgelegenen Vektor eines Trainingsdokumentes heraussuchen. Somit entspricht 1NN bei der Klassifikation von der Vorgehensweise her dem Ansatz des Rocchio Klassifikators aus dem letzten Abschnitt. Der Unterschied besteht darin, dass es zu einer Kategorie mehrere Prototypvektoren gibt. Stellt man das ganze bildlich dar, so erhält man also auch hier wieder ein Voronoi Diagramm, in dem allerdings mehrere Zellen zu einer Kategorie gehören. Abbildung verdeutlicht diese Eigenschaft. Für k = 1 hat das KNN Klassifikationsverfahren jedoch einen großen Nachteil. Es reagiert sehr instabil auf Ausreißer in den Trainingsdaten. Selbst wenn ein solcher Ausreißer 259

268 13 Textklassifikation Abbildung 13.12: Voronoizerlegung bei 1NN Klassifikation. von vielen Trainingsbeispielen einer anderen Kategorie umgeben ist, so führt er dennoch zu Fehlklassifikation, da er seine direkte Nachbarschaft komplett beherrscht. Auch wenn sich zwei Kategorien in ihren Randgebieten überschneiden, kommt es bei der Klassifikation eines Dokumentes in diesem Randgebiet zu einer fast zufälligen Zuordnung. Größere Werte für k sorgen in solchen Fällen für eine bessere Stabilität des Verfahrens. Typischerweise wird für k ein ungerader Wert gewählt, um die Gefahr eines Unentschiedens unter den Kategorien der nächsten Nachbarn etwas abzumildern. Werte von k = 3 oder k = 5 bieten sich an. Wenn genügend Trainingsbeispiele für die einzelnen Klassen vorliegen können auch deutlich größere Werte für k gewählt werden. Eine weitere Möglichkeit besteht darin einen geeigneten Wert von k über die Trainingsdaten zu bestimmen. Dazu trennt man die Trainingsdaten in zwei Teilmengen auf. Die Dokumente in der ersten Teilmenge werden wie gewohnt als Trainingsdatensatz verwendet. Mit der zweiten Teilmenge optimiert man hingegen die Einstellung des Parameters k. Dazu prüft man mit diesen Optimierungsdaten, bei welchen Wert für k die beste Accuracy auf dem zuvor trainierten Klassifikator erreicht wird. Es sei allerdings angemerkt, dass man im Anschluss für eine aussagekräftige Evaluation weitere Testdokumente benötigt, die weder für das Training noch für die Parameteroptimierung zum Einsatz gekommen sind. Eine Variante zu KNN erlaubt es, dass der Einfluss der Nachbarn auf die endgültige Klassifikation gewichtet werden kann. Am offensichtlichsten ist dabei eine Gewichtung über den Abstand der k nächsten Nachbarn. Dass bedeutete, dass die nähergelegenen unter den nächsten Nachbarn stärkeren Einfluss auf die Klassifikation nehmen als die weiter entfernten. Die Gewichtung kann prinzipiell aber auch nach anderen Kriterien erfolgen, beispielsweise gemäß einem Qualitätsmaß für die Trainingsdaten. Was die Laufzeit angeht, so ist KNN linear von der Anzahl der verwendeten Trainingsbeispiele abhängig. Je mehr Trainingsdokumente verwendet werden, desto mehr Abstände müssen berechnet werden, um die k nächsten Nachbarn zu bestimmen. Da die Dokumentvektoren weiterhin in einem sehr hochdimensionalen Vektorraum liegen, sind typische Datenstrukturen für Nachbarschaftsanalysen, wie z.b. k-d Bäume, hier ungeeignet. Man kann 260

269 13.7 Support Vector Machines jedoch einen invertierten Index für die Darstellung der Trainingsdokumente verwenden und die Terme im zu klassifizierenden Dokument als Abfrage verwenden. Somit kann man die Menge der zu berücksichtigenden Trainingsbeispiele auf all jene Dokumente einschränken, die mit dem zu klassifizierenden Dokument zumindest einen gemeinsamen Term aufweisen. Ein weiterer Punkt, der bei KNN interessant sein kann, ist jener, dass außer der Abstandsberechnung keine Operationen auf den Vektordarstellungen stattfinden. Dementsprechend kann KNN auch dann angewendet werden, wenn keine Vektordarstellungen der Dokumente vorliegt 11. Einzig eine Abstandsbestimmung ist nötig. Somit kann KNN auch auf ausgefalleneren Abstandsmaßen basieren, wie sie im vorherigen Abschnitt angesprochen wurden Support Vector Machines Support Vector Machines (SVM) sind ein weiterer, allgemeiner Klassifikationsansatz, der auch in der Textklassifikation Anwendung findet. SVMs betrachten an sich zunächst nur Probleme mit zwei Kategorien, jedoch können über den Umweg von mehreren SVM Instanzen auch Klassifikationsprobleme mit mehreren Klassen angegangen werden. Um das Prinzip der SVM zu verstehen betrachten wir zunächst einen Fall, wie er in Abbildung dargestellt ist. Wir haben es mit zwei Klassen von Dokumenten zu tun, die hier als Datenpunkte im zweidimensionalen Raum dargestellt sind. Ähnlich wie im Rocchio Verfahren können wir eine trennende Gerade ziehen, welche die beiden Klassen voneinander abgrenzt. Man könnte das Trainieren eines Klassifikators also auch so auffassen, dass man eine solche Gerade zu finden versucht 12. Genau darin liegt die Vorgehensweise der SVM: Sie bestimmen die Trenngerade zwischen zwei Kategorien. Abbildung 13.13: Eine Gerade trennt die Beispieldokumente aus den beiden Klassen. 11 Im Gegensatz dazu werden beispielsweise im Rocchio Ansatz die Zentroiden der Kategorien über Mittelwertbildung berechnet, also durch die Addition und Skalierung von Vektoren. Daher ist Rocchio tatsächlich auf die Vektordarstellung der Dokumente angewiesen. 12 Wir gehen zunächst einmal davon aus, dass sich eine solche Gerade auch tatsächlich finden lässt. 261

270 13 Textklassifikation Wir wollen diese Herangehensweise nun etwas formaler fassen. Während in Abbildung die Trennung der beiden Kategorien im zweidimensionalen Fall durch eine Gerade realisiert werden kann, wird in höherdimensionalen Räumen eine Hyperebene benötigt. Eine Hyperebene h lässt sich im Vektorraum mit Hilfe eines Skalarprodukts ausdrücken. h = { x V : w T x + b = 0 } Der Vektor w darf dabei kein 0-Vektor sein und steht senkrecht auf der Hyperebene, b gibt gewissermaßen den Versatz zum Ursprung an. In der Literatur findet man häufig die Bezeichnung Gewichtsvektor (weight vector) für w und Bias für den Wert b. In Abbildung ist eine solche Hyperebene als Gerade im zweidimensionalen Fall und für den Gewichtsvektor w T = (1; 0, 5) und mit b = 1 dargestellt. Abbildung 13.14: Hyperebene mit senkrechtem Vektor w. Die Abbildung enthält auch zwei Punkte A und B, die auf unterschiedlichen Seiten der Ebene liegen. Der Punkt A liegt bei den Koordinaten (0, 5; 0, 5) und B bei (1; 1, 5). Die Lage der Punkte relativ zur Ebene lässt sich durch Einsetzen der Koordinaten in die Ebenengleichung über das Vorzeichen des Ergebnisses bestimmen: für A : für B : ( 1 0, 5 ) ( 0, 5 0, 5 ( 1 0, 5 ) ( 1 1, 5 ) ) 1 = 0, 5 + 0, 25 1 = 0, 25 1 = 1 + 0, 75 1 = 0, 75 Der Wert des Punktes A ist negativ, da er auf der dem Gewichtsvektor abgeneigten Seite liegt, B hat einen positiven Wert, da er auf der gleichen Seiten liegt, auf die auch w zeigt. Die Werte geben ebenfalls an, wie weit die Punkte von h entfernt liegen und zwar relativ zur Länge des Vektors w. So liegt A also um das 0,25-fache der Länge von w von der Ebene h entfernt, und B entsprechend um das 0,75-fache der Länge von w. 262

271 13.7 Support Vector Machines Die soeben beobachteten unterschiedlichen Vorzeichen werden auch für die Klassifikation genutzt. Da die Daten aus den beiden Kategorien (idealerweise) genau durch die Hyperebene getrennt werden, kann man diese Trennung über unterschiedliche Vorzeichen beschreiben. Dementsprechend werden die beiden Klassen schlicht mit den Labels 1 und -1 versehen, und wir können die Trainingsdokumente in eine Menge D 1 für die erste Kategorie und D 1 für die zweiten Kategorie untergliedern. Im Zusammenhang mit SVMs wird dieses Label eines Dokumentes d i in der Regel ausdrücklich als y i { 1, 1} angegeben. Das hat beispielsweise den Vorteil, dass man allgemein und ohne Fallunterscheidung fordern kann, dass y i ( w T d i + b) > 0 für alle Trainingsbeispiele d i gilt. Hat man nach der Trainingsphase die trennende Hyperebene h konstruiert, d.h. die Einträge im Vektor w und den Wert für b festgelegt, so kann man mit ihr die Klassifikationsfunktion γ formulieren als: γ h (d) = sign( w T d + b) Die Funktion sign liefert das Vorzeichen des enthaltenen Ausdrucks, was bei der obigen Definition der beiden Kategorienlabels genau der Klassifikation entspricht. Das Training einer SVM bedeutet also, den Vektor w und den Bias b zu bestimmen. Bevor wir zu den SVMs selbst kommen, betrachten wir eine ältere Methode, um zumindest von der Idee her die gleichen Daten zu bestimmen: das Perzeptron. Das Perzeptron [Ros58] kann als sehr einfaches Neuronales Netz aufgefasst werden und sollte seinerzeit als Modell für Lernvorgänge im menschlichen Gehirn dienen. Zwar wurde im Laufe der Zeit nachgewiesen, dass es nicht mehr kann als linear separierbare Zweiklassenprobleme zu lösen, aber es stellt den Vorläufer komplexerer neuronaler Netze mit mehreren Schichten und feineren Lernverfahren dar. An dieser Stelle kann es für uns jedoch genau das leisten, was wir brauchen: eine Hyperebene finden, welche die Trainingsdaten in zwei Klassen trennt. Voraussetzung für die Konvergenz dieses iterativen Verfahrens ist jedoch, dass es eine solche Hyperebene tatsächlich gibt und dass keine Ausreißer vorkommen. Die Idee des Perzeptrons ist es, die Trainingsdaten wiederholt zu durchlaufen und dabei bei jeder auf den Trainingsdaten auftretenden Falschklassifikation den Gewichtsvektor w und den Bias b entsprechend zu korrigieren. Angefangen bei einem 0-Vektor für w und einem Bias von 0, wird für jedes Dokument in den Trainingsdaten geprüft, ob der Abstand zur bisher entwickelten Hyperebene positiv ist und das Dokument auf der richtigen Seite liegt. Ist dies nicht der Fall, so wird zum Gewichtsvektor der Vektor des Trainingsdokumentes hinzuaddiert und der Bias ebenfalls angepasst. Wie stark Gewichtsvektor und Bias verändert werden hängt von einer Lernrate η ab, die als Parameter in das Verfahren einfließt. Algorithmus 13.2 gibt die iterative Lernvorschrift für w und b formal wieder. In dieser Form konvergiert das Verfahren wie gesagt nur, wenn die Daten wirklich sauber durch eine Hyperebene getrennt werden können. Andernfalls gibt es bei jeder Iteration mindestens einen Fehler, der dazu führt, dass Gewichtsvektor und Bias erneut angepasst werden. 263

272 13 Textklassifikation Algorithmus 13.2 : Lernverfahren des Perzeptron Input : D = {d 1,..., d n } Menge der Trainingsdokumente. Input : Y = {y 1,..., y n } Kategorielabel der Trainingsdokumente aus {1, 1}. Output : ( w, b) Parameter der trennenden Hyperebene. function Perceptron(D,Y ); begin w 0 0; b 0 0; R max i=1,...,n d i ; k 0; repeat for i = 1,..., n do if y i ( w k T d i + b k ) 0 then w k+1 w k + η y i d i ; b k+1 b k + η y i R 2 ; k k + 1; until Keine Fehler in innerer Schleife ; return ( w k, b k ) end Perzeptron Zur besseren visuellen Darstellung gehen wir von einem zweidimensionalen Fall aus. Das bedeutet, dass unsere Dokumente über einem Vokabular von nur zwei Termen aufgebaut sind. Wir bezeichnen diese beiden Terme hier nur mit t 1 und t 2. Weiterhin gehen wir von einer einfachen Darstellung der Dokumente als Termfrequenzvektoren ohne weitere Gewichtung der Terme aus. Als Trainingsdaten stehen uns vier Dokumente zur Verfügung, je zwei aus einer der beiden Kategorien. Die Dokumente sehen folgendermaßen aus: Dokument t 1 t 2 y i d d d d Stellt man die Dokumente als Termfrequenzvektoren im zweidimensionalen Vektorraum dar, so erhält man das Bild in Abbildung Man sieht, dass die Daten offensichtlich linear separabel sind, so dass der Perzeptron Algorithmus hier gegen eine trennenden Hyperebene konvergieren sollte. Die Lernrate setzen wir auf η = 0, 25 fest. 264

273 13.7 Support Vector Machines Abbildung 13.15: Anordnung der Dokumentvektoren im Raum. Für den Start wählen wir in der formalen Definition in Algorithmus 13.2 zunächst einen Gewichtsvektor mit durchgängig 0-Einträgen, sowie einen Bias von 0, also: w 0 = ( 0 0 b = 0 Nun durchlaufen wir die Trainingsdokumente von d 1 zu d 4 der Reihe nach. Setzen wir zunächst die Werte aus d 1 ein, so stellen wir zwangsweise 13 fest, dass dieses Dokument nicht richtig klassifiziert wird: 1 ( ( 5 2 ) ( 0 0 Somit steht eine Anpassung der Hyperebene an. Auf den Gewichtsvektor w wird der mit der Lernrate η skalierte Vektor des Dokuments d 1 addiert: ) ) + 0 ) = 0 w 1 = ( 0 0 ) + 0, 25 1 ( 5 2 ) = ( 1, 25 0, 5 ) Der Bias b wird ebenfalls angepasst. Um den in der Anpassung verwendeten Wert R zu bestimmen, müssen wir die Längen der Trainingsvektoren betrachten und den längsten Vektor berechnen. In diesem Fall ist der Vektor des ersten Trainingsbeispiels auch gleichzeitig der längste Vektor mit einer Länge von 29. Somit ergibt sich für b 1 : 13 Durch die Initialisierung des Gewichtsvektors mit 0 Einträgen ist die Hyperebene entartet. Durch die Wahl von b = 0 hat weiterhin jeder Punkt im Vektorraum einen Wert von 0. Daher muss das erste Trainingsbeispiel im Perzeptron zwangsweise falsch klassifiziert werden, da nur echt positive Werte als korrekte Klassifikation gelten. 265

274 13 Textklassifikation b 1 = 0 + 0, = 7, 25 Mit diesen Werten kann die Trennebene nun tatsächlich konstruiert und in den Vektorraum eingezeichnet werden. Die Steigung der Geraden kann aus w abgelesen werden, da die Gerade senkrecht zu diesem Vektor steht. Um herauszufinden, an welcher Stelle die t 1 -Achse geschnitten wird, müssen wir in der Geradengleichung lediglich den t 2 Eintrag in x auf 0 setzen und zurückrechnen, für welchen Wert im t 1 Eintrag die Gleichung erfüllt ist: w T 1 x + b 1 = ( ( 1, 25 0, 5 ) x 1 = 7, 25 1, 25 = 5, 8 ( x1 0 ) 0, 75 = 0 Abbildung 13.16: Vom Perzeptron erlernte Hyperebene nach dem ersten Trainingsschritt. Abbildung zeigt wie diese Gerade im Verhältnis zu den Punkten liegt. Sie liegt recht weit entfernt von allen vier Punkten und trennt die beiden Klassen keinesfalls voneinander. Die Klassifikation des nächsten Traininungsdokumentes jedoch ist richtig. Der Datenpunkt liegt auf der dem Gewichtsvektor abgewandten Seite der Hyperebene. Daher hat er einen negativen Abstand von der Ebene, was durch Multiplikation mit dem Label y 2 = 1 zu einem positiven Wert führt: 1 ( ( 3 1 ) ( 1, 25 0, 5 ) ) 7, 25 = 11 Das bedeutet im Perzeptron Algorithmus, dass keine Anpassung an der Hyperebene vorgenommen wird. Das dritte Trainingsdokument jedoch wird falsch klassifiziert: 266

275 13.7 Support Vector Machines 1 ( ( 1 4 ) ( 1, 25 0, 5 ) ) 7, 25 = 10 Daher müssen Gewichtsvektor und Bias erneut angepasst werden. Die Berechnungen verlaufen wie oben und führen zu: w 2 = ( 1, 25 0, 5 ) + 0, 25 1 b = 7, 5 + 0, = 0 ( 1 4 ) = ( 1 0, 5 Mit diesen Daten wird nun das vierte Dokument richtig klassifiziert und auch im nächsten Durchlauf durch die Trainingsdaten werden keine Fehler mehr gemacht. Somit ist das Abbruchkriterium für die Iteration des Perzeptron erfüllt. Stellt man das Ergebnis wie in Abbildung bildlich dar, so sieht man, dass das Verfahren eine Hyperebene gefunden hat, welche die Daten der Trainingsdokumente genau voneinander abgetrennt hat. Die Punkte mit Label 1 liegen auf der Seite der Ebene in welche der Gewichtsvektor weist, die Punkte mit Label 1 liegen entsprechend auf der anderen Seite. ) Abbildung 13.17: Ergebnis des Perzeptron Algorithmus: Die Hyperebene trennt die beiden Klassen voneinander ab. Betrachtet man den Perzeptron Algorithmus etwas genauer, so fällt auf, dass der Gewichtsvektor letztendlich eine Linearkombination der Trainingsvektoren ist. Schließlich fängt man mit einem Nullvektor an und addiert bei jedem Fehler ein Vielfaches eines Trainingsvektors auf den Gewichtsvektor. Damit kann man den Endgewichtsvektor der Iteration auch folgendermaßen darstellen: 267

276 13 Textklassifikation N w = α i y i d i i=1 Die α i stellen die Faktoren zu den einzelnen Trainingsvektoren dar, mit denen diese skaliert werden und in den Gewichtsvektor einfließen. Im Prinzip ergeben sich die α i aus der Lernrate η und der Anzahl der Fehler die für dieses Trainingsbeispiel während der Lernphase gemacht wurden. Diese alternative Darstellung kann man auch direkt in die Klassifikationsfunktion einsetzen. Der Vektor w wird dann einfach durch die obige Summe ersetzt: N γ Perceptron (d) = sign( α i y i d T i d + b) i=1 Aus dieser Überlegung ergibt sich die sogenannte duale Form des Perzeptron Algorithmus, in welcher der Gewichtsvektor nicht direkt sondern indirekt über die Werte der α i erlernt wird. Dabei sieht man dann auch recht schön, dass die Lernrate eigentlich keinen Rolle spielt, sondern den Gewichtsvektor lediglich skaliert. Da die Länge des Gewichtsvektors aber keinen Einfluss auf die Lage der Hyperebene hat, kann man die Lernrate somit auf einen beliebigen positiven Wert setzten. Der Einfachheit halber verwenden wir hier einen Wert von 1. Insgesamt sieht die duale Form des Perzeptron aus wie in Algorithmus 13.3 dargestellt. Algorithmus 13.3 : Duale Form des Perzeptrons Input : D = {d 1,..., d n } Menge der Trainingsdokumente. Input : Y = {y 1,..., y n } Kategorielabel der Trainingsdokumente aus {1, 1}. Output : (α 1,..., α n, b) Parameter zur Konstuktion der trennenden Hyperebene. function PerceptronDual(D,Y ); begin for i = 1,..., n do α i 0; b 0; R max i=1,...,n d i ; repeat for i = 1,..., n do if y i ( N j=1 α j y j d T j d i + b) 0 then α i α i + 1; b b + y i R 2 ; until Keine Fehler in innerer Schleife ; return (α 1,..., α n, b) end 268

277 13.7 Support Vector Machines Eine Besonderheit, die später eine wichtige Rolle spielen wird, ist, dass in der dualen Form die Trainingsvektoren selbst eigentlich nicht wirklich benötigt werden. Es genügt, die Skalarprodukte d T j d i der Vektoren zu kennen. Betrachten wir aber zunächst noch einmal Abbildung Bei genauerem Hinsehen wird klar, dass es mehrere Möglichkeiten gibt, eine Hyperebene zur Trennung der Trainingsbeispiele einzuziehen. Abbildung zeigt einige dieser Möglichkeiten auf. Alle der hierin eingezeichneten Trennebenen grenzen die blauen von den roten Datenpunkten klar ab. Ein Perzeptron findet jedoch nur eine dieser Hyperebenen welche hängt von den Trainingsbeispielen und deren Reihenfolge ab. Abbildung 13.18: Mehrere Möglichkeiten die Trainingsbeispiele durch eine Hyperebene zu trennen. Bereits bei genauerem Hinsehen kann man schnell erkennen, dass es unter den Trennebenen einige gibt die qualitativ besser erscheinen als andere. So sieht man in Abbildung einige Grenzen die (ohne erkennbaren Grund) deutlich dichter an den Datenpunkten der einen Klasse liegen als an denen der anderen Kategorie. Diese Grenze könnte man also etwas mehr in die Richtung der zweiten Kategorie verschieben. Genauso gibt es Grenzlinien die unnötig dicht an Datenpunkte aus beiden Kategorien verlaufen. Durch eine leichte Drehung an einem geeigneten Drehpunkt ließe sich für diese Geraden ein wenig zusätzlicher Platz zu den Punkten aus beiden Kategorien gewinnen. Fasst man diese intuitiven Korrekturvorschläge zusammen, kann man sagen, dass man gerne eine Trennebene hätte, die möglichst viel Abstand zu den Datenpunkten aus den verschiedenen Kategorien lässt. Eine solche Trennebene ist in Abbildung angedeutet. Die Intuition, mit der Hyperebene einen möglichst großen Abstand zu den Datenpunkten einzuhalten, kann damit begründet werden, dass man sich für Punkte die weiter von der Trennebene entfernt liegen, bezüglich der Klassifikation relativ sicher sein kann. Daher ist es erstrebenswert, den Abstand aller Punkte zur Hyperebene zu maximieren. Dass sich der Abstand eines Punktes zur Ebene durch Einsetzen in den Ebenengleichung bestimmen lässt, haben wir bereits oben gesehen. Diese auch als funktionaler Abstand (functional margin) bezeichnete Distanz eines Trainingsdokuments d i zu Hyperebene h liegt also bei: 269

278 13 Textklassifikation Abbildung 13.19: Eine trennende Hyperebene mit großem Abstand zu allen Datenpunkten. y i ( w T d i + b ) Wir haben ebenfalls bereits erklärt, dass der damit berechnete Abstand relativ zum Vektor w gemessen wird. Da der Vektor w selbst allerdings lediglich orthogonal zur Hyperebene stehen muss, kann man diesen prinzipiell beliebig in der Länge skalieren und muss dabei lediglich den Wert von b anpassen. Für die Maximierung der Abstände zwischen den Trainingsdokumenten und der Ebene muss man also eine gewisse Einschränkung an w formulieren, damit die Maximierung des Abstandsbetrages nicht rein über eine Skalierung des Vektors zustande kommt. Um beispielsweise den euklidischen Abstand bezüglich des Koordinatennetzes des Vektorraums zu erhalten muss w auf Einheitslänge gebracht werden. Dann berechnet sich der geometrische Abstand eines Dokumentes zur Ebene über: y i ( w T d i + b ) w Will man also eine Hyperebene finden, welche die Trainingsbeispiele voneinander trennt und gleichzeitig den Abstand zu den Trainingsbeispielen maximiert, so muss man w und b so wählen, dass der kleinste Abstand eines Trainingspunktes zur Ebene maximal wird. Dieser kleinste Abstand entspricht der Hälfte der Breite des Grenzgebietes zwischen den Kategorien im Raum, da der Streifen um die Hyperebene doppelt so breit ist. Betrachtet man erneut die Zeichnung in Abbildung so erkennt man, dass die Datenpunkte, die auf der helleren gestrichelten Linie liegen, genau die Punkte sind, die den minimalen Abstand zur trennenden Hyperebene einnehmen. Diese Punkte, bzw. die zugehörigen Vektoren geben also eigentlich die Hyperebene vor und werden daher als Stützvektoren (die namensgebenden support vectors) bezeichnet. Vektoren die weiter von der Ebene entfernt liegen, beeinflussen deren Lage hingegen gar nicht. Da man durch die Einschränkung den geometrischen Abstand zu maximieren von der tatsächlichen Länge des Vektors w losgelöst ist, kann man an diesen nun eigene Bedin- 270

279 13.7 Support Vector Machines gungen stellen. Standardmäßig geht man so vor, dass man für den Stützvektor mit dem kleinsten (geometrischen) Abstand zur Hyperebene einen funktionalen Abstand von 1 festsetzt. Damit hat man dann rein rechnerisch einen geometrischen Abstand von 1 und eine w Breite des Grenzraums von 2. Gleichzeitig verlangt man, dass y w i ( w T d i + b ) 1 für alle Trainingsdokumente d i, wobei für mindestens ein Dokument die Gleichheit gilt. Statt 2 zu maximieren kann man w minimieren, was letztendlich zur Standardformulierung in der SVM-Literatur entspricht. Die entscheidenden Größe bei dieser Minimierung w 2 ist w, welche als w T w definiert ist. Von den Werten her ist aber nun egal, ob man die Wurzel w T w oder den Radikant w T w minimert. Insgesamt landet man somit bei der Darstellung als Optimierungsproblem, in dem: wt w 2 minimiert wird für alle Trainingsbeispiele y i ( w T d i + b ) 1 gilt, wobei für mindestens ein d i die Gleichheit eintritt. Der erste Punkt stellt dabei eine quadratische Funktion dar, die es zu minimieren gilt, während der zweite Punkt lineare Randbedingungen definiert. Damit haben wir es hier mit einem quadratischen Optimierungsproblem zu tun. Genau wie im Perzeptron gibt es auch hierzu eine duale Form 14 : Suche positive Lagrange-Multiplikatoren α i 0, die in der folgenden Summe 0 ergeben: N α i y i = 0 i=1 Maximiere den Ausdruck: N α i 1 N N α i α j y i y jd T i=1 2 i i=1 j=1 d j Aus der Lösung dieses Problems ergeben sich mit den Lagrange-Multiplikatoren Aussagen dazu, welche Trainingsbeispiele tatsächlich als Stützvektoren dienen, nämlich solche, die einen echt positiven Lagrange-Multiplikator haben. Um nun wieder den Vektor w und den Bias b zu konstruieren kann man folgendermaßen vorgehen: 14 Die duale Darstellung lässt sich aus der Theorie zu Optimierungsproblemen ableiten. Die Details würden jedoch den Rahmen dieses Kapitels deutlich sprengen. Für ausführlich Hintergrundinformationen empfiehlt sich das Buch von Christianini und Shawe-Taylor [CST00]. 271

280 13 Textklassifikation der Vektor w ist wie beim Perzeptron eine Linearkombination aus den Trainingsbeispielen, wobei die Faktoren den Lagrange-Multiplikatoren und dem Klassenlabel entsprechen: N w = α i y i d i i=1 der Bias b ergibt sich für einen Stützvektor d j (also ein Trainingsbeispiel, dem am Ende ein positives α j zugewiesen wird): b = y j w T d N j = y j α i y id T i dj i=1 Auch in diesem Ansatz braucht man den Vektor w eigentlich gar nicht zu berechnen, sondern kann direkt dessen Linearkombination aus Trainingsvektoren in die Klassifikationsfunktion einsetzen: N γ SVM (d) = sign( α i y i d T i d + b) i=1 Erneut können die eigentlichen Trainingsvektoren vernachlässigt werden, sofern deren Skalarprodukte bekannt sind. SVM Wenn wir erneut das obige Beispiel mit vier Datenpunkten aufgreifen, so kann man in diesem Fall bereits an der Lage der Punkte erkennen, wie eine optimale Hyperebene mit maximalem Abstand liegen muss. Die Dokumente d 2 und d 4 definieren die Lage der Ebene. Löst man das Optimierungsproblem, so ergeben sich tatsächlich Werte von α 1 = 0 und α 3 = 0, sowie α 2 = 0, 25 und α 4 = 0, 25. Damit erhält man einen Gewichtsvektor w T = ( 0, 5; 0, 5) und einen Bias b mit einem Wert von 0. Graphisch stellt sich das Ergebnis wie in Abbildung dar. Der symmetrische Bereich um die Hyperebene, in dem keine Trainingsdaten liegen ist zur Verdeutlichung grau markiert. Sowohl das Perzeptron als auch das bisher besprochene SVM Konzept gehen von Daten aus, die linear separierbar sind. Schon bei einem Ausreißer konvergiert das Perzeptron nicht mehr und auch die Lösung des SVMs wird davon gestört. Handelt es sich hierbei tatsächlich nur um Ausreißer in ansonsten durch eine Ebene trennbaren Daten, so können sogenannte Slack-Variablen ξ i eingeführt werden. Diese erlauben es, dass einzelne Trainingsdaten einen geringeren Abstand zur Hyperebene haben als von der optimalen Lösung eigentlich vorgesehen. 272

281 13.7 Support Vector Machines Abbildung 13.20: Trennende Hyperebene mit maximalem Abstand zu den Trainingsbeispielen. Sind die Daten jedoch nicht linear separierbar, sondern liegen beispielsweise wie in Abbildung 13.21, so helfen auch die Slack-Variablen nicht mehr weiter. Egal wie man die trennende Hyperebene ansetzt, der dadurch angegebene Klassifikator macht zwangsweise Fehler. Abbildung 13.21: Trainingsdaten die nicht linear separierbar sind. Um auch auf solchen Daten wieder SVMs einsetzen zu können, werden die Punkte transformiert. Über eine geeignete Funktion Φ projeziert man die Daten in einen anderen, meist höherdimensionalen Raum, in dem sich die beiden Kategorien dann wieder linear trennen lassen. Die Klassifikation findet anschließend ebenfalls in diesem alternativen Raum statt, so dass sich ergibt: N γ SVM (d) = sign( α i y i Φ( d i ) T Φ( d) + b) i=1 273

282 13 Textklassifikation (a) (b) Abbildung 13.22: Abbildung der Punkte in (a) in einen anderen Vektorraum, wo sie linear separierbar sind (b). Abbildung Φ Um das Konzept der Funktion Φ zu veranschaulichen, betrachten wir ein einfaches Beispiel, das zwar nicht den formalen Ansprüchen einer einer Kernelfunktion genügt, aber die Idee verdeutlichen soll. Dait klar wird, dass es sich nicht um eine echte Kernelfunktion handelt, werden wir diese mit φ bezeichnen. Liegen die beiden Kategorien so, dass die eine annähernd rechteckig in die andere eingebettet ist, so kann man relativ einfach eine Funktion φ konstruieren um die Punkte linear separierbar zu machen. Die blau und rot markierten Datenpunkte in Abbildung 13.22(a) haben eine solche Lage zueinander. Setzt man für φ die folgende einfache Transformation ein: φ ( x1 x 2 ) = ( 5 x1 5 x 2 ) so werden die Datenpunkte auf den zweidimensionalen Teilraum mit positiven Einträgen abgebildet. In der Darstellung in 13.22(b) sind die gleichen Punkte unter der Transformation φ eingezeichnet. Es wird ebenfalls klar, dass die Punkte nun sehr wohl linear separierbar sind, wie die graue Linie andeutet. Auf den transformierten Daten kann also eine SVM trainiert werden. Zur Klassifikation von neuen Daten hier durch einen gelben Datenpunkt dargestellt werden diese zunächst mit Φ in den anderen Vektorraum abgebildet und dann deren Lage relativ zur erlernten Hyperebene betrachtet. Unter der hier gewählten 274

283 13.7 Support Vector Machines Abbildung und der damit hergeleiteten Entscheidungsebene wird der gelbe Punkt der roten Kategorie zugeordnet. Damit die Klassifikation im alternativen Vektorraum funktioniert, muss die Abbildung Φ selbstverständlich gewisse Eigenschaften aufweisen. Insbesondere sollten die relativen Abstände zwischen Datenpunkte erhalten bleiben. Zwei Dokumente, die weit voneinander entfernt waren, dürfen also nicht plötzlich nahe beieinander liegen 15. Im obigen Beispiel hatten wir eine Funktion per Hand konstruiert und die Datenpunkte tatsächlich transformiert. Der große Vorteil von SVMs 16 liegt darin, dass dies gar nicht nötig ist. Wie bereits erwähnt, werden in der dualen Darstellung die Vektoren selbst eigentlich gar nicht benötigt; es genügt das Skalarprodukt. Sofern es also eine Funktion K gibt, mit der das Skalarprodukt im alternativen Vektorraum mit den ursprünglichen Vektoren berechnet werden kann, braucht man Φ gar nicht direkt anzugeben oder auszurechnen. Es genügt dann, diese Funktion K anzugeben, die alle benötigten Informationen liefert: K( x 1, x 2 ) = Φ( x 1 ) T Φ( x 2 ) Die Funktion K wird als Kernel Funktion bezeichnet, und für das Vorgehen das Skalarprodukt direkt und ohne Umweg über den alternativen Vektorraum zu berechnen hat sich in der Literatur der Begriff Kernel Trick eingebürgert. Kernel Funktion Greifen wir die einfache Abbildung φ aus dem letzten Beispiel auf, so können wir hierzu auch einen Kernel angeben. In diesem Fall genügt es, das Skalarprodukt allgemeingültig aufzulösen: K (( x1 x 2 ), ( y1 y 2 )) = φ ( x1 x 2 ) T φ ( y1 = 5 x 1 5 y x 2 5 y 2 In diesem Beispiel fällt die Berechnung zwar nicht einfacher aus, man sieht aber dennoch, dass die ausdrückliche Abbildung in einen anderen Vektorraum umgangen werden kann. y 2 ) Da in K gewissermaßen die Funktion Φ implizit enthalten ist, müssen auch Kernel Funktionen gewisse Eigenschaften aufweisen. Sie müssen stetig und symmetrisch sein und die Gram sche Matrix muss positiv definit sein Unter diesen Gesichtspunkten ist φ aus dem Beispiel keine Kernelfunktion. 16 Der Vorteil gilt auch für einige andere Verfahren wie beispielsweise das Perzeptron. 17 Für die Hintergründe und Details siehe wieder [CST00] 275

284 13 Textklassifikation In der Regel ist es jedoch gar nicht nötig, einen Kernel selbst zu entwerfen. Es gibt eine ganze Menge von Kernelfunktionen, die in der Regel gute Dienste erweisen. Am häufigsten werden polynomielle Kernel und Gauss sche Kernel verwendet. Bei polynomiellen Kerneln wird letztendlich ein konstanter Wert c zum Skalarprodukt addiert und das Ergebnis je nach verwendetem Polynomgrad mit d potenziert: K( x 1, x 2 ) = ( x T 1 x 2 + c ) d Für den Grad d = 1 und eine Wahl von c = 0 ergibt sich dabei das gewöhnliche Skalarprodukt. Somit kann auch der klassische, linear separierbare Fall vom Prinzip her über eine Kernelfunktion ausgedrückt werden. Gauss sche Kernel basieren von der Idee her auf einer Abbildung Φ in einen Hilbertraum unendlicher Dimensionalität. Die Kernelfunktion sieht jedoch relativ überschaubar aus und motiviert die Namensgebung: K( x 1, x 2 ) = e x y 2 σ 2 Es gibt eine Vielzahl an weiteren Kernelfunktionen nicht nur über Vektoren. Kernel können auch über Graphen, Zeichensequenzen oder anderen Strukturen konstruiert werden. Die Theorie hinter kernelbasierten Verfahren liefert die entsprechenden Bedingungen an solche Funktionen. An dieser Stelle soll lediglich klar werden, dass der Einsatz einer Kernelfunktion den eigentlichen SVM Algorithmus für den linear separierbaren Fall nicht wirklich verändert, die implizite Abbildung in einen höherdimensionalen Raum aber dazu verwendet werden kann, um komplexere Formen von Kategorien zu erfassen. Eine grobe Richtlinie, welchen der beiden obigen Kernel man in welchem Fall ausprobieren sollte wird in [MRS08] gegeben. Mit polynomiellen Kerneln vom Grad d lassen sich Zusammenhänge zwischen bis zu d Termen erfassen, während Gauss sche Kernel sich dafür eigenen kugelförmig eingeschlossene Kategorien zu erkennen Zusammenfassung In diesem Kapitel haben wir uns ausführlich mit Textklassifikation beschäftigt. Abweichend vom bisherigen Schwerpunkt auf Ad Hoc Anfragen und dem Ranking der zu solchen Anfragen relevanten Dokumente, werden bei der Klassifikation die Dokumente in vorgegebene Kategorien eingeteilt. Anwendungsbeispiele für die Textklassifikation gibt es viele, wobei beispielsweise im Zusammenhang mit Routing auch eine Klassifikation in die Kategorien relevant und nicht relevant auftreten kann. Es gibt eine Vielzahl an Verfahren zur Erstellung von Klassifikatoren. Da diese (in der Regel) über von Experten vorgegebenen Trainingsbeispielen an die konkrete Situation angepasst werden, handelt es sich um überwachte Lernverfahren. Regelbasierte Verfahren wie der Sequential Covering Algorithmus, probabilistische Verfahren wie Naive Bayes, sowie das vektorraumbasierte K Nearest Neighbour und SVMs sind allesamt allgemeine Ansätze, 276

285 13.8 Zusammenfassung die generell bei Klassifikationsaufgaben zum Einsatz kommen, sich aber auch für Textdokumente eignen und in der Praxis angewendet werden. Das Rocchio Verfahren wurde hingegen dediziert für den Einsatz in IR Systemen entwickelt. Eine Frage mit der man sich immer beschäftigen muss ist die der Generalisierung. Ein Klassifikator soll von den Trainingsbeispielen einen allgemeine Regel ableiten, sozusagen ein Muster in den Daten erkennen. Hält sich ein Verfahren zu sehr an die Beispieldaten gilt es als übertrainiert und wird im praktischen Einsatz schlechte Ergebnisse liefern. 277

286 13 Textklassifikation 278

287 14 Clusteranalyse auf Texten Vereinfacht gesagt geht es bei der Clusteranalyse darum, in einer Menge von Dokumenten zusammengehörige Teilmengen zu entdecken. Man möchte also Grüppchen von Dokumenten man spricht hier von sogenannten Clustern ausfindig machen, die eine gewisse Gemeinsamkeit aufweisen. Eine solche Gemeinsamkeit könnte ein ähnliches inhaltliches Thema sein, aber es können auch andere Aspekte berücksichtigt werden. Ein wichtiges Abgrenzungskriterium gegenüber der Klassifikation aus Kapitel 13 ist, dass die Cluster im Gegensatz zu den Kategorien nicht von Anfang an bekannt und vorgegeben sind, sondern erst während der Analyse entdeckt werden müssen. In diesem Kapitel werden wir zunächst kurz auf die eigentliche Aufgabenstellung beim Clustern eingehen, sowie Anwendungsbeispiele und Evaluationsansätze vorstellen. Danach schauen wir uns verschiedene Clusterverfahren an, die unterschiedliche Ziele verfolgen und unterschiedliche Cluster hervorbringen Einführung in die Clusteranalyse Wie bereits eingangs erwähnt, geht es bei der Clusteranalyse darum, in einer Menge von Daten Teilmengen ausfindig zu machen, die gewisse Gemeinsamkeiten aufweisen. Die Gemeinsamkeit wird in der Regel über ein Ähnlichkeits- oder ein Abstandsmaß ausgedrückt 1. Am Ende sollten die Elemente innerhalb eines Clusters also alle recht dicht beieinander liegen, bzw. zueinander ähnlich sein, während sie zu den Dokumenten aus anderen Clustern einen größeren Abstand aufweisen, bzw. keine große Ähnlichkeit zeigen. Formal stellen wir die Cluster als Menge Ω = {ω 1, ω 2, ω 3,..., ω K } dar, und weisen im einfachsten Fall jedem Dokumente d i einen Clustern ω j zu. Fassen wir die Dokumente als Menge D = {d 1, d 2, d 3,..., d N } auf, so lässt sich diese Aufgabe wieder über eine Funktion γ darstellen: γ : D Ω Im Bezug auf einen Korpus von Dokumenten besteht die Aufgabe in der Regel darin, dass man Cluster von Dokumenten sucht, die sich inhaltlich ähnlich sind. Dahinter steckt die Idee, dass inhaltlich ähnliche Dokumente sich meist auch ähnlich bezüglich ihrer Relevanz zu einem bestimmten Informationsbedürfnis verhalten. Diesen Zusammenhang kann man dann bei einer Informationssuche ausnutzen. 1 Wir haben bereits gesehen, dass sich Ähnlichkeitsmaße in Abstandsmaße übersetzen lassen. Wir gehen im weiteren Verlauf des Kapitels meist von Abstandsmaßen aus. 279

288 14 Clusteranalyse auf Texten Das Zuordnen von Dokumenten zu Grüppchen erinnert unter einigen Gesichtspunkten stark an die Aufgabe der Klassifikation. Allerdings gibt es einen entscheidenden Unterschied: bei der Klassifikation sind die Kategorien vorgegeben. Somit ist klar, wie die Grüppchen auszusehen haben, welche Art von Dokumenten darin erwartet wird und auch wieviele Grüppchen es gibt. Bei der Clusteranalyse hingegen weiß man im Prinzip nicht explizit wonach man sucht. Es ist nicht bekannt, welche inhaltlichen Zusammenhänge es geben kann und wieviele Cluster sich in den Daten verbergen. Schon allein diese Frage nach der Kardinalität, also nach der Anzahl der zu findenden Cluster, kann bereits schwierig zu beantworten sein. So können die in Abbildung 14.1 gezeigten Daten anschaulich nachvollziehbar in verschiedene Clusterkonfigurationen zerlegt werden, die eine unterschiedliche Kardinalität aufweisen. (a) (b) (c) (d) Abbildung 14.1: Die Daten in (a) können in unterschiedliche viele Cluster aufgeteilt werden. Hier ist angedeutet, wie eine Zerlegung in zwei (b), vier (c) oder sogar sechs Cluster (d) aussehen könnte. Aus der Aufgabenstellung ergibt sich, dass eine Clusteranalyse ohne Trainingsdaten abläuft. Es handelt sich um ein sogenanntes unüberwachtes Lernverfahren (unsupervised learning). Die Algorithmen zur Clusteranalyse erhalten als Eingabe lediglich die Daten selbst 280

289 14.1 Einführung in die Clusteranalyse von eventuellen Parametereinstellungen wie der Clusterzahl oder dem Ähnlichkeitsmaß einmal abgesehen. Auf den Daten werden dann nach bestimmten Kriterien die Cluster gebildet. Von der Theorie her versuchen die Algorithmen dabei eine zumindest implizit enthaltene Zielfunktion zu optimieren. Da ein vollständiges Durchprobieren aller möglichen Clusterkonstellationen in der Regel zu aufwändig ist, werden hierbei Heuristiken oder andere Optimierungsstrategien eingesetzt. Die Ergebnisse einer Clusteranalyse können auch von ihrer Struktur her recht unterschiedlich aussehen. So wird zwischen hierarchischen und flachen Clusterstrukturen sowie zwischen hartem und weichem Clustern unterschieden. Bei einem flachen Clustern der Daten sind alle Cluster gleichwertig. Die Daten werden auf eine bestimmte Art und Weise unterteilt und die Unterteilung stellt das einzige Ergebnis der Analyse dar. Dies entspricht der oben mit der Funktion γ beschriebenen Aufgabe. Eine Variante dazu stellen solche Algorithmen dar, die überlappende Cluster ohne weitere Beziehungen zwischen den Clustern bestimmen. Bei hierarchischen Ansätzen hingegen können Cluster vollständig in anderen Clustern enthalten sein und dadurch eine Hierarchie aufbauen. Daraus folgt auch, dass ein Dokument in mehreren Clustern gleichzeitig liegen kann und die Funktion γ verweist dann auf eine Teilmenge aus Ω, der Wertebereich besteht also aus der Potenzmenge über den Clustern 2. Die Hierarchie der Cluster liefert mehr Informationen über den Aufbau und Zusammenhang der Daten. Von der allgemeinen Herangehensweisen wird zwischen agglomerativem und unterteilendem Clustering unterscheiden. Beim agglomerativen Clustern bilden alle Datenpunkte anfangs einen eigenen Cluster, welche dann ihrerseits schrittweise zu immer größeren Clustern zusammengefasst werden. Unterteilendes hierarchisches Clustern geht genau anders herum vor: ausgehend davon, dass alle Daten einen großen Cluster bilden wird dieser schrittweise immer wieder unterteilt und in Teilcluster zerlegt. Unabhängig von der Vorgehensweise kommen zur Darstellung hierarchischer Clusterstrukturen meist sogenannte Dendrogramme zum Einsatz. In Abbildung 14.2 wird ein solches Dendrogramm sowie eine weitere Darstellung der gleichen Clusterkonstellation als Venn-Diagramm gezeigt. Die Unterscheidung zwischen hartem und weichem Clustern betrifft hingegen die Zugehörigkeit einzelner Datensätze zu einem Cluster. Beim harten Clustern gehört ein Datenpunkt einem Cluster an oder nicht, beim weichen Clustern kann er auch zu einem gewissen Grad einem Cluster zugewiesen sein. Dieser Zugehörigkeitsgrad kann beispielsweise über Wahrscheinlichkeiten modelliert werden. Eine weitere interessante Eigenschaft ist, ob ein Verfahren ausschöpfend ist, d.h. dass es jedes Dokument einem Cluster zuweist. Bei nicht ausschöpfenden Verfahren ist es möglich, dass einzelne Dokumente am Ende gar keinem Cluster zugewiesen werden. Ein solches Vorgehen kann für Ausreißer in den Daten durchaus angemessen sein. Schließlich kann man noch zwischen solchen Verfahren unterscheiden, welche die Kardinalität als Eingabeparameter benötigen, sowie solchen Verfahren, welche von sich aus die Anzahl der Cluster in den Daten bestimmen. 2 Damit die Cluster wirklich eine Hierarchie bilden, gelten noch einige Einschränkungen bezüglich des Aufbaus der Teilmengen. 281

290 14 Clusteranalyse auf Texten (a) (b) Abbildung 14.2: Dendrogramme (a) und Venn-Diagramme (b) eignen sich zur Darstellungen hierarchischer Clusterstrukturen. Es gibt einige Anwendungen im IR Bereich, in denen die Clusteranalyse zum Einsatz kommt. Ein recht beliebtes Szenario ist das Clustern von Suchergebnissen. Dabei greift man die Ergebnismenge zu einer Ad Hoc Anfrage als Datenbasis auf und wendet darauf einen Clusteralgorithmus an. Ziel dieses Verfahrens ist es, verschiedene Themengebiete oder Thementeilgebiete innerhalb der Ergebnisse aufzuspüren und für den Benutzer gruppiert darzustellen. Ein Beispiel dafür hatten wir in Kapitel 10 zur Nutzerinteraktion gesehen. Suchmaschinen wie Clusty (siehe Abbildung 10.9) bauen die Clusterung der Ergebnisse direkt in die Darstellung der Ergebnisse ein. Der Vorteil eines solchen Ansatzes ist, dass der Nutzer durch die Cluster seine Anfrage möglicherweise direkt einschränken oder präzisieren kann, beispielsweise wenn es begriffliche Mehrdeutigkeiten in der Anfrage gibt. Ein weiterer Einsatz von Clusteralgorithmen im Bereich der Ad Hoc Anfragen ist die Erweiterung der Ergebnismenge (result expansion). Dabei werden die Dokumente des Korpus bereits vorab geclustert, d.h. schon bei der Aufnahme in den Index. Wenn eine Anfrage gestellt wird, kann die Ergebnismenge dann um solche Dokumente erweitert werden, die in den gleichen Clustern liegen wie die direkten Suchtreffer. Diese Vorgehen ist insbesondere dann interessant, wenn zu einer Anfrage nur sehr wenige direkte Suchtreffer gefunden werden. Dieser Ansatz kann auch sehr gut bei einer query-by-example Suche angewendet werden. Der Nutzer liefert ein Dokument und möchte dazu ähnliche Dokumente erhalten. Dann kann geprüft werden, in welchem Cluster das Dokument eingruppiert werden würde, und das System liefert den entsprechenden Cluster als Menge von ähnlichen Dokumenten zurück. Die vorab bei der Indizierung berechneten Cluster können auf ähnliche Art und Weise auch für einen anderen Zweck verwendet werden, nämlich zur Beschleunigung der Suche. Dazu wird wie oben die Anfrage als Dokument aufgefasst und zunächst ein dazu passender Cluster gesucht. Hat man weiterhin für jeden Cluster eine eigene Indexstruktur aufgebaut, so kann man nun schneller in den wesentlich kleineren Indizes des betroffenen Clusters suchen. 282

291 14.2 Evaluation Geht man weg von der Ad Hoc Suche, so kann die Clusterung von Dokumenten einen ganz anderen Suchansatz liefern. Dazu werden dem Nutzer zunächst eine feste Anzahl von Clustern präsentiert, die auf dem kompletten Korpus berechnet werden. Daraus wählt der Nutzer dann einen oder mehrere aus, die seinem Informationsbedürfnis am nächsten kommen. Dadurch werden gleichzeitig auch einige Dokumente verworfen und man hat die betrachtete Dokumentmenge auf einen Teil des Korpus eingeschränkt. Innerhalb dieser Teilmenge können nun wieder Cluster bestimmt werden, aus denen der Nutzer erneut die für ihn interessanten auswählt. So wird die Dokumentmenge auf explorative Art durch eine immer weitergehende Einschränkung verkleinert, so dass im Idealfall genau die Dokumente übrig bleiben, die dem Informationsbedürfnis des Nutzers am ehesten entgegenkommen. Dieses Vorgehen wird auch mit dem Begriff scatter-gather bezeichnet. Es gibt noch weitere Anwendungen für Clusterverfahren. So können bestimmte Sprachstile innerhalb eines Korpus bestimmt werden, um damit bessere Smoothingmodelle für den LM-Ansatz zu bestimmen. In diesem Zusammenhang werden anschließend anstatt eines globalen Sprachmodells mehrere, immer noch recht große Modelle für einzelne Teilbereiche des Korpus verwendet Evaluation Um die Qualität eines Clusterergebnisses, bzw. eines Verfahrens zu beurteilen, gibt es prinzipiell zwei Typen von Maßen: intrinsische und extrinsische Maße. Intrinsische Maße bewerten die erstellten Cluster ohne weiteres Wissen über die Daten, weshalb sie auch als interne Qualitätskriterien bezeichnet werden. Dabei kommen beispielsweise Ähnlichkeitsmaße innerhalb und zwischen den berechneten Clustern zum Einsatz. Extrinsische Maße hingegen ziehen zusätzliches Wissen zu Rate; daher auch die alternative Bezeichnung externe Qualitätskriterien [AGAV09]. Sie verwenden in der Regel einen Goldstandard zu zusammengehörigen Gruppen, beispielsweise in Form von Kategorien wie sie in Trainingsoder Evaluationsdaten zu Klassifikationsaufgaben auftreten. Stehen jedoch keine Vergleichsdaten zur Evaluation zur Verfügung, bleibt nichts anderes übrig als ein intrinsisches Evaluationsmaß anzuwenden. Das wohl bekannteste Maß dürfte hier der Dunn-Index sein. Der Dunn-Index vergleicht die Abstände innerhalb und zwischen den Clustern. Dazu wird der kleinste Abstand d min ermittelt, der zwischen zwei Dokumenten aus verschiedenen Clustern auftritt, sowie der größte Abstand d max, der zwischen zwei Dokumenten aus dem gleichen Cluster auftritt. Diese beiden Werte werden ins Verhältnis zueinander gesetzt: I Dunn (Ω) = d min d max Je größer der Wert des Dunn-Index ausfällt, desto besser sind die Cluster voneinander getrennt. Insbesondere für Werte I Dunn > 1 sind die Abstände zwischen den Clustern im Verhältnis viel größer als innerhalb der Cluster. Das entspricht der Vorstellung, dass die 283

292 14 Clusteranalyse auf Texten Daten bei der Clusteranalyse zu solchen Grüppchen zusammengefasst werden, in denen die Datenpunkte nahe bei einander und gleichzeitig weit weg von den anderen Cluster liegen. Dunn-Index Wir clustern die 30 Dokumente, die uns in Kapitel 13 als Trainingsdaten für die Klassifikation dienten. Als Darstellung wählen wir längennormierte Dokumentvektoren mit TF-IDF Einträgen, so wie sie in Tabelle 13.8 auf Seite 253 aufgeführt werden. Als Abstandsmaß verwenden wir den euklidischen Abstand. Zunächst müssen wir paarweise die Abstände zwischen den Dokumenten berechnen. Da die dabei entstehende Abstandsmatrix aus numerischen Werten bereits für die hier betrachteten 30 Dokumente recht unübersichtlich wird, ist in Abbildung 14.3 eine grafische Darstellung zu sehen. Das Pixel an den Koordinaten (i, j) in der Matrix stellt den Abstand zwischen den Dokumenten d i und d j dar. Die Darstellung ist bezüglich der auftretenden Werte normiert, d.h. schwarze Pixel entsprechen dem Maximalabstand von 1,414 und weiße Pixel dem Minimalabstand von 0. Abbildung 14.3: Grafische Darstellung der Abstandmatrix für die 30 Dokumente. Man sieht recht schön die Symmetrie entlang der Hauptdiagonale, welche durch die Symmetrieeigenschaft des euklidischen Abstandsmaßes entsteht. Die Hauptdiagonale selbst zeichnet sich weiß ab, da die Dokumente alle zu sich selbst den Abstand 0 haben. Ansatzweise kann man auch die räumliche Nähe der Dokumente innerhalb einer 284

Web Data Mining. Alexander Hinneburg Sommersemester 2007

Web Data Mining. Alexander Hinneburg Sommersemester 2007 Web Data Mining Alexander Hinneburg Sommersemester 2007 Termine Vorlesung Mi. 10:00-11:30 Raum?? Übung Mi. 11:45-13:15 Raum?? Klausuren Mittwoch, 23. Mai Donnerstag, 12. Juli Buch Bing Liu: Web Data Mining

Mehr

Gesucht und Gefunden: Die Funktionsweise einer Suchmaschine

Gesucht und Gefunden: Die Funktionsweise einer Suchmaschine Gesucht und Gefunden: Die Funktionsweise einer Suchmaschine Prof. Dr. Peter Becker FH Bonn-Rhein-Sieg Fachbereich Informatik peter.becker@fh-bonn-rhein-sieg.de Vortrag im Rahmen des Studieninformationstags

Mehr

Übungsaufgaben mit Lösungsvorschlägen

Übungsaufgaben mit Lösungsvorschlägen Otto-Friedrich-Universität Bamberg Lehrstuhl für Medieninformatik Prof. Dr. Andreas Henrich Dipl. Wirtsch.Inf. Daniel Blank Einführung in das Information Retrieval, 8. Mai 2008 Veranstaltung für die Berufsakademie

Mehr

Personalisierung. Der Personalisierungsprozess Nutzerdaten erheben aufbereiten auswerten Personalisierung. Data Mining.

Personalisierung. Der Personalisierungsprozess Nutzerdaten erheben aufbereiten auswerten Personalisierung. Data Mining. Personalisierung Personalisierung Thomas Mandl Der Personalisierungsprozess Nutzerdaten erheben aufbereiten auswerten Personalisierung Klassifikation Die Nutzer werden in vorab bestimmte Klassen/Nutzerprofilen

Mehr

Lösungsvorschlag für das Übungsblatt 1. Aufgabe 1.

Lösungsvorschlag für das Übungsblatt 1. Aufgabe 1. Lösungsvorschlag für das Übungsblatt 1. Aufgabe 1. Zusammengefasst aus Ihren Beiträgen Wie bewerten sie das System ingesamt? Das Watson System verdeutlicht den Fortschritt der Künstlichen Intelligenz Forschung/Computerlinguistik/Informatik

Mehr

Suchmaschinenalgorithmen. Vortrag von: Thomas Müller

Suchmaschinenalgorithmen. Vortrag von: Thomas Müller Suchmaschinenalgorithmen Vortrag von: Thomas Müller Kurze Geschichte Erste Suchmaschine für Hypertexte am CERN Erste www-suchmaschine World Wide Web Wanderer 1993 Bis 1996: 2 mal jährlich Durchlauf 1994:

Mehr

Einführung in SQL Datenbanken bearbeiten

Einführung in SQL Datenbanken bearbeiten Einführung in SQL Datenbanken bearbeiten Jürgen Thomas Entstanden als Wiki-Buch Bibliografische Information Diese Publikation ist bei der Deutschen Nationalbibliothek registriert. Detaillierte Angaben

Mehr

Google. Reginald Ferber Hochschule Darmstadt Fachbereich Media, Studienbereich Informationswissenschaft reginald.ferber@h-da.de

Google. Reginald Ferber Hochschule Darmstadt Fachbereich Media, Studienbereich Informationswissenschaft reginald.ferber@h-da.de R. Ferber fb md h_da Informationsrechtstag 2009 h_da 2000-07-10 Folie 1 Google Reginald Ferber Hochschule Darmstadt Fachbereich Media, Studienbereich Informationswissenschaft reginald.ferber@h-da.de R.

Mehr

Optimieren von Requirements Management & Engineering

Optimieren von Requirements Management & Engineering Xpert.press Optimieren von Requirements Management & Engineering Mit dem HOOD Capability Model Bearbeitet von Colin Hood, Rupert Wiebel 1. Auflage 2005. Buch. xii, 245 S. Hardcover ISBN 978 3 540 21178

Mehr

Grundlagen und die größten Irrtümer.

Grundlagen und die größten Irrtümer. Nr. SEO für jedermann. Grundlagen und die größten Irrtümer. Suchmaschinenoptimierung (SEO) und Suchmaschinenmarketing (SEM) werden immer wieder verwechselt: Doch SEO beschäftigt sich mit der Optimierung

Mehr

Nutzer verwenden außerbibliothekarische Recherchesysteme zur Vorbereitung von Literatursuchen in Bibliotheksangeboten (Akselbo et al. 2006, S.

Nutzer verwenden außerbibliothekarische Recherchesysteme zur Vorbereitung von Literatursuchen in Bibliotheksangeboten (Akselbo et al. 2006, S. VuFind seit 2007 Produktiver Betrieb und Entwicklung seit 2008: Suchkiste für DFG Nationallizenzen: http://finden.nationallizenzen.de/ Ergebnis aus positiven Erfahrungen: GBV Discovery Index: Solr Index

Mehr

Einführung in die Wissensverarbeitung und Data Mining

Einführung in die Wissensverarbeitung und Data Mining Einführung in die Wissensverarbeitung und Data Mining Peter Becker FH Bonn-Rhein-Sieg Fachbereich Angewandte Informatik!" $# Vorlesung Wintersemester 2001/02 1. Einführung Vorbemerkungen 1 Einführung Vorbemerkungen

Mehr

Die Wahl der Suchbegriffe

Die Wahl der Suchbegriffe Die Wahl der Suchbegriffe Der erste wichtige Schritt für eine effektive Literaturrecherche ist die Wahl der Suchbegriffe. Auf der Suche nach Literatur kommt es häufig vor, dass man keine oder nur sehr

Mehr

Quelle. Thematische Verteilungen. Worum geht es? Wiederholung. Link-Analyse: HITS. Link-Analyse: PageRank. Link-Analyse: PageRank. Link-Analyse: HITS

Quelle. Thematische Verteilungen. Worum geht es? Wiederholung. Link-Analyse: HITS. Link-Analyse: PageRank. Link-Analyse: PageRank. Link-Analyse: HITS Hauptseminar Web Information Retrieval Quelle Thematische Verteilungen 07.05.2003 Daniel Harbig Chakrabati, Soumen; Joshi, Mukul; Punera, Kunal; Pennock, David (2002): The Structure of Broad Topics on

Mehr

Anfrage Erweiterung 03.11.2011 Jan Schrader

Anfrage Erweiterung 03.11.2011 Jan Schrader Anfrage Erweiterung 03.11.2011 Jan Schrader Vocabulary Mismatch Problem Anfrage und Dokument passen nicht zusammen obwohl Dokument zur Anfrage relevant Grund: Synonymproblem verschiedene Menschen benennen

Mehr

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015 Abstrakt zum Vortrag im Oberseminar Graphdatenbanken Gero Kraus HTWK Leipzig 14. Juli 2015 1 Motivation Zur Darstellung komplexer Beziehungen bzw. Graphen sind sowohl relationale als auch NoSQL-Datenbanken

Mehr

Aufgabe 6. Gedichtinterpretation worte sind schatten

Aufgabe 6. Gedichtinterpretation worte sind schatten Aufgabe 6 Dennis Blöte, 08.12.2006 Gedichtinterpretation worte sind schatten Das Gedicht worte sind schatten wurde 1969 von Eugen Gomringer geschrieben und befasst sich auf spielerische Art und Weise mit

Mehr

Filterregeln... 1. Einführung... 1. Migration der bestehenden Filterregeln...1. Alle eingehenden Nachrichten weiterleiten...2

Filterregeln... 1. Einführung... 1. Migration der bestehenden Filterregeln...1. Alle eingehenden Nachrichten weiterleiten...2 Jörg Kapelle 15:19:08 Filterregeln Inhaltsverzeichnis Filterregeln... 1 Einführung... 1 Migration der bestehenden Filterregeln...1 Alle eingehenden Nachrichten weiterleiten...2 Abwesenheitsbenachrichtigung...2

Mehr

Wie schreibt man eine Seminararbeit?

Wie schreibt man eine Seminararbeit? Wie schreibt man eine Seminararbeit? Eine kurze Einführung LS. Prof. Schulze, 27.04.2004 Vorgehensweise Literatur bearbeiten Grobgliederung Feingliederung (Argumentationskette in Stichpunkten) Zwischenbericht

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Einleitung. Was ist das Wesen von Scrum? Die Ursprünge dieses Buches

Einleitung. Was ist das Wesen von Scrum? Die Ursprünge dieses Buches Dieses Buch beschreibt das Wesen von Scrum die Dinge, die Sie wissen müssen, wenn Sie Scrum erfolgreich einsetzen wollen, um innovative Produkte und Dienstleistungen bereitzustellen. Was ist das Wesen

Mehr

Textmining Klassifikation von Texten Teil 1: Naive Bayes

Textmining Klassifikation von Texten Teil 1: Naive Bayes Textmining Klassifikation von Texten Teil 1: Naive Bayes Dept. Informatik 8 (Künstliche Intelligenz) Friedrich-Alexander-Universität Erlangen-Nürnberg (Informatik 8) Klassifikation von Texten 1: Naive

Mehr

7.4 Analyse anhand der SQL-Trace. 7.3.5 Vorabanalyse mit dem Code Inspector

7.4 Analyse anhand der SQL-Trace. 7.3.5 Vorabanalyse mit dem Code Inspector 7.4 Analyse anhand der SQL-Trace 337 7.3.5 Vorabanalyse mit dem Code Inspector Der Code Inspector (SCI) wurde in den vorangegangenen Kapiteln immer wieder erwähnt. Er stellt ein paar nützliche Prüfungen

Mehr

Relationale Datenbanken Datenbankgrundlagen

Relationale Datenbanken Datenbankgrundlagen Datenbanksystem Ein Datenbanksystem (DBS) 1 ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS ist es, große Datenmengen effizient, widerspruchsfrei und dauerhaft zu speichern

Mehr

Probabilistische Datenbanken

Probabilistische Datenbanken Probabilistische Datenbanken Seminar Intelligente Datenbanken AG Intelligente Datenbanken Prof. Dr. Rainer Manthey 26.04.05 Maarten van Hoek - 1 - Inhaltsverzeichnis 1.0 Einleitung...3 2.0 Modell probabilistischer

Mehr

Informatik und Informationstechnik (IT)

Informatik und Informationstechnik (IT) Informatik und Informationstechnik (IT) Abgrenzung Zusammenspiel Übersicht Informatik als akademische Disziplin Informations- und Softwaretechnik Das Berufsbild des Informatikers in der Bibliothekswelt

Mehr

First Steps. Online Medienbeobachtung so einfach wie E-Mails verwalten

First Steps. Online Medienbeobachtung so einfach wie E-Mails verwalten Online Medienbeobachtung so einfach wie E-Mails verwalten First Steps Dieses Dokument unterstützt SIe bei der Grundeinstellungen und ermöglicht Ihnen dadurch den schnellen Einstieg Inhalt: 1. Willkommen

Mehr

Numerische Datentypen. Simon Weidmann

Numerische Datentypen. Simon Weidmann Numerische Datentypen Simon Weidmann 08.05.2014 1 Ganzzahlige Typen 1.1 Generelles Bei Datentypen muss man immer zwei elementare Eigenschaften unterscheiden: Zuerst gibt es den Wertebereich, zweitens die

Mehr

Medizinische Statistik Epidemiologie und χ 2 Vierfeldertest

Medizinische Statistik Epidemiologie und χ 2 Vierfeldertest Universität Wien Institut für Mathematik Wintersemester 2009/2010 Medizinische Statistik Epidemiologie und χ 2 Vierfeldertest Seminar Angewandte Mathematik Ao. Univ. Prof. Dr. Peter Schmitt von Nadja Reiterer

Mehr

Befragung und empirische Einschätzung der Praxisrelevanz

Befragung und empirische Einschätzung der Praxisrelevanz Befragung und empirische Einschätzung der Praxisrelevanz eines Vorgehensmodells zur Auswahl von CRM-Systemen D I P L O M A R B E I T zur Erlangung des Grades eines Diplom-Ökonomen der Wirtschaftswissenschaftlichen

Mehr

Data Mining-Modelle und -Algorithmen

Data Mining-Modelle und -Algorithmen Data Mining-Modelle und -Algorithmen Data Mining-Modelle und -Algorithmen Data Mining ist ein Prozess, bei dem mehrere Komponenten i n- teragieren. Sie greifen auf Datenquellen, um diese zum Training,

Mehr

Proseminar - Data Mining

Proseminar - Data Mining Proseminar - Data Mining SCCS, Fakultät für Informatik Technische Universität München SS 2014, SS 2014 1 Data Mining: Beispiele (1) Hausnummererkennung (Klassifikation) Source: http://arxiv.org/abs/1312.6082,

Mehr

Suchmaschinen und ihre Architektur. Seminar: Angewandtes Information Retrieval Referat von Michael Wirz

Suchmaschinen und ihre Architektur. Seminar: Angewandtes Information Retrieval Referat von Michael Wirz Suchmaschinen und ihre Architektur Seminar: Angewandtes Information Retrieval Referat von Michael Wirz Ziel Rudimentäre Grundkenntnisse über die Funktionsweise von Suchmaschinen und Trends Einführung in

Mehr

Grundlagen der Verwendung von make

Grundlagen der Verwendung von make Kurzskript zum Thema: Grundlagen der Verwendung von make Stefan Junghans Gregor Gilka 16. November 2012 1 Einleitung In diesem Teilskript sollen die Grundlagen der Verwendung des Programmes make und der

Mehr

Ermittlung von Assoziationsregeln aus großen Datenmengen. Zielsetzung

Ermittlung von Assoziationsregeln aus großen Datenmengen. Zielsetzung Ermittlung von Assoziationsregeln aus großen Datenmengen Zielsetzung Entscheidungsträger verwenden heutzutage immer häufiger moderne Technologien zur Lösung betriebswirtschaftlicher Problemstellungen.

Mehr

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Informationen zur Datenbank 1. Definition 1.1 Datenbank-Basis Eine Datenbank-Basis ist eine Sammlung von Informationen über Objekte (z.b Musikstücke, Einwohner,

Mehr

Die folgenden Features gelten für alle isquare Spider Versionen:

Die folgenden Features gelten für alle isquare Spider Versionen: isquare Spider Die folgenden s gelten für alle isquare Spider Versionen: webbasiertes Management (Administratoren) Monitoring Sichten aller gefundenen Beiträge eines Forums Statusüberprüfung Informationen

Mehr

Klassifikationsaufgaben mit der SENTRAX. Konkreter Fall: Automatische Detektion von SPAM. Dirk T. Frobese

Klassifikationsaufgaben mit der SENTRAX. Konkreter Fall: Automatische Detektion von SPAM. Dirk T. Frobese Proceedings des Fünften Hildesheimer Evaluierungs- und Retrievalworkshop (HIER 2006) Klassifikationsaufgaben mit der SENTRAX. Konkreter Fall: Automatische Detektion von SPAM Dirk T. Frobese Universität

Mehr

Wie schreibt man eine Literaturübersicht?

Wie schreibt man eine Literaturübersicht? Wie schreibt man eine Literaturübersicht? Hinweis: Eine Literaturübersicht kann sowohl ein eigenständiger Text oder Teil einer wissenschaftlichen Arbeit sein. Im zweiten Fall findet sich in der Arbeit

Mehr

Repeatable Benchmarking Mahout

Repeatable Benchmarking Mahout Studienarbeitsexposé Repeatable Benchmarking Mahout Entwicklung eines Lasttest-Rahmenwerkes für Apache Mahout von: Oliver Fischer Institut für Informatik Humbold-Universität zu Berlin Matrikelnummer: 19

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Proseminar - Data Mining

Proseminar - Data Mining Proseminar - Data Mining SCCS, Fakultät für Informatik Technische Universität München SS 2012, SS 2012 1 Data Mining Pipeline Planung Aufbereitung Modellbildung Auswertung Wir wollen nützliches Wissen

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Recommended Search Engine Optimization

Recommended Search Engine Optimization Beispielbild Recommended Search Engine Optimization by Ralf Kuschel Student, Freie Universität Berlin Directory 2 Architektur 3 Architektur Document Index übernimmt die Datenverwaltung teilt Dokumenten

Mehr

Ihr Weg in die Suchmaschinen

Ihr Weg in die Suchmaschinen Ihr Weg in die Suchmaschinen Suchmaschinenoptimierung Durch Suchmaschinenoptimierung kann man eine höhere Platzierung von Homepages in den Ergebnislisten von Suchmaschinen erreichen und somit mehr Besucher

Mehr

User Experience vs. Retrievaltests Wie lässt sich die Relevanz von Suchergebnissen bewerten?

User Experience vs. Retrievaltests Wie lässt sich die Relevanz von Suchergebnissen bewerten? User Experience vs. Retrievaltests Wie lässt sich die Relevanz von Suchergebnissen bewerten? Prof. Dr. Dirk Lewandowski Hochschule für Angewandte Wissenschaften Hamburg dirk.lewandowski@haw-hamburg.de

Mehr

generiere aus Textdokumenten zunächst Metadaten, wende Data Mining - Techniken dann nur auf diese an

generiere aus Textdokumenten zunächst Metadaten, wende Data Mining - Techniken dann nur auf diese an 9. Text- und Web-Mining Text Mining: Anwendung von Data Mining - Verfahren auf große Mengen von Online-Textdokumenten Web Mining: Anwendung von Data Mining - Verfahren auf Dokumente aus dem WWW oder auf

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Nachweis über die Fähigkeit, selbständig eine wissenschaftliche Fragestellung unter Benutzung der einschlägigen Literatur zu lösen und darzustellen.

Nachweis über die Fähigkeit, selbständig eine wissenschaftliche Fragestellung unter Benutzung der einschlägigen Literatur zu lösen und darzustellen. Das Verfassen einer Hausarbeit Ziel einer Hausarbeit: Nachweis über die Fähigkeit, selbständig eine wissenschaftliche Fragestellung unter Benutzung der einschlägigen Literatur zu lösen und darzustellen.

Mehr

3 Berechnungen und Variablen

3 Berechnungen und Variablen 3 Berechnungen und Variablen Du hast Python installiert und weißt, wie man die Python-Shell startet. Jetzt kannst Du etwas damit machen. Wir fangen mit ein paar einfachen Berechnungen an und wenden uns

Mehr

The integration of business intelligence and knowledge management

The integration of business intelligence and knowledge management The integration of business intelligence and knowledge management Seminar: Business Intelligence Ketevan Karbelashvili Master IE, 3. Semester Universität Konstanz Inhalt Knowledge Management Business intelligence

Mehr

Web-2.0-Forschung der KWARC-Gruppe

Web-2.0-Forschung der KWARC-Gruppe Web-2.0-Forschung der KWARC-Gruppe 3. Web Montag Bremen Christoph Lange, Matthias Bröcheler International University Bremen (Jacobs University Bremen ab Frühjahr 2007) 27. November 2006 Ch. Lange/M. Bröcheler

Mehr

LDAP. Lightweight Directory. Desanka Bogicevic 1121621 Michael Wenig 1220567 Rupert Eisl 1220225

LDAP. Lightweight Directory. Desanka Bogicevic 1121621 Michael Wenig 1220567 Rupert Eisl 1220225 LDAP Lightweight Directory Access Protokoll Desanka Bogicevic 1121621 Michael Wenig 1220567 Rupert Eisl 1220225 LDAP Was ist LDAP? Was sind Verzeichnisdienste? Was ist ein Verzeichnis? Geschichte http://directory.apache.org/apacheds/basic-ug/1.2-some-background.html

Mehr

Apache Lucene. Mach s wie Google! Bernd Fondermann freier Software Architekt bernd.fondermann@brainlounge.de berndf@apache.org

Apache Lucene. Mach s wie Google! Bernd Fondermann freier Software Architekt bernd.fondermann@brainlounge.de berndf@apache.org Apache Lucene Mach s wie Google! Bernd Fondermann freier Software Architekt bernd.fondermann@brainlounge.de berndf@apache.org 1 Apache Apache Software Foundation Software free of charge Apache Software

Mehr

Bioinformatik I (Einführung)

Bioinformatik I (Einführung) Kay Diederichs, Sommersemester 2015 Bioinformatik I (Einführung) Algorithmen Sequenzen Strukturen PDFs unter http://strucbio.biologie.unikonstanz.de/~dikay/bioinformatik/ Klausur: Fr 17.7. 10:00-11:00

Mehr

C# Tutorial Part 1. Inhalt Part 1. Einleitung. Vorbereitung. Eagle Eye Studios. Einleitung Vorbereitung Das erste Projekt

C# Tutorial Part 1. Inhalt Part 1. Einleitung. Vorbereitung. Eagle Eye Studios. Einleitung Vorbereitung Das erste Projekt Eagle Eye Studios C# Tutorial Part 1 Inhalt Part 1 Einleitung Vorbereitung Das erste Projekt Einleitung Wer sich mit dem Programmieren schon einigermaßen auskennt, kann diesen Abschnitt überspringen. Programmieren,

Mehr

Optimieren Sie Ihre n2n Webseite

Optimieren Sie Ihre n2n Webseite N2N Autor: Bert Hofmänner 5.10.2011 Optimieren Sie Ihre n2n Webseite Einer der wichtigsten Faktoren für den Erfolg Ihrer Webseite in Suchmaschinen sind deren Inhalte. Diese können Sie mit einem Content

Mehr

Lehrgebiet Informationssysteme

Lehrgebiet Informationssysteme Lehrgebiet AG Datenbanken und (Prof. Michel, Prof. Härder) AG Heterogene (Prof. Deßloch) http://wwwlgis.informatik.uni-kl.de/ Was sind? Computergestützte Programmsysteme, die Informationen erfassen, dauerhaft

Mehr

Whitepaper. Warum Usability-Tests wichtig sind

Whitepaper. Warum Usability-Tests wichtig sind Whitepaper 01 Die Wichtigkeit von Usability-Tests Haben Sie sich schon einmal gefragt, ob Ihre Webseite ihr Potential voll ausschöpft? Ob es irgendwelche Stellschrauben gibt, an denen Sie drehen können

Mehr

SharePoint 2013 als Wissensplattform

SharePoint 2013 als Wissensplattform SharePoint 2013 als Wissensplattform Daniel Dobrich & Darius Kaczmarczyk 29.11.2012 7. SharePoint UserGroup Hamburg Treffen 1 Themen Verwaltete Metadaten in SharePoint 2013 Was sind verwaltete Metadaten

Mehr

Data Mining im Internet

Data Mining im Internet Data Mining im Internet Dipl.-Dok. Helga Walter Bayer HealthCare, Wuppertal PH-R-EU Scientific Information and Documentation 1 Arten / Quellen wissenschaftlicher Information Strukturierte Informationen:

Mehr

RSS-Feeds. Zentraler Informatikdienst der Universität Wien. Gerhard Mayer. Stand: April 2014, TYPO3-Version 4.5

RSS-Feeds. Zentraler Informatikdienst der Universität Wien. Gerhard Mayer. Stand: April 2014, TYPO3-Version 4.5 4-2014 RSS-Feeds RSS-Feed RSS-Feeds Zentraler Informatikdienst der Universität Wien Gerhard Mayer Stand: April 2014, TYPO3-Version 4.5 Dieses Skriptum ist eine Begleitunterlage der Schulungen des Zentralen

Mehr

Tipps und Tricks der Suchmaschinenoptimierung

Tipps und Tricks der Suchmaschinenoptimierung Tipps und Tricks der Suchmaschinenoptimierung Thomas Kleinert Institut für Wirtschaftsinformatik (IWi) im DFKI 16. Juli 2014 Agenda Was ist Suchmaschinenmarketing? Wie arbeiten Suchmaschinen? On-Page Optimierung

Mehr

Techniken zu Schreibwerkstatt Phase 1: Ein Thema erforschen und eingrenzen

Techniken zu Schreibwerkstatt Phase 1: Ein Thema erforschen und eingrenzen Techniken zu Schreibwerkstatt Phase 1: Ein Thema erforschen und eingrenzen Die 5 folgenden Techniken können Ihnen dabei helfen, ein passendes Thema bzw. eine Hypothese zu finden. 1. Fragen helfen beim

Mehr

Sentiment Analysis (SA) Robert Bärhold & Mario Sänger Text Analytics WS 2012/13 Prof. Leser

Sentiment Analysis (SA) Robert Bärhold & Mario Sänger Text Analytics WS 2012/13 Prof. Leser Sentiment Analysis (SA) Robert Bärhold & Mario Sänger Text Analytics WS 2012/13 Prof. Leser Gliederung Einleitung Problemstellungen Ansätze & Herangehensweisen Anwendungsbeispiele Zusammenfassung 2 Gliederung

Mehr

Peter Meier. Die Umsetzung von Risikomanagement nach ISO 31000. - Leseprobe -

Peter Meier. Die Umsetzung von Risikomanagement nach ISO 31000. - Leseprobe - Peter Meier Die Umsetzung von Risikomanagement nach ISO 31000 Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen

Mehr

Gefunden werden im Internet - Einblick in die Suchmaschinenoptimierung

Gefunden werden im Internet - Einblick in die Suchmaschinenoptimierung Barbara Schöne Espellohweg 33 22607 Hamburg Tel.: 040-82244963 kontakt@barbaraschoene.de www.barbaraschoene.de Gefunden werden im Internet - Einblick in die Suchmaschinenoptimierung Einführung Suchmaschinenoptimierung

Mehr

2. DFG- Workshop 3.1. Erfassung/Bewertung/Transfer. Beitrag von Peter Küsters. Spiegelung. Archiv. Bild 1: Unterschied zwischen FTP und Spiegelung

2. DFG- Workshop 3.1. Erfassung/Bewertung/Transfer. Beitrag von Peter Küsters. Spiegelung. Archiv. Bild 1: Unterschied zwischen FTP und Spiegelung 2. DFG- Workshop 3.1. Erfassung/Bewertung/Transfer Beitrag von Peter Küsters Formen des Datentransfers bei der Erfassung von Websites Im folgenden werden Methoden und Software zur Erfassung vorgestellt.

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Klausur Kommunikation I. Sommersemester 2003. Dipl.-Ing. T. Kloepfer

Klausur Kommunikation I. Sommersemester 2003. Dipl.-Ing. T. Kloepfer Kommunikation I 1 Klausur Kommunikation I Sommersemester 2003 Dipl.-Ing. T. Kloepfer Bearbeitungsinformationen Aufbau der Klausur Die Klausur ist wie folgt aufgebaut: Die Klausur ist in 18 Aufgaben unterteilt.

Mehr

FilePanther Dokumentation. FilePanther. Benutzerhandbuch. Version 1.1 vom 14.02.2012 Marcel Scheitza

FilePanther Dokumentation. FilePanther. Benutzerhandbuch. Version 1.1 vom 14.02.2012 Marcel Scheitza FilePanther Dokumentation FilePanther Version 1.1 vom 14.02.2012 Marcel Scheitza Inhaltsverzeichnis 1 Verwaltung Ihrer Websites... 3 1.1 Verwaltung von Websites... 3 1.2 Verwaltung von Gruppen... 4 1.3

Mehr

Formulierungshilfen für das wissenschaftliche Schreiben

Formulierungshilfen für das wissenschaftliche Schreiben Formulierungshilfen für das wissenschaftliche Schreiben 1. Einleitendes Kapitel 1.1.1 Einen Text einleiten und zum Thema hinführen In der vorliegenden Arbeit geht es um... Schwerpunkt dieser Arbeit ist...

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Elemente der Analysis II

Elemente der Analysis II Elemente der Analysis II Kapitel 3: Lineare Abbildungen und Gleichungssysteme Informationen zur Vorlesung: http://www.mathematik.uni-trier.de/ wengenroth/ J. Wengenroth () 15. Mai 2009 1 / 35 3.1 Beispiel

Mehr

Mining top-k frequent itemsets from data streams

Mining top-k frequent itemsets from data streams Seminar: Maschinelles Lernen Mining top-k frequent itemsets from data streams R.C.-W. Wong A.W.-C. Fu 1 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus 3. top-k lossy counting Algorithmus 4.

Mehr

IT-basierte Erstellung von Nachhaltigkeitsberichten. Diplomarbeit

IT-basierte Erstellung von Nachhaltigkeitsberichten. Diplomarbeit IT-basierte Erstellung von Nachhaltigkeitsberichten Diplomarbeit zur Erlangung des Grades eines Diplom-Ökonomen der Wirtschaftswissenschaftlichen Fakultät der Leibniz Universität Hannover vorgelegt von

Mehr

Industrie- und Handelskammer Stuttgart

Industrie- und Handelskammer Stuttgart Industrie- und Handelskammer Stuttgart SUCHMASCHINEN-OPTIMIERUNG die vorderen Plätze bei Google, Yahoo & Co 1. Über Beyond Media 2. Erste Schritte 3. freundliche 4. Arbeitsweise 5. Bewertungsmethoden 6.

Mehr

Kompetenzmodell für Informatik

Kompetenzmodell für Informatik Kompetenzmodell für Informatik als Grundlage des Lehrplans für den Pflichtgegenstand Informatik in der 5. Klasse und für den Wahlpflichtgegenstand Informatik in der 6. bis 8. Klasse Das Kompetenzmodell

Mehr

Bilder im Internet. Hans Magnus Enzensberger

Bilder im Internet. Hans Magnus Enzensberger Kapitel 4 Alle reden von Kommunikation, aber die wenigsten haben sich etwas mitzuteilen. Hans Magnus Enzensberger Bilder im Internet Nach der etwas umfangreichen vorangehenden Lektion zum Ausklang der

Mehr

Vorlesung Suchmaschinen Semesterklausur Wintersemester 2013/14

Vorlesung Suchmaschinen Semesterklausur Wintersemester 2013/14 Universität Augsburg, Institut für Informatik Wintersemester 2013/14 Prof. Dr. W. Kießling 10. Oktober 2013 F. Wenzel, D. Köppl Suchmaschinen Vorlesung Suchmaschinen Semesterklausur Wintersemester 2013/14

Mehr

Über dieses Buch. Kapitel 1. 1.1 Einleitung

Über dieses Buch. Kapitel 1. 1.1 Einleitung Kapitel 1 Über dieses Buch 1.1 Einleitung Dieses Buch behandelt das Vorgehensmodell Kanban und seinen Einsatz in Softwareentwicklungsprojekten. Kanban ist ein Vorgehensmodell der schlanken Softwareentwicklung

Mehr

DISKUSSIONSBEITRÄGE DER FAKULTÄT FÜR BETRIEBSWIRTSCHAFTSLEHRE MERCATOR SCHOOL OF MANAGEMENT UNIVERSITÄT DUISBURG-ESSEN. Nr. 374

DISKUSSIONSBEITRÄGE DER FAKULTÄT FÜR BETRIEBSWIRTSCHAFTSLEHRE MERCATOR SCHOOL OF MANAGEMENT UNIVERSITÄT DUISBURG-ESSEN. Nr. 374 DISKUSSIONSBEITRÄGE DER FAKULTÄT FÜR BETRIEBSWIRTSCHAFTSLEHRE MERCATOR SCHOOL OF MANAGEMENT UNIVERSITÄT DUISBURG-ESSEN Nr. 374 Eignung von Verfahren der Mustererkennung im Process Mining Sabrina Kohne

Mehr

Website-Suche mit OpenText Web Site Management. Frank Steffen - Senior Product Manager

Website-Suche mit OpenText Web Site Management. Frank Steffen - Senior Product Manager Website-Suche mit OpenText Web Site Management Frank Steffen - Senior Product Manager Inhalt Überblick Konzepte der Suchmaschinenanbindung Verity K2 Anbindung Der neue OT Search Engine Connector Federated

Mehr

design kommunikation development

design kommunikation development http://www.dkd.de dkd design kommunikation development Apache Solr - A deeper look Stefan Sprenger, Developer dkd Olivier Dobberkau, Geschäftsführer dkd Agenda Einführung Boosting Empfehlungen Ausblick

Mehr

Web-Design und Suchmaschinen-Optimierung: Zwei getrennte Welten

Web-Design und Suchmaschinen-Optimierung: Zwei getrennte Welten Web-Design und Suchmaschinen-Optimierung: Zwei getrennte Welten 1. Einleitung Im täglichen Gespräch mit Unternehmen stellen wir als Suchmaschinen-Marketing- Agentur immer häufiger fest, dass Unternehmen

Mehr

Informatik Programmiersprachen eine kurze Übersicht

Informatik Programmiersprachen eine kurze Übersicht Informatik eine kurze Übersicht Seite 1 natürliche Sprachen (nach Wikipedia) ca 6500 gesprochene Sprachen davon etwa die Hälfte im Aussterben etwa 500 Schriftsprachen mit gedruckten Texten P. Bueghel Turmbau

Mehr

LINQ to SQL. Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel. Institut für Informatik Software & Systems Engineering

LINQ to SQL. Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel. Institut für Informatik Software & Systems Engineering LINQ to SQL Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel Institut für Informatik Software & Systems Engineering Agenda 1. LINQ allgemein Vorteile Bausteine und Varianten

Mehr

Gibt es verschiedene Arten unendlich? Dieter Wolke

Gibt es verschiedene Arten unendlich? Dieter Wolke Gibt es verschiedene Arten unendlich? Dieter Wolke 1 Zuerst zum Gebrauch des Wortes unendlich Es wird in der Mathematik in zwei unterschiedlichen Bedeutungen benutzt Erstens im Zusammenhang mit Funktionen

Mehr

Alice E-Mail & More Anleitung. E-Mail.

Alice E-Mail & More Anleitung. E-Mail. Alice E-Mail & More Anleitung. E-Mail. E-Mail & More E-Mail. Ihr persönliches Outlook im Web. Die neuen E-Mail & More Services von Alice machen Ihr Web-Erlebnis richtig komfortabel. Das gilt besonders

Mehr

5. Suchmaschinen Herausforderungen beim Web Information Retrieval. 5. Suchmaschinen. Herausforderungen beim Web Information Retrieval

5. Suchmaschinen Herausforderungen beim Web Information Retrieval. 5. Suchmaschinen. Herausforderungen beim Web Information Retrieval 5. Suchmaschinen Herausforderungen beim Web Information Retrieval 5. Suchmaschinen Herausforderungen beim Web Information Retrieval Architektur von Suchmaschinen Spezielle Bewertungsfunktionen Information

Mehr

Nach Ihrer erstmaligen Anmeldung sollten Sie Ihr Passwort ändern. Dazu klicken Sie bitte auf Ihren Namen.

Nach Ihrer erstmaligen Anmeldung sollten Sie Ihr Passwort ändern. Dazu klicken Sie bitte auf Ihren Namen. 1 Passwort ändern Nach Ihrer erstmaligen Anmeldung sollten Sie Ihr Passwort ändern Dazu klicken Sie bitte auf Ihren Namen Abb 1-1 Erstmaliger Anmeldung Danach erscheint ein PopUp indem Sie Ihr Passwort

Mehr

Übung Medienretrieval WS 07/08 Thomas Wilhelm, Medieninformatik, TU Chemnitz

Übung Medienretrieval WS 07/08 Thomas Wilhelm, Medieninformatik, TU Chemnitz 02_Grundlagen Lucene Übung Medienretrieval WS 07/08 Thomas Wilhelm, Medieninformatik, TU Chemnitz Was ist Lucene? (1) Apache Lucene is a high-performance, full-featured text search engine library written

Mehr

Dateisysteme mit Plugin-Funktion

Dateisysteme mit Plugin-Funktion Dateisysteme mit Plugin-Funktion Basierend auf Reiser 4 unter Linux http://llugb.amsee.de/logo.gif Ausgearbeitet und vorgetragen von Michael Berger 1/23 Agenda Die Idee Dateisysteme mit Plugin-Funktion

Mehr

Cassandra Query Language (CQL)

Cassandra Query Language (CQL) Cassandra Query Language (CQL) Seminar: NoSQL Wintersemester 2013/2014 Cassandra Zwischenpräsentation 1 Gliederung Basic facts Datentypen DDL/DML ähnlich zu SQL Besonderheiten Basic facts CQL kurz für

Mehr

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I SQL SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R VII-1 Beispielrelationen Filiale ( Name Leiter Stadt Einlagen ) Konto ( KontoNr KundenNr FilialName Saldo ) Kredit

Mehr

Übungen zu Modellierung verteilter Systeme

Übungen zu Modellierung verteilter Systeme Technische Universität München SoSe 2014 Institut für Informatik Lösungsblatt 1 PD Dr.habil. B. Schätz Ausgabe: 17. April 2014 M. Gleirscher, D. Marmsoler Besprechung: 24. April 2014 Übungen zu Modellierung

Mehr

SemanticMediaWiki+ als Wissensplattform für Unternehmen

SemanticMediaWiki+ als Wissensplattform für Unternehmen SemanticMediaWiki+ als Wissensplattform für Unternehmen Zielgruppengerechte Produktion von Trainingsmaterial am Beispiel der UNESCO Daniel Hansch, hansch@ontoprise.de, ontoprise GmbH Hans-Peter Schnurr,

Mehr

Tutorium Learning by doing WS 2001/ 02 Technische Universität Berlin. Erstellen der Homepage incl. Verlinken in Word 2000

Tutorium Learning by doing WS 2001/ 02 Technische Universität Berlin. Erstellen der Homepage incl. Verlinken in Word 2000 Erstellen der Homepage incl. Verlinken in Word 2000 1. Ordner für die Homepagematerialien auf dem Desktop anlegen, in dem alle Bilder, Seiten, Materialien abgespeichert werden! Befehl: Desktop Rechte Maustaste

Mehr

Auch der eigene Katalog als Quelle: Zusammenführung von elektronischer und gedruckter Fassung; verschiedenen Auflagen usw.: Fließender Übergang zu

Auch der eigene Katalog als Quelle: Zusammenführung von elektronischer und gedruckter Fassung; verschiedenen Auflagen usw.: Fließender Übergang zu 1 2 3 4 Auch der eigene Katalog als Quelle: Zusammenführung von elektronischer und gedruckter Fassung; verschiedenen Auflagen usw.: Fließender Übergang zu FRBR 5 Begriff stammt aus: Coffmann, Steve: The

Mehr

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt - 17 - Die Frage ist hier also: Für welche x R gilt x = x + 1? Das ist eine quadratische Gleichung für x. Es gilt x = x + 1 x x 3 = 0, und man kann quadratische Ergänzung machen:... ( ) ( ) x x + = 3 +

Mehr