Seminarband - Lehrgebiet Datenbanksysteme für neue Anwendungen
Transcription
Seminarband - Lehrgebiet Datenbanksysteme für neue Anwendungen
FernUniversität in Hagen Seminarband zum Kurs 1912 im SS 2006 Multimedia-Datenbanken Präsenzphase: 30.06. - 01.07.2006 Betreuer: Prof. Dr. Ralf Hartmut Güting Dipl.-Inf. Thomas Behr Fakultät für Mathematik und Informatik Datenbanksysteme für neue Anwendungen FernUniversität in Hagen 58084 Hagen Zeitplan und Inhaltsverzeichnis Freitag, 30.06.2006 1100 - 1130 Uhr Begrüßung 1130 - 1230 Uhr Thema 1 – Sebastian Irle Compression Techniques 1230 - 1400 Uhr Mittagspause 1400 - 1500 Uhr Thema 2 – Peter Eggert Indexing of Complex Data 1515 - 1615 Uhr Thema 3 – Maik Devrient Text Retrieval 1 Sonnabend, 1.07.2006 900 - 1000 Uhr Thema 4 – Sylvia Zotz Text Retrieval 2 1015 - 1115 Uhr Thema 5 – Karsten Mende Content Based Image Retrieval 1130 - 1230 Uhr Thema 6 – Annette Schaffer Music Retrieval 1 1245 - 1345 Uhr Thema 7 – Ernst Jansen Music Retrieval 2 1345 - 1400 Uhr Auswertung und Abschluß Seminar 1912: Multimedia-Datenbanken Thema1: Compression Techniques Sebastian Irle Thema1: Compression Techniques 1 Sebastian Irle Inhaltsverzeichnis 1 Einleitung und Motivation 2 2 Standards 2.1 Notwendigkeit von Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Standardisierungs-Komitees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Entwicklungsschritte eines Standards am Beispiel MPEG . . . . . . . . . . . . . . . . . 2 2 2 3 3 Der JPEG-Standard 3.1 Anwendungen und Möglichkeiten . . . . . . . . . . 3.2 Grundlegende Schritte . . . . . . . . . . . . . . . . 3.2.1 Schritte für die verlustbehaftete Kompression 3.2.2 Kompression und Qualität der Bilder . . . . 3.2.3 Verlustfreie Kompression . . . . . . . . . . . 3.3 Dekomprimierung . . . . . . . . . . . . . . . . . . . 3.4 Mehrere Komponenten und Datenströme . . . . . . . 3.5 Aufbau des Dateiformates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 4 4 6 7 7 8 8 4 Der MPEG Standard 4.1 Anwendungsgebiete . . . . . . . . . . . . . . . . . 4.1.1 Digitale Medien . . . . . . . . . . . . . . 4.1.2 Asymmetrische Übertragung . . . . . . . . 4.1.3 Symmetrische Übertragung . . . . . . . . 4.2 Features . . . . . . . . . . . . . . . . . . . . . . . 4.2.1 Wahlfreier Zugriff . . . . . . . . . . . . . 4.2.2 Schneller Vorlauf/Rücklauf . . . . . . . . . 4.2.3 Rückwärts abspielen . . . . . . . . . . . . 4.2.4 Synchronisation zwischen Video und Audio 4.2.5 Fehlerunanfälligkeit . . . . . . . . . . . . 4.2.6 Flexibilität . . . . . . . . . . . . . . . . . 4.2.7 Echtzeitkomprimierung . . . . . . . . . . . 4.3 Bestandteile . . . . . . . . . . . . . . . . . . . . . 4.3.1 Container . . . . . . . . . . . . . . . . . . 4.3.2 Codec . . . . . . . . . . . . . . . . . . . . 4.4 Versionen . . . . . . . . . . . . . . . . . . . . . . 4.4.1 MPEG1 . . . . . . . . . . . . . . . . . . . 4.4.2 MPEG2 . . . . . . . . . . . . . . . . . . . 4.4.3 MPEG4 . . . . . . . . . . . . . . . . . . . 4.5 Bewegungskompensation . . . . . . . . . . . . . . 4.5.1 Typen von Bildern . . . . . . . . . . . . . 4.5.2 Vorhersage . . . . . . . . . . . . . . . . . 4.5.3 Interpolation . . . . . . . . . . . . . . . . 4.6 Bewegungsestimation . . . . . . . . . . . . . . . 4.7 DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 8 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 11 11 11 12 12 12 12 . . . . . . . . . . . . . . . . . . . . . . . . . 5 Zusammenfassende Beurteilung 12 6 Quellen 13 Sebastian Irle 2 Thema1: Compression Techniques 1 Einleitung und Motivation Gerade in Datenbanken werden sehr große Mengen von Daten abgespeichert. Mit der zunehmenden Speicherung multimedialer Inhalte, insbesondere Bilder und Videos, werden Kompressionsverfahren immer wichtiger. In dieser Arbeit soll es darum gehen, Komprimierungsstandards am Beispiel von JPEG und MPEG grundlegend zu erklären. 2 Standards 2.1 Notwendigkeit von Standards Um eine Kommunikation zwischen verschiedenen Programmen und Diensten zu ermöglichen, bedarf es Standards. Gerade im Bereich der digitalen Datenspeicherung ist es ohne einen Satz von Regeln nahezu unmöglich die einmal gespeicherten Daten weiterzuverarbeiten, da der grundlegende Bezug der binären Daten zu den Nutzinformationen fehlt. Es bedarf der Kenntnis der Codierung, um die Daten überhaupt verstehen zu können. An dieser Stelle unterscheidet sich die digitale Speicherung auch grundlegend von analogen Speicherformen (z.B. der Schrift), die grundlegende, nachvollziehbare Verknüpfungen besitzen. So ist es uns heute möglich die Hyroglyphen der Ägypter zu verstehen, während ein Historiker in Zukunft wohl nicht in der Lage sein wird, die Einsen und Nullen, die irgendwo abgelegt sind, in Nutzinformationen umwandeln zu können, ohne eine detailierte Anleitung zu besitzen wie die Codierung zu verstehen ist. Dieses Problem wird, für die Gegenwart, durch feste Absprachen und Regeln - in einem Wort Standards - gelöst. Standards können auf verschiedene Weisen entstehen. Zum einen gibt es die so genannten Industriestandards, die etabliert werden indem eine Firma ihre Marktmacht ausnutzt, um durch starke Verbreitung der Technologie einen Defacto-Standard zu setzen. Beispiele hierfür sind das proprietäre doc Format von Microsoft Word oder, um einen anderen Bereich aufzugreifen, das VHS Format der Firma JVC. Diese Standards bergen allerdings die starke Gefahr, der technologischen Abhängigkeit von einer Firma. Die standardsetzende Firma wird im Regelfall immer einen Technologievorsprung behalten, wenn die Spezifikationen überhaupt grundlegend offengelegt werden. Aus diesem Grund wird die Standardisierung in vielen Fällen von unabhängigen Institutionen, die meist die Bestrebungen vieler Unternehmen bündeln, vorangetrieben. Es wird für jeden Interessenten die Spezifikation offen gelegt, so dass eine Kompatibilität immer sichergestellt wird. Damit ist zum einen der Endanwender nicht auf die Technologie eines Herstellers beschränkt, zum anderen wird die Verbreitung des Standards wahrscheinlicher. Mit den hier behandelten Formaten JPEG und MPEG werden zwei sehr erfolgreiche, von unabhängigen Institutionen gesetzte, Standards vorgestellt. 2.2 Standardisierungs-Komitees Standardisierung wird auf nationaler, vor allem aber auf europäischer und internationaler Ebene vorangetrieben. Als ältestes internationales Standardisierungsgremium ist die ITU (International Telecommunication Union), für die technischen Aspekte der Telekommunikation zuständig. Die ITU geht auf die CCITT zurück, die auch für die unten aufgeführten Standards JPEG und MPEG mit verantwortlich war. Die ITU (bzw. vorher die CCITT) gibt nur Empfehlungen (recommendations) aus, die noch durch normative Organisationen oder Regierungsstellen übernommen werden müssen, um z.B. in Deutschland als Norm anerkannt zu sein. Ein Beispiel für solch eine Normierungsorganisation ist die ISO, die sich aus den Normierungsorganisationen von über 150 Ländern zusammensetzt. Vertreter für Deutschland ist die DIN. Als weitere Normierungsorganisationen kann die ETSI (European Institute for Telecommuniactaion) genannt werden, die zusammen mit der ITU die europäischen Telekommunikationsstandards entwickelt hat. Thema1: Compression Techniques 3 Sebastian Irle 2.3 Entwicklungsschritte eines Standards am Beispiel MPEG Als Beispiel für die Entwicklungsschritte eines erfolgreichen Standards betrachten wir die Standardisierung der MPEG. 1988 wurde entschieden, dass ein Standard für die Videokomprimierung nötig ist. Es bestand ein relativer Zeitdruck, da Verzögerungen zu Eigenentwicklungen der Industrie geführt hätten, wodurch viele inkompatible Defacto-Standards enstanden wären. Daher wurde ein sehr enger Terminplan gesetzt, der die Entwicklung in drei Phasen einteilte: 1. Requirements: Um alle Bedürfnisse zu befriedigen, wurde in dieser Phase zuerst abgeklärt, was das Ergebnis der Bemühungen überhaupt sein soll. In diesem Fall war es vor allem ein offener Standard, der viel Raum für individuelle Implementationen ließ. 2. Competition: Um den Standard auf dem aktuellen technischen Stand zu entwickeln, wurden verschiedene Vorschläge großer Firmen eingeholt, die dann ausgewertet wurden, um ein möglichst großes Spektrum des aktuellen Standes der Technik zu erhalten. 3. Convergence: In dieser dritten Phase wurden die vorher gesammelten Erkenntnisse dann abgeglichen und zu einer Lösung zusammengeführt. Da an der Entwicklung viele große Firmen beteiligt waren (u.a. AT&T, Intel, Mitsubishi, Sony) konnte der Terminplan eingehalten werden und im September 1990 stand der erste Entwurf auf dem Papier. 3 Der JPEG-Standard 3.1 Anwendungen und Möglichkeiten Der JPEG Standard wurde von 1986 bis 1992 von der JPEG (Joint Photografic Experts Group) entwickelt, die eine Zusammenarbeit des ISO und des CCITT darstellt. Ziel war es, einen KompressionsStandard für nicht-bewegte Bilder zu schaffen, um die Entwicklung im Multimedia Bereich zu beschleunigen. Zusammen mit der Entwicklung des WWW Anfang der neunziger Jahre fand der nach der Entwicklungsgruppe benannte Kompressionsstandard eine immense Verbreitung. Da die Bedarfe für den Standard im Vorhinein nicht klar absehbar waren, wurde versucht, die Spezifikation möglichst breit anzulegen und es wurden verschiedene Modi entwickelt. Folgende Vorrausetzungen wurden zugrundegelegt: • der Standard soll eine gute Kompression, besonders aus hochqualitativen Quellen, ermöglichen. Dem Benutzer soll die Entscheidung, wie stark die Kompression auf Kosten der Qualität geht, selbst überlassen bleiben • als Quelle soll praktisch jedes Bild unabhängig vom Farbraum, den Dimensionen oder ähnlichem möglich sein • die Implementierung in Soft- und Hardware soll mit angemessenen Aufwand möglich sein. Wie schon angesprochen, wurden verschiedene Kompressionsmodi entwickelt, um auf unterschiedliche Anwendungsgebiete vorbereitet zu sein: – sequentielle Komprimierung: jede Bildkomponente (also jeder Teil des Farbraumes) wird in einem links-nach-rechts und oben-nach-unten Scan verarbeitet – Progressive Komprimierung: Hier wird das Bild mehrfach gescannt um, gerade bei langsamen Verbindungen, das Bild schnell erscheinen zu lassen und es dann nach und nach zu schärfen – Hierarchische Komprimierung: das Bild wird in verschiedenen Auflösungen gespeichert, so dass es möglich ist, sich das Bild in einer niedrigen Auflösung anzeigen zu lassen, ohne vorher die volle Auflösung geladen zu haben. Sebastian Irle 4 Thema1: Compression Techniques – Verlustfreie Komprimierung: das Bild wird in der Original Qualität gespeichert. Hierbei ist Kompressionsrate entsprechend geringer 3.2 Grundlegende Schritte 3.2.1 Schritte für die verlustbehaftete Kompression Der JPEG-Standard schreibt kein Farbmodell vor, allerdings wird aus Gründen der Qualität meist der YUV-Modus (Y: Helligkeit (Luminanz), U: Farbton, V: Farbsättigung (Chrominanz))oder der YCbCrModus gewählt. Das lässt sich darauf zurückführen, dass diese Farbräume die Helligkeitsunterschiede abspeichern, was für das menschliche Auge besser wahrnehmbar ist, als die Farbunterschiede im RGBModell. Aus diesem Grund wird meist als erster Schritt der Farbraum umberechnet. Für die Umrechnung aus dem RGB-Farbraum in den YUV-Farbraum werden folgende Formeln verwendet: Y = 0, 299R + 0, 587G + 0, 114B U =R−Y V =R−Y Als zweiter Schritt wird eine FDCT (Forward Discrete Cosinus Transformation) durchgeführt. Diese Funktion hat eine inverse Operation (IDCT). Die Umorganisation verläuft also verlustfrei und bringt die Daten nur in eine besser komprimierbare Form. Hierfür wird jede Komponente des Bildes (also, das Y, U, und V) in 8x8 Blöcke unterteilt, auf die dann die Formel 7 7 (2i + 1)xπ (2j + 1)yπ 1 f (i, j) ∗ cos cos ] F (x, y) = C(x)C(y)[ 4 16 16 i=0 j=0 wobei √ C(x), C(y) = 1/ 2 für x, y = 0 C(x), C(y) = 1 sonst 7 7 (2i + 1)xπ (2j + 1)yπ 1 C(x)C(y)F (x, y) ∗ cos cos ] f (i, j) = [ 4 x=0 y=0 16 16 wobei √ C(x), C(y) = 1/ 2 für x, y = 0 C(x), C(y) = 1 sonst angewendet wird. Die erste Formel (F(i,j)) stellt hierbei die FDCT zur Komprimierung der Daten dar. Die zweite Formel (IDCT) wir entsprechend für die Dekomprimierung verwendet. Die DCT transformiert also ein zeitdiskretes Signal vom Orts- in den Frequenzbereich. Da die Frequenzen (Helligkeiten) lokal normalerweise keine großen Sprünge machen, sind die Veränderungen der Frequenzen, und damit die Koeffizienten, relativ gering, was sie leicht komprimierbar macht. Die erste Komponente in der Matrix (mit der niedrigsten Frequenz) wird als DC bezeichnet und ist nur ein Einheitsblock. Die weiteren Komponenten (AC) symbolisieren die Zunahme der Frequenz (Wechsel zwischen Hell und Dunkel) und zwar von links nach rechts für die horizontale Anzahl von Zyklen und von oben nach unten für die vertikale Anzahl von Zyklen. In diagonaler Richtung nehmen also sowohl die horizontalen, als auch die vertikalen Zyklen zu. Die DCT kann mit der Diskreten Fourier Transformation verglichen werden, nur dass bei der DCT mit reellen anstatt mit komplexen Koeffizienten gerechnet wird. In Abbildungen 2 und 3 ist die bespielhafte Umrechnung einer 8x8 Matrix von den Bildpunkten der Quelle in die DCT-Koeffizienten gezeigt. Thema1: Compression Techniques 5 Sebastian Irle Abbildung 1: Anwendung der FDCT und IDCT Abbildung 2: Bildpunkte der Quelle Abbildung 3: DCT Koeffizienten Sebastian Irle 6 Thema1: Compression Techniques Danach erst folgt der eigentlich Schritt zur Komprimierung: Die Quantisierung. Hierfür werden die errechneten DCT-Koeffizienten durch eine Quantisierungsmatrix geteilt und dann zur nächsten ganzen Zahl gerundet. Die Quantisierungsmatrix wird von der Applikation oder dem Benutzer vorgegeben und bestimmt letztendlich die Kompressionsrate. Um die bestmögliche Kompressionsrate ohne sichtbare Einbußen zu erzeugen, sollten die Werte ungefähr die Empfindlichkeit der Augen für die entsprechenden Ortsfrequenzen repräsentieren. Für hohe Frequenzen sind die Werte also höher, da das Auge für grobe Strukturen empfindlicher ist. Abbildung 4: Quantisierungsmatrix Abbildung 5: quantisierte Koeffizienten Nach der Quantisierung wird die so erzeugte Matrix umsortiert. Zum einen wird hierfür der DC-Koeffizient in Beziehung zum benachbarten 8x8 Block gesetzt. Die AC-Koeffizienten werden nach ihrer Frequenz, also nach der sogenannten ZigZag-Sequence sortiert. Als letzter Schritt bleibt die Entropie-Komprimierung, also die Erstellung von Häufigkeitstabellen und die entsprechende Komprimierung. Der JPEG-Standard bietet zwei Möglichkeiten. Die Huffmann-Kodierung und die arithmetische Kodierung.Obwohl die arithmetische Kodierung etwas kleinere Dateien erzeugt, wird aus Lizenzgründen meist die HuffmannAbbildung 6: Zig-Zag Sequenz Kodierung verwendet. 3.2.2 Kompression und Qualität der Bilder Für den Zusammenhang zwischen Bildgröße und Qualität wird folgendes angegeben: • 0,25-0,5 bits /pixel: moderate bis gute Qualität • 0,5-0,75 bits/pixel: gute bis sehr gute Qualität • 0,75-1,5 bits/pixel: ekzellente Qualität • 1,5-2,0 bits/pixel: normalerweise nicht vom Original zu unterscheiden. Dazu ist noch anzumerken, dass die JPEG Komprimierung am Besten für natürliche Bilder funktioniert. Für Strichzeichnungen oder Zeitungsdruck liegt die Qualität wesentlich niedriger. Auch zu beachten ist, dass durch jeden Komprimierungs/Entkomprimierungsvorgang ein Qualitätsverlust entsteht, der, ähnlich einer Analogkopie, die Qualität von Generation zu Generation verschlechtert. Thema1: Compression Techniques 7 Sebastian Irle 3.2.3 Verlustfreie Kompression Die verlustfreie Kompression basiert nicht auf ein DCT, sondern auf eine Vorhersagetechnik. Aus bis zu drei benachbarten „Samples“ wird eine Vorhersage berechnet. Diese wird vom eigentlichen Wert abgezogen und Entropie-Kodiert. Wie in Tabelle 1 und Abbildung 7 zu sehen gibt es verschiedene Vorhersagetechniken. Das X in Abbildung 7 ist der zu berechnende Wert, der mittels verschiedener Formeln vorhergesagt (Tabelle 1) wird. Je nach ausgewählter Vorhersage Methode, ergibt sich eine typische Komprimierung von 2:1 Abbildung 7: Samples Wert 0 1 2 3 4 5 6 7 Vorhersage keine Vorhersage A B C A+B-C A+((B-C)/2) B+((A-C)/2) (A+B)/2 Tabelle 1: Prediktoren für die Verlustfreie Kompression 3.3 Dekomprimierung Die Dekomprimierung läuft vollkommen analog zur Komprimierung. Als erstes wird die EntropieKodierung rückgängig gemacht und die Koeffizienten erden wieder in die ursprüngliche Reihenfolge gebracht. Anschließend multipliziert man die Koeffizienten mit der Quantisierungsmatrix. Da an dieser Stelle vorher eine Integerdivision durchgeführt wurde, kommt man zwar auf ähnlich große aber nicht identische Werte zum Originalbild. Hier entsteht also der Verlust. Die so enstandene Matrix muss dann nur noch durch die IDCT Funktion 7 7 (2i + 1)xπ (2j + 1)yπ 1 C(x)C(y)F (x, y) ∗ cos cos ] f (i, j) = [ 4 x=0 y=0 16 16 wobei √ C(x), C(y) = 1/ 2 für x, y = 0 C(x), C(y) = 1 sonst geschickt werden, um wieder ein Bild mit Informationen auf Pixelbasis zu erhalten. Sebastian Irle 8 Thema1: Compression Techniques 3.4 Mehrere Komponenten und Datenströme Wie schon oben beschrieben, bestehen die Farbbilder aus mehreren Komponenten. Hierfür können mehrere Quantisierungs- und Entropietabellen angelegt werden. Im Standard wurden jeweils 4 Tabellen als Maximum festgelegt. Um eine Umsetzung der Dekomprimierung in einem Chip zu ermöglichen, müssen die verschiedenen Komponenten allerdings gleichzeitig (sequentiell) dekodiert werden, wodurch eine exzessive Zwischenspeicherung vermieden wird. Um diese Interleavingtechnik sowohl für die DCTbasierten als auch die Vorhersage-Codecs zu ermöglichen, werden sogenannte Data-Units eingeführt. Diese bestehen beim DCT aus einem 8x8 Block und bei der Vorhersage aus einem Sample. Diese DataUnits werden in einer Raster-Scan-Reihenfolge durchlaufen. Da die verschiedenen Komponenten verschiedene Dimensionen haben können, wird jede Komponente in Regionen eingeteilt die entsprechend durchlaufen werden (siehe Abbildung 8). Abbildung 8: Interleaving 3.5 Aufbau des Dateiformates Das umgangssprachlich als JPEG bezeichnete Dateiformat heißt eigentlich JFIF und weist einige Einschränkungen zum Original JPEG Dateiformat auf. Zum einen ist die Entropiekodierung auf Huffmann beschränkt und als Farbraum ist ausschließlich YUV zugelassen. Eine JFIF Datei besteht aus einem Header (FF E0 00 10 4A 46 49 46 00 01) und sich anschließenden Segmenten. So kann eine JFIF-Datei durchaus mehrere Bilder (z.B. eine Thumbnail Version) enthalten. Um Informationen wie das Copyright, die Huffmann- und Entropietabellen und die Begrenzungen zwischen den Segmenten abspeichern zu können gibt es spezielle Steuerbefehle. Steuerbefehle werden grundsätzlich mit FF eingeleitet. Ein im Datenstrom vorkommendes FF wird mit einer folgenden 00 markiert. 4 Der MPEG Standard Wie schon in Abschnitt 2 beschrieben, sollte der von der MPEG gesetzte Standard die Entwicklung im Bereich der digitalen Videoübertragung beschleunigen und Kosten senken. Allerdings gab es schon zu diesem Zeitpunkt sehr unterschiedliche Anwendungsgebiete und somit auch unterschiedliche Anforderungen. Der MPEG Standard wir daher als Generic Standard bezeichnet, da er nicht auf einzelne Applikationen zugeschnitten ist, sondern ganz universell bestimmte Dienste zur Verfügung stellt. Obwohl der Standard sowohl aus Audio- als auch aus Videokompressionsverfahren besteht, soll an dieser Stelle nur auf die Videokomprimierung im Detail eingegangen werden. 4.1 Anwendungsgebiete 4.1.1 Digitale Medien Viele Medien besitzen (bzw. besaßen) nicht genügend Speicherplatz zur unkomprimierten Speicherung von Videos. Die für den MPEG1 Standard festgelegte Datenrate von 1,5 MBits/s ist für viele Speichermedien adäquat. CD-ROM (die Video-CD) ist ein sehr wichtiges Speichermedium geworden, aber auch Thema1: Compression Techniques 9 Sebastian Irle das Digital Audio Tape (DAT), als Konkurrenz zu Sonys MD-Player nutzte den MPEG Standard. Ein wichtiges Feature für die Speichermedien ist der wahlfreie Zugriff. 4.1.2 Asymmetrische Übertragung Asymmetrische Übertragung ist dadurch gekennzeichnet, dass die Dekomprimierung an jedem Endgerät erfolgt (also relativ günstig sein muss), die Komprimierung aber zentral an der aussendenden Stelle erfolgt. Beispiele hierfür sind elektronische Veröffentlichungen oder das Bereitstellen von Fernsehsignalen (DVB Technologie). 4.1.3 Symmetrische Übertragung Bei der symmetrischen Übertragung wird im Gegensatz hierzu auf beiden Seiten sowohl eine Komprimierung als auch eine Dekomprimierung erforderlich. Ein Beispiel hierfür ist die Videotelefonie. 4.2 Features Aufgrund der sehr verschiedenen Ansprüche wurden eine ganze Reihe von Anforderungen definiert, die je nach Anwendung implementiert werden, oder auch nicht. 4.2.1 Wahlfreier Zugriff Der Zugriff auf beliebige Stellen des Videos ist vor allem für gespeicherte Filme essentiell. Für die Übertragungstechnologien ist es eher unwesentlich. Um den wahlfreien Zugriff (Random Access) zu ermöglichen, müssen Access Points im Stream bereitgestellt werden, auf die direkt zugegriffen werden kann. 4.2.2 Schneller Vorlauf/Rücklauf Auch gerade für abgespeicherte Streams ist es interressant einen schnellen Vorlauf oder schnellen Rücklauf zu ermöglichen. Dieser muss nicht die volle Qualität erreichen sondern wird meist einfach durch Anzeigen der AccessPoints(I-Bilder) realisiert. 4.2.3 Rückwärts abspielen Auch wenn das rückwärts Abspielen kein grundlegendes Feature für viele Applikationen ist, wurde im Standard die Möglichkeit festgelegt, um eine Implementation ohne immensen Speicheraufwand zu ermöglichen. 4.2.4 Synchronisation zwischen Video und Audio Eine allgemeingültige Forderung ist die Synchronisation zwischen dem Video und dem Audio Stream. Es muss also einen Mechanismus geben, der ständig die beiden Streams abgleicht und im Bedarfsfall nachsteuert. 4.2.5 Fehlerunanfälligkeit Gerade für die Übertragungstechniken ist die Fehlerunanfälligkeit sehr wichtig, so dass auch bei fehlerbehafteter Übertragung genügend Redundanz verfügbar ist um eine gleich bleibende Qualität zu erlauben. Sebastian Irle 10 Thema1: Compression Techniques 4.2.6 Flexibilität Der MPEG Standard sollte zum einen flexibel sein einerseits in Bezug auf die Bildgröße und die genutzte Bandbreite sein, um die verschiedenen Applikationen zu ermöglichen (eine Videotelefonie mit 1,5 MBits/s war im Jahr 1990 eher unrealistisch) andererseits aber auch in Bezug auf die eingesetzte Technologie. So wird im Standard nur das Format nicht aber die eigentliche Komprimierung festgelegt. 4.2.7 Echtzeitkomprimierung Für die synchronen Übertragungen ist eine Echtzeitkomprimierung erforderlich, um eine vernünftige Interaktion zwischen den Systemen zu ermöglichen. Dafür ist es widerrum wichtig, dass die Daten sequentiell verschlüsselt werden können, um nicht auf riesige Pufferspeicher zurückgreifen zu müssen. 4.3 Bestandteile Um, wie bereits angesprochen, die technologische Entwicklung nicht durch einen starren Standard zu bremsen, gibt es zwei wesentliche Komponenten. 4.3.1 Container Der Container (bzw. das Containerformat) legt fest, auf welche Art und Weise der Stream übermittelt wird (Bitstream). Das ist auch die grundlegende Funktion des MPEG Standards. Es wird festgelegt, dass der Stream mit einem Zwischenspeicher von annehmbarer Größe dekodiert werden kann. Darüberhinaus werden Testverfahren zur Sicherung der Verbindung beschrieben. Andere Beispiele für Videocontainerformate sind avi, DVD-Video, Quicktime oder RealMedia. 4.3.2 Codec Der andere Bestandteil des Videostreams ist der Codec (Codierer-Decodierer). Während für viele Formate der Codec und das Containerformat den gleichen Namen tragen, sind diese Komponenten dennoch zu unterscheiden. Für den MPEG Standard wurde kein Codec festgelegt; nur der Dekodierungsprozess wurde beschrieben. Daher existieren inzwischen eine ganze Reihe unterschiedlicher Codecs, die, für den Laien, die Verwendung des MPEG Standards erschweren. 4.4 Versionen 4.4.1 MPEG1 Der MPEG1 Standard ist von 1990 und legt eine Übertragungsrate von 1,5 Mbits/s fest. Die maximale Größe des Bildes ist auf 720x576 pixel festgelegt und die Bildrate wurde auf 30 Frames/s beschränkt. Die Video-CD ist im MPEG1 Format encodiert. Als Audio Formate sind verschiedene Layer definiert worden, wobei gerade der Layer 3 (besser bekannt als MP3), der vom Fraunhofer Institut entwickelt wurde, besondere Bekanntheit erreicht hat. 4.4.2 MPEG2 1994 wurde mit MPEG2 der MPEG Standard deutlich verbessert und verfeinert. Er ist vor allem auf höhere Videoqualitäten und somit auch höhere Bandbreiten (bis 15 MBits/s) ausgerichtet. Es wurde für die Fernsehübertragung entwickelt und besitzt daher auch die Fähigkeit für Interlace (Darstellung von Halbbildern). Bekannt geworden ist das MPEG2 Format vor allem durch DVDs die das MPEG2 Video Format einsetzen. Auch die DVB-Standards setzen MPEG2 ein. Thema1: Compression Techniques 11 Sebastian Irle 4.4.3 MPEG4 Die ursprüngliche Intention von MPEG4 war die Übertragung von Videosignalen über Schmalbandverbindungen (Handy, UMTS). Da dies vom Standard H.263 der ITU bereits abgedeckt wurde, konnte dieser fast vollständig übernommen werden und wurde lediglich um verschiedene Funktionalitäten auf Bildkomponenten erweitert. Die bekannteste Codec Implementation im MPEG4 Format ist DIVX. 4.5 Bewegungskompensation MPEG basiert technisch zum einen auf die block-based motion-compensation (Bewegungskompensation) und zum anderen auf die DCT, die schon beim JPEG Standard beschrieben wurde. Es besteht also nicht nur eine Abhängigkeit zwischen den Frequenzen benachbarter Bildpunkte, wie beim unbewegten Bild, sondern auch ganz bedeutende Abhängigkeiten zwischen den Einzelbildern, da sich oft nur Ausschnitte bewegen. 4.5.1 Typen von Bildern Für die Bewegungskompensation unterscheiden wir 4 Typen von Bildern: • I-Bilder: Das I Steht für Intrapicture. Es wird das komplette Bild abgespeichert ohne Abhängigkeiten zu den vorhergehenden oder nachfolgenden Bildern zu berechnen. Damit werden die I-Bilder als Access Points für den Sprung mitten in einen Stream benutzt. Werden nur I-Bilder kodiert, entspricht das dem MJPEG Verfahren. • P-Bilder: Das P steht für Predictive Pictures. Diese vorhergesagten Bilder werden auf Grundlage vorheriger Bilder erstellt. Sie dienen dennoch als Referenz für zukünftige Bilder. • B-Bilder: Die Bidirektionalen Bilder liefern die höchste Kompressionsrate, da sie aus den sowohl vorhergehenden als auch aus den nachfolgenden Bildern berechnet werden. Sie dienen daher nicht als Referenzpunkt für andere Bilder. Durch die Anordnung der verschieden Bildtypen ergeben sich unterschiedliche Qualitäten und Kompressionsraten. Eine relativ typische Anordnung ist die Platzierung von jeweils 3 B-Bildern zwischen einem I-Bild und einem P-Bild Abbildung 9: Anordnung der Bildtypen Sebastian Irle 12 Thema1: Compression Techniques 4.5.2 Vorhersage Für die Bewegungsvorhersage (Prediction) wird das Bild in 16x16 Blöcke eingeteilt. Es werden nur die Blöcke abgespeichert, die sich verändert haben. Es wird also davon ausgegangen, dass lokal das Bild aus den vorhergehenden Bildern heraus aufgebaut werden kann. Die Bewegungsinformation ist also grundlegend und wird zusätzlich zu den vorher gespeicherten Bildern benötigt. 4.5.3 Interpolation Die Interpolation ist ein weiteres sehr wichtiges Feature des MPEG Standards. Sie ermöglicht zum einen die Verbesserung des wahlfreien Zugriffs, zum anderen die Auswirkungen von Fehlern zu verringern. Das Videosignal wird aus einem vorhergehenden und einem nachfolgenden Bild durch Interpolation und anschließender Addition eines Korrekturterms wiederhergestellt. Die Auflösung liegt meist relativ niedrig (1/2 oder 1/3 der Frame Rate). Dieses Verfahren verursacht zwar zusätzlichen Aufwand, verbessert aber die Bildqualität erheblich. 4.6 Bewegungsestimation Die Bewegungsestimation geht einen etwas anderen Weg. Sie geht davon aus, dass die Bewegung von Objekten nicht nur eine Verschiebung, sondern auch eine Drehung beinhalten kann. Wenn die Kamera also langsam nach links schwingt, kann das gesamte Bild wieder verwendet werden, nur der Streifen am linken Rand muss neu abgespeichert werden. Dieses Verfahren wird allerdings schnell sehr aufwendig, da unter Umständen Hintergründe und Blickwinkel neu berechnet werden müssen. Es ist aber durchaus möglich, dass auch die Bewegungsestimation, gerade im Bereich der hohen Kompression für langsame Verbindungen noch eine große Rolle spielen wird. 4.7 DCT Die verschiedenen Bilder werden ähnlich dem JPEG Verfahren abgespeichert. Sie werden in 8x8 Pixel große Blöcke unterteilt, durchlaufen dann eine DCT Funktion, und werden anschließend durch eine Quantisierungsmatrix geteilt. Nach der Umorganisation (Zig-Zag-Sequence) werden sie mittels des Huffmanns Algorithmus Entropie-Codiert. Allerdings sind hier bei der Quantisierung unterschiedliche Matrizen für die I-Bilder und die P-Bilder bzw. B-Bilder anzuwenden. Auch die Art der Bilder kann sich im Laufe des Streams grundlegend ändern, so dass die Anwendung einer jeweils anderen Quantisierungstabellen pro Block ermöglicht werden muss. 5 Zusammenfassende Beurteilung Die beiden vorgestellten Standards JPEG und MPEG haben ihr Ziel in allen Punkten erreicht. Ihre Verbreitung hat in den entsprechenden Bereichen die Entwicklung, zum einen gefördert, zum anderen aber auch in Bahnen gelenkt, die die Kompatibilität verschiedener Anwendungen und Geräte ermöglichen. Insbesondere am MPEG Format wird deutlich, wie wichtig es ist, auch im Detail feste Standards zu vereinbaren. So ist es heute z.B. nicht möglich auf einen Blick zu sagen, ob ein MPEG File auf dem Rechner abgespielt werden kann, da mehrere verschiedene Codecs zu Grunde liegen können. Auf der anderen Seite sind Standards, die schon zum Zeitpunkt Ihrer Fertigstellung auf veraltete Technologie aufbauen, auch zum Scheitern verurteilt. Es bleibt also ein schmaler Grat zwischen engen Vorgaben, die die Kompatibilität sichern, und Freiheiten, die die Anpassung an den technische status quo ermöglichen. Thema1: Compression Techniques 13 Sebastian Irle 6 Quellen • http://de.wikipedia.org/wiki/JPEG • http://de.wikipedia.org/wiki/Diskrete_Kosinustransformation • http://de.wikipedia.org/wiki/MPEG • http://de.wikipedia.org/wiki/Containerformat • http://de.wikipedia.org/wiki/MPEG-1 • http://de.wikipedia.org/wiki/MPEG-2 • http://de.wikipedia.org/wiki/MPEG-4 • http://de.wikipedia.org/wiki/Motion_Compensation • Björn Eisert: „Was ist MPEG?“http://www.cybersite.de/german/service/Tutorial/mpeg/, 1995 • Sandra Bartl: „jpg“, http://goethe.ira.uka.de/seminare/redundanz/vortrag11/ , 1999 • Gregory K. Wallace: „The JPEG Still Image Compression Standard“, in: Communications of the ACM, April 1991 • Didler Le Gall: „MPEG: A Video Compression Standard for Multimedia Applications“, in: Innications of the ACM, April 1991 Seminar 1912 Multimedia-Datenbanken Indexing of Complex Data Peter Eggert Project Management Fernuniversität in Hagen Fachbereich Informatik Datenbanksysteme für neue Anwendungen Prof. Dr. R. H. Güting Sommersemester 2006 Seminar 1912 – Multimedia Datenbanken Thema: Indexing of Complex Data Name: Peter Eggert Matrikelnummer: 5871409 Adresse: Im Höllengrund 3, 69118 Heidelberg Telefon: 069/6601-3225 (beruflich); 06221/802066 (privat) eMail-Adresse: [email protected] Erstellt am: 15.03.2006 Ausarbeitung_Indexing of Complex Data_V 3.0_Revised_Final Druckdatum: 22.05.2006_19:06:36 Autor: Peter Eggert Stand: 08.05.2006 Seite 1 von 18 Seminar 1912 Multimedia-Datenbanken Thema: Indexing of Complex Data 1 1 Inhaltsverzeichnis 1 2 3 4 5 6 7 8 Inhaltsverzeichnis .......................................................................................................................1 Aufgabenstellung ........................................................................................................................2 Einleitung...................................................................................................................................2 3.1 Gegenstand der Ausarbeitung..............................................................................................2 3.2 Ansätze zur Indexierung mehrdimensionaler Daten...............................................................3 3.3 SAMs und der R-Baum ........................................................................................................3 Konzepte für Indexstrukturen in metrischen Räumen ....................................................................5 4.1 Prinzipien metrischer Indexierung und Metrische Bäume .......................................................5 4.1.1 Ball Zerlegung ............................................................................................................5 4.1.2 Verallgemeinerte Hyperflächen-Zerlegung ....................................................................6 4.1.3 Metrische Bäume ........................................................................................................6 4.2 Der M-Baum .......................................................................................................................7 4.2.1 Struktur des M-Baums.................................................................................................7 4.2.2 Aufbauen des M-Baums ..............................................................................................8 4.2.3 Algorithmen des M-Baums...........................................................................................9 4.2.4 Experimentelle Ergebnisse...........................................................................................9 Konzepte für Indexstrukturen in hoch-dimensionalen Vektorräumen ............................................ 10 5.1 Der TV-Baum ................................................................................................................... 10 5.1.1 Struktur des TV-Baums ............................................................................................. 10 5.1.2 Transformation des TV-Baums................................................................................... 11 5.1.3 Algorithmen des TV-Baums ....................................................................................... 11 5.1.4 Experimentelle Ergebnisse......................................................................................... 12 5.2 Der X-Baum ..................................................................................................................... 12 5.2.1 Struktur des X-Baums ............................................................................................... 13 5.2.2 Algorithmen des X-Baums ......................................................................................... 13 5.2.3 Bestimmung der Teilung zur minimimalen Überlappung .............................................. 14 5.2.4 Experimentelle Ergebnisse......................................................................................... 14 Stärken und Schwächen der vorgestellten Konzepte.................................................................... 15 Zusammenfassung.................................................................................................................... 15 Literaturverzeichnis................................................................................................................... 16 2 Seminar 1912 Multimedia-Datenbanken Thema: Indexing of Complex Data 2 Aufgabenstellung Aufgrund der Mehrdimensionalität von Multimedia-Daten können die Indexstrukturen von klassischen Datenbanksystemen (z.B. B-Bäume) nicht für Multimedia-Daten verwendet werden. Bei diesem Thema sollen zwei Ansätze diskutiert werden, mit denen es möglich ist, mehrdimensionale Daten zu indexieren. [Uhl91] beschreibt die grundsätzliche Idee von Indexstrukturen in metrischen Räumen. Eine Umsetzung dieser Idee findet sich in [CPZ97]. Im Gegensatz dazu behandeln [LJF94] und [BKK96] Indexstrukturen für hoch-dimensionale Vektorräume. Ziel dieses Themas soll es nicht sein, alle Papiere im Detail darzustellen, sondern vielmehr einen Überblick über die Konzepte, ihre Stärken und Schwächen zu geben. 3 Einleitung 3.1 Gegenstand der Ausarbeitung In vielen Anwendungen ist die Indexierung mehrdimensionaler Daten wichtig. Typische Anwendungsbereiche sind CAD, Bilddatenbanken, medizinische Datenbanken, DNA-Datenbanken, Zeitfolgen-Datenbanken (z.B. zur Untersuchung von Aktien-/Wechselkursschwankungen), Adressdatenbanken und Multimedia-Datenbanken. Gegenstand der Ausarbeitung ist die Untersuchung zwei grundsätzlicher Ansätze mit denen es möglich ist, mehrdimensionale Daten effizient zu indexieren und zu verwalten, d.h. Indexstrukturen in metrischen Räumen und Indexstrukturen in hoch-dimensionalen Vektorräumen. Zunächst werden Grund-Prinzipien zur Indexierung in metrischen Räumen, d.h. die Ball-Zerlegung (ball decomposition), die Verallgemeinerte Hyperflächen Zerlegung (Generalized Hyperplane Decomposition) und die metrischen Bäume sowie der R-Baum (Guttman1984) als Grundkonzept einer Vielzahl von weiterentwickelten Indexstrukturen eingeführt. Danach werden konkrete Konzepte, die im Prinzip alles Erweiterungen des R-Baum-Konzepts darstellen, d.h. der M-Baum (CPZ97) der TV-Baum (LJF94) der X-Baum (BKK96) zur Indexierung und Verwaltung mehrdimensionaler Daten vorgestellt. Schließlich werden die unterschiedlichen Konzepte im Hinblick auf Stärken und Schwächen gegenübergestellt und abschließend bewertet. Seminar 1912 Multimedia-Datenbanken Thema: Indexing of Complex Data 3.2 3 Ansätze zur Indexierung mehrdimensionaler Daten Generell sind zwei Ansätze zur Indexierung (indicare [lat.] – anzeigen) mehrdimensionaler Daten zu unterscheiden. Einerseits lassen sich die mehrdimensionalen Daten in metrischen Räumen abbilden, andererseits in hoch-dimensionalen Vektorräumen. Ein metrischer Raum ist formal gesehen ein Paar, M = (D, d), wobei D das Universum der Werte und d die Distanzfunktion ist. Für alle x, y, z ∈ D müssen die metrischen Axiome (Axiom [gr.] - Forderung; eine nicht beweisbare, aber einsichtige Aussage, aus der andere ableitbar sind) erfüllt werden, d.h. d(x, x) = 0 d(x, y) ≥ 0, d(x, y) = 0 ⇔ x = y (Positivität) d(x, y) = d (y, x) (Symmetrie) d(x,y) ≤ d(x,z) + d(z,y) (Dreiecksungleichung) Zur effizienten Indexierung von Objekten in metrischen Räumen nutzt man folgende Beobachtung: Echte Daten in hochdimensionalen Räumen stehen in enger Wechselwirkung zueinander und sind gruppiert, so dass die Daten nur Teile des hoch-dimensionalen Raumes belegen. Mehrdimensionale Daten werden in hoch-dimensionalen Vektorräumen mittels EigenschaftsVektoren der Objekte (Feature Vectors) abgebildet. Beispiele hierfür sind Farb-Histogramme, Formbeschreiber und Fourier Vektoren. [Vector [lat.] - Träger, Passagier, Seefahrer - Größe definiert durch 3 Zahlen -Vektorkomponenten - gedeutet als Koordinatendifferenzen, die jede gerichtete Strecke im Raum beschreiben). Dabei ergibt sich für multi-dimensionale Daten oftmals eine schlechte Performanz der Methoden in hochdimensionalen Räumen. Das Hauptproblem liegt darin, dass die Indexstrukturen für 2-3-dimensionale Probleme konstruiert und dann auf höher dimensionale Probleme übertragen wurden. Um dem "Fluch der hohen Dimensionen" in Vektorräumen zu begegnen, nutzt man die Beobachtung, dass in den meisten hochdimensionalen Datenmengen eine kleine Anzahl von Dimensionen die meisten Informationen beinhaltet. 3.3 SAMs und der R-Baum Grundsätzlich sind drei Klassen von Methoden -sogenannte SAMs – Spatial Access Method- zu unterscheiden, um auf Punkte bzw. Punktmengen im Raum zuzugreifen: Gridfiles Quadtrees R-Baum Idee des Gridfiles: Jeder Datensatz kann als Punkt in einem mehrdimensionalen Würfel verstanden werden, wobei die Anzahl der Dimensionen genau der Anzahl der einzelnen Attribute entspricht. Wenn sich die Attribute zweier Datensätze ähneln, dann liegen sie in diesem Modell räumlich nah beieinander. Um den Vorteil dieses Modells zu nutzen, wird der Datenraum, den man sich als mehrdimensionalen Würfel vorstellen kann, mit einem Gitter in mehrere konvexe Blöcke unterteilt. Dabei entstehen rechteckige Zellen bzw. Blöcke. Der Inhalt dieser Blöcke wird in sogenannten "buckets" gespeichert, die eine feste Größe haben. Ein Bucket enthält mindestens die Daten eines Blockes und kann, wenn der Speicherplatz ausreicht, noch die Datensätze von beliebig vielen anderen Blöcken speichern. Um den Zugriff zu den Buckets aus Performanzgründen vernünftig zu organisieren, muss eine Verbindung zwischen den Blöcken, in die der Würfel eingeteilt ist, und den zugehörgen Buckets organisiert werden. Diesem Zweck dient das Griddirectory. Das Griddirectory besteht aus zwei Komponenten: Den Skalen für die Einteilung der Wertemengen in den "grid blocks" und der directory matrix, in der Beziehungen zwischen der "grid blocks" zu den Buckets gespeichert sind. Diese Matrix enthält für jeden Block einen Eintrag, nämlich einen Zeiger auf den Bucket in dem die Datensätze des Blocks gespeichert sind. 4 Seminar 1912 Multimedia-Datenbanken Thema: Indexing of Complex Data Idee des Quadtrees: Ein zwei-dimensionaler Datenraum kann mit zwei senkrecht aufeinanderstehenden Linien in vier Bereiche aufgeteilt werden. (NW-NorthWest, NE, SE, SW). Die Aufteilung wird dann rekursiv erweitert. Erweiterungen des Quadtrees für drei und mehr Dimensionen existieren, haben sich aber nicht durchgesetzt. Der R-Baum (Guttman, 1984) ist das Grundmodell vieler R-Baum-Varianten und Weiterentwicklungen (z.B. X-Baum, TV-Baum und M-Baum) zur Verwaltung mehrdimensionaler Daten und zeichnet sich durch nachstehende Eigenschaften aus: Mit Ausnahme der Wurzel enthält jeder innere Knoten und jeder Blattknoten zwischen m und 2 m Einträgen für ein m ∈ |N. Für jeden Eintrag (I, Z) in einem inneren Knoten ist I die MBR (Minimum Bounding Region), die alle Rechtecke des durch Zeiger Z referenzierten Knotens enthält. Für jeden Eintrag (I, Z) in einem Blatt-Knoten ist I die MBR (Minimum Bounding Region) des durch Zeiger Z referenzierten geometrischen Objekts. Für alle Blätter ist die Länge des Pfades von der Wurzel gleich. Die Behälterregionen ergeben sich aufgrund der Reihenfolge und der Zuordnung beim Einfügen. Beim Überlauf des Blattknotens wird dieser geteilt, so dass möglichst gleichmäßig gefüllte Behälterregionen entstehen. Bei der exakten Suche ist der Suchpfad aufgrund der Überlappung nicht immer eindeutig. Mit Hilfe eines k-dimensionalen Suchintervalls S wird rekursiv nach Einträgen (I, Z) gesucht, für die I ∩ S ≠ ∅ ist. Rekursive bottom-up Aggregation von Objekten, die auf MBRs basieren. Regionen ergeben sich aufgrund der Reihenfolge und Zuordnung beim Einfügen und können überlappen. C A I F D E G Jede Region kann bis C Einträge enthalten, jedoch nicht weniger als c ≤ 0,5 * C (ausgenommen ist die Wurzel). H Alle Blätter haben gleichlange Pfade bis zu Wurzel. Bei der exakten Suche ist der Suchpfad aufgrund der Überlappung nicht immer eindeutig. B J A B C L A K D B E F G C H I J K L L D ........................................................... Zusammenfassend lässt sich für alle räumlichen Zugriffsmethoden -SAMs- feststellen, dass der Anwendungsbereich eingeschränkt wird, weil Objekte mittels Eigenschaftswerten im mehrdimensionalen Vektorraum repräsentiert werden, (Nicht-)Übereinstimmungen von Objekten auf der Distanz Funktion im metrischen Raum basieren, die keine Korrelation zwischen Eigenschaftsvariablen ermöglichen, Schlüsselvergleiche als triviale Operationen im Vergleich zu Festplatten-Seitenzugriffen eingeschätzt werden, was nicht generell für Multimedia Anwendungen gilt. Daher werden keine Anstrengungen unternommen, die Anzahl der Distanzberechnungen zu reduzieren. Ferner erweist sich im R-Baum insbesondere die Überlappung der Verzeichnis-Knoten (MBRs) als problematisch je höher die Dimensionalität ist. Praktisch gilt, dass ab der fünften Dimension ca. 90% der MBRs überlappen. (Dimension 2 = 40%, Dimension 3 = 60%, Dimension 4 = 80%). Seminar 1912 Multimedia-Datenbanken Thema: Indexing of Complex Data 5 4 Konzepte für Indexstrukturen in metrischen Räumen 4.1 Prinzipien metrischer Indexierung und Metrische Bäume In metrischen Räumen ergibt sich als praktisches Problem der Mehrdimensionalität, unterschiedliche Anfragen, d.h. die Bereichsanfrage, die Enthaltseinsanfrage, die Suche nach dem nächsten Nachbarn und die Punktsuche, effizient durchzuführen. Dabei gilt es zu berücksichtigen, dass Anfragen nicht immer konvexe (convexus [lat.] – gewölbt, gerundet, gebündelt) Suchregionen definieren. Allen effizienten Anfrage-Algorithmen in metrischen Räumen ist jedoch gemeinsam, dass die Untersuchung jedes Punkts einer Menge vermieden wird. Daher wurden insbesondere Datenstrukturen entwickelt, die eine schnelle Näherungssuche unterstützen. Eine präzise Bedeutung von Näherung variiert jedoch von Fall zu Fall. Fast alle Datenstrukturen, die eine schnelle Näherungssuche unterstützen, basieren auf dem Paradigma (Paradigma [gr.] – Beispiel, Erfahrungsmuster) der rekursiven Hyperflächenzerlegung. Nach diesem Paradigma wird eine Fläche oder ein Raum rekursiv in kleinere Teile zerlegt und in einer Baumstruktur organisiert (Bsp. k-d-Baum). Um diese rekursive Zerlegung einer metrischen Datenmenge P ⊆ U (Universum) in zwei Teilmengen P1 und P2 durchzuführen, können zwei Prinzipien benutzt werden, die Ball-Zerlegung (ball decomposition) und die Verallgemeinerte Hyperflächen Zerlegung (Generalized Hyperplane Decomposition) 4.1.1 Ball Zerlegung Mittels Ball-Zerlegung (ball decomposition) wird eine metrische Datenmenge P ⊆ U nachstehend zerlegt: Suche einen Aussichtspunkt v aus der Datenmenge P aus. p Ermittle zu allen Punkten die Entfernung zum rv Aussichtspunkt v r Bilde zwei Teilmengen P1 und P2, wobei v P1 = {p : d(p,v) ≤ rv} und P1 P2 = {p : d(p,v) > rv} Ist rv so gewählt, dass |P1| ≈ |P2| ≈ P/2, dann erhält man eine gleichmäßige Verteilung. Insbesondere bei Bereichssuche bringt diese Vorgehensweise entscheidende Vorteile, da P2 • P1 und P2 enthalten je 8 Elemente irrelevante Bereiche schnell abgeschnitten werden können. Die Ball-Zerlegung ist interessant, weil nichts anderes als paarweise Entfernungen bekannt sein müssen. Das Prinzip der Ball-Zerlegung wird z.B. bei Routing-Problemen benutzt, um die minimalen Kosten von einem Punkt zum anderen ermitteln zu können. 6 Seminar 1912 Multimedia-Datenbanken Thema: Indexing of Complex Data 4.1.2 Verallgemeinerte Hyperflächen-Zerlegung Die verallgemeinerte Hyperflächen-Zerlegung ähnelt im Aufbau der Ball-Zerlegung. p rv r v1 q v2 P1 Im Unterschied zur Ball-Zerlegung wird jedoch eine Menge P in zwei Teilmengen P1 und P2 geteilt, indem zwei Aussichtspunkte v1 und v2 ausgewählt werden, von denen aus die Entfernungen zu den einzelnen Elementen der Menge ermittelt werden. Das Element wird dann jeweils der Menge zugeordnet, zu dessen Aussichtspunkt das Element näher liegt. Daher gilt: P1 = {p : d(p, v1) ≤ d(p, v2) } und P2 = {p : d(p,v2) < d(p, v1)} P2 Der Algorithmus für Dynamisches Einfügen gemäß verallgemeinerter Hyperflächen-Zerlegung ist nachstehend definiert: Punkt p wird in Baum H eingefügt Ist Baum H leer • Erzeuge einen Knoten H mit Hx = p und Hy = nil , Hleft = nil, Hright = nil (Wobei Hx und Hy die Punkte sind, die die Teilung definieren) Ist Hy = nil dann gebe H zurück mit Hy = p Ist d(p,Hx) <= d(p,Hy) dann gebe H zurück mit Hlinks = Einfügen (Hlinks, p) Gebe H zurück mit Hlinks = Einfügen (Hright, p) Der Vorteil der verallgemeinerten Hyperflächen-Zerlegung gegenüber der Ball-Zerlegung liegt darin, dass diese weniger statisch ist. Als nachteilig erweist sich, dass es nicht generell möglich ist, eine Menge P in gleich große Mengen P1 und P2 aufzuteilen. 4.1.3 Metrische Bäume Metrische Bäume sind Indexstrukturen, die ausschließlich über die Nutzung des relativen Abstands von Objekten aufgebaut und verwaltet werden. Ein metrischer Baum B konstruiert sich durch die Menge S von n Objekten mittels O(n log n) Entfernungsberechnungen. Beispielsweise wird ein metrischer Baum durch das Prinzip der Ball-Zerlegung durch den nachstehenden Algorithmus aufgebaut: Wenn die Mächtigkeit der Menge S (von Punkten) = 0 Dann erzeuge einen leeren Baum Sonst Nimm ein zufälliges Objekt aus der Menge S. Suche eine mittlere Entfernung, so dass die Hälfte der Objekte innerhalb des metrischen Balls mit dem Radius m und der Rest außerhalb liegt. Wiederhole den Vorgang solange rekursiv bis alle Objekte zufällig aber balanciert im Baum eingeordnet sind. Metrische Bäume weiten das divide- and conquer-Paradigma für Suchprobleme auf metrische Räume aus. Sie sind wertvoll für Mustererkennung/Erinnerung und eine Vielzahl von Netzwerkoptimierungs-Anwendungen. Im Gegensatz zu SAMs wurde bei bekannten Arten von Metrischen Bäumen versucht, die Anzahl der Distanzberechnungen zu reduzieren. Metrische Bäume sind in der Regel effektiv, aber leiden an zu statischem Wesen. Seminar 1912 Multimedia-Datenbanken Thema: Indexing of Complex Data 7 Leistungsfähiges Laufzeitverhalten kann jedoch nicht garantiert werden. Im Worstcase der Ball-Zerlegung liegen alle Punkte auf der Oberfläche des Balls und die Anfrage verlangt nach genau den Punkten, die knapp innerhalb des Balls liegen. In diesem Falle wird dann sowohl die Anfrage-Region als auch die Komplement-Region durchsucht. 4.2 Der M-Baum Insbesondere in Multimedia-Datenbanksystemen, die auf einheitliches Handling von Audio-, Video-, Bild-, Text- und Numerischen Daten abzielen, spielen inhaltsbasierte Suchvorgänge eine dominierende Rolle. Daher ist insbesondere die schnelle und effiziente Näherungssuche ein der wichtigsten Anforderungen an die ideale Indexstruktur für Multimedia-Daten. Der M-Baum (LPZ97) ist eine seitenbezogene metrische und balancierte Sekundärspeicherstruktur für die Indexierung von Datenmengen im metrischen Raum. Der M-Baum wurde explizit für die Integration mit anderen Zugriffsmethoden in Datenbanken entworfen und wurde als alternative Zugriffsmethode zu den SAMs entwickelt. Als Indexstruktur dient der M-Baum insbesondere zum Finden ähnlicher DBObjekte. Daher wurden im Entwurf Prinzipien metrischer Bäume als auch Datenbank-Zugriffs-Methoden zur Optimierung der CPU- sowie der I/O-Kosten berücksichtigt. Zielstellung war es, dass der M-Baum - im Gegensatz zu SAMs - Dynamik als auch eine problemlose Skalierbarkeit bei wachsender Datenmenge gewährleistet. Die Grundidee des M-Baums liegt darin, die R-Baum-Prinzipien in metrischen Räumen ausschließlich mittels Distanzfunktionen zu realisieren. 4.2.1 Struktur des M-Baums Die Knoten des M-Baums beinhalten ein Routing Objekt, bestehend aus dem Eigenschaftswert des Routing Objekts, einen Objekt Zeiger auf die Wurzel des Teilbaums, den abgedeckten Radius des Objekts und den Abstand zum Vater. Die Blätter des M-Baums beinhalten Daten-Objekte, bestehend aus dem Datenbank-Objekt selbst, der Objekt-ID und dem Abstand zum Vater. A B C Q2 Q Q1 E B C D E F A F D 8 4.2.2 Seminar 1912 Multimedia-Datenbanken Thema: Indexing of Complex Data Aufbauen des M-Baums Der Aufbau-Algorithmus beinhaltet das Einfügen das Löschen den Überlauf eines Knotens den Unterlauf eines Knotens Beim Einfügen eines neuen Objekts steigt man den M-Baum rekursiv abwärts, um den bestpassenden Blatt-Knoten zu finden und ggf. zu teilen, wenn dieser voll ist. Best-passend ist das Blatt bzw. der Knoten, an dessen Pfad entlang keine Erweiterung des Radius erforderlich ist [D(Or, On) <= r(Or)]. Falls mehrere Knoten in Betracht kommen, wird der Teilbaum genommen, der am nächsten zum Objekt Q liegt. Falls kein passendes Routing-Objekt existiert, dann ist die Strategie, die Erweiterung des Radius möglichst gering zu halten. Die Bestimmung der Menge von Routing-Objekten, für die keine Radien-Erweiterung erforderlich ist, kann optimiert werden, indem Ergebnisse gesichert werden. Im Falle des Überlaufes eines Knotens wächst der M-Baum wie vergleichbare dynamisch balancierte Bäume, d.h. BOTTOM - UP. Das Einfügen eines neuen Knotens auf der Ebene von N wird durchgeführt indem die Einträge zwischen den Knoten geteilt werden und zwei Routing-Objekte zum Vaterknoten zur Referenzierung der beiden Knoten geschickt werden. Entgegen anderen metrischen Bäumen erlaubt der M-Baum die Durchführung unterschiedlicher SplitPolicies (Spezifische Beförderungs- und Teilungsmethoden). Der Bedeutung der Radieneinhaltung muss jedoch bei allen Split Policies gewährleistet werden. Die ideale Split-Politik ermöglicht, dass die beiden neu erhaltenen Regionen minimales Volumen und minimale Überlappung verursachen. Dies steigert die Effizienz durch Vermeidung indexierten "toten Raumes". Für die Verteilung der Einträge einer Menge N in zwei Teilmengen sind grundsätzlich zwei Alternativen zu unterscheiden: Verallgemeinerte Hyperflächen-Zerlegung - Bestimme für jedes Objekt aus N, ob es näher zu Mittelpunkt Vater1 oder Vater2 liegt und ordne entsprechend zu. Balancierte Zerlegung - Bestimme für die zu teilende Menge N jeweils abwechselnd den nächsten Nachbarn zum Mittelpunkt der Routing-Objekte Vater1 oder Vater2. Entferne jeweils den nächsten Nachbarn des Routing-Objekts Vater1 bzw. Vater2 aus der Menge N und ordne jeweils diesen der Teilmenge N1 (Vater1) bzw. N2 (Vater2) zu. Wiederhole dies solange bis die Menge N leer ist. Seminar 1912 Multimedia-Datenbanken Thema: Indexing of Complex Data 4.2.3 9 Algorithmen des M-Baums Bei der Durchführung von Ähnlichkeitsanfragen liegen alle Informationen bezüglich der Entfernungen vorgerechnet in den Knoten vor. Bei der Bereichssuche liegt der Vorteil des M-Baums im schnellen Abschneiden irrelevanter Teilbäume. Sei Op das Vater(Routing)Objekt von Or Kommen wir an den Eingang des Knotens Or, um zu entscheiden, ob dieser durchsucht werden muss, dann d(Op,Q) Op d(Or,Op) Or r(Or) Q r(Q) – wurde die Entfernung d(Op,Q) zwischen Anfragepunkt und Vater(Routing)Objekt bereits berechnet – kennen wir die Entfernung zwischen d(Or,Op) Durch die Dreieck-Ungleichheit gilt: d(Q,Or) ≥ |d(Op,Q) – d(Op,Qr)| Gilt weiterhin, dass |d(Op,Q) – d(Op,Qr)|> r(Or) - r(Q) Dann kann der irrelevante Teilbaum Or abgeschnitten werden. Bei der Suche nach k-Nächsten Nachbarn wird eine Verzweigungs- und Begrenzungstechnik, die dem des R-Baums ähnelt, eingesetzt. Genutzt werden zwei globale Strukturen Prioritäten-Schlange, die Zeiger auf aktive Teilbäume enthalten und ein k-elementiger Array, der am Ende das Ergebnis beinhaltet. 4.2.4 Experimentelle Ergebnisse Die Anfrageausführungen im M-Baum sind optimiert, um sowohl die Anzahl der Seitenzugriffe (I/OKosten) als auch die Anzahl der Entfernungsberechnungen (CPU-Kosten) zu minimieren. Experimentelle Ergebnisse bestätigen, dass die Balancierte Zerlegung zu einem erheblichen CPU Overhead und steigenden I/O-Kosten führt. So ist das Overhead-Volumen der Routing-Objekte einer balancierten Zerlegung um 4,6-mal höher als die der Verallgemeinerten Hyperflächen-Zerlegung. Steigt die Anzahl der Dimensionen für die Daten werden die I/O-Kosten vor allem durch reduzierte Seitenkapazität, die zu größeren Bäumen führen, erhöht. Experimentelle Ergebnisse zeigen, dass die Skalierbarkeit der Leistung des M-Baums mit wachsenden Datenmengen sowohl in Hinsicht auf I/O- als auch CPU-Kosten gegeben ist. Der Vergleich zwischen M-Baum und R*-Baum ergibt, dass der M-Baum sowohl beim Aufbau des Baumes (I/O-Kosten) als auch bei Bereichsabfragen schneller und effizienter als der R*-Baum ist. Insgesamt lässt sich zusammenfassen, dass der M-Baum die Vorteile von balancierten/dynamischen SAMs mit den Fähigkeiten metrischer Bäume kombiniert. Ferner ermöglicht der M-Baum eine anwendungsspezifische Justierung zur Effizienzsteigerung je nach Split-Policy, da eine klare Trennung zwischen CPUund I/O-Kosten gegeben ist. 10 Seminar 1912 Multimedia-Datenbanken Thema: Indexing of Complex Data 5 Konzepte für Indexstrukturen in hoch-dimensionalen Vektorräumen Der TV-Baum 5.1 Der Telescopic Vector-Baum (LJF94) ist ein seitenorientierter balancierter Baum, der zur Indexierung hoch-dimensionaler Daten. Verweise auf die Daten finden sich nur in den Blattknoten. Die Bezeichnung des TV-Baums resultiert aus der Ähnlichkeit seines Verhaltens zu einem Teleskop, das dynamisch zusammen- bzw. ausgezogen wird. Zielstellung beim Entwurf des TV-Baums war es, das Dimensionsproblem der SAMs zu lösen, d.h. die mit den Dimensionen exponentiell anwachsenden Zeit- und Speichplatzressourcen für Anfragen - bis hin zum sequentiellen Scan - zu vermeiden. So degeneriert beispielsweise der R-Baum und seine Varianten zu einer verketteten Liste, wenn ein einzelner Vektor mehr Platz als eine Datenseite fassen kann enthält. Die Grundidee des TV-Baumes ist es, sowenig Dimensionen wie möglich zu verwenden, um zwischen den Objekten unterscheiden zu können. Im TV-Baum wird eine variable Anzahl von Dimensionen für die Indexierung genutzt, in Abhängigkeit davon, wie viele Objekte indexiert werden müssen und auf welcher Ebene des Baumes man ist. Folglich haben die Knoten nah zur Wurzel einige wenige Dimensionen. Je weiter man "absteigt", desto mehr Dimensionen werden gebraucht. Der TV-Baum dehnt sich aus, wenn neue aktive Dimensionen eingeführt werden, was bei der Teilung oder dem Wiedereinfügen erfolgt. Er zieht sich zusammen, wenn Objekte eingefügt werden. Mit anderen Worten hat der TV-Baum die Fähigkeit Dimensionen dynamisch anzupassen, um zwischen zwei Objekten zu unterscheiden. Die Eigenschaftsvektoren werden also dynamisch zusammengezogen und ausgedehnt. 5.1.1 Struktur des TV-Baums Der TV-Baum organisiert wie jeder andere Baum die Daten in einer hierarchischen Struktur bestehend aus Knoten und Blättern. Jeder Knoten eines TV-Baum der Ordnung k hat zwischen k/2 und k Söhne oder Verweise auf die Daten und repräsentiert eine Minimum Bounding Region. Die MBR eines TV-Baumes werden mit TMBR bezeichnet. Die TMBRs (Telescopic Minimum Bounding Region) sowie deren Beschreibung befinden sich im Vaterknoten und sind als Kugeln realisiert, da nur Mittelpunkt und Radius bekannt sein müssen. H S4 G F SS2 S3 E C SS1 S2 A D S1 B SS1 S1 A B SS2 S3 E S2 F C D S4 G H Die Felder eines Knotens in einem TV-Baum der Dimension N sind: k Felder für Verweise auf eventuelle Sohnknoten Zentrum ist der Punkt, den der Knoten im Ndimensionalen Raum darstellt Radius ist ein Wert, der die maximale Entfernung zwischen Zentrum und einem Punkt im beschriebenen Suchraum bezeichnet. Aktive Dimensionen bezeichnet die Anzahl der aktiven Dimensionen, die von diesem Knoten unterstützt werden (Aktive Dimensionen ≤ N) Im Unterschied zu Bäumen mit fester Ordnung hat der TV-Baum eine größere Ausdehnung in der höchsten Ebene und ist damit kompakter und seichter. Er spart gegenüber Bäumen mit fester Ordnung Platz. Je mehr Objekte eingefügt werden, desto mehr Eigenschaften werden zur Unterscheidung erforderlich. Seminar 1912 Multimedia-Datenbanken Thema: Indexing of Complex Data 11 Die Anzahl der aktiven Dimensionen eines TV-Baums entspricht der Anzahl der aktiven Dimensionen, die alle ihrer TMBRs haben (TV-1 bedeutet eine aktive Dimension; TV-2 bedeutet zwei aktive Dimensionen). Die Struktur des TV-Baums ähnelt der des R-Baums. Jeder Knoten enthält eine Menge von Verzweigungen. Jede Verzweigung wird durch eine TMBR repräsentiert, wobei TMBRs überlappen dürfen. Jeder Knoten belegt exakt eine Speicherseite. Auf jeder Stufe ist die Anzahl der aktiven Dimensionen einheitlich. Manchmal benutzt mehr als eine Ebene dieselbe Anzahl aktiver Dimensionen. 5.1.2 Transformation des TV-Baums In den meisten Anwendungen ist es angemessen, den gegebenen Eigenschaftsvektor zu verändern, um eine gute Aufteilung zu erreichen. So werden mittels der K-L Transformation (Karhunen Loeve) z.B. für den 2-D-Raum zwei zusätzliche Vektoren zur Unterscheidung ermittelt, mit denen erreicht wird, dass die Eigenschaften nach Wichtigkeit geordnet sind. Die K-L Transformation ist gut für statische Datenmengen, die im Vorfeld bekannt sind. Die DCT (Discrete Cosine Transformation) andererseits eignet sich für dynamische Datenmengen und ist eine exzellente Wahl, wenn Grundzüge stark korrelieren (in Wechselbeziehung stehen). Dies gilt z.B. für 2-D-Bilder mit engen Bildpunkten mit sehr ähnlicher Farbe. Da eine passende Transformation orthogonal zum TV-Baum verläuft, beschleunigt diese das Auffinden von Objekten. 5.1.3 Algorithmen des TV-Baums Die Suche beginnt an der Wurzel im TV-Baum und jeder Zweig, der die Suchregion schneidet, wird untersucht, indem man rekursiv den Zweigen folgt. Der Algorithmus arbeitet wie folgt: Ausgehend von einem Suchpunkt untersuche die Zweige auf oberster Ebene und errechne obere und untere Grenzen für die Entfernungen. Steige den erfolgversprechendsten Zweig herunter und vernachlässige alle Zweige, die zu weit weg sind. Der rekursive Algorithmus, der das Abschneiden zu weit von der Suchregion entfernter Teilbäume nutzt, kann wie beim M-Baum eingesetzt werden. Das Einfügen eines neuen Objekts erfolgt ähnlich der Suche, d.h. man sucht rekursiv jeweils die passensten Zweige aus bis man auf dem Blatt angekommen ist. Entscheidend im Einfüge-Algorithmus ist, den erfolgversprechensten Zweig auszuwählen. Daher werden insgesamt vier Kriterien in absteigender Prioritätenreihenfolge überprüft: Minimale Überlappung - Wähle die TMBR so aus, dass nach dem Einfügen die Anzahl der neuen überlappenden Paare minimal ist. Minimale Verkleinerung der Dimensionalität - Wähle die TMBR so aus, dass für das neue Objekt, so viele Koordinaten wie möglich übereinstimmen Minimale Erweiterung des Radius Minimale Entfernung vom Zentrum des TMBR zum Einfügepunkt Ziel der Teilung (Splitting) im Fall des Überlaufs ist es, die Menge der TMBRs so neu zu verteilen, dass künftige Operationen vereinfacht und eine hohe Speichernutzung sichergestellt werden. Es existieren einige Teilungs-Algorithmen, wie z.B. Teilung durch Gruppierung und durch Sortierung, die hier nicht näher behandelt werden. Bevor jedoch eine Teilung durchgeführt wird, kann beim erstmaligen Überlauf ein nochmaliges Einfügen der Objekte des Blattes ggf. den Split verhindern. Lässt sich die Teilung nicht vermeiden, werden nach Einfügen, Teilung und Wiedereinfügen der Objekte die TMBRs entlang des Pfades aktualisiert. 12 Seminar 1912 Multimedia-Datenbanken Thema: Indexing of Complex Data Das Löschen erfolgt unkompliziert auch im Falle eines Unterlaufes. Die verbliebenen Zweige der Knoten werden gelöscht und neu eingefügt. 5.1.4 Experimentelle Ergebnisse Experimentelle Ergebnisse zeigen, dass die beste Anzahl aktiver Dimensionen in Hinblick auf I/O- und CPU-Kosten zwei ist. Insbesondere mit wachsender Datenmenge ist der TV-Baum gegenüber dem R*-Baum wesentlich effektiver. So zeigt sich der TV-Baum im Vergleich zum R*-Baum überlegen, sowohl für den Indexaufbau - Anzahl Plattenzugriffe (Read+Write) als auch für die Durchführung der Suchoperationen - knapp 70% weniger Seitenzugriffe für Punktsuche und knapp 40% weniger Seitenzugriffe für Bereichssuche. Schließlich hat der TV-Baum ca. 15-20% weniger Knoten als ein vergleichbarer R*-Baum und benötigt entsprechend weniger Speicherplatz. 5.2 Der X-Baum Der eXtended-Baum (BKK96) –nachstehend X-Baum- (extend [engl.] - ausbauen, ausstrecken, erweitern) ist eine Methode zur Indexierung großer Mengen von Punkt- und Raum-Daten. Der X-Baum ist eine Weiterentwicklung des R-Baums. Die Zielstellung beim Entwurf des X-Baums war es, im Unterschied zum R-Baum die problematische Überlappung von Behälterregionen (MBRs) zu vermeiden. Die Grundidee des X-Baums besteht darin, das Verzeichnis so hierarchisch wie möglich zu halten und zeitgleich zu vermeiden, dass durch Teilungen die Verzeichnisse stark überlappen. Dies wird durch das Konzept der Superknoten erreicht. Der X-Baum kann als Hybrid (hybrid [lat.] – von zweierlei Herkunft) gesehen werden, nämlich abgeleitet von der Linearen Reihe in den Knoten, insbesondere in den Superknoten und dem R-Baum-Verzeichnis bezogen auf die Hierarchie der Einträge. So wird das Überlappen der Behälterregionen (MBRs) in den Inhaltsverzeichnissen dadurch vermieden, dass Trennungen (Splits) nicht durchgeführt werden, die eine große Überlappung nach sich ziehen. Vielmehr werden die Verzeichnis-Knoten zu Superknoten, die größer als übliche Blöcke (Seiten) sind. Als problematisch bei dem Ansatz des X-Baums kann sich erweisen, dass die Super-Verzeichnisknoten sehr groß werden und dies eine lineare Suche bei Punkt- bzw. Bereichsanfragen verursachen könnte. Offensichtlich ist, dass die Reduktion der Dimensionalität zur Reduktion der problematischen Überlappung der Behälterregionen (MBRs) wichtig ist. So verschlechtert sich der R*-Baum zunehmend mit jeder weiteren Dimension. Beispielsweise überlappen im R*-Baum ab Dimensionalität 5 mehr als 90 % der Behälterregionen. Seminar 1912 Multimedia-Datenbanken Thema: Indexing of Complex Data 5.2.1 13 Struktur des X-Baums Normale Verzeichnisknoten Superknoten DatenKnoten Superknoten sollen Aufteilungen(Splits) vermeiden, die eine ineffiziente Verzeichnisstruktur verursachen Mit wachsender Dimensionalität wächst die Anzahl und Größe der Superknoten Die Höhe des X-Baums korrespondiert mit der Anzahl der erforderlichen Seitenzugriffe und fällt mit wachsender Dimensionalität Um mehrere Seitenzugriffe bei Besuch eines Knotens zu vermeiden, sollten Superknoten im Hauptspeicher gehalten werden. Zwei interessante Sonderfälle können sich in der Struktur eines X-Baums ergeben: Fall 1: Es gibt keinen Superknoten – Dann entspricht der X-Baum weitestgehend dem R-Baum. Fall 2: Die Wurzel selbst ist das Directory und ist ein großer Superknoten – Dann entspricht der XBaum einer linearen Liste. 5.2.2 Algorithmen des X-Baums Der wichtigste Algorithmus des X-Baums ist das Einfügen eines neuen Objekts. Dieser wird nachstehend beschrieben: Bestimme rekursiv zuerst die MBR, in die eingefügt wird. Ist keine Aufteilung erforderlich, aktualisiere lediglich die Größe der MBR. Ist eine Teilung des Subknotens erforderlich, muss eine zusätzliche MBR im laufenden Knoten hinzugefügt werden, was einen Überlauf nach sich ziehen kann. Bei Überlauf ruft der aktuelle Knoten den Split-Algorithmus auf. Ist die Überlappung der neuen MBRs zu groß wird ein minimaler Überlappingssplit anhand der Split History gesucht. Ist die Anzahl von MBRs in einer Partition unterhalb einer gegebenen Schwelle, endet der SplitAlgorithmus ohne eine Trennung zu verursachen. Es entsteht ein neuer Superknoten mit doppelter Blockgröße bzw. ein bestehender Superknoten wird um einen Block erweitert, um die Schrumpfung des Baums und schlechte Speicherplatznutzung zu vermeiden. Die Such-Anfrage-Algorithmen, d.h. Point- und Range-Queries und die Suche nach dem Nächsten Nachbarn, ähneln denen des R*-Baums. Auch die Lösch- und Update-Funktionen sind ebenfalls einfache Modifikationen der R*-Baum Algorithmen. 14 Seminar 1912 Multimedia-Datenbanken Thema: Indexing of Complex Data 5.2.3 Bestimmung der Teilung zur minimimalen Überlappung Zur Bestimmung der besten Teilung eines Verzeichnisknotens mit minimaler Überlappung ist es erforderlich, die Überlappung der beiden Hyperrechtecke (MBRs) so gering wie möglich zu halten. Die Teilung ist überlappungs-minimal, wenn ||MBR(S1) ∩ MBR(S2)|| minimal ist. überlappungsfrei, wenn ||MBR(S1) ∩ MBR(S2)|| = ∅. balanciert, wenn -ε ≤ |S1| - |S2|≤ ε. Für die Teilung von MBRs gelten zwei Hilfssätze: Lemma1: Für gleichmäßig verteilte Punktdaten ist ein überlappungsfreier Split nur möglich, wenn alle MBRs in einer Dimension vorher geteilt wurden. Generell gilt, dass die Dimension, in der alle MBRs geteilt werden, die Achse ist, die zur Teilung des Wurzelknotens eingesetzt wird. Um eine überlappungsfreie Teilung zu ermöglichen, muss man daher in der Teilungshistorie nachsehen, in welcher Dimension alle MBRs geteilt wurden. Zu beachten ist hierbei, dass eine Chance auf mehr als eine Splitdimension realistisch nur vorhanden ist, wenn die Dimensionalität der Datenmenge kleiner als 4 ist. Lemma 2: Für Punkt Daten existiert immer ein überlappungsfreie Teilungsmöglichkeit. Insgesamt lässt sich zusammenfassen, dass die Chance die richtige Splitachse zufällig auszuwählen sehr gering ist. Daher ist die Historisierung der Teilungen in den Verzeichnisknoten sinnvoll. Dies umso mehr, da der Speicherplatz zur Historisierung der Teilungen nur wenige Bits erfordert. 5.2.4 Experimentelle Ergebnisse Im Vergleich zum R*-Baum wächst der Vorteil des X-Baums enorm mit wachsender Anzahl von Dimensionen. So sind deutlich weniger Seitenzugriffe erforderlich und die CPU-Kosten sind wesentlich geringer. Experimentelle Ergebnisse zur Dimensionalität belegen, dass ein Beschleunigungsfaktor von 2 gegenüber dem R*-Baum ab 8 Dimensionen und ein Beschleunigungsfaktor von 8 gegenüber dem R*-Baum ab 16 Dimensionen realistisch ist. Bei großen Datenmengen mit Dimensionalität größer 2 ist der X-Baum bis zu 450-mal schneller als der R*-Baum und 4 bis 12-mal schneller als der TV-Baum. Seminar 1912 Multimedia-Datenbanken Thema: Indexing of Complex Data 15 6 Stärken und Schwächen der vorgestellten Konzepte Unglücklicherweise ist durch das Fehlen eines klar definierten und allgemein akzeptierten "Benchmarks" ein qualifizierender bzw. quantifizierender Vergleich zwischen den drei vorgestellten Konzepten nicht möglich. Die Stärke des M-Baum liegt darin, dass es sich um eine dynamische, seitenbezogene und balancierte Indexstruktur handelt, die ausschließlich über Distanzfunktion strukturiert wird. Durch das schnelle Abschneiden zu weit entfernt liegender Regionen können schnell irrelevante Suchbereiche verlassen werden. Die Schwäche des M-Baums liegt in der Überlappung der Regionen sowie den aufwändigen Distanzberechnungen im Fall eines Splits (Overflow) bzw. Merge (Underflows). Die dynamische Veränderungsmöglichkeit der aktiven Dimensionen im TV-Baum erweist sich als Vorteil. Das Prinzip "Je tiefer man den Baum herabsteigt, desto mehr Dimensionen sind erforderlich" ermöglicht im Gegensatz zu Bäumen mit fester Ordnung Speicherplatz einzusparen. So werden ca. 1520% weniger Knoten erforderlich, da in höchster Ebene eine größere Ausdehnung erreicht und somit der Baum seichter als vergleichbare Baumstrukturen wird. Darüber hinaus zeigt der TV-Baum insbesondere bei der Punkt- und Bereichssuche deutliche Performanzvorteile gegenüber dem vergleichbaren R*-Baum. Nachteilig ist wie beim M-Baum die Überlappung der Regionen. Darüber hinaus können sich im Fall nur einer aktiven Dimension sehr große Suchregionen ergeben. Die Stärke des X-Baums liegt insbesondere darin, dass durch "Superknoten" die Überlappung von Behälteregionen weitestgehend vermieden wird. Dies führt bei großen Datenmengen mit Dimensionalität größer zwei in der Regel zu deutlichen Performanzvorteilen gegenüber vergleichbaren Indexstrukturen (z.B. R*-Baum, TV-Baum). Der Vorteil der Nichtüberlappung durch Superknoten ist zeitgleich die Schwäche des X-Baums, da mit wachsender Anzahl von Dimensionen nicht auszuschließen ist, dass der Wurzelknoten selbst zu einem einzigen Superknoten degeneriert. Somit wird im schlechtesten Fall der X-Baum zu einer linearen Liste. 7 Zusammenfassung Alle drei vorgestellten Konzepte (M-Baum, TV-Baum, X-Baum) zur Beherrschung des "Fluchs der hohen Dimensionen" stellen Erweiterungen des R-Baums (Guttman, 1984) dar. Wenn gleich alle Konzepte im Hinblick auf CPU- und I/O-Kosten mit wachsender Dimensionalität der Daten deutliche Verbesserungen zum R-Baum-Konzept ermöglichen, ist die ideale Indexstruktur für dieses Problem noch lange nicht gefunden worden. Vielmehr ist die grundlegende Tatsache zu akzeptieren, dass egal wie clever die Indexstruktur zur Lösung des "Fluchs der hohen Dimensionen" entworfen ist, ein sequentieller Suchlauf in schlechten Konstellationen nicht zu vermeiden ist. 16 Seminar 1912 Multimedia-Datenbanken Thema: Indexing of Complex Data 8 Literaturverzeichnis [Uhl91] Uhlmann, Jeffrey K.: Satisfying general proximity/similarity queries with metric trees; 1991 [CPZ97] Ciaccia, Patella, Zezula: M-tree: An Efficient Access Method for Similarity Search in Metric Spaces; 1997 [LJF94] Lin Jagadish, Faloutsos: The TV-tree – an index structure for high dimensional data; 1994 [BKK96] Berchtold, Keim, Kriegel: The X-tree: An Index Structure for High-Dimensional Data; 1996 [Guttman 1984] Guttman, A., "R-trees: A Dynamic Index Structure for Spatial Searching," In Proc. Int'l Conf. on Management of Data, ACM SIGMOD, Boston, Massachusetts, pp. 47-57, June 1984. FernUniversität in Hagen Fakultät für Mathematik und Informatik Praktische Informatik IV – Datenbanksysteme für neue Anwendungen Seminar 1912: Multimedia-Datenbanken Thema 3: Text Retrieval I SS 2006 von Maik Devrient Thema 3: Text Retrieval 1 Maik Devrient Seite 1 Inhaltsverzeichnis 1. Einleitung....................................................................................................... 2 2. Zeichensuche in Texten ................................................................................ 2 2.1. Naiver Ansatz................................................................................................... 2 2.1.1. 2.1.2. 2.2. Verfahren............................................................................................................ 2 Laufzeit............................................................................................................... 3 Verfahren von Boyer und Moore ..................................................................... 3 2.2.1. 2.2.2. 2.2.3. 2.2.4. Verfahren............................................................................................................ 3 Berechnung der Tabellen delta1 und delta2 ........................................................ 5 Beispiel............................................................................................................... 5 Laufzeit............................................................................................................... 6 3. Komprimierung von Texten ........................................................................ 7 3.1. Lempel-Ziv 77.................................................................................................. 7 3.1.1. 3.1.2. 3.1.3. 3.2. Verfahren............................................................................................................ 7 Beispiel............................................................................................................... 8 Aufwand ........................................................................................................... 10 Lempel-Ziv 78................................................................................................ 10 3.2.1. 3.2.2. 3.2.3. Verfahren.......................................................................................................... 10 Beispiel............................................................................................................. 11 Aufwand ........................................................................................................... 13 4. Zeichensuche in komprimierten Texten ................................................... 13 4.1. Der Algorithmus von Navarro und Tarhio..................................................... 14 4.1.1. 4.1.2. 4.1.3. Verfahren.......................................................................................................... 14 Beispiel............................................................................................................. 14 Aufwand ........................................................................................................... 16 5. Literaturverzeichnis ................................................................................... 17 Thema 3: Text Retrieval 1 Maik Devrient Seite 2 1. Einleitung Die folgende Ausarbeitung beschäftigt sich zunächst mit der Problematik des Auffindens bestimmter Zeichen in einem gegebenen Text. Dabei wird ausgehend von einem naiven Ansatz ein verbessertes Verfahren von Boyer und Moore vorgestellt und mit dem naiven Ansatz verglichen. Anschließend wird der Aspekt der Komprimierung von Texten betrachtet und dabei näher auf das Verfahren von Lempel und Ziv eingegangen. Den Abschluss dieser Arbeit bildet schließlich ein Verfahren, dass diese beiden Techniken verbindet und damit in der Lage ist, direkt in komprimierten Texten zu suchen. 2. Zeichensuche in Texten Die Suche nach bestimmten Zeichenketten (String-Matching) in einem vorgegebenen Text ist ein grundlegendes Problem beim Arbeiten mit und beim Bearbeiten von Texten. Praktische Bedeutung bekommt dieses Problem beispielsweise dann, wenn innerhalb einer Datenbank nach bestimmten Begriffen gesucht wird. Aufgrund der Größe vieler Datenbanksysteme die heutzutage viele Millionen Datensätze verwalten müssen, kommt dem Aspekt der Laufzeit eines solchen Verfahrens eine immense Bedeutung zu. Nachdem ein naiver Ansatz für die Suche in Texten vorgestellt wurde, soll deshalb anschließend auf ein Verfahren eingegangen werden, welches im best-case weitaus effizienter ist. 2.1. Naiver Ansatz 2.1.1. Verfahren Gegeben seien ein Text T und ein Muster M. Ziel eines String-Matching Verfahrens ist es nun das erste Vorkommen von M in T zu finden. Ein naiver Ansatz wäre nun beispielsweise das Muster unter den Text zu legen und die jeweils untereinander stehenden Zeichen zu vergleichen. Die folgende Grafik verdeutlicht die Situation: Text T a a b Muster M a ↑ Index b c a c b a Stimmt ein Zeichen des Musters mit dem korrespondierenden Zeichen des Textes überein, wird im Muster und im Text um jeweils ein Zeichen weitergegangen, d.h. der Index wird um eins erhöht. Sobald ein Zeichen in Text und Muster nicht mehr übereinstimmt, kann das Muster um 1 Position verschoben werden. Dieses Verfahren wird wiederholt, bis eine vollständige Übereinstimmung zwischen Text und Muster gefunden wurde oder das rechte Ende des Musters bis an das rechte Ende des Textes verschoben wurde. Thema 3: Text Retrieval 1 Maik Devrient Seite 3 2.1.2. Laufzeit Die Komplexität dieses Verfahrens bestimmt sich durch die Anzahl der nötigen Vergleiche um ein Muster zu finden bzw. festzustellen, dass das Muster nicht im Text enthalten ist. Der worst-case ergibt sich, wenn lange Präfixe des Musters oft im Text enthalten sind. Dabei müssen stets viele Vergleiche zwischen Text und Muster durchgeführt werden, bevor eine Abweichung festgestellt wird. Formal beschrieben müssen in diesem Fall i * Länge(M) Vergleiche durchgeführt werden. Die Funktion Länge gibt dabei die Anzahl der Zeichen des Musters an, während i die Anfangsposition des gefundenen Musters im Text bezeichnet. Im Gegensatz zur quadratischen Laufzeit im worst-case, hängt die Laufzeit für den average-case entscheidend von der Art des Textes ab, da beispielsweise in einem natürlich sprachlichen Text nur selten lange Präfixe wiederholt auftreten. 2.2. Verfahren von Boyer und Moore Der Hauptnachteil des naiven Verfahrens besteht darin, dass die Informationen, die während des Vergleichens von Text und Muster gewonnen werden, nicht berücksichtigt werden, sobald das Muster um eine Position verschoben wird. Der Ansatz von Boyer und Moore besteht nun darin die Informationen die beim Vergleichen anfallen zu verwenden, um ein Muster bei einer Nichtübereinstimmung von Text und Muster um möglichst viele Stellen zu verschieben. 2.2.1. Verfahren Ebenso wie beim naiven Verfahren, legt der Boyer-Moore Algorithmus zunächst das Muster unter den Text an. Der wesentliche Unterschied ist dabei jedoch, dass nun nicht mehr die ersten Zeichen von Text und Muster verglichen werden, sondern die letzten. Die grafische Darstellung ändert sich also wie folgt: Text T a a b Muster M a b c ↑ Index a c b a Beim Vergleich dieses Zeichens können nun nach Boyer-Moore folgende Situationen auftreten: Fall 1: das verglichene Zeichen aus dem Text kommt im Muster nicht vor Falls das aktuell verglichene Element des Textes im Muster überhaupt nicht vorkommt, kann das Muster um seine komplette Länge am Text verschoben werden, da es aufgrund des nicht vorhandenen Zeichens in diesem Teil des Textes keine Übereinstimmung mit dem Muster geben kann. Die folgende Darstellung beschreibt diesen Fall: Thema 3: Text Retrieval 1 Maik Devrient Text T a a d Seite 4 a c b a Muster M a b c Verschiebung: a b c ↑ Index Fall 2: das verglichene Zeichen aus dem Text kommt im Muster vor Falls das aktuell verglichene Element des Textes im Muster vorkommt, kann das Muster verschoben werden, bis das rechteste Vorkommen dieses Zeichens im Muster unter der aktuell betrachteten Textposition liegt. Das rechteste Vorkommen jedes Zeichens im Muster wird dabei zu Beginn des Algorithmus berechnet und in der Tabelle delta1 gespeichert. Auf die Berechnung dieser Tabelle wird in einem späteren Abschnitt eingegangen. Text T a a a b c b Muster M a b c Verschiebung: a b c ↑ Index a Fall 3: nachdem mehrere Zeichen übereingestimmt haben, trifft das Verfahren auf eine Position die nicht übereinstimmt Die folgende Darstellung verdeutlicht die Situation: Text T a Muster M a a a b b a ↑ Index b c b a Eine Möglichkeit wäre nun analog zu Fall 2 das Muster anhand der Informationen in Tabelle delta1 zu verschieben. Da in dieser Tabelle aber nur die Position des letzten Vorkommens eines Zeichens gespeichert ist, müsste im obigen Fall das Muster wieder nach links verschoben werden. Um diese unnötigen Linksverschiebungen zu verhindern, wird nur dann auf die Informationen in delta1 zurückgegriffen, wenn der Index sich rechts von der Position des letzten Vorkommens befindet. Anderenfalls wird das Muster um 1 Zeichen nach rechts verschoben. Die eben vorgestellte Strategie wird „bad character rule“ bezeichnet. Alternativ dazu wird von Boyer und Moore auch eine „good suffix rule“ vorgestellt. Diese betrachtet nicht das Zeichen das zu einer nicht Übereinstimmung geführt hat, sondern das Teilmuster das bisher mit dem Text übereingestimmt hat. Sollte dieses Teilmuster noch einmal im Muster auftreten, kann das Muster bis an diese Stelle verschoben werden. Ein Spezialfall ergibt sich, wenn das Ende des Submusters und der Anfang des eigentlichen Musters übereinstimmen. Die Anzahl der möglichen Verschiebungen für die Position im Muster bei der die Nichtübereinstimmung auftrat wird in einer Tabelle delta2 gespeichert und ebenso wie die Tabelle delta1 vor Beginn des eigentlichen Algorithmus berechnet. Thema 3: Text Retrieval 1 Maik Devrient Seite 5 Wann immer der Algorithmus also in eine Situation analog zu Fall 3 kommt, kann anhand des Maximums aus delta1 und delta2 die größtmögliche Verschiebung ermittelt werden. 2.2.2. Berechnung der Tabellen delta1 und delta2 Delta1 Die Tabelle enthält einen Eintrag für jedes im Text vorkommende Zeichen. Initialisiert werden die Werte dieses Arrays mit der Länge des Suchmusters, da falls ein Zeichen des Textes nicht im Muster enthalten ist das Muster um seine gesamte Länge verschoben werden kann. Anschließend wird das Muster von links nach rechts durchlaufen und der Index des aktuellen Zeichens im entsprechenden Eintrag der Tabelle delta1 aktualisiert, so dass am Ende die rechteste Position jedes Zeichens des Musters in der Tabelle delta1 enthalten ist. Delta2 Die Tabelle enthält für jede Position j des Musters die Anzahl der möglichen Verschiebungen anhand des Submusters rechts von j. Gesucht wird dabei im Muster eine Zeichenkette die mit dem Submuster identisch ist und sich im Zeichen vor dem Submuster von diesem unterscheidet. Die folgende Graphik verdeutlicht die Situation an einem Beispiel: Muster 1 t e Muster 2 t e s t Submuster s t Gesucht wird hier im Muster „test“ ein weiteres Vorkommen des Submusters „est“ (j = 4). Es existiert zwar kein weiteres Vorkommen des Submusters, allerdings stimmt das Ende des Submusters mit dem Anfang des Musters überein, so dass das untere Muster über das linke Ende des oberen Musters hinaus verschoben wird, bis das Zeichen „t“ untereinander liegt. Daraus ergibt sich folgendes Bild: Muster 1 Muster 2 t t e s t e s t Submuster Falls also eine Nichtübereinstimmung beim ersten (linken) „t“ des Musters auftritt, kann das Muster anhand der „good suffix rule“ um 3 Positionen verschoben werden. 2.2.3. Beispiel Das vorgestellte Verfahren soll nun anhand eines Beispiels ausführlich erläutert werden. Text d i e s Muster s p i e i l s t e i n b e i s p i e l t e x t . Thema 3: Text Retrieval 1 Maik Devrient Seite 6 Die Initialisierung der Tabellen delta1 und delta2 liefert folgende Ergebnisse: delta1: Zeichen d i e s Position 5 2 1 4 j 5 4 Verschiebung 5 5 t n b p l x . 5 5 5 5 3 0 5 5 3 2 1 0 5 5 5 1 delta2: Der Ablauf des Boyer-Moore Verfahrens verläuft dann wie folgt: Text d i e e p | | | | | | | | | l 6. Vergleich s p i e l | | | | | | | | | | | l Ende s p i e l 1. Vergleich s i p e i s e 2. Vergleich 3. Vergleich 4. Vergleich 5. Vergleich i s t p i e e | | | l s p i e I | | | | | l s p i | l s n e b e i s s p i | | | | | | | l t e x t Beim ersten Vergleich werden „l“ und „ “ verglichen. Da „ “ im Muster überhaupt nicht enthalten ist, wird nach delta1 das Muster um 5 Zeichen verschoben (Delta2 würde nur ein Verschieben von 1 Zeichen erlauben). Beim zweiten Vergleich stimmen „e“ und „l“ nicht überein, allerdings kann nun das Muster laut delta1 und delta2 nur um 1 Stelle verschoben werden. Das Verfahren benötigt insgesamt 5 Vergleiche um ein Vorkommen des Musters im Text zu finden und weitere 5 Vergleiche um das Muster zu verifizieren. 2.2.4. Laufzeit Die Konstruktion der Tabellen delta1 und delta2 benötigt lediglich die Zeichen des Alphabets und das Muster M der Länge m. Beide Tabellen können deshalb unabhängig von der Länge des eigentlichen Textes n in O(m) konstruiert werden. Die Laufzeit des einfachen Boyer-Moore Verfahrens, welches nur auf die Daten der Tabelle delta1 zurückgreift beträgt im worst-case O(n*m). Dabei tritt eine Nichtübereinstimmung zwischen Muster und Text stets erst beim letzten (linken) Zeichen auf. Das Muster kann . Thema 3: Text Retrieval 1 Maik Devrient Seite 7 anschließend nur um 1 Stelle verschoben werden, so dass ebenso wie beim naiven Verfahren insgesamt O(n*m) Vergleiche notwendig sind. Bestenfalls erreicht das Verfahren eine Laufzeit O(n/m), falls nur jedes m-te Zeichen des Textes mit dem Muster verglichen werden muss und das Muster stets komplett verschoben werden kann. Vorraussetzung dafür sind allerdings relativ kleine Muster und große Alphabete. Die Konstruktion der Tabelle delta2 lohnt sich nur bei längeren Mustern in denen Submuster häufig wiederkehren. Ist außerdem das Alphabet klein, wird delta2 umso wichtiger, da die delta1 Tabelle häufig nur eine Verschiebung um eine Position ermöglicht. Unter Verwendung beider Tabellen wird insgesamt auch im worst-case eine Laufzeit von O(n+m) erreicht. Der Aufwand liegt also normalerweise deutlich unter dem des naiven Verfahrens. 3. Komprimierung von Texten Die Komprimierung von Daten hat auch im Zeitalter immer größerer Bandbreiten und Speichermedien an Bedeutung nicht verloren, da die benötigten Datenmengen mindestens ebenso schnell steigen. Grundlegend kann dabei zwischen verlustfreien und verlustbehafteten Verfahren unterschieden werden. Verlustbehaftete Verfahren eignen sich beispielsweise bei Bildern, Musik- oder Videodateien, da hierbei zwar die Qualität der Information gemindert wird die Information an sich aber weiterhin erhalten bleibt. Für Textdateien eignen sich hingegen lediglich verlustfreie Verfahren, da hierbei Fehler inakzeptabel sind. Verlustfreie Verfahren versuchen dabei in erster Linie Redundanzen zu vermeiden bzw. zu verringern. Eine Möglichkeit Texte zu komprimieren bilden die wörterbuchbasierten Verfahren, diese werden grundsätzlich in Verfahren mit statischen oder dynamischen Wörterbüchern unterschieden. Statische Wörterbücher besitzen feste bereits vor der Bearbeitung eines Textes definierte Einträge, während dynamische Verfahren ihre Wörterbücher erst sukzessive mit der Bearbeitung des Textes aufbauen. Einen klassischen Vertreter für Verfahren mit dynamischen Wörterbüchern stellt dabei die Algorithmenfamilie von Abraham Lempel und Jacob Ziv dar. Im Folgenden sollen die beiden in den Jahren 1977 bzw. 1978 veröffentlichten Verfahren vorgestellt werden. 3.1. Lempel-Ziv 77 3.1.1. Verfahren Der Kern des 1977 vorgestellten Verfahrens ist ein Datenfenster das sich während der Abarbeitung über den Text hinweg schiebt. Dabei wird dieses Fenster in zwei Bereiche unterteilt – einen Wörterbuchbereich mit dessen Hilfe die nächsten Zeichen kodiert werden und einen Vorschaubereich in dem sich die nächsten zu lesenden Zeichen befinden. d i e s i s t e i n Wörterbuchbereich b e i s p i e l t e x Vorschaubereich t . Die aktuelle Leseposition ist stets das erste Zeichen des Vorschaubereiches, in diesem Fall also „i“. Gesucht wird nun im Wörterbuchbereich die längste Zeichenkette die mit dem Anfang des Vorschaubereiches übereinstimmt. Wurde eine solche Position gefunden wird der Thema 3: Text Retrieval 1 Maik Devrient Seite 8 Anfangsindex dieser Position, sowie die Länge der Übereinstimmung vom Algorithmus ausgegeben. Wurde keine Übereinstimmung gefunden werden für Position und Länge die Werte 0 ausgegeben. Zusätzlich wird vom Algorithmus das erste nicht übereinstimmende Zeichen innerhalb des Vorschaubereiches ausgegeben. Für den oberen Fall wäre also das Tripel (4, 1, e) ausgegeben worden, da die längste Übereinstimmung mit dem Vorschaubereich das einzelne Zeichen „i“ ist und das erste nicht übereinstimmende Zeichen ein „e“ ist. Anschließend werden die Leseposition und das Datenfenster, um 2 Zeichen nach rechts verschoben. Dieses Verfahren wiederholt sich bis die Leseposition das Ende des Textes erreicht hat. Die Größe des Vorschaubereiches beträgt normalerweise 10 - 100 Zeichen, während die Größe des Wörterbuchbereiches, welche entscheidend ist für den Komprimierungsgrad und die Komprimierungsgeschwindigkeit, durchaus mehrere 1000 Zeichen betragen kann. 3.1.2. Beispiel Die Komprimierung und Dekomprimierung sollen nun anhand eines Beispiels erläutert werden. Auf die Festlegung einer Datenfenstergröße wurde verzichtet, so dass alle Zeichen links der Leseposition zum Wörterbuchbereich gehören und alle Zeichen rechts davon zum Vorschaubereich. Komprimierung In der Ausgangsposition befindet sich der Lesezeiger über dem ersten Zeichen, alle Zeichen gehören noch zum Vorschaubereich, während der Wörterbuchbereich noch leer ist. Da dieser leer ist kann auch keine Übereinstimmung mit dem Zeichen „a“ gefunden werden, so dass der Algorithmus (0, 0, a) ausgibt. Wort a b a ↑ Leseposition b c a a b Ausgabe: (0, 0, a) Anschließend wird das Zeichen „b“ gelesen. Da auch dieses nicht im Wörterbuch vorhanden ist erfolgt die zum ersten Schritt analoge Ausgabe (0, 0, b). Wort a b a b ↑ Leseposition c a a b Ausgabe: (0, 0, b) Als nächstes wird eine Übereinstimmung der Zeichenkette „ab“ mit dem Wörterbuchbereich festgestellt, so dass (1, 2, c) ausgegeben wird. Wort a b a b c ↑ Leseposition a a b Ausgabe: (1, 2, c) Für das Zeichen „a“ findet sich im Wörterbuch nur ein Eintrag der Länge 1 an Position ein, so dass das Tripel (1, 1, a) ausgegeben wird. Thema 3: Text Retrieval 1 Wort Maik Devrient a b a b c a a b ↑ Leseposition Seite 9 Ausgabe: (1, 1, a) An der letzen Position schließlich steht nur das Zeichen „b“, welches im Wörterbuch vorhanden an Position 2 vorhanden ist. Da keine Zeichen mehr im Vorschaubereich vorhanden sind, wird kein nicht übereinstimmendes Zeichen im Tripel angegeben. Wort a b a b c a a b ↑ Leseposition Ausgabe: (2, 1, ) Das Ergebnis der Komprimierung ist schließlich die Folge der Tripel: (0, 0, a) (0, 0, b) (1, 2, c), (1, 1, a), (2, 1, ) Dekomprimierung Die Dekomprimierung benötigt für die Rekonstruktion des Textes lediglich die Tripel und die Informationen über die Größen des Wörterbuch- und des Vorschaubereiches. Ein Wörterbuch muss nicht mit übertragen werden, da dies im Verlauf der Dekomprimierung mit aufgebaut wird. Die Dekomprimierung liest zunächst das Tripel (0, 0, a). Da auf keinen Wörterbucheintrag verwiesen wird, wird lediglich das Zeichen a ausgegeben und gleichzeitig der Wörterbuchbereich mit einem „a“ angelegt Eingabe: (0, 0, a) a Ausgabe: a Als nächstes wird das Tripel (0, 0, b) verarbeitet. Da wiederum nicht auf das Wörterbuch verwiesen wird, erfolgt lediglich die Ausgabe des Zeichens. Eingabe: (0, 0, b) a b Ausgabe: b Anschließend wird das Tripel (1, 2, c) eingelesen. Dieses verweist auf die Position 1 des Wörterbuches und eine Zeichenfolge der Länge 2, d.h. „ab“ wird zusammen mit dem nicht übereinstimmenden Zeichen „c“ ausgegeben. Eingabe: (1, 2, c) a b a b c Ausgabe: abc Die Verarbeitung des Tripels (1, 1, a) hat nun die Ausgabe „aa“ zur Folge. Eingabe: (1, 1, a) a b a b c a a Ausgabe: aa Schließlich wird das Tripel (2, 1, ) eingelesen und das Zeichen „b“ ausgegeben. Thema 3: Text Retrieval 1 Eingabe: (2, 1, ) Maik Devrient a b a b c a a Seite 10 b Ausgabe: b Am Ende ergibt sich damit wieder der ursprüngliche Text: a b a b c a a b 3.1.3. Aufwand Die Laufzeit und der Komprimierungsgrad stehen bei diesem Verfahren in engem Zusammenhang. Je größer der Wörterbuchbereich gewählt wird desto größer ist der Komprimierungsgrad, da die Möglichkeit ein möglichst langes Teilwort des Pufferbereiches innerhalb des Wörterbuchbereiches zu finden steigt. Andererseits steigt damit auch die Laufzeit des Algorithmus, da nun ein größeres Wörterbuch, beispielsweise mit Hilfe des Boyer-Moore Verfahrens, durchsucht werden muss. Das heißt, dass die größtmögliche Komprimierung gleichzeitig auch die langsamste ist. Der worst-case bei diesem Verfahren tritt auf, falls die Zeichen des Vorschaubereiches nicht im Wörterbuchbereich auftreten. Dies ist beispielsweise der Fall, wenn die 26 Buchstaben des Alphabets komprimiert werden sollen. Da jedes Zeichen des Textes nur einmal auftritt, sind alle 25 Suchen im Wörterbuch (Beim ersten Zeichen „a“ ist das Wörterbuch noch leer.) erfolglos. Da keine Übereinstimmung mit dem Wörterbuch gefunden wurde, muss also stets ein Tripel der Form (0, 0, $) ausgegeben werden, wobei $ für jeweils ein Zeichen des Alphabets steht. Bei diesem Beispiel kann auch ein zweiter Nachteil dieses Verfahrens beobachtet werden. Der ursprüngliche Text wurde nicht wie beabsichtigt komprimiert, sondern hat sich im Gegensatz dazu nun auch deutlich vergrößert. Jeder Buchstabe des Alphabets wird nun durch ein Tripel dargestellt, das neben den Buchstaben auch die (in diesem Falle unnötigen) Informationen über Position und Länge eines nicht vorhandenen Wörterbucheintrages enthält. Im Gegensatz zu diesen Problemen bei der Komprimierung ist die Dekomprimierung eines Textes relativ schnell, da hierbei keine Vergleichsoperationen durchgeführt werden müssen. Für jedes Tripel wird lediglich der eventuell vorhandene Teil des Wörterbuchbereiches ermittelt und das nicht übereinstimmende Zeichen angehängt. 3.2. Lempel-Ziv 78 Aufgrund der Probleme des ursprünglichen Verfahrens entstanden in den folgenden Jahren verschiedene Weiterentwicklungen des Algorithmus. Eine dieser Weiterentwicklungen wurde von Lempel und Ziv 1978 selbst vorgestellt. 3.2.1. Verfahren Im Gegensatz zum ersten Verfahren verwendet dieser Algorithmus kein Datenfenster mit beschränktem Wörterbuch, sondern ein getrennt verwaltetes Wörterbuch. Das Wörterbuch kann dabei, unter Berücksichtigung des zur Verfügung stehenden Speichers, beliebig groß werden, so dass stets die maximalen möglichen Wörterbucheinträge gefunden werden. Das Verfahren beginnt indem ein leeres Wörterbuch angelegt wird und an Position 0 dieses Wörterbuches der Leerstring eingefügt wird. Anschließend wird das erste Zeichen eingelesen und das Wörterbuch wird nach diesem Zeichen durchsucht. Da das Zeichen nicht im Thema 3: Text Retrieval 1 Maik Devrient Seite 11 Wörterbuch vorhanden ist, wird dieses an Position 1 des Wörterbuches gespeichert. Danach wird vom Algorithmus ein Paar der Form (0, $) ausgegeben. Die Zahl 0 steht für den referenzierten Wörterbucheintrag und $ für das erste nicht übereinstimmende Zeichen. Nun werden die nächsten Zeichen eingelesen und im Wörterbuch stets nach einem möglichst langen übereinstimmenden Eintrag für diese Zeichen gesucht. Dieses Vorgehen wiederholt sich bis der gesamte Text komprimiert wurde. 3.2.2. Beispiel Das gesamte Verfahren soll nun anhand des bereits oben verwendeten Beispieltextes demonstriert werden. Komprimierung Das erste Zeichen „a“ wird eingelesen und da dieses im Wörterbuch nicht gefunden wird als Eintrag 1 zum Wörterbuch hinzugefügt. Ausgegeben wird das Paar (0, a), da die kodierten Zeichen aus dem Leerstring und einem „a“ bestehen. Wörterbuch Pos. Eintrag 0 Leerstring 1 a a b a ↑ Leseposition b c a a b Ausgabe: (0, a) Nach Einlesen des Zeichens „b“ verhält sich das Verfahren analog, d.h. das Zeichen b wird zum Wörterbuch hinzugefügt und das Paar (0, b) ausgegeben. Pos. 0 1 2 Wörterbuch Eintrag Leerstring a b a b a b ↑ Leseposition c a a b Ausgabe: (0, b) Beim Einlesen des Zeichens „a“ wird nun eine Übereinstimmung mit dem Wörterbucheintrag an Position 1 festgestellt. Dementsprechend wird nun bei der Ausgabe der Verweis auf diesen Eintrag ausgegeben. Zusätzlich werden die Zeichen „ab“ zum Wörterbuch hinzugefügt. Pos. 0 1 2 3 Wörterbuch Eintrag Leerstring a b ab a b a b c ↑ Leseposition a a b Ausgabe: (1, b) Alle folgenden Schritte des Verfahrens ergeben sich analog, so dass sich am Ende das folgende Wörterbuch und die folgende Ausgabe ergeben: Thema 3: Text Retrieval 1 Maik Devrient Wörterbuch Pos. Eintrag 0 Leerstring 1 a 2 b 3 ab 4 c 5 aa Seite 12 Gesamte Ausgabe: (0, a) (0, b) (1, b) (0, c) (1, a) (2, ) Dekomprimierung Die Dekomprimierung benötigt ebenso wie beim Verfahren von 1977 keine Informationen des Wörterbuches, sondern baut dieses während der Komprimierung schrittweise auf. Die Dekomprimierung legt ebenfalls ein Wörterbuch mit dem Leerstring an Position 0 an und liest dann das Paar (0, a). Aufgrund dieser Informationen kann das Zeichen „a“ ausgegeben werden. Im Wörterbuch wird analog zur Komprimierung ein Eintrag für das Zeichen „a“ hinzugefügt. Eingabe: (0, a) Pos. 0 1 Wörterbuch Eintrag Leerstring a Ausgabe: a Für das Paar (0, b) verhält sich die Dekomprimierung analog, so dass das Zeichen „b“ ausgegeben und zum Wörterbuch hinzugefügt wird. Anschließend wird das Paar (1, b) eingelesen. Die Ausgabe setzt sich nun aus dem Eintrag an Position 1 und dem Zeichen „b“ zusammen, also „ab“. Diese Zeichenfolge wird wiederum zum Wörterbuch hinzugefügt. Eingabe: (0, b) Eingabe: (1, b) Pos. 0 1 2 3 Wörterbuch Eintrag Leerstring a b ab Ausgabe: b Ausgabe: ab Nachdem alle Paare eingelesen wurden, ergibt sich schließlich wieder das folgende Wörterbuch und der ursprüngliche Text. Wörterbuch Pos. Eintrag 0 Leerstring 1 a 2 b 3 ab 4 c 5 aa Gesamte Ausgabe: a b ab c aa b Thema 3: Text Retrieval 1 Maik Devrient Seite 13 3.2.3. Aufwand Der Hauptaufwand bei diesem Verfahren ist die Suche nach einer Übereinstimmung mit dem Wörterbuch. Dies ist besonders kritisch, da die Größe des Wörterbuches nicht wie beim Algorithmus von 1977 beschränkt wird. Eine effiziente Suche innerhalb des Wörterbuches ist deshalb sowohl für die Komprimierung als auch die Dekomprimierung entscheidend. Als Datenstruktur würde sich beispielsweise ein Baum anbieten, indem jeder Sohn eines Knotens das nächste Zeichen eines Eintrages darstellt. Jeder Pfad von der Wurzel zu einem Knoten stellt dabei ein Wort des Wörterbuches dar, der sich durch die jeweilige Kantenbeschriftung ergibt. Für das oben verwendete Beispiel würde sich folgender Baum ergeben: 0 a 1 a 3 b 2 c 4 b 5 Der Grad des Baumes entspricht der Anzahl der Zeichen des zugrunde liegenden Alphabets. Für das Suchen eines Eintrages im Wörterbuch würden logd n Schritte benötigt, wobei d die Größe des Alphabets beschreibt und n die Anzahl der Einträge des Wörterbuches. Diese optimale Laufzeit setzt allerdings eine Gleichverteilung der Wörter innerhalb des Baumes voraus. Beispielsweise würde der Baum bei Zeichenketten wie „aaaaaaaa“ zu einer linearen Liste entarten, da der Baum stets ganz links um einen linken Sohn erweitert würde. Problematisch bei diesem Verfahren ist die Größe des zugrunde liegenden Alphabets und die damit zusammenhängende Verwaltung der Söhne jedes Knotens. Eine Möglichkeit wäre zum Beispiel die Verwendung eines Arrays pro Knoten bei dem der i-te Index stets dem i-ten Zeichen des Alphabets entspricht. Allerdings wird dabei Speicherplatz verschwendet, da viele Elemente dieser Arrays lediglich Null-Zeiger enthalten. Da bei diesem Verfahren das Wörterbuch nicht mitübertragen wird, muss dieses bei der Dekomprimierung schrittweise erzeugt werden. Für die Implementierung eignet sich hierbei aber eher eine Hashtabelle, da ein beliebiger Index des Wörterbuches möglichst schnell gefunden werden muss. Verglichen mit dem Verfahren von 1977 ist deshalb die Komprimierung schneller, während der Aufwand zum Dekomprimieren gewachsen ist. 4. Zeichensuche in komprimierten Texten Eine Möglichkeit der Verknüpfung der oben vorgestellten Verfahren stellt die Suche in komprimierten Texten dar. Ziel ist es dabei direkt im komprimierten Text zu suchen und sich auf diese Weise den Aufwand für eine vollständige Dekomprimierung zu ersparen. Der im Folgenden vorgestellte Ansatz geht auf Gonzalo Navarro und Jorma Tarhio zurück und wurde von diesen im Jahr 2000 veröffentlicht. Thema 3: Text Retrieval 1 4.1. Maik Devrient Seite 14 Der Algorithmus von Navarro und Tarhio 4.1.1. Verfahren Die Grundidee des Verfahrens ist eine direkte Boyer-Moore Suche auf einem nach LempelZiv Verfahren von 1978 komprimierten Text. Ebenso wie beim ursprünglichen Boyer-Moore Verfahren wird der gesuchte Begriff unter dem Text angelegt. Beim Anlegen des Musters wird jedes Paar (s, x) des komprimierten Textes durch eine Linie mit abschließenden Quadrat dargestellt. Das Quadrat steht für das explizite Zeichen x des Paares, während die Linie alle impliziten Zeichen s repräsentiert. Die impliziten Zeichen eines Blocks sind stets alle Zeichen eines weiter links stehenden Paares, so dass bei jedem Zugriff auf die Referenz der impliziten Zeichen ein weiteres Klartextzeichen ermittelt wird. Die folgende Darstellung verdeutlicht die Idee: Beim Vergleich werden nun zunächst die expliziten Zeichen des Textes von links nach rechts mit dem Muster verglichen. Erst wenn diese alle übereinstimmen werden die nur implizit vorhandenen Zeichen berücksichtigt. Dabei werden die Blöcke von rechts nach links abgearbeitet, wobei mit dem Block links des letzten explizit vorhandenen Zeichens begonnen wird. Erst wenn alle diese Blöcke Übereinstimmungen liefern wird der Block rechts des letzten explizit vorhandenen Zeichens überprüft, da bei diesem Block normalerweise mehr Dereferenzierungen nötig sind, um die gewünschten Zeichen zu erhalten. Die Reihenfolge der Abarbeitung ergibt sich deshalb wie folgt: Vor Beginn des eigentlichen Algorithmus wird analog zum ursprünglichen Boyer-Moore Verfahren eine Tabelle ermittelt die die maximal mögliche Verschiebung angibt. Dabei wird die folgende Formel verwendet: B(i, c) = min( {i} U { i – j, 1 ≤ j ≤ i Λ Pj = c } ) Die Variable i beschreibt hierbei die Position innerhalb des Musters, c das Zeichen, das im Text der Position i des Musters gegenübersteht und Pj das j-te Zeichen des Musters (Pattern). Falls das Zeichen in Muster und Text übereinstimmt ist B(i, c) = 0. 4.1.2. Beispiel Für die im Abschnitt 3.2.2. kodierte Folge, wird nun nach der Zeichenkette „aa“ gesucht: Thema 3: Text Retrieval 1 Maik Devrient Zeichenfolge: a komprimierte Zeichenfolge: b Seite 15 a b c a a b (0, a) (0, b) (1,b) (0, c) (1, a), (2, ) Die bei der Initialisierung berechnete Verschiebe-Tabelle ergibt folgende Werte: B (i,c) a b c 1 0 1 1 2 0 2 2 Der Algorithmus legt nun das Muster an den Text und überprüft von rechts nach links die expliziten Zeichen: 0 0 1 a b 0 b 1 c 2 a Text Muster a a Beim ersten Schritt werden das explizite Zeichen „b“ aus dem Text und das Zeichen „a“ aus dem Muster verglichen. Anhand der Verschiebe-Tabelle kann das Muster daraufhin um 2 Stellen verschoben werden. 0 0 a 1 b 0 b 1 c 2 a Text Muster a a Beim Vergleich der Zeichen „b“ und „a“ verhält sich der Algorithmus gleich und verschiebt das Muster um zwei Zeichen. 0 0 a 1 b 0 1 b c 2 a Text Muster a a Betrachtet wird nun zuerst das explizit vorliegende Zeichen „c“ mit Zeichen „a“ an Position 1 des Musters. Laut Verschiebe-Tabelle kann das Muster um 1 Zeichen versetzt werden. Thema 3: Text Retrieval 1 Maik Devrient 0 0 a 1 b Seite 16 0 b 1 c 2 a Text Muster a a Das explizite Zeichen „a“ stimmt mit dem Muster überein, so dass jetzt in der Referenzkette auf Block 1 zugegriffen wird. Dieser besitzt als explizites Zeichen wiederum ein „a“, so dass eine Übereinstimmung des Musters mit dem Text gefunden wurde. 4.1.3. Aufwand Navarro und Tarhio schlagen eine leichte Verbesserung dieses Verfahrens vor, bei dem expliziten Zeichen von links nach rechts verglichen werden. Dadurch kann bei jedem lesen eines Blockes überprüft werden, ob eine Verschiebung möglich ist. Diese Variante wird als „BM-simple-opt“ bezeichnet, während die ursprüngliche Version mit „BM-simple“ bezeichnet wird. Die untere Grenze für dieses Verfahren liegt bei Ω(n), da jeder Block n der komprimierten Folge betrachtet werden muss. Entscheidend für den Umfang möglicher Verschiebungen ist die Größe des Alphabets. Je mehr Zeichen ein Alphabet beinhaltet, desto größere Verschiebungen sind möglich und desto schneller arbeitet der Algorithmus folglich. Eine von Navarro und Tarhio vorgestellt Variante betrachtet deshalb nicht einzelne Zeichen, sondern Blöcke von Zeichen. Das Alphabet wird dabei größer, da nun Kombinationen der einzelnen Zeichen als Grundlage dienen. Bezeichnet wird diese Variante als „BM-multichar“. Eine weitere Variante „BM-blocks“ berechnet die Verschiebungen ähnlich wie die Tabelle delta2 des ursprünglichen Verfahrens, indem die möglichen Verschiebungen für die Präfixe des Musters berechnet werden. Bei ihren Tests verglichen Navarro und Tarhio die beiden schnellsten Varianten „BM-simple opt“ und „BM-blocks“ mit einem von Navarro und Raffinot bereits 1999 vorgestellten Verfahren „Bit-parallel“ und zwei Varianten, die den Text zunächst dekomprimieren und anschließend durchsuchen. Angegeben wird die Zeit für die Suche in Sekunden, für ein Muster der Länge m und einen 10 MB großen Text, der einmal aus dem Wallstreet Journal stammt und im zweiten Fall eine DNA Sequenz darstellt. Thema 3: Text Retrieval 1 Maik Devrient Seite 17 Während die beiden BM-Varianten bis zu 22.2 MB/s unkomprimierten Text verarbeiten können, erreichen die beiden Verfahren die den Text dekomprimieren und anschließend durchsuchen lediglich 12 MB/s. Interessant ist, dass alle Algorithmen relativ schnell eine untere Grenze für m erreichen, bei der die Verfahren nicht mehr schneller werden, obwohl m größer wird. Dies ergibt sich durch die Notwendigkeit jeden Block des komprimierten Textes mindestens einmal zu lesen, egal wie lang das Muster ist. (NT, S.10) 5. Literaturverzeichnis [BM] R.S. Boyer, J.S. Moore: A Fast String Searching Algorithm. Communications of the ACM, 20, Number 10, S. 762-772, 1977 [LZ] J. Ziv, A. Lempel: A universal algorithm for sequential data compression, IEEE Transactions on information theory, S. 337-343, 1977 [NT] G. Navarro, J. Tarhio: Boyer-Moore string matching over Ziv-Lempel compressed text, In R. Giancarlo and D. Sankoff, editors, Proceedings of the 11th Annual Symposium on Combinatorial Pattern Matching, number 1848, S. 166-180, Montreal, Canada, Springer Verlag, Berlin, 2000 [HWL] H. W. Lang: Boyer-Moore-Algorithmus, http://www.inf.fh-flensburg.de/lang/algorithmen/pattern/bm.htm, 2006 [OW] T. Ottmann, P. Widmayer: Algorithmen und Datenstrukturen, 3. Auflage, Spektrum Akademischer Verlag, Heidelberg, 1996 Seminar 1912 Multimedia-Datenbanken Text Retrieval 2 Sylvia Zotz Text Retrieval 2, Sylvia Zotz 1 Inhalt 1 2 3 4 5 6 Einleitung ................................................................................................................................2 Grundlagen des Text Retrievals ..............................................................................................2 2.1 Allgemeine Verfahren zur Indexierung von Text-Dokumenten .....................................3 2.2 Allgemeine Darstellung verschiedener Retrieval Modelle .............................................4 2.2.1 Boolesches Retrieval ...............................................................................................4 2.2.2 Retrieval mit Ranking .............................................................................................4 2.2.3 Vektorraum Modelle ...............................................................................................5 2.3 Probleme beim Text Retrieval.........................................................................................5 2.4 Qualitätsmaße zur Beurteilung von Text Retrieval Verfahren........................................6 Ausgewählte Ansätze von Indexierungsverfahren beim Text Retrieval .................................7 3.1 Ansatz von Moffat und Zobel: 'Self-Indexing Inverted Files'.........................................7 3.1.1 Definition und Aufbau invertierter Listen...............................................................7 3.1.2 Vorgehensweise bei der Verarbeitung von booleschen Suchanfragen ...................9 3.1.3 Vorgehensweise bei der Verarbeitung von Suchanfragen mit Ranking ...............10 3.1.4 Untersuchungsaufbau ............................................................................................11 3.1.5 Untersuchungsergebnisse ......................................................................................11 3.2 Ansatz von Deerwester, Dumais und Harshman: 'Indexing by Latent Semantic Analysis' ........................................................................................................................12 3.2.1 Konzept der latenten semantischen Strukturen .....................................................12 3.2.2 Umsetzung des Konzepts der latenten semantischen Strukturen mit Hilfe der Singulärwertzerlegung .......................................................................................... 13 3.2.3 Vorgehensweise bei der Verarbeitung von Suchanfragen ....................................14 3.2.4 Untersuchungsaufbau ............................................................................................15 3.2.5 Untersuchungsergebnisse ......................................................................................15 Fazit.......................................................................................................................................16 Literatur.................................................................................................................................17 Abbildungsverzeichnis ..........................................................................................................17 2 Text Retrieval 2, Sylvia Zotz 1 Einleitung Die Suche nach Text-Dokumenten spielt in verschiedensten Bereichen eine wichtige Rolle. So will beispielsweise ein Bibliotheksbenutzer aus der großen Zahl der vorhandenen Bücher und Zeitschriften solche auswählen, die sich mit dem Thema beschäftigen, das für ihn gerade von Interesse ist. Dazu wird er in das rechnergestützte Suchsystem der Bibliothek entsprechende Schlüsselwörter eingeben und hoffen, daß seine Abfrage möglichst viele sinnvolle Treffer erzielt. Damit aber eine Übereinstimmung zwischen Abfragebegriffen und Büchern bzw. Zeitschriftartikel möglich wird, muß auf den Textdokumenten eine Indexierung durchgeführt werden, welche deren Zuordnung zu bestimmten Themen erlaubt. Die Vorgehensweise, die bei einer solchen Indexierung gewählt wird, kann sehr unterschiedlich sein. In der vorliegenden Arbeit werden verschiedene Verfahren zur Indexierung von Text-Dokumenten dargestellt. Dabei sollen besonders das Konzept des 'Latent Semantic Indexing' von Deerwester et al. [1] und der Ansatz 'Self-Indexing Inverted Files' von Moffat und Zobel [2] behandelt werden. Außerdem wird auf Probleme eingegangen, die allgemein mit dem Thema Text Retrieval verbunden sind. 2 Grundlagen des Text Retrievals Text Retrieval ist ein Teilbereich des Information Retrievals. Während Text Retrieval nur die textuelle Suche in Dokumenten beinhaltet, ist Information Retrieval weiter gefaßt und zielt ganz allgemein auf die inhaltsorientierte Suche in multimedialen Datenbeständen. In Mandl [4] heißt es dazu: 'Information Retrieval beschäftigt sich mit der Suche nach Information und mit der Repräsentation, Speicherung und Organisation von Wissen. Information Retrieval modelliert Informationsprozesse, in denen Benutzer aus einer großen Menge von Wissen die für ihre Problemstellung relevante Teilmenge suchen. Dabei entsteht Information, die im Gegensatz zum gespeicherten Wissen problembezogen und an den Kontext angepaßt ist.' (S. 7) Die folgende Abbildung veranschaulicht den Information Retrieval Prozeß bezogen auf TextDokumente (vgl. (Mandl [4], Seite 8). Abbildung 1 Text Retrieval Prozeß Text Retrieval 2, Sylvia Zotz 3 Aus dieser Darstellung geht hervor, daß sowohl die einzelnen Dokumente des Datenbestandes als auch die Anfragen der Benutzer mittels eines Erschließungsverfahrens – meist auch als Indexierung bezeichnet – in eine interne Darstellung transformiert werden müssen, die den Inhalt des jeweiligen Dokuments bzw. der einzelnen Anfrage adäquat widerspiegelt. Wie diese interne Darstellung bzw. Repräsentation letztlich aussieht, ist von dem verwendeten Indexierungsansatz abhängig. Wichtig ist, daß erst mit Hilfe dieser Repräsentationen ein sinnvoller Ähnlichkeitsabgleich durchgeführt werden kann und es dadurch möglich wird, eine Übereinstimmung zwischen Dokumenten und Abfrage zu ermitteln. Diejenigen Dokumente, die gemäß dem Retrieval System der Anfrage des Informationssuchenden entsprechen, werden als Ergebnis ausgegeben. Der Benutzer muß dann entscheiden, welche der Ergebnisdokumente tatsächlich für ihn relevant sind, das heißt, einen Treffer darstellen. Natürlich ist auch die Trefferwahrscheinlichkeit abhängig von der internen Darstellung der Dokumente und der Anfrage und damit wiederum vom gewählten Indexierungsansatz. 2.1 Allgemeine Verfahren zur Indexierung von Text-Dokumenten Um eine Textsuche auf einem Dokumentenbestand durchführen zu können, ist es – wie bereits oben angeführt – zunächst notwendig eine Indexierung vorzunehmen. Ganz allgemein ist darunter zu verstehen, daß Repräsentationen der Retrieval-Objekte erstellt werden. Bei TextDokumenten handelt es sich bei diesen Repräsentationen um eine Menge von Begriffen oder Termen. Wie die ein Dokument repräsentierenden Begriffe ausgewählt werden, hängt von der Indexierungsmethode ab. Mandl [4] unterscheidet dabei grundsätzlich zwei Arten von Indexierungsverfahren. Bei der intellektuellen (oder manuellen) Indexierung wird jedes Dokument, das in den Datenbestand aufgenommen werden soll, von einem menschlichen Indexierer überprüft und mit inhaltskennzeichnenden Schlagwörtern versehen. Diese Schlagwörter stammen zudem meist aus einem kontrollierten Vokabular. Beim automatischen (oder maschinellen) Indexieren hingegen extrahiert ein Algorithmus alle in einem Dokument vorkommenden Wörter, reduziert aber eventuell vorkommende morphologische Formen. Außerdem finden oftmals sogenannte Stoppwortlisten Verwendung, die dafür sorgen, daß sehr häufig gebrauchte Wörter und Funktionswörter wie Artikel und Präpositionen bei der Indexierung nicht berücksichtigt werden. Ist die zu einem Dokument gehörende Begriffsliste fertig, so wird zusätzlich die Vorkommenshäufigkeit der einzelnen Wörter abgespeichert. Diese Vorkommenshäufigkeiten werden später dazu verwendet, um als Zwischenergebnis die Häufigkeit der jeweiligen Begriffe im gesamten Datenbestand zu ermitteln. Die Begriffe, die dabei sehr oft vorkommen, erhalten eine geringere Gewichtung, da sie bei einer Suchabfrage meist nur zu mäßigen oder schlechten Resultaten führen. Das Ergebnis der automatischen Indexierung eines Dokuments ist somit eine Begriffsliste und für jeden Begriff eine, seiner in dem betreffenden Dokument und der gesamten Datenbasis Vorkommenshäufigkeit entsprechenden Gewichtung. Die wesentlichen Unterschiede zwischen den beiden skizzierten Indexierungsverfahren sind, daß zum einen die Anzahl der Terme, die bei der automatischen Indexierung zur Repräsentation eines Dokuments ausgewählt werden, wesentlich größer ist als bei der intellektuellen Indexierung. Zum anderen kommen die bei der intellektuellen Indexierung zugeordneten Schlagwörter nicht unbedingt in dem Dokument vor, da hier versucht wird, ein Dokument auch semantisch zu modellieren, d.h. die Bedeutung bzw. den Inhalt des Dokuments zu extrahieren. Text Retrieval 2, Sylvia Zotz 2.2 4 Allgemeine Darstellung verschiedener Retrieval Modelle Im folgenden sollen die grundlegenden Ansätze dargestellt werden, wie Informationen in Retrieval Systemen repräsentiert bzw. verarbeitet werden. 2.2.1 Boolesches Retrieval Das Boolesche Retrieval Modell orientiert sich an den Vorstellungen der elementaren Mengenlehre. Eine elementare Menge ist gemäß diesem Modell eine Sammlung von Dokumenten, die alle denselben Begriff enthalten. Das heißt beispielsweise, daß alle Dokumente, die mit dem Wort 'A' indexiert sind, zur selben elementaren Menge gehören. Dabei ist es natürlich unumgänglich, daß ein Dokument mehreren elementaren Mengen gleichzeitig zugeordnet wird. In diesem System muß die Anzahl der elementaren Mengen mit der Zahl der bei der Indexierung des Datenbestands ermittelten Begriffe bzw. Terme übereinstimmen. Text Retrieval wird als eine Mengenoperation betrachtet, die das Ziel hat, aus einer Grundmenge von Dokumenten, welche den Datenbestand darstellen, diejenigen herauszufinden, die für die Abfrage eines Benutzers von Interesse sind. Dieses Modell basiert somit auf der Annahme, daß jede Abfrage als Ergebnis eine exakt anzugebende Menge an Dokumenten liefert. Bei den Suchabfragen sind dabei die klassischen Mengenoperationen Durchschnitt, Vereinigung und Komplement zugelassen. Die so zusammengesetzten Anfragen können dann als boolesche Suchanfragen bezeichnet werden. Folgende Abbildung aus Mandl [4] (S. 13) soll das Konzept des Booleschen Retrievals nochmals verdeutlichen. Abbildung 2 Elementare Operationen im Booleschen Retrieval Modell Der Nachteil Boolescher Retrieval Modelle besteht darin, daß eine Gewichtung der Indexbegriffe keine Berücksichtigung findet. Für den Benutzer bedeutet dies, daß er die Ergebnisdokumente ungeordnet ausgegeben bekommt und somit im Grunde alle diese Dokumente sichten muß, um festzustellen, welche am besten zu seiner Anfrage passen. 2.2.2 Retrieval mit Ranking Ranking Modelle versuchen das Problem, den Benutzer nach einer Suchanfrage mit einer ungeordneten Menge von Ergebnisdokumenten zu überhäufen, in den Griff zu bekommen. Dazu wird bei einer Anfrage für jedes auszugebende Dokument seine Relevanz berechnet. So entsteht gewissermaßen eine Rangordnung auf den Antworten und die potentiell passendsten Dokumente stehen am Beginn der Ergebnisliste. Text Retrieval 2, Sylvia Zotz 5 2.2.3 Vektorraum Modelle Beim Vekorraum Modell spannen die einzelnen Begriffe, die bei der Indexierung des Datenbestands ermittelt worden sind, einen multidimensionalen Term-Raum auf. Sowohl die einzelnen Textdokumente als auch die Suchanfragen werden als Punkte bzw. Vektoren in diesem multidimensionalen Koordinatensystem aufgefaßt. Jedem Dokument und jeder Abfrage wird an den Term-Achsen das Gewicht für den entsprechenden Indexbegriff zugewiesen. Man muß sich bei diesem Modell also beispielsweise ein Dokument als Vektor vorstellen, dessen einzelne Komponenten die Gewichte zu den verschiedenen Indexbegriffen darstellen. Ob ein Dokument zu einer Suchanfrage paßt, ergibt sich aus der räumlichen Nähe zwischen den entsprechenden Dokumenten- und Abfragerepräsentation im Term-Raum. Da ein multidimensionaler Term-Raum nur schwer vorstellbar ist, soll das Prinzip des Vektorraum Modells anhand eines durch nur zwei Begriffe aufgespannten Term-Raums verdeutlicht werden (vgl. Mandl [4], S. 15). Abbildung 3 Zweidimensionaler Term-Raum mit Suchanfrage und zwei Dokumenten Gemäß dieser Abbildung werden die Anfrage und die Dokumente als zweidimensionale Vektoren dargestellt, deren erste Komponente der Wert für das Gewicht von Term A und die zweite Komponente den Wert für das Gewicht von Term B enthält. Da sich das Dokument 2 näher zur Position der Anfrage befindet, paßt es besser als das Dokument 1. 2.3 Probleme beim Text Retrieval Wie die vorangegangene Darstellung der verschiedenen Retrieval Modelle gezeigt hat, baut Text Retrieval darauf auf, daß die bei der Indexierung der einzelnen Dokumente gewonnenen Terme mit den Wörter, die in einer Abfrage gewählt werden, zueinander passen. Das grundlegende Problem besteht nun aber darin, daß die von einem Benutzer verwendeten Begriffe oft nicht mit denjenigen übereinstimmen, mit denen die Textdokumente indexiert wurden. Wie Deerwester et al. [1] anmerkt, richten Benutzer ihre Abfragen gewöhnlich in Hinblick auf begriffliche Inhalte und Konzepte aus, wohingegen einzelne Wörter nur unzulängliche Hinweise auf die in einem Dokument behandelten Themen sind. Damit wird aber auch die Schwäche der üblichen Indexierungsverfahren offenbar, da einzelne Terme den Inhalt eines Textes nie auch nur annähernd adäquat widerspiegeln können [4]. Grundsätzlich führt Deerwester et al. [1] zwei Aspekte an, die beim Text Retrieval zu Schwierigkeiten führen. So erschwert zum einen das Vorhandensein synonymer Begriffe die Zuordnung 6 Text Retrieval 2, Sylvia Zotz relevanter Dokumente zu einer Suchanfrage. Oftmals gibt es verschiedenste Möglichkeiten, einen Sachverhalt auszudrücken, und je nach Kontext, Erfahrung und sprachlichen Gewohnheiten des Benutzers wird eine entsprechende Formulierung gewählt. Zum anderen bereitet aber auch die Mehrdeutigkeit von Begriffen Probleme. Viele Wörter haben je nach Kontext mehr als eine eindeutige Bedeutung. Betrachtet man beispielsweise das Wort 'Schloß' so kann dieses zum einen die Verriegelungsvorrichtung einer Tür bezeichnen, zum anderen kann damit aber auch der herrschaftliche Wohnsitz eines Adeligen gemeint sein. Das hat aber zur Folge, daß die Verwendung eines bestimmten Begriffes in einer Suchabfrage noch nicht bedeutet, daß ein Dokument, das mit demselben Begriff indexiert ist, zur Anfrage paßt. 2.4 Qualitätsmaße zur Beurteilung von Text Retrieval Verfahren Um ein Retrieval Verfahren beurteilen zu können, muß zunächst zwischen Effizienz und Effektivität unterschieden werden. Hierbei bezieht sich die Effizienz eines Verfahrens auf einen möglichst sparsamen Einsatz an Ressourcen. Bei diesen Ressourcen handelt es sich insbesondere um CPU-Zeit, Speicherplatz, Anzahl an I/O-Operationen und Antwortzeiten. Beim Begriff Effektivität steht hingegen das Kosten-Nutzen-Verhältnis, das sich bei der Verwendung eines bestimmten Verfahrens ergibt, im Vordergrund. Auf der Kostenseite werden dabei der vom Benutzer aufzubringende Zeitaufwand und seine mentale Belastung angeführt, die mit der Erzielung einer befriedigenden Lösung verbunden sind. Wobei die Lösung eines Text Retrieval Problems aus einer durch das entsprechende Verfahren ermittelten Menge an Ergebnisdokumenten besteht. Dem gegenüber steht auf der Nutzenseite die Qualität der erzielten Lösung [6]. Zur Bewertung der Qualität einer Lösung, wird meist auf das Konzept der Relevanz zurückgegriffen [6]. Allerdings stellt dieses Konzept nur ein subjektives Kriterium dar, da es lediglich die Einschätzung eines Benutzers bezüglich der Übereinstimmung bzw. Eignung eines Ergebnisdokuments hinsichtlich einer zuvor formulierten Abfrage ausdrückt. Ausgehend vom Konzept der Relevanz können dann die drei weiteren Meßgrößen Precision, Recall und Fallout abgeleitet werden. Precision gibt dabei den Anteil der tatsächlich relevanten Dokumente innerhalb der Menge der Ergebnisdokumente wider. Dahingegen bezieht sich der Recall-Wert auf den Prozentsatz an relevanten Dokumenten, die sich mit Hilfe des Retrieval Verfahrens ermitteln haben lassen. Fallout bezeichnet schließlich den Anteil der gefundenen irrelevanten Dokumente in Hinblick auf die Gesamtmenge aller irrelevanten Dokumente des Datenbestands [6]. Da Text Retrieval Verfahren wohl kaum in der Lage sein werden, jemals alle zu einer Suchabfrage relevanten Dokumente zu ermitteln, und gleichzeitig es auch unumgänglich ist, daß sich irrelevante Dokumente unter den Ergebnisdokumenten befinden, stellen diese Meßgrößen sinnvolle Kennzahlen dar, um die Qualität verschiedener Text Retrieval Verfahren miteinander vergleichen zu können. Mandl [4] (S. 30) hat in einer graphischen Darstellung diesen Zusammenhang zwischen relevanten bzw. irrelevanten Dokumenten und den Kennziffern Precision und Recall wie folgt veranschaulicht. Abbildung 4 Relevanz, Precision und Recall Text Retrieval 2, Sylvia Zotz 7 Es ist wichtig darauf hinzuweisen, daß eine gleichzeitige Optimierung von Precision und Recall nicht möglich ist. Während durch eine einfache Vergrößerung der Ergebnismenge der RecallWert verbessert werden kann, nimmt die Precision im Gegenzug ab. [4] Allerdings eignen sich diese Kennzahlen in ihrer so beschriebenen Form nur für Retrieval Modelle, die eine eindeutige Einteilung in relevante und irrelevante Dokumente zulassen. Während dies beim Booleschen Modell der Fall ist, findet bei Ranking Modellen eine graduelle Abstufung auf einer imaginären Skala statt, die die ermittelte Übereinstimmung zu einer Suchanfrage widerspiegelt. Eine scharfe Trennung zwischen relevanten und irrelevanten Dokumenten, wie es das obige Venn-Diagramm in der Abbildung 4 suggeriert, gibt es somit nicht. Der Benutzer arbeitet stattdessen die durch das Ranking Verfahren ausgegebene Dokumentenliste nach und nach ab, wobei sich mit jedem zusätzlichen Dokument, das er betrachtet, die Ergebnismenge vergrößert. Entsprechend lassen sich auch für jedes zusätzliche Dokument neue Werte für die Kennziffern Precision und Recall ermitteln, die in ein Koordinatensystem eingetragen werden können. Dabei entsteht dann der sogenannte RecallPrecision-Graph. Damit es aber auch bei Retrieval Verfahren die mit Ranking Modellen arbeiten, möglich wird, die verschiedenen Verfahren hinsichtlich ihrer Qualität miteinander zu vergleichen, wird zumeist die Precision auf neun Recall-Niveaus gemittelt (0.1 bis 0.9). 3 Ausgewählte Ansätze von Indexierungsverfahren beim Text Retrieval 3.1 Ansatz von Moffat und Zobel: 'Self-Indexing Inverted Files' Moffat und Zobel [2] beschreiben in ihrem Ansatz ein Verfahren, das mit invertierten Listen arbeitet. Sie erweitern dabei aber die herkömmlichen, ebenfalls auf invertierten Listen basierenden Modelle, indem sie zusätzliche Informationen in die Listen einfügen und ein neues Komprimierungskonzept verwenden. Außerdem modifizieren sie die Vorgehensweise bei der Bearbeitung von Suchabfragen. Im folgenden wird zunächst eine Erklärung des Begriffs invertierte Listen vorgenommen und anschließend der Ansatz von Moffat und Zobel ausführlicher dargestellt. 3.1.1 Definition und Aufbau invertierter Listen Invertierte Listen stellen eine Indexstruktur dar, die insbesondere bei der Verarbeitung von booleschen Suchanfragen häufig eingesetzt wird [2]. Wie bereits ausgeführt, wird bei der Indexierung des Dokumentenbestands eine Menge an Begriffen ermittelt, welche oftmals auch als Vokabular bezeichnet wird. Jeder Eintrag dieses Vokabulars besitzt einen Zeiger auf eine sogenannte invertierte Liste, welche all diejenigen Dokumente enthält, in denen der entsprechende Begriff vorkommt. Das bedeutet, daß es für jeden Indexbegriff eine invertierte Liste gibt, und diese wenigstens ein Dokument enthalten muß. Die einzelnen Dokumente in den invertierten Listen werden dabei durch Nummern referenziert, die in aufsteigender Reihenfolge angeordnet werden. Die invertierte Liste zu dem Begriff 'index' könnte zum Beispiel so aussehen [4] ( S. 2): I 'index' = <5, 8, 12, 13, 15, 18, 23, 28, 29, 40, 60> Nimmt man alle invertierten Listen zusammen, so erhält man eine invertierte Datei (inverted file), welche auf der Festplatte gespeichert wird. 8 Text Retrieval 2, Sylvia Zotz Um eine Anfrage eines Benutzers zu verarbeiten, sind genau diejenigen invertierten Listen zu betrachten, die zu den Suchbegriffen der Anfrage passen. Je nach Formulierung der Benutzeranfrage muß dann die Schnittmengenbildung oder eine Vereinigung der betroffenen invertierten Listen erfolgen, um so die Ergebnisdokumente zu erhalten. Allerdings ist die Ermittlung der Ergebnisdokumente – insbesondere wenn dem verwendeten Retrieval Modell ein Ranking Konzept zugrunde liegt – mit sehr hohen Kosten hinsichtlich Speicherplatzbedarf und Rechenzeit verbunden, wenn mit diesen herkömmlichen invertierten Listen gearbeitet wird. Zwar führen Komprimierungsmaßnahmen zu einer deutlichen Reduzierung des Speicherplatzes, doch wird aufgrund der infolge notwendig werdenden Dekomprimierung gleichzeitig die Verarbeitungsgeschwindigkeit herabgesetzt. Um sowohl die Rechenzeit als auch den Speicherplatzbedarf zu verringern, nehmen Moffat und Zobel einige Modifikationen am Aufbau der invertierten Listen vor. Dazu wird zunächst jedem Indexbegriff t, das heißt jedem Vokabulareintrag, ein Parameter ft angefügt, der die Vorkommenshäufigkeit des entsprechenden Begriffs in der gesamten Dokumentenbasis angibt. Außerdem wird in den invertierten Listen neben den Dokumentennummern zusätzlich jeweils die Vorkommenshäufigkeit des Begriffs innerhalb des einzelnen Dokuments d aufgenommen. Dieser Parameter wird mit ft,d bezeichnet und ermöglicht es, für jeden Begriff in jedem Dokument ein eigenes Gewicht zu berechnen [2]. Jeder Listeneintrag hat dann die folgende Form <d, ft,d > . Moffat und Zobel gehen des weiteren dazu über, nicht wirklich die Dokumentennummern in den invertierten Liste abzulegen, sondern lediglich die Differenzen zwischen aufeinanderfolgenden Dokumentennummern. Diese Differenzen werden d-gaps genannt. Eine Liste von Dokumenten wird mit Hilfe dieser Methode dann beispielsweise wie folgt abgespeichert: 5, 8, 12, 13, 15, 18, 23, 28, 29, 40, 60 ursprüngliche Liste 5, 3, 4, 1, 2, 3, 5, 5, 1, 11, 20 Liste mit d-gaps Der Vorteil dieser Vorgehensweise besteht darin, daß damit insgesamt kleinere Werte in den Listen vorkommen. Diese Werte werden dann nicht wie üblich binär codiert, sondern es wird die sog. Colomb-Codierung verwendet, die es erlaubt, kleine Integerwerte sehr knapp darzustellen und damit Speicherplatz einzusparen. Werden auf den invertierten Listen nun die üblichen Komprimierungsverfahren angewendet, so ist es nicht möglich irgendwo inmitten einer dieser Listen hineinzuspringen. Statt dessen muß eine Dekodierung der gesamten Liste erfolgen, denn der Ausgangspunkt für eine Dekodierung ist immer der Listenanfang. Um eine Abfrage verarbeiten zu können, ist aber im Grunde nur der Vergleich mit einem Teil der Listeneinträge nötigt. Damit es also möglich wird auch an eine beliebige Stelle innerhalb der Liste zu springen, fügen Moffat und Zobel zusätzliche Synchronisationspunkte (sog. skips) ein, von denen aus ebenfalls eine Dekodierung möglich ist. Zur Veranschaulichung dieser Vorgehensweise kann folgende Abbildung betrachtet werden, die von einer Menge von Paaren <d, ft,d > ausgeht: Abbildung 5 Self-Indexing Inverted File Text Retrieval 2, Sylvia Zotz 9 Um also feststellen zu können, ob ein Dokument d0 in einer invertierten Liste enthalten ist, werden zunächst einmal nur die ersten beiden Synchronisationspunkt dekodiert. Daraufhin werden die in diesen Synchronisationspunkten abgespeicherten Dokumentennummern d1 und d2 betrachtet. Falls d1 d0 < d2 gilt, befindet sich das gesuchte Dokument im ersten Block – d.h. zwischen den ersten beiden Synchronisationspunkten – und es ist nur notwendig diesen Block zu dekodieren. Ist das gesuchte Dokument jedoch dort nicht enthalten, so ist eine Dekodierung dieses Blocks nicht notwendig und es wird zum dritten Synchronisationspunkt gesprungen. Dieser wird dann wiederum dekodiert und daraufhin überprüft, ob d0 < d3 ist. Ist dies der Fall, so wird lediglich der zweite Block in der invertierten Liste dekodiert und der nicht benötigte erste Abschnitt kann einfach übersprungen werden. In dieser Weise wird zunächst die Liste der Synchronisationspunkte abgearbeitet, bis schließlich der gesuchte Eintrag gefunden wurde. Anschließend wird nur der entsprechende Block in der invertierten Liste decodiert. [2] Durch die zusätzliche Liste an Synchronisationspunkte erhöht sich zwar der Speicherplatzbedarf und damit auch die Rechenzeit für das Einlesen der Daten in den Arbeitsspeicher. Es hat sich aber gezeigt, daß die Einsparungen, die sich durch die, – aufgrund der Synchronisationspunkte nur teilweise nötigen – Dekodierung der invertierten Listen ergeben, größer sind und nicht durch die zusätzlich nötige Einlesezeit überkompensiert werden. [2] 3.1.2 Vorgehensweise bei der Verarbeitung von booleschen Suchanfragen Soll eine boolesche Suchanfrage bearbeitet werden, bei der die einzelnen Suchterme jeweils mit AND verbunden worden sind (Konjunktion der Suchterme), so müssen die entsprechenden Suchbegriffe zunächst im Vokabular gefunden werden. Anschließend werden sie aufsteigend gemäß ihrer Vorkommenshäufigkeit ft geordnet, und diejenige invertierte Liste, die zu dem Indexbegriff mit den wenigsten Dokumenteinträgen gehört, als erste in den Arbeitsspeicher geladen. Diese Liste stellt dann den Ausgangspunkt der Bearbeitung dar, da durch sie die Menge der Dokumente festgelegt wird, die letztendlich als Ergebnisdokumente in Frage kommen. Moffat und Zobel bezeichnen diese Dokumente deshalb auch als Kandidaten. Daraufhin wird die nächste invertierte Liste bearbeitet und für jeden Kandidaten wird überprüft, ob die entsprechende Dokumentennummer auch in ihr vorkommt. Ist dies nicht der Fall, so kann dieser Kandidat nicht zu den Ergebnisdokumenten gehören, wird verworfen und in den weiteren Listen nicht mehr gesucht. Sind alle invertierten Listen, die aufgrund der Suchbegriffe ausgewählt worden sind, auf diese Weise durchlaufen worden, so ergeben die am Ende noch verbleibenden Kandidaten die Menge der Ergebnisdokumente. Diese werden dann vom Retrieval System an den Benutzer ausgegeben. [2] Der Vorteil dieser Vorgehensweise besteht darin, daß zum einen von Anfang an möglichst wenige potentielle Ergebnisdokumente betrachtet werden müssen. Zum anderen nimmt aufgrund der beschriebenen Bearbeitungsreihenfolge die Zahl der Kandidaten kontinuierlich ab. Ist hingegen eine boolesche Suchanfrage zu verarbeiten, deren Suchterme jeweils mit OR verknüpft sind (Disjunktion von Suchtermen), so sind auch hier wiederum erst die entsprechenden Suchbegriffe im Vokabular zu suchen und die dazugehörigen invertierten Listen. Als Ergebnisdokumente werden dann all diejenigen Dokumente ausgegeben, die in irgendeiner dieser Listen referenziert worden sind. 10 Text Retrieval 2, Sylvia Zotz 3.1.3 Vorgehensweise bei der Verarbeitung von Suchanfragen mit Ranking Beim Ranking wird jedem Dokument ein Wert zugewiesen, der seine Übereinstimmung mit der Suchanfrage ausdrückt. Diejenigen Dokumente, die dabei am besten abschneiden werden am Ende als Ergebnis ausgegeben. Moffat und Zobel verwenden bei der Bestimmung der Ähnlichkeit eines Dokuments d mit der Suchanfrage q das sog. Cosinus-Maß, das durch folgende Funktion ausgedrückt wird: cosine (q, d ) ¦t w q , t w d , t ¦t wq2, t ¦t wd2, t Wobei wq,t bzw. wd,t das Gewicht des Begriffs t in der Suchanfrage q bzw. dem Dokument d darstellt. Zur Berechnung dieser Gewichte wird der Parameter ft herangezogen, der die Vorkommenshäufigkeit des Begriffs t innerhalb der gesamt vorliegenden Dokumentenbasis angibt und der Parameter ft,d bzw. ft,q der die Vorkommenshäufigkeit des Begriffs t im einzelnen Dokument d oder der Suchanfrage q bezeichnet. Denjenigen Begriffen, die seltener vorkommen, wird dabei ein größeres Gewicht zugewiesen, da davon ausgegangen wird, daß sie einen stärker unterscheidungstragenden Charakter besitzen als häufiger auftretende Wörter. Und das gleichzeitige Vorkommen eines seltenen Begriffs sowohl in der Suchanfrage als auch in einem Dokument wird als ein relativ zuverlässiger Hinweis auf einen Treffer angesehen. Suchanfragen mit Ranking ähneln in gewisser Hinsicht booleschen Anfragen, bei denen die Suchterme durch Disjunktionen verknüpft sind, da auch hier im Grunde jedes Dokument in dem irgendeiner der Suchbegriffe vorkommt, als möglicher Kandidat für die Ergebnisausgabe angesehen werden kann. [2] Die einfachste Vorgehensweise bei Suchanfragen mit Ranking wäre es, jedem Dokument d, das sich in der Dokumentenbasis befindet, eine Akkumulatorvariable Ad zuzuweisen, welche zu Beginn der Verarbeitung mit den Wert 0 initialisiert würde. Anschließend wäre für jedes Paar <d, ft,d > in der invertierten Listen für einen Suchbegriff t ein Gewicht wq,t • wd,t zu berechnen und zum Akkumulator Ad zu addieren. Ist dieser Vorgang für alle Suchbegriffe der Benutzeranfrage wiederholt worden, müßten abschließend alle Akkummulatorwerte Ad noch durch die Länge des jeweils zugehörigen Dokuments d dividiert werden, damit sie miteinander vergleichbar werden. Die so entstehenden Werte entsprechen dem oben beschriebenen CosinusMaß cosine(q,d). In einem letzten Schritt würden dann die Dokumente ausgegeben, welche die höchsten Cosinus-Maß-Werte besitzen. Dabei wird die Anzahl der Dokumente, die als Ergebnisdokumente zurückgeliefert werden sollen, bereits im voraus festgelegt. Der Nachteil dieser Vorgehensweise besteht darin, daß zum einen die Akkumulatoren sehr viel Platz im Arbeitsspeicher beanspruchen und zum anderen für deutlich mehr Dokumente das zugehörige Cosinus-Maß ermittelt werden muß, als letztendlich Ergebnisdokumente vorhanden sind. Um sowohl Rechenzeit als auch Speicherplatz zu sparen, wandeln Moffat und Zobel das eben dargestellte Verfahren leicht ab. Zur Reduzierung des Speicherbedarfs für die Akkumulatoren Ad ordnen sie zunächst die Suchbegriffe nach absteigender Gewichtung an. Von Anfang an wird eine Obergrenze für die Anzahl an Akkumulatoren festgelegt. Dann werden die Paare <d, ft,d > des Suchterms mit der stärksten Gewichtung betrachtet und für die in dieser Liste referenzierten Dokumente die Akkumulatoren berechnet. Wird dabei die zuvor festgelegte Höchstgrenze an zulässigen Akkumulatoren noch nicht überschritten, wird zur nächsten invertierten Liste übergegangen und die dort abgelegten Einträge bearbeitet, indem entweder errechnete Gewichte zu bereits vorhandene zugehörige Akkumulatoren hinzuaddiert oder neue Akkumulatoren angelegt werden. Bei dieser Vorgehensweise gibt es also nicht für jedes Dokument, das in der Datenbasis vorhanden ist, einen Akkumulator, sondern nur für diejenigen Dokumente, die Text Retrieval 2, Sylvia Zotz 11 tatsächlich für die Suchabfrage relevant sind. Zudem besteht die Einschränkung, daß keine weiteren Akkumulatoren mehr angelegt werden, wenn eine bestimmte Höchstzahl erreicht wurde, was bedeutet, daß die Anzahl an möglichen Kandidaten für die Ergebnisausgabe nicht mehr erweitert wird. Können keine weiteren Akkumulatoren mehr angelegt werden, weil die Obergrenze erreicht ist, so werden die invertierten Listen der noch verbleibenden Suchterme nach Dokumenten durchsucht, für die bereits im vorausgegangenen Schritt ein Akkumulator angelegt worden ist. Das Gewicht des entsprechenden Eintrags wird ermittelt, und der betroffene Akkumulator um diesen Wert erhöht. Sind alle invertierten Listen schließlich bearbeitet worden, wird wieder wie oben für jeden Akkumulator das zugehörige Cosinus-Maß berechnet und die Dokumente mit den größten Werten ausgegeben. Da die zulässige Anzahl von Akkumulatoren von Beginn an begrenzt war, muß das Cosinus-Maß nun für deutlich weniger Dokumente berechnet werden und entsprechend ist es möglich, Rechenzeit einzusparen. Das von Moffat und Zobel vorgeschlagene Verfahren ähnelt in seinem ersten Teil der Vorgehensweise bei der Verarbeitung von disjunktiven booleschen Suchanfragen. Ist die Höchstzahl an Akkumulatoren jedoch erreicht, erfolgt ein Wechsel zu einer eher der Behandlung konjunktiver boolescher Abfragen entsprechenden Verarbeitungsweise, da nun nur noch Dokumente betrachtet werden, die bereits als Einträge in den invertierten Listen höher gewichteter Suchterme vorkommen. [2] 3.1.4 Untersuchungsaufbau Grundlage für die Analyse des von Moffat und Zobel beschriebenen Verfahrens ist eine von der TREC zusammengestellte Sammlung von Artikeln aus den Bereichen Finanzwesen, Wissenschaft und Technologie. TREC steht dabei für Text REtrieval Converence – eine Veranstaltung, die seit 1992 mit dem Ziel durchgeführt wird, die Effektivität verschiedener Retrieval Systeme zu überprüfen. Die ausgewählten Artikel variieren dabei stark in ihrer Länge und bei einem maschinellen Indexierungsverfahren wurden fast 196 Millionen Indexterme ermittelt. Für die booleschen Suchanfragen wurden von Moffat und Zobel 25 Listen erstellt, die jeweils 50 Wörter enthielten. Bei diesen Listen handelt es sich um zufällige, aus der Dokumentenbasis ausgewählte Bestandteile von Seiten, aus denen mehrmals vorkommende Begriffe, Wörter mit demselben Stamm und Stopwörter entfernt wurden. Diese Vorgehensweise garantiert bei Suchabfragen zwischen 1 und 50 Begriffen, die aus ein und derselben Liste stammen, daß mindestens ein Treffer vorhanden sein muß, und die Verarbeitung einer Suchabfrage nicht abgebrochen wird, bevor nicht alle angegebenen Suchbegriffe abgearbeitet sind. Bei den Suchanfragen mit Ranking wurde auf eine standardisierte Sammlung von Anfragen zurückgegriffen, für die bereits bei der Text REtrieval Converence manuell eine Menge relevanter Dokumente bestimmt worden war. Für diese Suchanfragen lag also bereits eine entsprechende Relevanzbeurteilung vor. Dabei wurden zwei Durchläufe vorgenommen. Bei einem Durchlauf wurden die Stopwörter aus den Suchabfragen entfernt, beim anderen blieben sie enthalten. 3.1.5 Untersuchungsergebnisse Eine Analyse mit Hilfe des oben beschriebenen Untersuchungsaufbaus zeigt, daß durch das von Moffat und Zobel entwickelten Retrieval Verfahren im Vergleich zu den üblichen Vorgehensweisen beim Text Retrieval, sowohl der Speicherplatzbedarf deutlich gesenkt als auch die benötigte Rechenzeit erheblich reduziert werden kann. Zwar führt die Einführung von Synchronisationspunkten in den invertierten Listen zunächst zu einer Speicherplatzerhöhung von Text Retrieval 2, Sylvia Zotz 12 fast 20 %, doch kann diese durch das angewendete Komprimierungsverfahren kompensiert werden. Die Zeitersparnis, die dadurch zustande kommt, daß aufgrund der Synchronisationspunkte nicht mehr eine gesamte invertierte Liste dekomprimiert werden muß, sondern an einen beliebigen Punkt innerhalb der Liste gesprungen werden kann, ist beträchtlich. Im Vergleich zu Versuchen mit nicht komprimierten invertierten Listen ohne Synchronisationspunkte, ergeben sich bei den Suchanfragen mit Ranking dadurch Einsparungen von bis zu 50 % und bei den booleschen Anfragen sogar noch etwas größere. Einsparungen bezüglich des benötigten Speicherplatzes sind nicht nur durch das von Moffat und Zobel vorgeschlagene Komprimierungsverfahren bei den invertierten Listen zu erreichen, sondern v.a. auch aufgrund der Festlegung einer Obergrenze für die Anzahl der zu verwendenden Akkumulatoren bei der Bearbeitung von Suchanfragen mit Ranking. Unerwarteterweise ist bei dieser Vorgehensweise sogar eine verbesserte Retrieval Leistung zu vermerken, als bei der ursprünglichen Methode, bei der für jedes Dokument ein Akkumulator angelegt worden war. In einer Untersuchung konnten Moffat und Zobel nachweisen, daß die niedrig bis mittel gewichteten Suchbegriffe zwar einen wichtigen Beitrag für die Effektivität des Retrievals leisten, diese aber bei der Auswahl von Dokumenten nicht herangezogen werden sollten, wenn diese Dokumente nicht bereits auch höher gewichtete Suchbegriffe enthalten. Aufgrund der Anordnung der bei einer Anfrage zu bearbeitenden invertierten Listen nach abnehmender Gewichtung der zugehörigen Suchbegriffe, wird diese Bedingung erfüllt. Nur diejenigen Dokumente, die in den zuerst bearbeiteten invertierten Listen referenziert werden, erhalten einen Akkumulator. Als letztes wurde noch der Einfluß von Stopwörtern auf die Retrieval Leistung bei Suchanfragen mit Ranking überprüft. Dabei zeigt sich, daß durch die Entfernung von Stopwörtern keine Einbußen bezüglich der Effektivität des Retrieval Prozesses festzustellen sind, die Verarbeitungszeit aber erheblich gesenkt werden kann. 3.2 Ansatz von Deerwester, Dumais und Harshman: 'Indexing by Latent Semantic Analysis' Der von Deerwester et al. [1] entwickelte Text Retrieval Ansatz kann zu den in Abschnitt 2.2.3 beschriebenen Vektorraum Modellen gezählt werden. Allerdings werden bei den herkömmlichen Vektorraum Konzepten meist nur sehr spärlich besetzte Term-Räume erzeugt, was darauf zurückzuführen ist, daß die Dokumente in einer großen Datenbasis nur einen geringen Prozentsatz der Indexbegriffe enthalten, welche durch automatische Indexierungsverfahren ermittelt werden. Stellt man sich die Zuordnung von Indexbegriffen und Dokumenten als DokumentTerm-Matrix vor, so besitzen also nur wenige der Zellen einen Wert ungleich Null [4]. Um diesen Nachteil zu kompensieren, führen Deerwster et al. ein Verfahren ein, das die Dimensionalität des Term-Raums reduziert. Außerdem wollen sie mit ihrem Ansatz diejenigen Schwierigkeiten, die aufgrund mehrdeutiger bzw. synonymer Wörter entstehen, besser in den Griff bekommen. 3.2.1 Konzept der latenten semantischen Strukturen Herkömmliche Retrieval Modelle stehen häufig vor dem Problem, daß versucht wird, eine Übereinstimmung zwischen Dokument und Suchanfrage darauf zurückzuführen, daß beide dieselben Begriffe enthalten müssen. Einzelne Begriffe sind aber nach Deerwester et al. unzulängliche Indikatoren für den Inhalt bzw. das in einem Dokument behandelte Thema, da es 13 Text Retrieval 2, Sylvia Zotz unzählige Möglichkeiten gibt, ein und denselben Sachverhalt auszudrücken. Aus diesem Grunde entwickeln Deerwester et al. das Konzept der latenten semantischen Strukturen, welches sie bei der Vorverarbeitung von Suchanfragen heranziehen. Mit Hilfe der latenten semantischen Strukturen soll zum Ausdruck gebracht werden, daß ein Zusammenhang bzw. eine Verbindung zwischen verschiedenen Begriffen bestehen kann. Es soll vorhersagbar werden, welche Begriffe tatsächlich von einer Suchanfrage impliziert werden oder den Inhalt eines Dokuments am besten widerspiegeln. Das gehäufte Auftreten bestimmter Wortkombinationen wird dabei als wichtiger Hinweis angesehen, daß zwischen den verwendeten Begriffen eine Beziehung besteht. Die Stärke einer solchen Beziehung – bzw. die Höhe der entsprechenden Korrelation – wird unter Verwendung von statistischen Techniken ermittelt. Kommen in einer Dokumentendatenbasis beispielsweise zwei Begriffe in vielen Dokumenten vor und in den meisten von diesen auch gleichzeitig, so ist es sinnvoll anzunehmen, daß in denjenigen Dokumenten, in denen einer der beiden Begriffe fehlt, dies nur zufällig geschieht bzw. auf die sprachlichen Vorlieben des Autors zurückzuführen ist. Enthält also eine Suchabfrage den in manchen Dokumenten fehlenden Begriff, sollten trotzdem auch diese Dokumente als Ergebnis mitausgegeben werden. Die Auswahl eines Ergebnisdokuments erfolgt somit nicht mehr aufgrund gemeinsam vorkommender Begriffe in Suchanfrage und Dokumenten, sondern anhand latenter semantischer Strukturen, welche letztendlich eine Verdichtung der Bedeutung eines Begriffs oder des Inhalts eines Dokuments darstellen. Wie nun aber diese latenten semantischen Strukturen von Deerwester et al. ermittelt und für die Bearbeitung von Suchabfragen verwendet werden, wird im folgenden aufgezeigt. 3.2.2 Umsetzung des Konzepts der latenten semantischen Strukturen mit Hilfe der Singulärwertzerlegung Ausgangspunkt der Umsetzung des Konzepts der latenten semantischen Strukturen ist eine Dokument-Term-Matrix, bei der in jeder Zelle die Häufigkeit vermerkt ist, mit der ein bestimmter Begriff in einem Dokument vorkommt. Welche Begriffe dabei zu berücksichtigen sind, wird mit einem der herkömmlichen Indexierungsverfahren festgelegt. Anschließend wird mit Hilfe des mathematischen Verfahrens der Singulärwertzerlegung bzw. Singular Value Decomposition (SVD) aus dieser ursprünglichen Matrix eine reduzierte Matrix gewonnen. Hintergrund von SVD ist, daß jede beliebige Rechtecksmatrix X so in drei andere Matrizen zerlegt werden kann, daß deren Produkt wieder die Ausgangsmatrix ergibt – also X = T0 S0 D0. Dabei stellen T0 und D0 orthogonale Spalten dar und S0 ist eine Diagonalmatrix, die die sog. Singulärwerte (Singular Values) enthält. Diese Sigular Values sind alle positiv und werden nach fallender Wertigkeit angeordnet. Die Größe des Wertes zeigt dabei an, wieviel der betreffende Singulärwert zur Erzeugung der ursprünglichen Matrix X beiträgt. Die Position in der Diagonalmatrix spiegelt also die Wichtigkeit des betreffenden Singulärwerts wieder. [4] Abbildung 6 Reduktion der Ausgangsmatrix Text Retrieval 2, Sylvia Zotz 14 Der Vorteil der Singulärwertzerlegung besteht nun darin, daß mit Hilfe dieses Verfahrens eine modifizierte Matrix X ' mit geringerer Dimensionalität geschaffen werden kann, welche jedoch trotzdem eine gute Annäherung an die Ausgangsmatrix X darstellt. Hierzu werden die k größten Werte der Diagonalmatrix ausgewählt und alle restlichen auf Null gesetzt. Multipliziert man anschließend die Matrizen T0, die abgeänderte Diagonalmatrix S0 ' und D0, so erhält man die Matrix X ' mit der Dimensionalität k. Im Grunde führt also das Verfahren der Singular Value Decomposition zu einer Komprimierung der ursprünglichen Dokumenten-Term-Matrix. Die k Dimensionen der neuen Matrix, welche oftmals auch als LSI-Dimensionen bezeichnet werden, bilden die Grundlage des Konzepts von Deerwester et al. Sie lassen sich jedoch nicht inhaltlich interpretieren oder als einzelne Begriffe oder Gruppen von Begriffen deuten, sondern stehen letztlich für komplexe Kombinationen von Termen. Es handelt sich also um künstliche Konstrukte, welche sozusagen gemeinsame Bedeutungen repräsentieren, die aus verschiedenen Begriffen und Dokumenten herausgefiltert wurden. [1] Mit Hilfe der LSI-Dimensionen läßt sich ein k-dimensionaler Raum aufspannen, in dem jeder Begriff und jedes Dokument durch einen Vektor dargestellt werden kann. Die einzelnen Komponenten der Vektoren geben dabei die jeweilige Gewichtung für die verschiedenen LSIDimensionen wider. Die Singulärwertzerlegung kann somit als eine Technik verstanden werden, die es erlaubt, für das Text Retrieval unabhängige Indexvariablen – nämlich die LSI-Dimensionen – zu ermitteln. Aufgrund der Reduzierung der ursprünglichen Anzahl von Term-Dimensionen auf eine deutlich geringere Zahl von LSI-Dimensionen wird es jetzt möglich, daß Dokumente, die zwar das gleiche Thema behandeln, sich aber hinsichtlich der Begriffswahl unterscheiden, durch denselben Vektor dargestellt werden können. [1] 3.2.3 Vorgehensweise bei der Verarbeitung von Suchanfragen Wie bereits oben angeführt, wird durch die LSI-Dimensionen ein k-dimensionaler Raum aufgespannt, in dem jeder Begriff und jedes Dokument durch einen Vektor repräsentiert wird. Auch eine Suchanfrage ist letztlich nichts anderes als eine Sammlung von Wörtern und kann aus diesem Grunde ebenso als Vektor dargestellt werden, dessen Komponenten die Gewichte für die jeweiligen LSI-Dimensionen angeben. Dazu wird die Suchanfrage im Mittelpunkt der Begriffe plaziert, aus denen sie sich zusammensetzt. Eine Suchanfrage ist somit eine Art PseudoDokument, welches gleichzeitig mit den übrigen Dokumenten der Datenbasis in dem, durch die LSI-Dimensionen aufgespannten Raum eingetragen werden kann. Um einen Vergleich zwischen Suchanfrage und Dokumenten vorzunehmen, wird die Ähnlichkeit bzw. Nähe zwischen den entsprechenden Vektoren berechnet. Dabei stellt der Kosinus eine gute Möglichkeit dar, um diese Ähnlichkeit zu ermitteln. Diejenigen Dokumente, die der Anfrage am nächsten liegen, werden als Ergebnis zurückgeliefert. Üblicherweise wird jedoch eine konkrete Begrenzung für die Anzahl der auszugebenden Treffer angegeben. Entweder wird eine Obergrenze für die Ergebnisdokumente festgelegt, oder es wird ein Wert für die notwendige Nähe zwischen Abfrage und Dokument bestimmt. Dokumente, die hinsichtlich ihrer Nähe zur Suchanfrage weiter entfernt liegen, zählen dann nicht mehr zu den Ergebnisdokumenten. Text Retrieval 2, Sylvia Zotz 15 3.2.4 Untersuchungsaufbau Deerwester et al. verwenden zur Messung der Retrieval Leistung ihres Konzepts des Latent Semantic Indexing (LSI) die beiden Dokumentensammlungen MED und CISI, für welche sowohl standardisierte Suchanfragen als auch eine Beurteilung hinsichtlich der Relevanz der ermittelten Ergebnisdokumente vorliegen. Die entsprechenden Dokumente bestehen jeweils aus einer Zusammenfassung und dem vollständigen Titel. MED ist dabei eine Menge von 1033 Abstracts aus dem Bereich der Medizin zu der 30 Suchanfragen gehören. Bei einer automatischen Indexierung wurden annähernd 6000 Indexbegriffe ermittelt, und die durchschnittliche Anzahl der zu verarbeitenden Wörter in einer Suchanfrage beträgt ungefähr 10. Bei CISI handelt es sich um eine Sammlung von 1460 Abstracts aus dem informationswissenschaftlichen Bereich zusammen mit 35 Suchanfragen. Eine Suchanfrage besteht hier im Mittel aus ungefähr 8 zu verarbeitenden Begriffen. Mit dieser Dokumentenbasis wurden für die Analyse der Retrieval Leistung zwei Durchläufe vollzogen, die sich in den verwendeten automatischen Indexierungsverfahren unterschieden. Dabei betrug die Anzahl der erfaßten Indexbegriffe beim ersten Analysedurchlauf 5135. Im zweiten Durchlauf wurde diese Zahl auf 5019 gesenkt. Dies geschah dadurch, daß Wörter auf ihre Stammformen reduziert wurden, was zur Folge hatte, daß einige der vorherigen Indexbegriffe wegfielen. Gemäß Deerwester et al. [1] ist die CISI-Dokumentensammlung schon immer als schwierig für automatische Text Retrieval Verfahren eingeschätzt worden, da es sich um eine recht homogene Zusammenstellung von Dokumenten handelt, die auf der Basis von Abstracts nur schwer unterscheidbar sind. Außerdem sind die zugehörigen Suchanfragen nur recht allgemein gehalten. Um die Retrieval Leistungen, die bei der Anwendung des Verfahrens des Latent Semantic Indexing erzielt wurden, beurteilen zu können, wird ein Vergleich mit zwei anderen Text Retrieval Systemen vorgenommen, deren Leistungen ebenfalls anhand der MED und der CISI Dokumentensammlung gemessen wurden. 3.2.5 Untersuchungsergebnisse Die Ergebnisse der Analyse der Retrieval Leistungen des LSI-Modells erscheinen erfolgversprechend. So zeigt das LSI-Konzept hinsichtlich des erzielten Precision-Wertes angewandt auf die MED Dokumentensammlung eine bessere Leistung als die beiden Vergleichsverfahren. Allerdings gilt dies nur für die höheren Recall-Level. Warum die gemessene Precision von LSI bei den niedrigen Recall-Stufen so gering ist, führen Deerwester et al. zum einen darauf zurück, daß der Wert für die Precision bei allen verwendeten Retrievalverfahren bereits sehr gut war und damit eine weitere Verbesserung kaum noch möglich erscheint. Zum anderen argumentieren sie, daß ihr Konzept vor allem darauf ausgerichtet ist, mit Schwierigkeiten umzugehen, die aufgrund der Benutzung von Synonymen entstehen. Synonyme Begriffe stellen aber auf den unteren RecallStufen kaum ein Problem dar, da im Grunde jede Übereinstimmung von Begriffen zur Ausgabe eines relevanten Dokuments führt. Damit kommen die Vorteile des LSI-Konzepts – so die Autoren – erst bei höheren Recall-Level zum tragen, was durch das Untersuchungsergebnis dann auch bestätig wird. Zudem hat sich bei der Verarbeitung von Suchanfragen aus der MED Dokumentenbasis herausgestellt, daß eine Reduzierung der ursprünglichen annähernd 6000 Term-Dimensionen auf 100 LSI-Dimensionen optimal erscheint. So steigt die Retrievalleistung kontinuierlich an, indem man ausgehend von 10 LSI-Dimensionen immer weitere hinzunimmt, und fällt dann ab 100 LSIDimensionen wieder ab. Text Retrieval 2, Sylvia Zotz 16 Bei der CISI Dokumentensammlung schließen alle verwendeten Retrieval Verfahren mehr oder weniger gleich schlecht ab. Dabei ist das Ergebnis der LSI-Methode im ersten Durchlauf, bei dem keine Reduzierung der Indexbegriffe auf die Stammformen vorgenommen worden war, sogar etwas schlechter als bei einem der beiden Vergleichsverfahren. Um ausschließen zu können, daß die Minderleistungen des LSI-Ansatzes nicht lediglich auf Unterschiede bei der automatischen Indexierung zurückzuführen sind, wird in einem zweiten Durchlauf – wie bei den Vergleichsverfahren bereits auch zuvor – die Indexbegriffmenge um Wörter mit gleichem Stamm vermindert. Dadurch kann eine leichte Verbesserung der Retrieval Leistung des LSIModells beobachtet werden. Es schließt nun genauso gut ab, wie das Vergleichsverfahren, das im ersten Durchlauf noch leicht überlegen war. Eine darüber hinausreichende Verbesserung ist allerdings nicht zu beobachten. Bei der CISI Dokumentensammlung zeigt sich damit jedoch, daß die Anwendung der Singulärwertzerlegung hier nicht mehr Nutzen erbringt, als die Verwendung der ursprünglichen Dokument-Term-Matrix. [1] Insgesamt wird durch die Untersuchungsergebnisse deutlich, daß das Konzept des 'Latent Semantic Indexing' die Schwierigkeiten, die in Verbindung mit synonymen Begriffen auftreten, sehr gut lösen kann. Im Umgang mit mehrdeutigen Begriffen scheitert es hingegen1. 4 Fazit Die vorliegende Arbeit setzt sich mit dem Thema Text Retrieval auseinander. Um einen Überblick über den Themenbereich zu geben, wird zunächst auf grundlegende Indexierungsverfahren und verschiedene allgemeine Retrieval Modelle eingegangen. Anschließend werden die Probleme, die bei der Verarbeitung von Suchanfragen zu bewältigen sind, kurz skizziert und einige Maße zur Beurteilung der Qualität von Retrieval Systemen betrachtet. Der Schwerpunkt der Arbeit liegt jedoch auf der Vorstellung der Retrieval Konzepte von Deerwester et al. und von Moffat und Zobel. Während der Ansatz Self-Indexing inverted Files von Moffat und Zobel ein vollständiges Retrieval System beschreibt, stellt das Latent Semantic Indexing Verfahren von Deerwester et al. nur eine Komponente eines Retrieval Modells dar, welche der Vorverarbeitung von Suchanfragen dient. Entsprechend verschieden umfassend fallen die Qualitätsbeurteilungen der beiden Verfahren aus. Deerwester et al. beschränken sich darauf, ihr Konzept v.a. hinsichtlich der erzielten Precision-Werte mit anderen Retrieval Verfahren zu vergleichen. Themen wie Speicherplatzbedarf und Verarbeitungszeit werden nur sehr kurz angeschnitten. Es wird lediglich allgemein darauf hingewiesen, daß aufgrund der Arbeit mit einer reduzierten Matrix, Speicherkapazität eingespart werden kann, diese Einsparungen aber durch die hohe Verarbeitungszeit, die beim Vergleich des Suchanfragevektors mit allen Dokumentenvektoren nötig wird, wieder zunichte gemacht werden könnten. Genauere Berechnungen hierzu werden allerdings nicht durchgeführt, sondern es erfolgt lediglich die Einschätzung, daß dadurch eine Verwendung des Latent Semanic Indexing Ansatzes in seiner oben beschriebenen Form für große Dokumentensammlungen eher als ungeeignet erscheint. Moffat und Zobel stellen hingegen neben einer kurzen Betrachtung des PrecisionQualitätsmaßes sehr ausführliche Untersuchungen zum Speicherplatz- und Rechenzeitbedarf ihres Verfahrens an, und kommen zu dem Schluß, daß ihr Konzept den üblichen Retrieval Ansätzen in jeder Hinsicht vorzuziehen ist. 1 Deerwester et al. führen die Schwierigkeiten, die bei der Verarbeitung von mehrdeutigen Begriffen darauf zurück, daß bei ihrem Konzept jeder Begriff als ein einziger Punkt dargestellt wird. Ein Begriff, der aber mehrere verschiedene Bedeutungen besitzt, wird im Mittelpunkt seiner Bedeutungen plaziert. Damit kann es passieren, daß keine der eigentlichen Bedeutungen mehr diesem Durchschnittswert entspricht. Text Retrieval 2, Sylvia Zotz 17 Bei der Beurteilung der beiden skizzierten Ansätze wurde jedoch nicht auf dieselben Dokumentensammlungen zurückgegriffen, so daß eine abschließende Beurteilung hinsichtlich der Überlegenheit eines der beiden Verfahren noch aussteht. 5 Literatur [1] Scott C. Deerwester, Susan T. Dumais, Thomas K. Landauer, George W. Furnas, and Richard A. Harshman. Indexing by latent semantic analysis. JASIS, 41(6):391-407, 1990. [2] Alistair Moffat and Justin Zobel. Self-indexing inverted files for fast text retrieval. ACM Transactions on Information Systems, 14(4):349-379, 1996. [3] Reginald Ferber. Information Retrieval - Suchmodelle und Data-Mining-Verfahren für Textsammlungen und das Web. Dpunkt Verlag, 2003. [4] Thomas Mandl. Tolerantes Information Retrieval - Neuronale Netze zur Erhöhung der Adaptivität und Flexibilität bei der Informationssuche. Schriften zur Informationswissenschaft 39, Herausgegeben vom Hochschulverband für Informationswissenschaft (HI) e.V. Konstanz, 2001. [5] Landauer, T.K., Foltz, P.W., & Laham. Introduction to Latent Semantic Analysis. Discourse Processes, 25, 259-284, 1998. [6] Norbert Fuhr. Information Retrieval. Skriptum zur Vorlesung im SS 06. http://www.is.informatik.uni-duisburg.de/courses/ir_ss06/folien/irskall.pdf (am 03.05.2006). 6 Abbildungsverzeichnis Abbildung 1 Abbildung 2 Abbildung 3 Abbildung 4 Abbildung 5 Abbildung 6 Text Retrieval Prozeß................................................................................................2 Elementare Operationen im Booleschen Retrieval Modell.......................................4 Zweidimensionaler Term-Raum mit Suchanfrage und zwei Dokumenten..............5 Relevanz, Precision und Recall.................................................................................6 Self-Indexing Inverted File ....................................................................................... 8 Reduktion der Ausgangsmatrix...............................................................................13 Seminar 1912 Multimedia-Datenbanken Content Based Image Retrieval 2 Karsten Mende Content Based Image Retrieval 2 Karsten Mende Seite: 1 Inhaltsverzeichnis 1 2 Einführung Bilddatenbanken...................................................................................................2 Beispiel für die Ermittlung gleicher / ähnlicher Formen in einer Formen-DB (Jagadish)......2 2.1 Form-Darstellung ............................................................................................................2 2.2 Speicherungsstrukturen ...................................................................................................3 2.3 Indexstrukturen................................................................................................................5 2.4 Query-Arten ....................................................................................................................6 2.4.1 Full-Match............................................................................................................... 6 2.4.2 Match with shift ......................................................................................................7 2.4.3 Match with Uniform Scaling...................................................................................7 2.4.4 Match with Independent Scaling.............................................................................7 2.4.5 Approximate Match.................................................................................................7 2.5 Spezialfälle ......................................................................................................................7 2.5.1 Vielfache Repräsentationen.....................................................................................7 2.5.2 Unterschiedliche Anzahl Dimensionen...................................................................8 2.6 Testergebnisse .................................................................................................................9 2.7 Empfindlichkeitsreduktion ............................................................................................10 2.8 Höhere Dimensionen.....................................................................................................10 2.9 Ausblick ........................................................................................................................11 3 Beispiel für Farb-Queries unter Verwendung von Farb-Histogrammen (QBIC) .................11 3.1 Farb-Darstellung mittels Farb-Histogramm ..................................................................11 3.2 Abstandsberechnung .....................................................................................................12 3.3 Speicherungsstrukturen .................................................................................................14 3.4 Indexstrukturen..............................................................................................................14 3.5 Query-Arten ..................................................................................................................14 3.5.1 Direct Query..........................................................................................................15 3.5.2 Query by example .................................................................................................15 3.6 Testergebnisse ...............................................................................................................15 3.7 Laufzeit-Testergebnisse ................................................................................................16 3.8 Schlußfolgerungen ........................................................................................................16 4 Fazit.......................................................................................................................................17 5 Literaturliste ..........................................................................................................................17 Content Based Image Retrieval 2 Karsten Mende Seite: 2 1 Einführung Bilddatenbanken Im Zuge der Digitalisierung von Bildern und Fotos und der Weiterentwicklung von DatenbankTechnologien sind weltweit viele große Bilddatenbanken entstanden. Mit herkömmlichen Index- und Suchmethoden, bei denen den Bildern Schlüsselwörter zugeordnet werden, die den Inhalt (grob) beschreiben, ist nur eine grobe Suche, die sich an den vergebenen Schlüsselwörtern orientieren muß, möglich. Werden z.B. Strandbilder gesucht und den entsprechenden Bildern ist aber nicht das Schlüsselwort „Strand“ zugeordnet worden, muß möglicherweise die Abfrage auf eine Kategorie „Urlaub“ eingeschränkt werden und Strandbilder, die nicht während eines Urlaubes entstanden sind, werden nicht gefunden. Speziell Bilddatenbanken und auch allgemein Multimedia-Datenbanken haben normalerweise u.a. folgende Eigenschaften [FBF+94]: Objekte können relativ groß sein und es gibt viele Objekte. Updates sind jedoch selten. Die Anzahl der Merkmale jedes Objektes kann hoch sein, z.B. um die 100. Abstandsfunktionen müssen nicht unbedingt euklidisch sein, es können Wechselbeziehungen zwischen den Merkmalen bestehen. Die Anwender- und Abfrage-Schnittstellen sollten so visuell und intuitiv wie möglich gestaltet sein. Die Laufzeit der Abfragen sollte kurz sein, da die MultimediaDatenbanken interaktiv benutzt werden. In den beiden nachfolgend aufgeführten Beispielen von Bilddatenbanken erfolgt die Suche nicht über den Bildern zugeordneten Text-Attributen sondern über aus den Bildern berechneten Merkmalen. Nach diesen vorberechneten Merkmalen sind die Bilder indiziert und auffindbar. Diese Merkmale untersützen gut die o.g. visuelle Schnittstelle des Programms zum Anwender, der z.B. Farbmerkmale mittels einer Farbpalette auswählen kann oder für eine Vorlageskizze für die Abfrage ein Zeichentool verwenden kann. Dies hat den Vorteil, daß auch nach „unerwarteten“ Fragestellungen gesucht werden kann und nicht nur nach vorgegebenen Überschriften wie z.B. „Urlaubsbild“, „Auto“ oder „Bild mit viel Blau“. „Unerwartete“ Fragestellungen sind z.B. solche wie „Finde alle Bilder die gleich oder ähnlich einem vorgegebenen Bild sind“ oder die eine ähnliche Form, Struktur oder einen ähnlichen Farbverlauf haben. Solch eine Suche ist mit Textattributen natürlich nicht möglich. 2 Beispiel für die Ermittlung gleicher / ähnlicher Formen in einer Formen-DB (Jagadish) In diesem Beispiel, entnommen aus [Jag91], geht es um eine Datenbank, in der 16.000 ausschließlich Computer-generierte Formen enthalten sind. Jede Form ist aus jeweils 10 verschiedenen zufällig generierten Rechtecken erstellt. Im folgenden wird vorgestellt, wie man gleiche oder ähnliche Formen in solch einer großen Formen-Datenbank findet bzw. ermittelt. Ein verwandtes - hier allerdings nicht behandeltes - Problem ist das Auffinden einer (Teil-)Form in einem großen Bild. 2.1 Form-Darstellung In der Datenbank sind nur geradlinige, 2-dimensionale rechtwinklige Formen enthalten. Da eine allgemeine Form mittels Treppenstufen, die fein genug abgestuft sind, sehr gut angenähert werden kann, sind die vorgenannten Beschränkungen nicht zu strikt. Jede Form in der Datenbank besteht aus einer bestimmten Folge von Rechtecken. Diese Folge muß erstellt und berechnet werden, bevor eine Form in den Index aufgenommen werden kann. Eine Form wird beschrieben mittels der relativen Positionen der Rechtecke. Content Based Image Retrieval 2 Karsten Mende Seite: 3 Es gibt 2 Methoden, wie die Formen erstellt bzw. abgedeckt werden können: 1. Additive rechteckige Überdeckungen Jedes neu dazu kommende Rechteck R muß neue Bereiche überdecken, die Überdeckung wird mit jedem Rechteck größer. Es darf kein Rechteck geben, welches durch schon existierende Rechtecke komplett überdeckt wird. 2. Allgemeine rechteckige Überdeckungen Allgemeine rechteckige Überdeckungen erlauben Addition und Subtraktion von Rechtecken, Subtraktion wird als pixelweise Mengen – Differenz ausgeführt. Für beide Methoden gibt es eine Vielzahl von Lösungen je Form. Es werden allerdings nur Rechtecke minimaler Größe zugelassen, also die Rechtecke dürfen nicht größer sein als zur Darstellung der Überdeckung unbedingt notwendig. Die Beschreibung der Objektmerkmale erfolgt sequentiell, die wichtigsten Merkmale (größten Rechtecke) stehen vorne. Jeder Abbruch der Merkmalsfolge stellt eine gute Annäherung dar. Der Grundgedanke dieses Vorgehens ist es, eine sequentielle Merkmalsfolge zu erhalten und dann irgendwann abzuschneiden. Ein geringer Fehler wird beim Abschneiden immer bleiben, aber Störfaktoren wie Dreckflecken werden dafür ausgeschlossen. Allgemeine rechteckige Überdeckungen sind prägnanter: Bild 1: (a) rechteckiger Rahmen, (b) allgemeine rechteckige Überdeckung (c) additive rechteckige Überdeckung Im Beispiel des zu überdeckenden Rahmens (a) müssen bei der allgemeinen rechteckigen Überdeckung (b) nur 2 Rechtecke für die Beschreibung verwendet werden anstatt mindestens 4 bei einer additiven rechteckigen Überdeckung (c). Die Berechnung ist allerdings etwas aufwendiger als bei der additiven rechteckigen Überdeckung. 2.2 Speicherungsstrukturen Jedes Rechteck kann identifiziert werden durch die beiden Ecken unten links (L-Corner) und oben rechts (U-Corner). Jede Ecke hat eine X- und eine Y-Koordinate , pro Rechteck sind also 4 Koordinaten zu seiner Bestimmung notwendig. Für K Rechtecke sind also 4K Koordinaten erforderlich. Es werden einige Transformationen vorgenommen: Die Position des Rechtecks wird ausgedrückt durch die Mittelwerte der X und Y-Koordinaten der L-Corner und U-Corner: § xL xU y L yU · , ¨ ¸ 2 ¹ © 2 Content Based Image Retrieval 2 Karsten Mende Seite: 4 Die Größe des Rechtecks wird ausgedrückt durch die Längen der Seiten: xU xL , yU yL Die Position des 1. Rechtecks wird zur Normalisierung der Positionen der anderen Rechtecke genommen: Der Mittelpunkt des 1. Rechtecks stellt den Ursprung im Koordinatensystem dar. Bei allen anderen Rechtecken wird von ihren Positionswerten der Wert des neuen Ursprungs (nach dem alten Koordinatensystem) abgezogen. Von jeder X- und jeder Y-Koordinate wird also jeweils eine Konstante abgezogen. Außerdem wird die Größe des 1. Rechtecks zur Normalisierung der Größen und Positionen der folgenden Rechtecke verwendet: deren X- und Y-Größen- und Positionswerte werden durch die X- und Y-Größenwerte des 1. Rechtecks dividiert. Auf die normalisierten Größenwerte wird noch der natürliche Logarithmus angewendet. Eine Form, beschrieben durch eine Menge von K Rechtecken, wird gespeichert durch folgende Faktoren: 1. Ein Paar von Verschiebungs-Faktoren für die X- und Y-Koordinaten (shift factors) 2. Einen Bereichs-Skalierungsfaktor (X-Größenwert mal Y-Größenwert des 1. Rechteckes, area scale factor) 3. Einen Verzerrungsfaktor (Y-Skalierung geteilt durch X- Skalierung, distortion factor) sowie für die K-1 letzten Rechtecke: 4. Ein Paar X,Y-Koordinaten für den Rechteck-Mittelpunkt nach Verschiebung und Skalierung 5. Ein Paar für die X- und Y-Längen nach Skalierung und Logarithmierung Da aufgrund der Normalisierung die Position des Mittelpunktes des 1. Rechtecks der neue Ursprung ist und seine Größe (1,1) beträgt, werden diese Werte des 1. Rechtecks nicht gespeichert. Da die ersten Rechtecke die größten Rechtecke sind, sind in ihnen gleichzeitig auch die wichtigsten Informationen enthalten. Erfahrungswerte mit allen möglichen Formen haben ergeben, daß bereits bei nur 2 bis 5 indizierten Rechtecken die Treffermenge sehr klein wird. Nachfolgend sind verschiedene Beschreibungen für die gleiche Form am Beispiel der Zahl 5 dargestellt: Originäre Form: Berechnete Form, Rechtecke 1 - 5: 1 4 5 3 2 Bild 2: Originäre Form und „Zwischenstand“ der berechneten Form nach 5 Rechtecken Die Verschiebungsfaktoren und die Skalierungsfaktoren, insbesondere der Bereichsskalierungsfaktor beziehen sich auf die hier im Dokument dargestellte Größe der Form. Der Wert für den X-Skalierungsfaktor beträgt 3.6, für den Y-Skalierungsfaktor 0.9. Damit ergibt sich ein Bereichs-Skalierungsfaktor von 3.24. Content Based Image Retrieval 2 Karsten Mende Seite: 5 Der Verzerrungsfaktor ergibt sich aus den X- und Y-Skalierungsfaktoren, ist jedoch unabhängig von der Größe der Darstellung der Form, da ihr Verhältnis bei veränderten Maßstäben gleich bleibt. Die Positions- und Größenwerte des 1. Rechtecks werden wie o.a. nicht explizit gespeichert. Query-Form-Beschreibung bestehend aus o.g. Faktoren und z.B. 3 Rechtecken: [(-1.8,-4.45),(3.24),(0.25)](-0.08,-4.83,-0.40,0.29)(0.33,-3.67,-1.11,0.51) Index-Form-Beschreibung bestehend aus o.g. Faktoren und 4 Rechtecken: [(-1.8,-4.45),(3.24),(0.25)](-0.08,-4.83,-0.40,0.29)(0.33,-3.67,-1.11,0.51)(-0.38,-1.50,-1.39,0.69) Daten-Form-Beschreibung bestehend aus o.g. Faktoren und 10 Rechtecken [(-1.8,-4.45),(3.24),(0.25)](-0.08,-4.83,-0.40,0.29)(0.33,-3.67,-1.11,0.51)(-0.38,-1.50,-1.39,0.69) (-0.08,-2.33,-1.11,0.00)(…)(…)(…)(…)(…) Der im Index gespeicherte Datensatz zur Form ist also schon abgeschnitten gegenüber dem in der Datenbank gespeicherten kompletten Satz. Die Query-Beschreibung der gleichen Form kann nochmals kürzer als der Datensatz im Index sein. Die Form-Beschreibung wurde hiermit umgewandelt in eine Koordinatenmenge für Punkte im 4K-dimensionalen Raum. 2.3 Indexstrukturen Nun können beliebige Indexmethoden für mehrdimensionale Punktmengen verwendet werden, z.B. Grid-Files, k-d-B-Bäume, buddy trees, holy-brick-trees, z-Kurven usw. Im folgenden möchte ich den k-d-B-Baum als eine Kombination der Datenstrukturen k-d-Baum und B-Baum vorstellen, siehe auch [Sch99]. Ein k-d-B-Baum unterteilt einen Raum mit kDimensionen. Der k-d-B-Baum ist ein Vielweg-Suchbaum. Da die inneren Knoten nur Separatorfunktion haben, ähnelt er dem B+-Baum. Jeder Knoten entspricht einer Seite im Arbeitsspeicher bzw. einem Block im Sekundärspeicher. Somit kann die in einem DBS vorgegebene Seitenstruktur gut auf den k-d-B-Baum abgebildet werden. Jeder innere Knoten entspricht einer Indexseite und bildet einen Teilbaum des k-d-B-Baumes ab, der nach mehreren Attributen hintereinander verzweigt Außerdem enthält jeder innere Knoten eine Anzahl von Einträgen der Form (I,Z). Dabei steht Z für einen Zeiger auf einen Nachfolgerknoten und I für ein k-dimensionales Intervall (I0, I1,…,IK-1), das alle k-dimensionalen Intervalle des inneren Knotens, auf den Z zeigt, als Vereinigung enthält. Das Intervall I entspricht einer Region. Jeder Blattknoten enthält Indexeinträge k*, wobei sich jeder Eintrag auf einen Punkt bezieht. Zeigt Z auf einen Blattknoten, so enthält I alle Punkte die in der Seite des Blattknotens gespeichert sind. Für alle Blätter ist die Länge des Pfades von der Wurzel zu einem Blatt gleich. Der Baum ist also balanciert. Läuft beim Einfügen die Behälterregion einer Blattseite über, wird diese an einer geeigneten Stelle geteilt, sodaß eine gute Verteilung der Punktobjekte gewährleistet ist. Ein Überlauf einer Blattseite kann sich nach oben fortsetzen, wenn die entsprechende Verzeichnisseite bereits voll ist und kein zusätzliches Intervall aufnehmen kann. Die Verzeichnisseite wird dann auch geteilt, und zwar so daß eine gute Verteilung der zu speichernden Regionen auf die beiden neu entstehenden Regionen erfolgt. Eine Bereichssuche auf einem k-d-B-Baum gestaltet sich sehr einfach. Mit Hilfe eines kdimensionalen Suchintervalls S wird rekursiv nach Einträgen (I,Z) gesucht, für die I ǖȱ Sȱ ƾȱ Ø gilt. Ist dies für ein I der Fall und zeigt Z auf einen inneren Knoten, so wird dort weitergesucht. Content Based Image Retrieval 2 Karsten Mende Seite: 6 Zeigt Z jedoch auf einen Blattknoten, so gehören alle Punkte des Blattknotens, die in S liegen, zur gesuchten Lösung. Die Operationen im k-d-B-Baum haben folgende Komplexitäten [Heu06]: x lookup, insert und delete bei exact-match: O(log n) x lookup, insert und delete bei partial-match: besser als O(n) x Bei t von k Attributen in der Anfrage spezifiziert beträgt die Zugriffskomplexität O(n1-t/k): sind beispielsweise 3 von 30 gespeicherten Merkmalen in der Anfrage spezifiziert, so beträgt die Zugriffszeit O(n1-3/30) = O(n9/10), also immer besser als O(n). Beim k-d-B-Baum gemäß Bild 3 handelt es sich um einen Ausschnitt eines 3-dimensionalen k-dB-Baumes, bei dem erst nach dem Attribut PANr separiert wird, dann nach dem Nachnamen, dann nach dem Vornamen und dann wieder nach der PANr. usw. Diese Regelmäßigkeit wird jedoch nicht ganz eingehalten, wie man auf der Bereichsseite links unten sehen kann: Die Datensätze mit einem Vornamen kleiner oder gleich „Gunter“ werden nicht nochmals separiert, diejenigen mit einem „größeren“ Vornamen werden noch nach der PANr separiert, bevor auf die Blattseiten verwiesen wird. Dies ist zulässig und kann bewußt so gewählt worden sein, um ungleichmäßige Datenverteilungen besser auf die Blatt- bzw. Satzseiten zu verteilen. Bild 3: Beispiel für k-d-B-Baum, [Heu06] 2.4 Query-Arten 2.4.1 Full-Match Die in der Query beschriebene Form wird in der Datenbank nur in der korrekten Form und nur in der korrekten Position gesucht und bei Vorhandensein auch gefunden. Um solch eine Query auszuführen, wird die in der Query beschriebene Form genauso transformiert wie die Formen in der Datenbank. Content Based Image Retrieval 2 Karsten Mende Seite: 7 2.4.2 Match with shift Die gesuchte Form darf an jeder Position des Bildes sein: Die Shift-Faktor-Koordinaten – also eventuelle Verschiebungen - werden nicht berücksichtigt, die Query-Region wird auf ein unendliches Rechteck um den „Query-Point“ ausgeweitet. 2.4.3 Match with Uniform Scaling Hier kommt es bei der Suche nur auf die vorgegebene Form an, Position und Größe sind egal. 2.4.4 Match with Independent Scaling Hier wird zwar noch nach der vorgegebenen Form gesucht, aber neben beliebiger Position und Größe kann auch der Betrachtungswinkel beliebig sein. 2.4.5 Approximate Match Um Objekte mit ähnlicher Form zu finden, muß man die Objekte suchen, die in allen Attributen (=Rechtecken) eine ähnliche Position und Größe haben. Hierfür kann man für jedes Attribut einen Bereich (um den durch die Query vorgegebenen Wert) festlegen. Je größer der Bereich, desto mehr wird natürlich das Suchkriterium aufgeweicht und desto größer ist die Treffermenge. In den meisten Anwendungen können hierfür globale Parameter spezifiziert werden, z.B. als eine vom Attributwert abhängige Funktion: hohe Attributwerte lassen höhere Bereiche / Abweichungen zu, niedrigere / kleinere Attributwerte entsprechend nur kleinere Abweichungen. Eine andere Möglichkeit, ähnliche Formen zu selektieren ist folgende: Es werden nur die ersten x Rechtecke in der Query festgelegt, die übereinstimmen sollen. Hiermit kann man den Grad der Ähnlichkeit steuern. Wann kann man das „Durchgehen“ durch die sequentielle Beschreibung und somit die Ähnlichkeitssuche beenden und ein Objekt als Treffer zählen? Hier gibt es 2 heuristische Verfahren: 1. Wenn die Error-Area klein genug wird, gemessen als Prozentsatz oder Teil von der gesamten Überdeckungsfläche bezogen von der Query-Form auf die gefundene Form. 2. Wenn das Fehlermaß, das vom nächsten hinzukommenden Rechteck korrigiert wird, klein genug ist, in bezug auf die gesamte Überdeckungsfläche oder wenn das nächste Rechteck selbst klein genug ist. Allerdings muß hierbei beachtet werden, daß es bei der allgemeinen Rechteck-Überdeckung möglich ist, daß der Fehler(grad) nicht monoton fällt! 2.5 Spezialfälle 2.5.1 Vielfache Repräsentationen Ein Problem ergibt sich daraus, daß manche (ähnliche) Formen sehr verschiedene, sehr unterschiedliche sequentielle Beschreibungen haben können, die allerdings gleichwertig sind, beispielsweise bei den Buchstaben F und T, siehe Bild 4. Das „T“ mit dem schmaleren senkrechten Balken (a) wird z.B. aus 2 additiven Rechtecken gebildet, wogegen das T mit dem breiten senkrechten Balken (b) aus 3 Rechtecken mittels allgemeiner rechteckiger Überdeckung gebildet wird: vom großen Quadrat (1.Rechteck) werden 2 schmale senkrechte Rechtecke abgezogen (2. und 3. Rechteck). Content Based Image Retrieval 2 Karsten Mende Seite: 8 Auch die beiden ähnlichen „F“-Formen, einmal mit kürzerem unteren Balken (c) und einmal mit längerem unteren Balken (d) führen zu komplett unterschiedlichen Beschreibungen: (c) wird additiv aus 3 Rechtecken zusammengesetzt, (d) wird additiv und subtraktiv aus 4 ganz anderen Rechtecken zusammengesetzt. Bild 4: Beispiele für ähnliche Formen mit sehr unterschiedlichen Beschreibungen Eine „H“-Form ist noch problematischer: Der linke und rechte Balken sind normalerweise gleich groß. Welcher wird mit dem 1. Rechteck überdeckt und welcher mit dem zweiten? Glücklicherweise ist der noch bestehende Fehler bei beiden Beschreibungen gleich groß. Symmetrische Formen sind grundsätzlich problematisch: Die gleiche Form mit 2 verschiedenen sequentiellen Beschreibungen führt zu komplett unterschiedlichen Punkten im Attribut-Raum (4K-dimensionale Punkte) über den indiziert wird! Eine Lösung ist, alle verschiedenen Beschreibungen in der Datenbank , insbesondere im Index, zu behalten. Dies bläht natürlich die Datenbank auf. Eine bessere Lösung ist die, im ersten Schritt mehrere „gute“ sequentielle Bescheibungen zur gegebenen Query-Form zu erhalten, bzw. zu berechnen und im 2. Schritt eine Abfrage auf jede der erhaltenen Query-Beschreibungen auszuführen. Dies kann man z.B., indem man die Reihenfolge der Rechtecke der ersten Beschreibung so vertauscht, daß die Größen der Rechtecke immer noch eine annähernd monoton fallende Folge bilden. Hierbei erhöht sich zwar die Gesamt-Query-Laufzeit etwas, aber die Datenbank und ihre IndexStruktur muß nicht erweitert werden. Darüberhinaus ist die Anzahl der verschiedenen sequentiellen Beschreibungen, die durchgerechnet und verglichen werden müssen, exponential zur Länge der Query-Beschreibung, die wahrscheinlich beträchtlich kürzer ist, als die Länge der vollen sequentiellen Beschreibung für die durch die Query vorgegebene Form und die Objekte in der Datenbank. In der Praxis ist die Anzahl typischerweise kleiner als der schon akzeptable worst case (bei der anfänglichen Berechnung nur auf Grundlage der kürzeren Query-Beschreibung). 2.5.2 Unterschiedliche Anzahl Dimensionen Im allgemeinen muß die Anzahl der Dimensionen, also die Länge der sequentiellen Beschreibung eines gespeicherten Objektes nicht passen zur Anzahl der Dimensionen im Index. Wenn ein Objekt in der Datenbank eine längere Beschreibung hat, wird nur der erste Teil im Index genutzt. Das ist so üblich. Content Based Image Retrieval 2 Karsten Mende Seite: 9 Es kann aber auch Ausnahmen geben, in denen die Anzahl der K gespeicherten Rechtecke der sequentiellen Beschreibung einer Form kleiner ist als die Anzahl k der im Index zu speichernden Rechtecke. Dann wird der entsprechende Index-Eintrag mit Dummy-Rechtecken aufgefüllt: Ein Größen-Parameter erhält den Wert 0, der andere Größenparameter wird als Bereich von – bis + , und die Positionsparameter als Bereiche von – bis + gespeichert, an Stelle von Einzelwerten. Folglich werden diese Objekte zu Hyper-Rechtecken im Attributraum und sind keine mehrdimensionalen Punkte mehr. Die meisten multi-dimensionalen Index-Strukturen können solche Hyper-Rechtecke zusätzlich zu mehrdimensionalen Punkten verwalten. Im Falle einer exakten Übereinstimmung funktioniert dies einwandfrei. Im Falle einer Ähnlichkeitsabfrage betrachten wir eine Query-Form, die einige zusätzliche Rechtecke hat: Wenn die Query-Form ähnlich dem betrachteten Objekt mit Dummy-Rechtecken aus der Datenbank ist, müssen diese zusätzlichen Rechtecke klein sein – sonst wäre ja keine Ähnlichkeit vorhanden – und deswegen muß für jedes zusätzliche Rechteck mindestens einer der beiden Größenparameter klein sein. Da bei der Ähnlichkeitssuche die Werte aufgeweicht und deren Bereiche erweitert werden, wird der kleinere Größenparameter jedes zusätzlichen Rechtecks auf einen Bereich zeigen, der Null enthält. Ohne Rücksicht auf den anderen Größenparameter und die Positionsparameter werden sie die Dummy-Rechtecke schneiden. Also funktioniert auch die Ähnlichkeitsabfrage mit den Dummy-Rechtecken. Umgekehrt kann die Methode mit den Dummy-Rechtecken auch bei kurzen Query-Formen verwendet werden um die Query-Form-Beschreibung zu verlängern. Alternativ könnten die anderen Attributachsen bzw. weiteren Rechtecke der Index-Beschreibung auch weggelassen werden, aber dann könnte man eine zu hohe Treffermenge bekommen. Wenn man die Query-Beschreibung mit Dummy-Rechtecken erweitert, stellt man ja sicher, daß in der Datenbank nur Beschreibungen gefunden werden, deren zusätzlichen Rechtecke klein sind und die damit ähnlich sind. 2.6 Testergebnisse Für die folgenden Tests wurde eine Datenbank mit 16.000 synthetischen Objekten, jedes eine Mischung von 10 zufällig erstellten Rechtecken, aufgebaut. Für jede Form wurde eine sequentielle Beschreibung mittels additiver rechteckiger Überdeckungen erstellt und gespeichert. Folgende Ergebnisse wurden erzielt: x Wenn nach einer in der Datenbank gespeicherten Form gesucht wurde, wurde diese auch gefunden. Waren die Fehlertoleranzen klein eingestellt, so wurde auch nur diese eine gespeicherte Form gefunden. x Wurde eine gespeicherte Form mit kleinen Störungen angefragt, so wurde diese ebenfalls gefunden. Waren hierbei die Fehlertoleranzen niedrig eingestellt, so wurde nur die gesuchte Form gefunden und keine weitere. x Bei einer willkürlichen Form in der Query und niedrig eingestellten Fehlertoleranzen wurde nichts gefunden. x Erst bei höher eingestellten Fehlertoleranzen stellten sich erste Treffer ein. Je mehr Parameter unberücksichtigt blieben, desto mehr Ähnlichkeits-Treffer erhielt man. x Die willkürliche Form bestand aus 3 Rechtecken. Beim Versuch die Query aus 4 Rechtecken, also mit einem Dummy-Rechteck aufzubauen, wurden 3 von 4 Treffern wieder angezeigt. x Tests mit 3 und 4 Rechtecken in der Anfrage haben ergeben, daß die meisten zurückgelieferten Formen gleich waren. Es besteht also keine Notwendigkeit, 4 Rechtecke in die Anfrage mit einzubeziehen. Content Based Image Retrieval 2 Karsten Mende Seite: 10 Fazit: Die bei Ähnlichkeitsanfragen zurückgelieferten Formen waren tatsächlich in gewisser Weise ähnlich zur angefragten Form. Offen war jedoch, ob dies auch die am meisten ähnlichen Formen waren, die in der Datenbank enthalten waren. Dies bestätigte jedoch ein subjektiver Test: Zuerst wurden mit sehr lockeren Fehlertoleranzen die 40 „passendsten“ Formen zur o.g. willkürlichen Form herausgesucht. Dann suchte ein Mensch die 4 passendsten aus den 40 Formen heraus. Das waren die gleichen 4 Formen, die bei schärferen Fehlertoleranzen als QueryErgebnisse geliefert wurden. Damit muß die Technik wohl auch erfolgreich aus den 16.000 Formen selektiert haben. 2.7 Empfindlichkeitsreduktion Die bisher beschriebene Speicherungsstruktur berechnet die Größen und Positionen aller Rechtecke der Beschreibung mit Abstand zum 1. Rechteck. Folglich sind die gespeicherten Werte für Größen und Positionen eine Funktion der exakten Größe und Position des 1. Rechtecks. Wenn das 1. Rechteck einen großen Bereich überdeckt und das dominante Rechteck in der Beschreibung ist, ist diese Abhängigkeit akzeptabel und wünschenswert. Ist das 1. Rechteck jedoch lang und schmal, so können kleine Änderungen in der Breite dieses Rechtecks überproportional große Änderungen bei den gespeicherten Werten für Größe und Position der folgenden Rechtecke verursachen. Diese Empfindlichkeit kann unerwünscht sein. Eine Lösung des Problems ist, die Größen und Positionen aller Rechtecke in bezug auf ein die ganze Form umgebendes Rechteck zu normalisieren. Vorteile dieser Lösung: 1. Die Empfindlichkeit von Änderungen mit Folgeänderungen ist aufgehoben 2. Man erhält eine natürliche Interpretation aller Größen und Positionswerte 3. Alle Rechtecke inklusive dem ersten werden in der gleichen Art behandelt, hieraus resultiert eine Code-Vereinfachung Nachteile dieser Lösung: 1. Da nun auch die Werte für die ersten Rechtecke gespeichert werden müssen, wächst der Speicherplatzbedarf 2. Es entsteht ein höherer Indizierungsaufwand, da nun für gleiche Selektionsergebnisse 4 Dimensionen mehr berücksichtigt werden müssen 2.8 Höhere Dimensionen Die bisher vorgestellten Techniken können auch auf 3 und mehr Dimensionen angewandt werden. Im 3-dimensionalen-Raum wird jedes Hyper-Rechteck (Quader) identifiziert durch 2 Eckpunkte, die 3-dimensional sind, also durch 6 Attribute pro Hyper-Rechteck. Das 1. Hyper-Rechteck (Größe X = 1, Größe Y = 1, Größe Z = 1, Position des Mittelpunktes im Ursprung) wird ersetzt durch: - 3 Verschiebungsfaktoren - 1 Maßstabsfaktor - 2 Verzerrungsfaktoren (Y/X und Z/X – Verzerrungsrichtungen) Jedes Folge-Rechteck wird beschrieben durch 3 Positionswerte (X, Y, Z) des RechteckMittelpunktes und 3 Größen-Werte der Seitenlängen für jede Richtung, alle mit Abstand bzw. Beziehung zum 1. Rechteck. Alle vorgestellten Ideen für den 2-dimensionalen Raum lassen sich mit geringen Änderungen auf den 3- oder mehrdimensionalen Raum übertragen. Content Based Image Retrieval 2 Karsten Mende Seite: 11 2.9 Ausblick Jagadish hat eine Index-Technik vorgestellt, mit der man aus einer Datenbank Formen ermitteln kann, die ähnlich oder gleich einer vorgegebenen Form sind. Mittels dieser Technik unter Benutzung angemessener Index-Strukturen kann der Prozeß auf einer Bild-Datenbank simuliert werden, wie ein Mensch ein Buch nach passenden vorgegebenen Bildern durchsucht. Auch bei Skalierungen und / oder Verschiebungen in einer oder mehreren Dimensionen funktioniert die Technik. Die Technik ist einfach und kann einfach „on top“ auf beliebige Standard Multi-DimensionsIndizierungstechniken implementiert werden. Für Fließbandarbeiten und Anwendungen, in denen es nur darum geht, eine (Query-)Form gegen eine kleine Menge gespeicherter Formen zu testen, d.h. herauszufinden, ob die angefragte Form in der Menge enthalten ist, ist diese Technik zu aufwändig. In Anwendungen mit einer großen Anzahl von Bildern mit breit gefächerter Ausrichtung (Dimensionen) ist die vorgestellte Technik allerdings sehr wertvoll. Anwendungsbeispiele sind der Vergleich von Röntgenbildern ehemaliger Patienten mit dem Bild eines aktuellen Patienten oder Bildsuchen und Identifikationen in der Kriminalforschung. 3 Beispiel für Farb-Queries unter Verwendung von FarbHistogrammen (QBIC) Die QBIC-Studie [FBF+94] verbindet optische Anwendungen aus dem Bereich MusterErkennung mit Datenbank-Anwendungen. Sie ist beschränkt auf Bilddatenbanken. QBIC steht für „Query By Image Content.“ Die Ergebnisse, die die Suchtechniken liefern, sind den Vorgaben, d.h. den Query-Definitionen angenähert, liefern aber nicht nur exakte Treffer. Die QBIC-Techniken dienen also als Informationsfilter und reduzieren nur die Suche für den User, der aus der Treffermenge noch die falschen Kandidaten entfernen bzw. die richtigen auswählen muß. Im QBIC kann der User im Gegensatz zu den maschinellen optischen Anwendungen, bei denen nur zwischen einer kleinen Anzahl vordefinierter Objektklassen unterschieden werden kann, unendlich viele unvorhersehbare Queries stellen. Mögliche Anwendungsgebiete der QBIC-Techniken sind Edutainment (spielerisches Lernen), Journalismus, Katalogisierung in Museen, Medizin, Militär etc. Eine große Herausforderung ist die Bestimmung von Merkmalen, die gleichzeitig - den Inhalt eines Bildes beschreiben - ein Ähnlichkeitsmaß oder eine Metrik zulassen - die Basis eines Indexes für die Bildsammlung bilden können. 3.1 Farb-Darstellung mittels Farb-Histogramm Mit den verwendeten Farb-Merkmalen und der verwendeten Abstandsfunktion wird versucht, die Art von Ähnlichkeit zu erzeugen, die auch ein Mensch wahrnimmt. Für jedes Objekt und jede Szene wird ein K-elementiges Farb-Histogramm berechnet. K kann theoretisch bis zu 16 Mio Farben haben, jede Farbe wird gekennzeichnet durch einen Punkt in einem 3-dimensionalen Farbraum. Ähnliche Farben werden geclustert und es wird eine repräsentative Farbe für jeden Behälter (color bin) ausgewählt. In den Experimenten wurden K = 256 und K = 64 Farbcluster getestet. Jede Komponente im Farbhistogramm ist der Prozentsatz an Pixeln, die am ähnlichsten der repräsentativen Cluster-Farbe sind. Jedes Histogramm wird repräsentiert durch einen K x 1 – Vektor. Content Based Image Retrieval 2 Karsten Mende Seite: 12 3.2 Abstandsberechnung Wenn die o.g. Histogramme berechnet sind, gibt es eine Vielzahl von Möglich-keiten, wie Ähnlichkeit zwischen 2 Farbhistogrammen berechnet werden kann. & & Eine Methode, den Abstand zwischen 2 Histogrammen x und y zu berechnen ist: d 2 hist x&, y& x& y& t Ax& y& K K i j ¦¦ a x y x ij i i j yj (1) Die Matrix A beschreibt mit ihren Einträgen aij die Ähnlichkeit zwischen den (Cluster-)Farben i und j. Der Einsatz dieser Formel bringt wünschenswerte Ergebnisse. So kann z.B. korrekt errechnet werden, daß orange Bilder ähnlich roten Bildern sind, aber daß zur Hälfte rot und zur Hälfte blaue Bilder sehr unterschiedlich von komplett lilafarbenen Bildern sind. Der euklidische Abstand ist ein Spezialfall des Abstandes der o.g. Formel, bei dem die Matrix A die identische Matrix (I) ist. Der Haupt-Unterschied zwischen dem Euklidischen Abstand und dem Abstand nach Gleichung (1) ist, daß Gleichung (1) die Wechselbeziehung zwischen 2 Farben ,wie z.B. orange und rot, berücksichtigt, und zwar indem auch gemischte Terme in die Berechung mit einfliessen: aij(xi-yi)(xj-yj) mit i j sind auch enthalten. Der euklidische Abstand enthält diese gemischten Terme nicht und berücksichtigt solche Wechselbeziehungen damit auch nicht. Im allgemeinen werden solche Phänomene jedoch nicht in Datenbanken berücksichtigt: Alle Multi-key-Index-Methoden gehen implizit von der Annahme aus, daß solche Wechselbeziehungen nicht bestehen und können daher für die Gleichung (1) nicht verwendet werden. Dies stellt ein großes Hindernis dar. Darüberhinaus ist die Berechnung von kompletten quadratischen Gleichungen inkl. der gemischten Glieder teurer als von Gleichungen wie beim euklidischen Abstand. Ein weiteres Problem ist, daß die Anzahl n der Merkmale sehr hoch werden kann, z.B. 64 oder sogar 256 Farb-Merkmale wurden getestet, und daß die meisten multi-dimensionalen Indexmethoden Speicherplatz und CPU-Rechenzeit benötigen, die exponential zu n steigen. QBIC bietet Lösungen für alle vorgenannten Probleme an. Die Grundidee der Lösungen ist die Verwendung eines Filters, der „einige“ falsche Treffer erlaubt, aber keine echten Treffer & & auslässt. Das Ziel ist also, eine Mapping-Funktion f mit X ' f ( X ) zu finden, welche den & & Merkmalsvektor X auf einen Vektor X ' abbildet, der eine niedrigere Dimension hat. Diese Mapping-Funktion f muß im Zusammenhang mit einer Abstandsfunktion Dƍ() stehen, die den tatsächlichen Abstand „unterschätzt“ im Sinne von niedriger einschätzt: & & & & D' X ' , Y ' d D X , Y (2) Eine Operation, die bei Benutzung eines euklidischen Abstands solche Eigenschaften hat, ist z.B. die Projektion von 3-dimensionalen Punkten in die 2-dimensionale x-y-Ebene, durch Abschneiden (truncate) der z-Koordinate. Die obige Ungleichung soll Gültigkeit haben, damit eine Bereichsquery keine echten Treffer ausläßt. Mit der o.g. Ungleichung ist sichergestellt, dass & & ein Merkmalsvektor X , der in einer İ-Umgebung von einem Anfrage-Vektor Q liegt, auch im Filterungsschritt gefunden wird. Wenn eine Anfrage also lautet „Finde alle Merkmalsvektoren & & X , die innerhalb einer İ-Umgebung vom Anfragevektor Q liegen“, dann läuft die Suche in solch einem Fall wie folgt ab: & & 1. Die Funktion f muß alle Merkmalsvektoren X auf Merkmalsvektoren X ' mappen oder im Rahmen von Vorabberechnungen bereits gemappt haben. & 2. Es werden – in einem niedriger dimensionierten Raum - alle Merkmalsvektoren X ' gesucht, & & die der Ungleichung D' X ' , Q' d İ genügen. Content Based Image Retrieval 2 Karsten Mende Seite: 13 & & 3. Im letzten Schritt werden dann die unter 2. gefundenen Kandidaten X ' mit f 1 X ' & „zurückgemappt“ auf Vektoren X , die mittels der quadratischen Abstandsberechnung aus Gleichung (1) überprüft werden und es werden die endgültigen Treffer festgestellt. & Das „Zurückmappen“ geschieht dadurch, daß die Vektoren X ' im Index auf die zugehörigen & Vektoren X in der Datenbank verweisen. Der Schlüssel für effizientes Suchen von (Farb-)Bildern, welches auf deren kompletten FarbHistogrammen beruht, ist eine effiziente Annäherung an dhist, des Histogramm-Farbabstandes wie in Gleichung 1 definiert. Diese effiziente Annäherung wird im QBIC-Projekt berechnet durch eine Abschätzung nach unten durch & & d avg x , y des durchschnittlichen Farbabstandes von zwei Objekten (Objekte im allgemeinen Sinne), und zwar einem Vielfachen davon. davg ist auf einem anderen wesentlich kleiner dimensionierten Farbmerkmal definiert als dhist des Farb-Histogramms, und zwar auf der Durchschnittsfarbe x eines Bildes, die sich aus den durchschnittlichen Rot-, Grün- und Blau-Farbanteilen aller Pixel des Bildes errechnet. Damit wird die Dimension von z.B. K=64 eines Farbhistogramms auf 3 für die zugehörige Durchschnittsfarbe gesenkt! Der durchschnittliche Farb-Vektor beispielsweise einer Szene mit 50% blauem Himmel und 50% grünem Rasen wäre als RGB-Vektor in Prozenten (0,50,50) oder als RGB-Vektor in Farbtiefendarstellung bei z.B. 8 bit (0,127,127). Wenn nun die Durchschnittsfarben x und y von 2 Bildern / Objekten errechnet sind, wird davg als einfacher euklidischer Abstand zwischen den beiden 3-dimensionalen Vektoren der Durchschnittsfarben errechnet: 2 x , y x y t ( x y ) d avg Im Rahmen der Dokumentation des QBIC-Projektes wird mathematisch nachgewiesen, daß dhist k*davg gilt. Genauer: 2 2 t Ȝ1 d avg d hist mit Ȝ1 als minimalem Eigenwert des verallgemeinertem Eigenwertproblems ~ ~ A~ z Ȝ W~z ~ ~ Hierbei ist A eine aus der Ähnlichkeitsmatrix A abgeleitete Matrix, W ist aus W abgeleitet, einer Matrix, die die Skalarprodukte der Clusterfarben der zu vergleichenden Objekte auf RGBBasis enthält. Damit ist eine Unter-Schätzung gefunden, die die o.g. erwünschte Obermenge von Objekten liefert und damit auch die oben gesuchte Abstandsfunktion Dƍ(). Die davg-Funktion ist wesentlich billiger zu berechnen als dhist, sowohl in bezug auf die CPU-Zeit als auch auf die benötigten Festplatten-Zugriffe. Ganz entscheidend ist jedoch, daß davg als Skalarprodukt zweier Vektoren, bei dem keine Wechselwirkungen der unterschiedlichen Komponenten mit einfließen (nur Komponenten xiyi, aber nicht xiyj), die Verwendung von multidimensionalen-Indexmethoden ermöglicht. & & Dies bedeutet, daß die Vektoren X ' indiziert werden müssen und nicht die Vektoren X ! Dies & wiederum bedeutet, daß ein Vektor X eines Farbhistogramms vor Indizierung auf den & entsprechenden Vektor X ' gemappt werden muß, der dann im Index enthalten ist und auf den & gespeicherten Vektor X des Farbhistogramms verweist. Content Based Image Retrieval 2 Karsten Mende Seite: 14 3.3 Speicherungsstrukturen Es wurden 2 neue Datentypen eingeführt: - Szene = komplettes Farbbild - Objekt = Teil einer Szene, z.B eine Person auf einem Strandbild Die unter 3.2 beschriebenen Methoden erfordern, dass jedem Objekt und jeder Szene / Bild ein Merkmalsvektor zugeordnet wird. Diese (K x 1)-Merkmalsvektoren enthalten die gespeicherten Farb-Merkmale zu einer Szene bzw. zu einem Objekt mit den Clusterfarben des zugehörigen Farb-Histogramms. Um die Performance zu steigern, werden diese Merkmalsvektoren vorberechnet und gespeichert. Jeder Merkmalsvektor wird als ein Punkt im n-dimensionalen (bzw. hier: K-dimensionalen) Raum betrachtet. & Gleichfalls gespeichert werden müssen die korrespondierenden Vektoren X ' der Durchschnittsfarben, allerdings nur als 3-dimensionale Vektoren und nur in der zugehörigen Indexstruktur. 3.4 Indexstrukturen Um multi-dimensionale Indexmethoden nutzen zu können, müssen die „Abstände“ zweier Objekte zum Euklidischen Abstand ihrer Punkte im Merkmalsraum korrespondieren / übereinstimmen. Außerdem muß die Dimensionalität des Merkmalsraums niedrig genug sein. QBIC benötigt eine multidimensionale-Index-Methode, die maßgeblichen Methoden sind: - R*-Bäume bzw. R-Bäume - Linear quadtrees - Grid-files Bei linearen quadtrees und Grid files steigt der Aufwand exponentiell mit den Dimensionen. Nur die R-Bäume sind robuster für höhere Dimensionen, vorausgesetzt, der Verzweigungsgrad der Knoten ist größer als 2. Experimente zeigen, daß R-Bäume bis mindestens 20 Dimensionen zuverlässig funktionieren. Die erfolgreichste, weil schnellste Variante ist der R*-Baum, der daher im QBIC-Projekt verwendet wird. 3.5 Query-Arten Die User können für Szenen auf die Merkmale Farbe und Struktur, für Objekte auf die Merkmale Farbe, Form und Struktur abfragen. Kombinationen von Merkmalen in der Abfrage sind zulässig. QBIC unterstützt 2 Query-Arten, beide fragen auf Ähnlichkeit ab und liefern damit neben den gesuchten richtigen Treffern auch falsche Treffer. Nicht genauer in der QBIC-Studie beschrieben ist ein Ähnlichkeitsmaß, das wohl auch vom Anwender eingestellt werden kann und somit vorab die Anzahl der im Query-Ergebnis vorgeschlagenen Kandidaten einschränkt. Siehe dazu auch & Kapitel „3.2 Abstandsberechnung“: Berechnung aller Merkmalsvektoren X , die innerhalb einer & İ-Umgebung vom Anfragevektor Q liegen. Content Based Image Retrieval 2 Karsten Mende Seite: 15 3.5.1 Direct Query Der Anwender spezifiziert die gewünschte Farbverteilung, Form und Struktur direkt über Eingabemechanismen auf der grafischen Oberfläche, wie z.B. über einen multi-color-picker oder indem er eine Skizze mit der Maus zeichnet. Wenn der User beispielsweise ein Strandbild sucht, kann er in der Query eine Farbverteilung von 35% weißer und 65% blauer Bereichsüberdeckung angeben und zusätzlich noch sandigen Untergrund als Struktur beschreiben. Die Ergebnisse werden Bilder mit Strandszenen aber auch falsche Treffer sein, die eine entsprechende Farbverteilung und / oder Struktur haben. Im Normalfall ist es kein Problem für den Anwender, die falschen Treffer von den echten zu unterscheiden und auszusortieren, solange die Query nicht zu viele Treffer liefert. 3.5.2 Query by example Der Anwender kann eins der aus der Datenbank angezeigten Bilder auswählen und die Datenbank nach ähnlichen Bildern anfragen. Nicht in der QBIC-Studie erwähnt und wohl auch nicht getestet, ist eine Query, die ein Bild vorgibt und auf Enthaltensein des Bildes in der Datenbank abfragt. Für solch ein Bild müßte bei der Query-Ausführung das zugehörige Farbhistogrammm sowie der zugehörige Vektor der 3 RGB-Durchschnittsfarben errechnet werden. Außerdem würde der Farbabstand dhist auf 0 gesetzt. Ist das vorgegebene Bild enthalten, so wird es in jedem Fall gefunden. In seltenen Fällen würden auch noch weitere Bilder angezeigt werden, und zwar genau dann, wenn sie genau die gleichen Farbhistogramme hätten. Es können ja unterschiedliche PixelFormationen zu den gleichen prozentualen Verteilungen der K Clusterfarben führen. 3.6 Testergebnisse Die verwendete Testdatenbank enthielt 1000 Farbbilder. Der Multicolor Farb-Picker enthält 64 Grundfarben. Eine Query kann bis zu 5 Farben enthalten, zusammen mit ihren relativen Prozentsätzen bezogen auf alle Pixel. Es wurden 10 Testbilder aus der Testdatenbank für 10 verschiedene Queries vorab von den Testern ausgewählt. Für jede Query wurden als Ergebnis 20 Bilder angezeigt. Für alle Queries galt: die meisten der relevanten Bilder – also mit ähnlichen Farbzusammensetzungen wie angefragt – wurden angezeigt und waren auch in vorderen Positionen in der Trefferliste. Insgesamt wurden nur 3 von 72 relevanten Bildern in den 10 Testqueries nicht angezeigt. Über alle Ergebnis-Positionen der relevanten Bilder in den Trefferlisten gemittelt, ergab sich ein durchschnittlicher Wert von 5,4 - also an der 6. Position eines relevanten Bildes, da der ersten Position der Wert 0 zugeordnet wurde. Der optimale durchschnittliche Wert hätte bei 2,8 gelegen, also an der 4. Position. Die vorgegebenen Testbilder aus der Datenbank wurden alle gefunden und im Durchschnitt an der 2. Position (Durchschnittswert 1,1) angezeigt. Diese Testergebnisse zeigen, daß sowohl die Farbmerkmale als auch die Abstandsfunktion sehr effektiv sind. Ein weiteres Ergebnis war, daß der Multicolor Farb-Picker sehr einfach von den menschlichen Testern zu bedienen war und die Tester sehr einfach die falschen Treffer aus den 20 Ergebnissen der Trefferlisten aussortieren konnten. Bild-Datenbanken inkl. ihrer Tools sollten also für die menschliche Wahrnehmung optimiert werden, dann können sie von der menschlichen Fähigkeit profitieren, die schnell die angezeigten Bild-Treffermengen überfliegen und falsche Treffer aussortieren kann. Content Based Image Retrieval 2 Karsten Mende Seite: 16 3.7 Laufzeit-Testergebnisse Bei den Laufzeitexperimenten wurden 2 Methoden gegeneinander verglichen: 1. Eine einfache sequentielle Berechnung von dhist von allen Merkmalsvektoren in der & Datenbank zum Anfragevektor Q 2. Ein Filterungsschritt, der für alle Merkmals-Vektoren in der Datenbank davg zum & Anfragevektor Q berechnet und danach auf die besten x Prozent der gefundenen Merkmalsvektoren dhist anwendet Es wurden absichtlich keine Indexmethoden verwendet, um so die Performance-Gewinne des Filterungsschrittes herauszustellen. Zuerst wurde die Selektivität des Filterungsschrittes getestet. Im Idealfall würde der Filterungsschritt nur bzw. genau die Vektoren ermitteln, die dhist erfüllen. Durch die Definition von davg ist sichergestellt, daß diese Vektoren auf jeden Fall alle gefunden werden, sowie auch noch weitere „falsche Treffer“. Die Testdatenbank enthielt 924 Farbbilder, zu denen 256 elementige Farbhistogramme errechnet wurden. Die Testergebnisse waren durchweg sehr positiv. Bei einer eingestellten Ziel-Treffermenge von 5% bezogen auf dhist, selektierte der Filterungsschritt 30% der Datensätze der Datenbank. Das bedeutete also, daß für 70% der Datensätze nicht die aufwendige Berechnung von dhist durchgeführt werden mußte. Dies bedeutete erhebliche Laufzeitgewinne, denn selbst die Berechnung von dhist für nur wenige Vektoren ist sehr hoch verglichen mit dem auf die ganze Datenbank angewendeten Filterungsschritt. Bei (dem Testfall) einer eingestellten ZielTreffermenge von nur 1 % - welches ja einer typischen Query noch näher kommt - betrug die Selektivität sogar nur ca 11% aller Datensätze. Im 2. Schritt wurden die relativen Kosten der beiden Berechnungsmethoden verglichen. Selbst bei worst case – Annahmen schlägt die 2. Methode mit dem Filterungsschritt klar die 1. Methode mit der sequentiellen Berechnung von dhist für alle Datensätze der Datenbank. Da die Laufzeit und auch die benötigte CPU-Zeit bei der sequentiellen Methode immer gleich (schlecht) sind, wachsen die Vorteile der Filterungsschritt-Methode mit kleiner werdender Treffermenge noch an. Doch selbst bei einer relativ hoch eingestellten Ziel-Treffermenge von 5% liegt die benötigte CPU-Zeit nur bei einem Viertel der sequentiellen Methode und auch die Query-Laufzeit beträgt nur gut 40% verglichen mit der sequentiellen Methode. Diese Ergebnisse der Filterungsmethode sind umso herausragender, als daß die Vorteile eines möglichen indizierten Suchens noch gar nicht ausgeschöpft wurden. 3.8 Schlußfolgerungen Das QBIC-Projekt hat sein Ziel erreicht, wirksame und leistungsfähige Abfragentechniken zu liefern, die sich auf den Inhalt von Bildern – und nicht ihnen zugeordneten Textattributen – in großen Bilddatenbanken beziehen. Viele Merkmale und Ähnlichkeitsfunktionen aus dem Bereich der maschinellen Bildererkennung wurden mit schnellen Indexierungstechniken aus dem Datenbankbereich verknüpft. Hierin lag der Schlüssel des Erfolges. Die Antwortzeiten waren erheblich besser als die trivialer Methoden, außerdem können die Merkmale und Ähnlichkeitsfunktionen auch für noch größere Datenbanken gut skaliert bzw. erweitert werden, aufgrund der verwendeten multi-keyIndzierungstechniken. Content Based Image Retrieval 2 Karsten Mende Seite: 17 4 Fazit Schon beim Aufbau einer Multimedia-DB muß man wissen, welche Kategorien von Daten wie z.B. Bilder, Zeichnungen, Formen, Videos, Sounds gespeichert werden sollen. Außerdem sollte bekannt sein, welche Arten von Anfragen an die gespeicherten Daten zukünftig gestellt werden, wie z.B „Finde alle Bilder, die eine ähnliche Farbzusammenstellung wie ein vorgegebenes Bild haben“. Nur so können für die gespeicherten Daten Merkmale festgestellt und berechnet werden, die dann den Merkmalen in der Query-Formulierung entsprechen. Diese Merkmale werden idealerweise vorab, z.B. zum Zeitpunkt der Speicherung der Daten, berechnet und nicht erst zur Laufzeit einer Query. Die berechneten Merkmale werden natürlich mit den Daten gespeichert. Sie sind auch Grundlage und Bestandteil für die zu verwendenden Indexstrukturen. Aus der Art der Indexstrukturen und der in ihnen gespeicherten Daten ergibt sich wiederum, wie die Anfragen intern umgeformt werden müssen. Die allumfassende beste Lösung gibt es nicht, es ist jeweils von den zu speichernden Daten, den zu erwartenden Anfragen und auch der Änderungshäufigkeit der Daten abhängig, wie die Daten gespeichert und indiziert werden sollten. Content-based-Image-Retrieval-Methoden bieten Abfragemöglichkeiten wie die Suche nach ganz bestimmten Bildern, die genau so oder so ähnlich wie ein vorgegebenes Bild aussehen. Dies ist für den Anwender sehr komfortabel und eine Funktionalität, die es bei der reinen Schlüsselwort-Zuordnung zu Bildern gar nicht gibt. Allerdings sind hierfür umfangreiche (Vor-)Berechnungen erforderlich. Bei Updates entsteht höherer Aufwand für die Anpassung eines Multi-key-Indexes als bei herkömmlichen Indizes. Der letzte Teilschritt einer Selektion muß ggf. durch den Anwender erfolgen: Entfernung falscher Treffer aus der Ergebnismenge. Eine Menge von Bildern / Szenen mit völlig unterschiedlichen Inhalten, die vielleicht aufgrund der zeitlichen Abfolge ihres Entstehens zusammengehören oder vom gleichen Maler oder Fotograf stammen, kann allerdings nicht über die o.g. berechneten inhaltsbasierten Merkmale gefunden werden: Für eine Abfrage nach einer Urlaubsfotoserie, zu der z.B. neben Strandbildern auch Bilder von Bauwerken oder Innenräumen mit komplett anderen Farbverläufen gehören können, wäre ein Textmerkmal „Urlaub2005“ o.ä. an den zugehörigen Bildern unabdingbar. Meiner Meinung nach ist eine Kombination aus vorberechneten Merkmalen – wie in den beiden Beispielen von Jagadish und dem QBIC-Experiment gezeigt – mit den Bildern zugeordneten Überschriften sinnvoll. Hiermit erreicht man eine hohe Anzahl verschiedenster Anfragemöglichkeiten, die meiner Meinung nach einen Aufbau verschiedener Indexstrukturen für vorberechnete Merkmale einerseits und für Überschriften und Schlagworte andererseits rechtfertigt. Geht man von annähernd statischen Datenbanken aus, ist der Aufwand für die Indexpflege minimal. 5 Literaturliste [Jag91] H.V. Jagadish. A retrieval technique for similar shapes. In James Clifford and Roger King, editors, SIGMOD Conference, pages 208-217. ACM Press. 1991. [FBF+94] Christos Faloutsos, Ron Barber, Myron Flickner, Jim Hafner , Wayne Niblack, Dragutin Petkovic and William Equitz. Efficient and effective querying by image content. J.Intell. Inf. Syst., 3(3/4): pages 231-262, 1994 [Sch99] Markus Schneider. Implementierungskonzepte für Datenbanksysteme, Kurs 1664, Kurseinheit 2, Seiten 9193, FernUniversität Hagen 1999 [Heu06] Prof. Dr. Andreas Heurer, Lehrstuhl Datenbank- und Informationssysteme, Institut für Informatik, Universität Rostock, Vorlesung SS 2006, Kapitel 4, Folien 74-79 ! ! " # $ $%&''( )* $ $ $ $&'' $ $' + $(# + $* , $%-"% , $$() , $$.)/ , $$)/ 0 $$$#) )& 0 + 1#-)# 0 +23- 0 +#4# 0 +(5--#6 +$ ++75 +,"#-% +(# +$%8)#19% : ++) : ++#4# : ++(5--#6 ; ++$ ; +++75 ; +,"#-% ; +0-2% ; ,#-%=* -5 4 #&? @ ,#-% @ ,=* @ ,3 @ ,A-B ,$&??-1 ,+%&#-&- ,,) 0(-A3 $ 0 # $ 0%- $ 0$B + 0+-2% + 0,)C-A3 , 7 0 -&#---#'#" -=5-& D##- -8- "#-A5-# 3 )5? ##3E#"##-?"6 =B3 - 6-)3 4)#CFA?G--" #A-#4 #? ## 6) )E E#31# A#C3-) )*A -AE##3--- #)/ H-&##-3) 6*)3-)-1-6-B3 )3--A #-#-5- 3-?)3--( # 2)6-3-3-7 -(#-#.3--I #- 26-E5)*I#" -)"% 66#3-3-- )-)5- #-4 #?A--3-2 -"3-A# ")5-FEG#--)"3 '*#-&"* # #- )-3-)7" & -#% 6-"% ) 3-A #6--&J-3 75--#3#"--3 %--) #-#)3E- C--2)3- E5-3-6)) I--3K) ( A&# ##6-&J- 33---4#3- $ "$&#E#"##-*E#"# ) -(3-)#3#* )""$*#?- #.-"$ -)&#"##?) #C-)6 -!###* )#-?2"$ 3--)-6)#- ##-6 "*"-I-)-*)-- .)5#3-E#-(#(# # %- --) )-#A- ( -#- !""#$ % & 7#L##MN%#- /- 4 # &''F&J%'"'# G-? *6 ))-F*#*G 3-#- 7-5- &##3-6*-7-# A#)3- ))- H-"3-- #,& /-3-- +@&'E# )#-3$-$@ )3-*3--'F )$G0' -- - -MN !"" *&'' #3-#- "--""#"&#))- *-A -3##6-2"% &JF4G)3-3-- --" -#6&J5 A#6 -3 J3-#""3---# -#""##" -3-*&'E# ---) - 26-- B" -) &''6%#3-3-MN *D'"=-I#"-) - A-'"-" + ))- &''3-5C)- MN *3- )""-& *-3-2 6 -3-#/& #F#-G))?-"% 3--( -E% ) & /-&3-&# ## - *-3-- # &J#"#- #-&J"-)5 &J"--"--/3 &J *"3-#-- " --75 5 # *3--E#"# #A5FA+@G-5C- #--FA# &J--A5#6CG-- */A5 *E#"#-#-3-*##- '# ###*-3--!3 (#-)'"E# 3-3 ) " & /-&5&'E# *3- - 52""?24# )-26C-(-A5 -' 1) -#)F? ##G#- F? G -M$N 8-&''!-#3- K)#A'3-)--! - 3--'- --"-E#--23))-- M$N ?#-&3-0'MN $ & /-7-3-)-"K) )-C637-3-I-) -#4#-A53- , & *A-)- # )*F#O*GM$N -- - -----6 #*)-/-)-)63---# -4 -76 *)- #3 3 E# 23-' -)-) 3-- -E)7)MN* 23)#3-3--)-- & --E# -K) #!93-)# **3--) ' ( =-BC )" 3-*) ):@@@ --3-8-7-2D- -)--E )& /- 3-- 3#))))*3--)-3 7-A )7-3--D5 "% ) $ % 2-$))-37-))# #C3--)-3 M)+N 7-)#5*-)# ?"--)#) *)-)3-;-;&''- *) - 3#);&'' -) ) )%*+ *#)/)3A-#)/#- C- 3? ##I )-5 7#-##3-- $?" -)M)+N& )7-3---"% )5,@-@7- - )" K) 0@P- -"%"-- 7- A ?"-)--)3 )-- -5,7-)3@:-?")3) - 0 %*+ *)/3-4 #- @ 5 357--#%"%)3M) +$N*)3-+@,@P-"%7-5)) 5 7-+P*7-%#-@ 6) 53 +%% ! H-#)-)-3-7- 5 #)$@-75--- )? @@P-&53--5-.- 57- 7-M)+$N ,- ( % ILA##L4LALI## #M+N53 7#L##&'')/-#)- - --7-3#3-# -# ) ))# - 3- ,./( * 1#----*- --(#6C*)6* #353--66* 3-*3-)3 -- 3-- 3#*-(# -)"-))A#4# #65-75-"#-%8-7-3 +:2#H))-M+)N * -7-3---"-)5 #-)-1#---(#1 *)"*(#) 35-) /- - 3-?&#-3-- -23) ,'0 * 1#4#-&J"- -/-A5-4#)--75# -)-5-## ),.3* 6 #363-3--"-"#H54#3---"-) &JF+@4)4G-E ) 3##-"M+)$N *&J"-3-53&&'-&&# ##7- 3# ,$ 1( ( '2 D)-*-63--#- --B-- #6)M+)$N HA3-3- #-A6&&# ###*&J"- - #-A6 3-H( 3-0.)-/3$ 3--):# 8-- - - 5-5# /-A#A(#-75 $@0& -)A# #)J#A(#* *3-3--- 1#- #6B-) ,+ ?26F3G-E5F6 G)25#-- 3-&J#( #-)- -3"--!5C3*25 #6-E5--- ')3=-# -M+)$$N H53-*&# ## - -!#)##-&J)*-&J#- &#E# )-"--&J*A- E# 3-----6CE# #- -75-7- * 1# ) ---7---1 ,,31 !#))-A3-75--)#75 #- #7-))5*3-I) M+)$+N C -75- 3--(5-- 33 )*-)175 ----)3C -B--753-- -75# ,4'(+ *)#-F-Q@-G &J)/.*3-4 ###- -))5-"#) -)3-5--!#))--# 5C #M+)$,N ,$ D- 1#- /- (##M+)N==3)---A5- (#-3-- # -A# @@)@#8-7-3--- #-!-#- : 3- *B337-3-4 --)- ) 3#) -E#"#-(# ) -8-#5--7- A) )-D-- -- 57- 7- )#H A3-) #)##)A 35--)-)3-" #)-)))-- 1)--#5 ) ) R /3-- A))#--!3# *-6-E# ) -1E#-) ###.FS-G FT-7--T*#- (#G3- -(3-#3---) # # -)%-7)F3# H-G-) ) #=- 6-3"")6M+)+N ,' 56%-7 1#-B)3-8)#19% )-.3@@@ "$ &#M+)+N*8"J%) - *-7--8? ##- -) ( *#-6-# '""# 3- *A -9%--8)#1 - )A#-9%/- 3- *D-3 -57-) C-) 35 -B ##D)-3-- (#5 ))A- 35-D6 ,, % HA3-- 3-) - --)) -B)* 6#)/-B)3- )/*2%3- )-&5 )E##-)3M+),N ,,'0 * )#- -B) -#)(#6) 3- -##-? )=-&J%#)7- )#A"2 ; ,,$ 1( ( '2 * #)#-3E#-(#- )47-)#65-585 D)5#----A- -# 3A)!#"-3#-# 3--) -#65-5-- =-3-7-#6 ,,+ * )3#)--# # -7- ---2"" #7--)-2""5-A3-)- %7-)-% 7- @82"" )* 63-- -#- -H)-* -# E#)#- ,,,31 4--)33 )-H 755-3-##3)-) -=-#7-A#C-- )5#- -6A)-#- -)7-)5- ,,4'(+ !#)- -1 35-1#3- --@- /7-))3-F*3$ -,UGH-=-1## -#C3& "##$:)"F)" G3-7-3@-,0)"5 )I- - #! - B)- ,,8'(. 3--8)#1#-)3-#4-- *3-)-3) A - - *-/3 B3- )--# 7---3-) )) 3-$ #)#)3? ## )- &J5-"#-5#65-* -(-7- -E#5C/-# -!#--E# ) )3- *3--'9-)& /-2) T!#-- )7-3- --T!#-7- @ 86C -#)3-7--2 3 *A# )-)-)5-- - /-*)I 3--3 E-##-#3- *)-(5-& 4(9 :&+#9(1 0!9 #L43(6 M,N-(#3# )--3## #- - H-* #3#D #)D#---"-#-57- - 3-#=-)3-"?-1%F&?G 4(9 H-%-( -#--7-&##- H-*? ## -#" #3"$) 3A )- M,)+ND#-#"1 -%&##-)? ## )- #- 5*3--*3- 4:&+ *!#'#-)-#65- -#-H-8-#)-66F="G 5F*#3G #-))F"G3--"-A)-H 5*-B-)3- &- ##- )"#"##B-23*-#- %---@8--3--##4- 4 / #L433-!#'#- #-? ##M,)$N *5-#65-3-)-#6( -(##3-#C=)3 H5#63-? ## )-H-#- #-#53H"*D## # ) )$A)73-D#5-#F7#G 3 F#G-3F"G ? ##%-#-3--)-D# --D#5"& /-#-#-3-#-D A--75HA -0 D#) 4; ( < H(#H1(##H5 3-K)-- 5K)- E- 2-K))--#) H))?(F-)- E3-H H-& 3-- #)G--E#!#F#-(3-- -%3(6G-A#% ###- 3#43--# ##-H-& 63 #) - 5K))#H%-% H3--7#'##)J#)- 75-5#3-35- #3 H -M,)$N?%)3- 5 K)---7*)* 3-4 1-#-."#F 76G-H-- ) 4!9(- =-)3--%?-13--5 ) #-5M,)+N (# #33" #- ---*)3-?-1- -#- )3-)-- *&?F&J%-?-1G3-#- 535 I-345 )#- 3--#--H --"-7--?-1 #7-3-?-1-H 5 7-)##-&?##- *)-3- =--#-&? -3-3- #---&?" --?-13 3-A"33-#-5-?-1 - ?-1 53-)# 3-?-1 #-53K))-?-1 "-)5-3- 4,' 5!(!( ))-$M,N %-) !# *%&#- &-) *)@@@?*? *M,),N* # )' %-8 """ & /- 3- *32 "#--# F=*H7 H-D#-G V7" *) #3))-$*#-3- ##-"D#)3-?*?* "--%)5H-- -# -#-"5-3-- ?-1-- -*)-*"- 3- -DH5-*)- ) ? ##3#-?"-3- 44 % #L43)51" -- 3#-A-3-( #75-H-A-?-1M,),$NI )),35 -A#%###- )85-) #- -#3"-7- 3- -- -" 5- *3# 5--)I3)-(3--&?- -A*)@@@7-)5-3# ?-1A,---3(-3# #?-1F-G 7- #A3-95- ) #- #-3-!#'#-)3-6 $ 8$ (;/ 2--)#7#L##-# ILA##L4LALI##-)H)5-57- "$*#-) 7-6C*)? 2-#L43#D) #- -"-7--*) -* -H3 -() 8 3--&#"$--3-I!)35-&#-I5--? ##- ""$E#" # -#*& -* A8!?1#--# ( M, ),N-5-)"3-#- H )?2-)"$*)#3)#" -#-----* - ( -"#)! --3"$)3-3- #I-) ?-H-- 63 7-956--/ . "#- "$*&- -* )-=3)--*)-D -7- ---"$61 --- 89 ( *%- - 55#* #)A -#-3"$--23- 2-- &#*?-#7#L##-) -)-" )35&'' -(#--1# ) -#-%"3-A )--3E# ?2-3 ILA##L4LALI##)3)- - -A#--- "- #---C-B --))6--- # -2- 5)3- 5# 3-B" - 3 - *-)-)- -*)- -E- 3-#)/(3 63-/-#)-&5-!#-5# 7-)--23- 7- &''-)@# 00P-E# -)3 )&-+@P&'' #)-E#- * %#-* )))- #-?--##- H- !#'#-#5)?33-3-!#'#- + )) 3-##L43-)A ()F"-G-7W45X)--)-6 -+@)7- 3#-- !#'#-#-=*W45X )#-? ##)-) )) 8< A---%5-#--- B- 3-*&'' 3-0 '-/3--"-E#--23)) -)=-337-3---#O *)- #ILA##L4LALI## 3-H)7-3--(# +:H*)-) # )-- )-*4"-3-)-( - 7#L###4#- A5-ILA##L4LALI##/3)--! - ?2--(#H-#" -K) # 3-#- 5B33H )3-& -!#)/-#-# 3A#%##----( H53- #(#H)#L43 ---3-&??-1--) ) #)3-=-(#-D - A4--- -*-*)#-?-1-95- )) 8,9 (. *-6%-B3- /3--)3--))- .!#/3-D/8)#1F--)G 33-*))**)6C 3@@@-@@@ * -( 3-#)-" #- 35-1# A -3## "/-#% -H-( )#3"" -) *) )-%)* 3-3-7-353-#-#-#- D#)3-36#D" )3-A75- )-!%2#- 3-) - *3--*) ---) , 849%=(;/ - A33-%-A -- =---*6*)-5"$ *6-)-"$*) 3---#5?W6)X)3- ---H-##-4-#"$ *#)--B-3-D 3) - 2-)C-- 26C)-"$33D"))"3 ),#7-*#3#-?(-- *)3@@@@7--5H-- )-5 26C" 3-* 3- -B -A#- ))--(53)) )- -*- 23# ")A"-"# 3-*23- "#7-,- 3-) ()--2#$P $:PC- -D3--)-) #)# -D-#-*-(3-#&'' ) *#--*-!#)--)- *-EJ5-. "4 #-/-# )-- -5- "$*) *-%)# # "$*-*#3-&* -(3--&??-1#)@@@7- ,-#?-1#@-A6C*)3-- 3#")3-H95-)# -"-)--)- D#D#)K) #---*)A) -W45X33 )-!#" -#-R35 #)63-H"" -#--"-5) --A? ## )6 >3 MN A7#-## % #)-#%@@ MN A7# &J%'"'# ##- M$N Y)'#-72) #Z* # " #-=%;;: M+N IDA##84#A-I## 9%### #%;;; M,N #-843 & F #-% -G3))-% ?= E#I-#'## 7D#'#" ";;"@@$ 0 Multimedia-Datenbanken Music Retrieval 2 Ernst Jansen Ernst Jansen Music Retrieval 2 Seite 2 Gliederung 1. Aufgabe 1 - Um was geht es ? - Ziele.....................................................................................3 2. Welche Schwierigkeiten ? - Lösungsansätze.........................................................................3 3. Datenhaltung der Orginal-Musik............................................................................................4 1. tone transition feature vector..............................................................................................5 2. partial tone transition feature vector...................................................................................5 3. tone distribution feature vector ..........................................................................................6 4. Aufbereitung des "Summens".................................................................................................6 5. Suchen und Finden..................................................................................................................7 6. Ergebniss-Beurteilung.............................................................................................................8 7. Aufgabe 2 - Codierung von Musikstücken durch Hashwerte.................................................9 8. Welche Schwierigkeiten ? - Lösungsansatz.........................................................................10 9. Herleitung der Hashwerte......................................................................................................10 10. Datenhaltung der Orginal-Musik........................................................................................11 11. Suchen und Finden..............................................................................................................12 12. Test-Ergebnisse...................................................................................................................13 13. Literatur...............................................................................................................................13 Ernst Jansen Music Retrieval 2 Seite 3 1. Aufgabe 1 - Um was geht es ? - Ziele Ziel ist es, den Titel des Musikstückes festzustellen, aus dem eine Person ein Stückchen summt [1]. Dabei sollte es nach Möglichkeit keine Rolle spielen, ob das Summen mit einem Takt beginnt bzw. endet [2]. Das Summen soll über Mikrophon aufgenommen und einem einfachen PC zur Weiterverarbeitung übermittelt werden [1]. In einer Datenbank ist eine Auswahl von Musikstücken gespeichert. Die Datenbank befindet sich ebenfalls auf einem PC. Die aufgenommenen und eventuell aufbereiteten Daten werden dazu benutzt, eine Abfrage auf dieser Datenbank zu starten. Das gesummte Stück wird mit den in der Datenbank gespeicherten Musikstücken verglichen. Das Ergebnis der Abfrage sollte der Titel des Musikstückes sein, aus dem die Person ein kleines Stück gesummt hat. Die Lösung der Aufgabe sollte mit handelsüblicher Hardware realisiert werden. Die Antwortzeiten sollten dabei wenige Sekunden betragen. 2. Welche Schwierigkeiten ? - Lösungsansätze Eine große Schwierigkeit ist die mangelnde Reproduzierbarkeit des Summens. Eine Person wird ein bestimmtes Stück wahrscheinlich jedesmal etwas anders summen. Verschiedene Personen summen erst recht unterschiedlich. Hierbei ist besonders die Schwierigkeit, aus dem Gedächtnis zu summen, zu nennen [1], aber auch die mehr oder weniger ausgebildete Fähigkeit die richtige Tonlage zu treffen. Leicht kann es auch passieren, daß das Lied in einer anderen Tonart angestimmt wird. Absolute Fehler in Bezug auf die Qualität des Summens können bei Tempo, Takt und Melodie auftreten [1][2]. Das Tempo kann z.B. nur halb so groß sein wie im Orginal. Dies passiert relativ häufig, wie Untersuchungen gezeigt haben [2]. Noten können fehlen, falsch sein oder hinzugefügt worden sein. Der Rythmus/Takt kann grundsätzlich falsch gewählt oder nicht gehalten worden sein. Ein weiteres Problem besteht darin, daß ein beliebiger Teil aus einem Musikstück gesummt können werden soll. D.h. das gesummte Stück kann auch mitten im Takt beginnen bzw. Ernst Jansen Music Retrieval 2 Seite 4 aufhören. Phrasen und Takt stimmen also nicht immer überein [2]. Alle genannten Schwierigkeiten führen dazu, daß nur ein ungefähres Suchkriterium für die Suche zur Verfügung steht. Trotzdem soll genau das eine gesuchte Lied ermittelt werden. Dies kann naturgemäß nur näherungsweise erreicht werden. Dazu werden die Stücke gesucht, die einen Teil beinhalten, der dem gesummten am nächsten kommt. In einer Rangliste wird das Ergebnis nach Ähnlichkeit absteigend zusammengefasst. Hierfür werden die Musikstücke, sowohl die Orginale als auch die gesummten, in kleine Stücke gleicher Länge aufgeteilt, die dann miteinander verglichen werden können. Im folgenden wird auf die Einzelheiten etwas näher eingegangen. 3. Datenhaltung der Orginal-Musik Die Orginal-Musikstücke werden im MIDI-Format in der Datenbank abgelegt, da die Melodie bei diesem Format in einem eigenem Kanal gespeichert werden kann [1]. Außerdem werden in MIDI keine digitalisierten Tonaufnahmen gespeichert sondern Befehle für Instrumente, d.h. der Klang, bzw. der erzeugte Ton, eines Instrumentes wird nicht in der MIDI-Datei abgespeichert, sondern bei einer Wiedergabe neu erzeugt. Der Klang welches Instrumentes auch immer, das für die Wiedergabe des Liedes verwendet wird, spielt für die Lösung der Aufgabe hier keine Rolle. Man beschränkt sich auf die Speicherung der Melodie, da nur die Melodie für die Suche herangezogen wird. Weil die meisten Meschen ein Musikstück anhand seiner Melodie erkennen, kann dieses Kriterium als ausreichend angenommen werden [1]. Dadurch wird der Speicherplatzbedarf erheblich reduziert. Bei sehr schnellen Liedern wird das Lied zusätzlich auch noch in einer Version, die nur halb so schnell ist wie das Orginal, abgespeichert, da viele Leute bei solchen Liedern dazu neigen sie nur in einem Tempo, das halb so schnell ist, zu summen [2]. Die Akkorde werden alle gelöscht. Behalten werden nur der erste bzw. der höchste Ton eines Akkordes. Man kann beim Summen ("ta ta...") nicht zwei Töne gleichzeitig anschlagen [2]. Der Speicherplatzbedarf reduziert sich hierdurch weiter, außerdem wird die Verarbeitung dadurch wesentlich vereinfacht. Ernst Jansen Music Retrieval 2 Seite 5 Die Melodie wird nach der sliding window Methode nun in kleine, sich überschneidende Stücke gleicher Länge zerlegt [2]. Die Größe des Fensters könnte z.B. der Taktlänge entsprechen. Dann wird die Information aus den Stücken gleicher Länge in verschiedenen Merkmalsvektoren codiert [1]. Durch diese Aufteilung lassen sich später leicht Stücke innerhalb von Liedern finden. Die gewählte Auflösung von Achtel-Noten richtete sich nach Untersuchungen, die besagen, daß Achtel-Noten bei weitem am häufigsten vorkommen [2]. Im folgenden wird näher auf verschiedenen Merkmalsvektoren eingegangen. 1. tone transition feature vector Dieser Merkmalsvektor hat die Dimension des Fensters (z.B. des Taktes) in Schlägen, wobei die Anzahl der Schläge sich nach der gewählten Auflösung richtet. In einem 4/4-Takt bei einer Auflösung von 1/8-Noten hat der Vektor also die Dimension 8. In den einzelnen Zellen des Vektors wird eine Nummer eingetragen, die den zu diesem Zeitpunkt klingenden Ton identifiziert. Die Nummer des Tones ist die Nummer des Tones im MIDI-Format. Für den folgenden Takt z.B. ergibt sich der tone transition vector zu (64, 64, 65, 65, 67, 67, 65, 65). 2. partial tone transition feature vector Ein Schwierigkeit ist, daß gesummte Stücke und gespeicherte Stücke in ihrer Aufteilung nicht immer deckungsgleich sind. Das liegt daran, daß der Summende nicht unbedingt mit dem Takt anfängt, wie dies in der Datenbank der Fall ist, z.B. bei Auftakten. Ein Lösungsansatz für diese Problem ist der partial tone trasition vector. Bei diesem Merkmalsvektor stimmt die Dimension nicht mit den Fenstern (Stücken) in der Datenbank bzw. den gesummten Liedern überein. Der Anfang des Vektors ist nicht konsistent mit dem Anfang des Datenfensters aus der Aufteilung der Musikstücke. Stattdessen wird zum Vektor Ernst Jansen Music Retrieval 2 Seite 6 der höchste Ton des vorherigen Fensters (z.B. Taktes) hinzugenommen. Mit Hilfe der so entstehenden Merkmalsvektoren werden die Fehler durch unterschiedliche Startpunkte (wegen Auftakte) von Orginal-Lied und gesummenten Lied reduziert. Da die Wahrscheinlichkeit in der Datenbank einen Vektor, nämlich einen partial tone transition vector, der den gleichen Startpunkt hat wie der, der aus den gesummten Daten hergeleitet wurde, deutlich höher ist. 3. tone distribution feature vector Dieser Vektor gibt an, wieviele Schläge ein Ton innerhalb des Datenfensters insgesamt klingt. Die Dimension des Vektors entspricht der Anzahl der möglichen Töne zwischen dem höchsten und tiefsten Ton, der im Datenfenster vorkommt. Für das folgende Datenfenster erhält man somit den tone distribution vector (2, 4, 0, 2). Der so erhaltene Vektor ist unempfindlich für Tempovariationen, da nur die Gesamtzahl der Schäge erfaßt wird, und auch gegenüber Tonlagen, da die Töne nur relativ zueinander identifiziert werden. Die so erhaltenen Merkmalsvektoren werden für die Indizierung herangezogen. Es werden dazu verschiedene Indexe aufgebaut. 4. Aufbereitung des "Summens" Für die Verarbeitung der Aufnahmen ist ein klare und deutliche Unterscheidung der Töne vorteilhaft. Daher soll für das Summen nur die eine Silbe "ta, ta...." verwendet werden [2], so wird gewährleistet, daß der Beginn jedes neuen Tones in immer gleicher Weise zu erkennen ist. Da viele Ungeübte Probleme haben, im richtigen Tempo zu summen, wird mit Hilfe eines bei der Aufnahme laufenden Metronoms das Tempo synchronisiert [2]. Das Metronom kann in Ernst Jansen Music Retrieval 2 Seite 7 seiner Einstellung den Möglichkeiten des Summenden angepaßt werden. Wie die Orginal-Daten in der Datenbank wird das gesummte Stück nach der Aufnahme in das MIDI-Format konvertiert. Anschließend wird das Rauschen entfernt, Rauschen heißt hier Töne die zwar aufgezeichnet wurden, aber nicht zum Summen gehören. So werden z.B. aufgezeichnete Noten direkt am Beginn eines Stückes nach denen wieder eine längere Pause eintritt als fehlerhafte Töne entfernt [2]. Da normalerweise der Unterschied in der Tonhöhe aufeinanderfolgender Töne sich in einem gewissen Rahmen hält, werden solche Töne, die diesen Schwellwert im Abstand zu den benachbarten Tönen übersteigen, ebenfalls als Rauschen interpretiert und gelöscht. Der Schwellwert ist ein Konfigurationswert des Systems. Fehlerhafte Oktavensprünge, die bei der Aufnahmeverarbeitung entstehen können, werden verbessert. Erkannt werden sie wie oben bei der Entfernung des Rauschens an der Relation des Tones in seiner Höhe zu der des nachfolgenden. Dann wird das Stück wie die Orginale in der Datenbank in kleine sich überschneidende Stücke gleicher Größe (Sliding-Window-Methode) aufgeteilt. Die Frame-Größe entspricht der der Orginale in der Datenbank. Das aufgenommene Summen wird genauso codiert wie die Orginaldaten. D.h. es werden die verschiedenen Merkmalsvektoren gebildet, genau wie oben bei den Orginaldaten beschrieben. Die erhaltenen Merkmalsvektoren dienen dann als Such-Schlüssel für die Suche über die verschiedene Indexe in der Datenbank. 5. Suchen und Finden Für die Suche werden die Merkmalsvektoren aus der Codierung des gesummten Stückes herangezogen. Verglichen wird die Ähnlichkeit von Such-Vektor und Datenbank-(Index-) Vektor mit Hilfe der Euklidischen Distanz. Hierbei werden aufgrund der drei verschiedenen Merkmalsvektoren auch drei Suchläufe durchgeführt. Das Ergebnis jedes Suchlaufes mit einem der verwendeten Merkmalsvektoren als Suchschlüssel wird in einer Rangliste angegeben. Hierin sind die gefundenen Lieder von Rang 1 an der Ähnlichkeit nach abwärts aufgelistet, d.h. das gefundene Lied, das dem Gesuchten Ernst Jansen Music Retrieval 2 Seite 8 am ähnlichsten ist, steht an Position bzw. Rang 1 [1][2]. Auf diese Weise erhält man drei Ranglisten, für jeden Suchschlüssel (Merkmalsvektor) eine. Die drei erhaltenen Ranglisten stimmen nicht unbedingt überein. Die verschiedenen Ranglisten lassen sich nun zu einer einzigen zusammenfassen, indem man eine neue Rangliste aufstellt in der wiederum nach Ähnlichkeit sortiert die gefundenen Lieder aufgelistet werden. Hierbei wird jeweils nach der größten vorhandenen Ähnlichkeit über alle drei zuerst erhaltenen Ranglisten sortiert. Beispiel: d(hi, X) := Euklidische Distanz zwischen hi und X mit X = {A, B, C, D, ...} sind Lieder in der Datenbank hi = {h1, h2, h3} sind die drei Schlüssel (Merkmalsvektoren: tone transition, etc.) es werden folgende Euklidischen Distanzen in aufsteigender Reihenfolge erhalten Schlüssel Euklidische Distanzen h1 d(h1, D) = 0,9 d(h1, B) = 1,5 d(h1, C) = 1,8 d(h1, A) = 5,8 h2 d(h2, A) = 0,3 d(h2, B) = 1,2 d(h2, C) = 2,0 d(h2, D) = 5,9 h3 d(h3, B) = 1,0 d(h3, C) = 1,2 d(h3, D) = 1,5 d(h3, A) = 6,0 es ergibt sich folgende Rangliste über alle 3 Schlüssel d(h2, A) = 0,3 < d(h1, D) = 0,9 < d(h3, B) = 1,0 < d(h3, C) = 1,2 also: A - D - B - C 6. Ergebniss-Beurteilung Bei der für die Tests verwendeten Datenbank von mehr als 10.000 Liedern ließ sich die Größe um 38% reduzieren, wenn doppelte Informationen gelöscht werden [2]. Weiter wird den nachfolgenenden Beurteilungen die Suche nach 186 gesummten Stücken aus Liedern in der Datenbank zu Grunde gelegt. Eine Auflösung der Merkmalsvektoren von Achtel-Noten statt Viertel-Noten steigert die Wahrscheinlichkeit, das richtige Ergebniss unter den ersten zwei in der Rangliste zu finden, um ca. 10% [2]. Die Anwendung des partial tone transition vectors statt des tone transition vectors liefert ein Ernst Jansen Music Retrieval 2 Seite 9 um etwa 7% besseres Ergebnis bis Rang 2. Bei ausschließlicher Verwendung eines Feature-Vektors, eignet sich der tone transition vector besser als der tone distribution vector [2]. Die besten Ergebnissen erzielt man durch die gleichzeitige Verwendung der verschiedenen Feature-Vektoren, wie in der nachfolgende Abbildung deutlich wird. Bei gleichzeitiger Verwendung von tone transition und tone distribution vector wird in weniger als einer Sekunde das gesuchte Lied in der Rangliste unter den ersten fünf mit einer Wahrscheinlichkeit von 75% erscheinen [2]. Eine weitere Verbesserung wird durch die Verknüpfung der verschiedenen Ergebnisse aller drei Merkmalsvektoren erreicht. Hierdurch kann erreicht werden, daß in 74% der Fälle das gesuchte Lied schlechtenfalls auf Platz 2 steht (siehe folgende Abbildung). 7. Aufgabe 2 - Codierung von Musikstücken durch Hashwerte Es sollen Hashwerte zu Musikstücken für das Speichern und Wiederauffinden der Musikstücke hergeleitet werden. Mit Hilfe dieser Hashwerte sollen Lieder an Hand nur kleiner Auszüge identifiziert werden können. Liegt z.B. ein kleiner Ausschnitt eines Liedes vor, evtl. in verschiedenen DatenFormaten (MP3, Real Media, etc.), so soll das zugehörige vollständige Lied in einer Datenbank gefunden werden. Dabei ist insbesondere darauf zu achten, daß verschiedene Interpretationen und Aufnahmequalitäten zum gleichen Ergebnis führen. Ernst Jansen Music Retrieval 2 Seite 10 8. Welche Schwierigkeiten ? - Lösungsansatz Durch die möglichen Variationen in Aufnahmequalität und Interpretation der Lieder ergibt sich hier wieder, wie in Aufgabe 1 der Näherungscharakter der Lösung. D.h. man kann unter Umständen ein Ergebnis angeben, das dem gesuchten am nächsten liegt. Erreicht werden soll dies unter anderem über die Bestimmung eines Abstandes zwischen dem Suchwert und den Werten in der Datenbank. Wie sicher das richtige Ergebnis der Suche zurückgegeben wird, ist dann von der Definition bzw. den Parametern der Abstandsfunktion abhängig. Hashwerte sind üblicherweise äußerst empfindlich gegenüber auch nur bitweisen Veränderungen der Ausgangsdaten [3]. D.h. eine kleine Änderung im Suchkriterium kann zu völlig anderen Ergebnissen führen. Es wird also ein Herleitungsverfahren für Hashwerte benötigt, das möglichst unempfindlich ist gegenüber Qualitätsschwankungen (z.B. durch Packen der Daten in mp3-Format) oder auch gegenüber Interpretationen (z.B. durch verschiedene Künstler). Außerdem sollen aus benachbarten Ausgangswerten auch benachbarte Hashwerte erzeugt werden. Dies gewährleistet Zusammenhang und Kontinuität der Musikstücke in der Datenbank. Ein solches Verfahren zur Herleitung solcher Hashwerte heißt "robust hash" und soll im folgenden beschrieben werden. 9. Herleitung der Hashwerte Ernst Jansen Music Retrieval 2 Seite 11 Zuerst werden die Audiodaten jedes einzelnen Liedes in Intervalle aufgeteilt aus denen dann später die Hashwerte gebildet werden sollen. Diese Intervalle oder auch "frames" haben eine Länge von 0.4s und überschneiden einander mit 31/32 ihrer Länge. Die Überlappung soll für Kontinuität sorgen, d.h. aus zeitlich benachbarten Ausgangsdaten sollen benachbarte Hashwerte gebildet werden [3]. Die Frames werden mittels Fourier-Transformation in eine Spektral-Darstellung überführt. Anschließend werden die Daten der einzelnen Frames in 32 nicht überlappende Frequenzbänder aufgeteilt [3]. Die Energie des Frequenzbandes m im Frame n wird bezeichnet mit EB(n,m). Sie hat sich in verschiedenen Experimenten als robustes Kriterium erwiesen [3] Das m-te Bit der Hashvariable wird dann bestimmt durch H(n,m) = { 1, falls EB(n,m) - EB(n,m+1) - (EB(n-1,m) - EB(n-1,m+1)) > 0 0, falls EB(n,m) - EB(n,m+1) - (EB(n-1,m) - EB(n-1,m+1)) 0 Jedes Frequenzband liefert ein Bit, so daß man für einen Frame einen 32-bit Hashwert erhält, der dann für (0.4 * 31 / 32)s Audio-Signal steht. Die Hashwerte von 256 Frames werden zu einem Hash-Block zusammengefaßt. Werden zwei Hashblocks bitweise miteinander verglichen, erhält man die Bit-Error-Rate (BER). Anders gesagt, die BER ist die XOR-Verknüpfung eines Hashblocks vom gesuchtem Orginal mit einem zu vergleichenden Hashblock aus der Datenbank im Verhältnis zum Orginal-Hashblock. Die BER kann somit als Maß für den Unterschied zwischen gesuchtem Lied und dem Ergebnis der Suche herangezogen werden. 10. Datenhaltung der Orginal-Musik Für jedes Lied werden die Hashwerte bzw. -blocks nach dem oben beschriebenen Verfahren ermittelt und auf das Lied bezogen chronologisch in der Datenbank abgelegt. Für alle möglichen Hashwerte wird ein lookup table (LUT) angelegt. Von jedem Eintrag im LUT verweisen Zeiger auf die Stellen in den Liedern, wo dieser Eintrag bzw. Wert vorkommt. Sind mehrere Zeiger vorhanden werden diese durch eine verkettete Liste verbunden. Ernst Jansen Music Retrieval 2 Seite 12 11. Suchen und Finden Zuerst werden die Hashblocks ermittelt, d.h. die Hashwerte werden nach oben beschriebenen Verfahren hergeleitet und dann zu Blocks von je 256 Werte zusammengefaßt. Zwei Hashblocks werden als gleich erkannt, wenn die Hamming-Distanz zwischen den beiden Blocks kleiner ist als ein gewählter Schwellwert [3]. Der Schwellwert beeinflußt direkt das Ergebnis, ein niedrigerer Schwellwert bedeutet, daß das Ergebnis mit größerer Wahrscheinlichkeit richtig ist. Andererseits bedeutet er gleichzeitig auch, daß weniger Übereinstimmungen gefunden werden, im Extremfall vielleicht sogar - z.B. aufgrund von Qualitätsunterschieden - gar keine Übereinstimmung, obwohl es eine hätte geben müssen. Mit jedem einzelnen Hashwert (der Reihe nach) des Hashblocks des gesuchten Liedes wird in die LUT gegangen. Über die dort angegebenen Zeiger werden alle Lieder gefunden in denen dieser Wert auftritt. Ist ein Kandidat für einen Hashwert gefunden, wird der ganze Block verglichen [3]. Im Falle einer Ähnlichkeit (siehe 10), die nicht im Bereich des vorgegebenen Schwellwertes liegt, wird der nächste Kandidat in der Liste bzw. der nächste Hashwert im Block herangezogen. Nun kann man wie bei der 1. Aufgabe eine Rangliste, sortiert nach der Ähnlichkeit, mit den gefundenen Liedern aufstellen. Ernst Jansen Music Retrieval 2 Seite 13 12. Test-Ergebnisse Für den Test wurden 4 verschiedene Lieder herangezogen. Und ein Schwellwert von 0.25 zu Grunde gelegt. Trotz verschiedener Bearbeitung der Orginal-Stücke (z.B. Packen, Amplituden-Kompression, etc.) bleiben die BER < 0.20. Bzgl. der Abstände der verschiedenen Lieder hingegen bleiben die BER > 0.40. D.h. alle Lieder werden gefunden und korrekt zugeordnet. 13. Literatur [1] Music Retrieval by Humming Naoko Kosugi, Yuichi Nishihara, Seiichi Kon'ya, Masashi Yamamuro, Kazuhiko Kushima [2] A Practical Query-By-Humming System for a Large Music Database Naoko Kosugi, Yuichi Nishihara, Tetsuo Sakata, Masashi Yamamuro, Kazuhiko Kushima [3] Robust Audio Hashing for Content Identifikation Jaap Haitsma, Ton Kalker, Job Oostveen Gesamtliteraturverzeichnis • Edoardo Ardizzone and Marco La Cascia. Automatic video database indexing and retrieval. Multimedia Tools Appl., 4(1):29–56, 1997. • Sandra Barthel. jpg, 1999. http://goethe.ira.uka.de/semibare/redundanz/vortrag11/ (2006). • Stefan Berchtold, Daniel A. Keim, and Hans-Peter Kriegel. The x-tree: An index structure for high-dimensional data. In T. M. Vijayaraman, Alejandro P. Buchmann, C. Mohan, and Nandlal L. Sarda, editors, VLDB, pages 28–39. Morgan Kaufmann, 1996. • Robert S. Boyer and J. Strother Moore. A fast string searching algorithm. Commun. ACM, 20(10):762–772, 1977. • Shih-Fu Chang, William Chen, Horace J. Meng, Hari Sundaram, and Di Zhong. Videoq: An automated content based video search system using visual cues. In ACM Multimedia, pages 313–324, 1997. • Paolo Ciaccia, Marco Patella, and Pavel Zezula. M-tree: An efficient access method for similarity search in metric spaces. In Matthias Jarke, Michael J. Carey, Klaus R. Dittrich, Frederick H. Lochovsky, Pericles Loucopoulos, and Manfred A. Jeusfeld, editors, VLDB, pages 426–435. Morgan Kaufmann, 1997. • Scott C. Deerwester, Susan T. Dumais, Thomas K. Landauer, George W. Furnas, and Richard A. Harshman. Indexing by latent semantic analysis. JASIS, 41(6):391–407, 1990. • Bjorn Eisert. Was ist MPEG?, 1995. http://www.cybersite.de/german/service/Tutorial/mpeg/ (2006). • Christos Faloutsos, Ron Barber, Myron Flickner, Jim Hafner, Wayne Niblack, Dragutin Petkovic, and William Equitz. Efficient and e ective querying by image content. J. Intell. Inf. Syst., 3(3/4):231–262, 1994. • Reginald Ferber. Information Retrieval - Suchmodelle und Data-MiningVerfahren für Textsammlungen und das Web. Dpunkt Verlag, 2003. • Norbert Fuhr. Information Retrieval - Script zur Vorlesung. http://is.informatik.uni-duisburg.de/courses/ir ss06/folien/ irskall.pdf (300605-03). • Didier Le Gall. Mpeg: A video compression standard for multimedia applications. Commun. ACM, 34(4):46–58, 1991. • Venkat N. Gudivada and Vijay V. Raghavan. Design and evaluation of algorithms for image retrieval by spatial similarity. ACM Trans. Inf. Syst., 13(2):115–144, 1995. • Antonin Guttman. R-trees: A dynamic index structure for spatial searching. In SIGMOD Conference, pages 47–57, 1984. • Andreas Heurer. Datenbanken 2 - Script zur Vorlesung. http://dbis.informatik.uni-rostock.de/ Studium/Lehrveranstaltungen/Sommersemester 2006/ Datenbanken II/Skripte/db2-2006-Kap4.pdf (2006). • J. Haitsma, T. Kalker, and J. Oostveen. Robust audio hashing for content identification. In Proceedings of the Content-Based Multimedia Indexing, pages 19–21, 2001. • H.W.Lang. Boyer-Moore-Algorithmus. http://inf.fh-flensburg.de/lang/algorithmen/pattern/bm.html, 2006. • H. V. Jagadish. A retrieval technique for similar shapes. In James Cli ord and Roger King, editors, SIGMOD Conference, pages 208–217. ACM Press, 1991. • Naoko Kosugi, Yuichi Nishihara, Tetsuo Sakata, Masashi Yamamuro, and Kazuhiko Kushima. A practical query-by-humming system for a large music database. In ACM Multimedia, pages 333–342, 2000. • King-Ip Lin, H. V. Jagadish, and Christos Faloutsos. The tv-tree: An index structure for high-dimensional data. VLDB J., 3(4):517–542, 1994. • Beth Logan. Mel frequency cepstral coefficients for music modeling. In ISMIR, 2000. • B. Logan and A. Salomon. A music similarity function based on signal analysis. In Proceedings of the IEEE International Conference on Multimedia and Expo, pages 745–748, 2001. • Thomas Mandl. Tolerantes Information Retrieval - Neuronale Netze zur Erhöhung der Adaptivität und Flexibilität bei der Informationssuche, volume 39 of Schriften zur Informationswissenschaft. Hochschulverband fur Informationswissenschaft (HI) e.V. Konstanz, 2001. • Alistair Mo at and Justin Zobel. Self-indexing inverted files for fast text retrieval. ACM Transactions on Information Systems, 14(4):349–379, 1996. • S. Kon’ya N. Kosugi, Y. Nishimura, M. Yamamuro, and K. Kushima. Music retrieval by humming. In PACRIM’99, pages 404–407, August 1999. • G. Navarro and J. Tarhio. Boyer-Moore string matching over ziv-lempel compressed text. In R. Giancarlo and D. Sanko , editors, Proceedings of the11th Annual Symposium on Combinatorial Pattern Matching, volume 1848, pages 166–180, Montréal, Canada, 2000. Springer-Verlag, Berlin. • Seung-Min Rho and Een-Jun Hwang. Fmf(fast melody finder): A web-based music retrieval system. In U e Kock Wiil, editor, CMMR, volume 2771 of Lecture Notes in Computer Science, pages 179–192. Springer, 2003. • Markus Schneider. Implementierungskonzepte fur Datenbanksysteme, Kurs 1664, 1999. • Markus A. Stricker and Markus Orengo. Similarity of color images. In Storage and Retrieval for Image and Video Databases (SPIE), pages 381–392, 1995. • T.Ottmann, P.Widmayer. Algorithmen und Datenstrukturen. Spektrum Akademischer Verlag, Heidelberg, 1996. 2nd edition. • Je rey K. Uhlmann. Satisfying general proximity/similarity queries with metric trees. Inf. Process. Lett., 40(4):175–179, 1991. • Gregory K. Wallace. The jpeg still picture compression standard. Commun. ACM, 34(4):30–44, 1991. • M. Welsh, N. Borisov, J. Hill, R. von Behren, and A. Woo. Querying large collections of music for similarity. Technical Report 1096, U.C. Berkeley Computer Science Division, 1999. • Wikipedia. Containerformat. http://de.wikipedia.org/wiki/Containerformat last changed: 22. Jun 2006. • Wikipedia. Diskrete Kosinustransformation. http://de.wikipedia.org/wiki/Diskrete Kosinustransformation last changed: 14. Jun 2006. • Wikipedia. Joint Photographic Experts Group. http://de.wikipedia.org/wiki/JPEG last changed: 22. Jun 2006. • Wikipedia. Motion Compensation. http://de.wikipedia.org/wiki/Motion Compensation last changed: 21. Jun 2006. • Wikipedia. Moving Picture Experts Group. http://de.wikipedia.org/wiki/mpeg last changed: 21. Jun 2006. • Wikipedia. MPEG-1. http://de.wikipedia.org/wiki/Mpeg-1 last changed: 26. Jun 2006. • Wikipedia. MPEG-2. http://de.wikipedia.org/wiki/Mpeg-2 last changed: 21. Jun 2006. • Wikipedia. MPEG-4. http://de.wikipedia.org/wiki/Mpeg-4 last changed: 21. Jun 2006. • C.Tomasi Y.Rubner and L.Guibas. The earth mover’s distance as a metric for image retrieval. Technical report, Stanford University, 1998. • Jacob Ziv and Abraham Lempel. A universal algorithm for sequential data compression. IEEE Transactions on Information Theory, 23(3):337–343, 1977.