Variable-Byte Encoding

Werbung
Rückblick
§ Vektorraum-Modell bildet Dokumente und Anfrage in
gemeinsamen hochdimensionalen Vektorraum ab
§ Vektorkomponenten werden mittels tf.idf-Gewichtung
unter Berücksichtigung von Häufigkeiten bestimmt
§ Kosinusähnlichkeit vergleicht Dokumentvektoren und
Anfragevektor, um eine Rangfolge zu bestimmen
§ Alternative Gütemaße (z.B. MAP, nDCG) adressieren
verschiedene Nachteile von Präzision und Ausbeute
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
71
5.6 Implementierung
§ Prototypische Implementierung eines IR-Systems auf
Grundlage eines RDBMS möglich
§ Spezialisierte Implementierung sehr sinnvoll für
große dynamische Dokumentensammlungen
oder bei hoher Anfragelast
§ Dokumentensammlung wird vorab indexiert, um so
die spätere Anfragebearbeitung zu beschleunigen
§ Zusätzlich kommen verschiedene Caches (z.B. für Teile
des Index oder Anfrageergebnisse) zum Einsatz
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
72
Invertierter Index (inverted index)
Wörterbuch
clooney
george
d1
d4
d6
d9
d11
d34
d66
d89
d4
d5
d7
d9
d13
d14
d34
d99
Indexlisten
§ Invertierter Index (inverted index oder inverted file) als
die am häufigsten verwendete Indexstruktur
in IR-Systemen
§ Wörterbuch (dictionary) beinhaltet alle bekannten Terme
§ Indexlisten (posting lists) beinhalten jeweils Informationen
zu den Vorkommen eines bestimmten Terms
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
73
Invertierter Index (inverted index)
Wörterbuch
clooney
george
d1
d4
d6
d9
d11
d34
d66
d89
d4
d5
d7
d9
d13
d14
d34
d99
Indexlisten
§ Wörterbuch typischerweise implementiert als B+-Baum
oder Hashtabelle und (teilweise) im
Primärspeicher gehalten
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
74
Invertierter Index (inverted index)
Wörterbuch
clooney
george
d1
d4
d6
d9
d11
d34
d66
d89
d4
d5
d7
d9
d13
d14
d34
d99
Indexlisten
§ Indexlisten (posting lists) typischerweise sequenziell
(d.h. an einem Stück) oder in wenigen verketteten
Blöcken auf Sekundärspeicher gespeichert
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
75
Indexlisteneinträge (postings)
§ Struktur der Indexlisteneinträge (postings) abhängig von
zu unterstützenden Anfragen bzw. Retrievalmodell
§ Dokumenten-ID (z.B. für Boolesches Retrieval)
d7
§ Dokumenten-ID und Wert (z.B. Termhäufigkeit)
d7 | 5
§ Dokumenten-ID, Wert und Positionsangaben
d7 | 5 | [1, 2, 6, 8, 12]
(z.B. wenn nach Phrasen gesucht werden soll)
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
76
Sortierung der Indexlisten
§ Sortierung der Indexlisten beeinflusst Komprimierbarkeit
sowie die Möglichkeiten der Anfragebearbeitung
§ Sortierung nach Dokumenten-ID
d2 | 5
d6 | 2
d8 | 6
bietet mehr Möglichkeiten zur Komprimierung und
erlaubt effiziente konjunktive Anfrageauswertung
§ Sortierung nach Wert (z.B. Termhäufigkeit)
d8 | 6
d2 | 5
d6 | 2
erlaubt effiziente Top-k Anfrageauswertung
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
77
Kompression
§ Leistungsfähigkeit von CPUs hat deutlich schneller
zugenommen als die von Sekundärspeichern (Kapitel 3)
§ Geeignet komprimierte Indexlisten lassen sich schneller
als nicht komprimierte vom Sekundärspeicher lesen
§ Kompressionsverfahren muss leichtgewichtig sein und
sequentielles Lesen der Indexlisteneinträge erlauben
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
78
Variable-Byte Encoding
§ Variable-Byte Encoding (auch: 7-Bit Encoding) verwendet
zur Darstellung ganzer Zahlen eine variable Anzahl Bytes
§ Kleinere Zahlen werden mit weniger Bytes dargestellt
§ Idee: Verwende in jedem Byte
§ das höchstwertige als Stopp-Bit (stop bit) gibt an,
ob dies das letzte Bit der aktuellen Zahl ist
§ die übrigen sieben Bits als „Nutzlast“ (payload)
payload
stopp bit
7
6
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
5
4
3
2
1
0
79
Variable-Byte Encoding
§ Beispiel: Zahl 4711 hat folgende 32-bit Binärdarstellung
00000000 00000000 00010010 01100111
mit Variable-Byte Encoding dargestellt
00100100 11100111
benötigt man nur zwei anstatt von vier Bytes
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
80
Delta-Encoding
§ Variable-Byte Encoding stellt kleinere Zahlen mit weniger
Bytes und somit weniger Speicherplatz dar
§ Beobachtung: Indexlisten beinhalten aufsteigend sortierte
Folgen ganzer Zahlen, beispielsweise
§ Dokumenten-IDs bei entsprechend sortierten Indexlisten
d2 | 5
d6 | 2
d8 | 6
§ Positionsangaben bei Indexlisten mit Positionsinformation
d7 | 5 | [1, 2, 6, 8, 12]
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
81
Delta-Encoding
§ Idee: Speichere aufsteigend sortierte Liste ganzer Zahlen
als erstes Element gefolgt von Differenz (delta)
zum jeweiligen Vorgänger
§ Beispiel: Die aufsteigend sortierte Liste
È7, 64, 128, 130, 167Í
wird gespeichert als
È7, 57, 64, 2, 37Í
wodurch bei Verwendung von Variable-Byte-Encoding
nur noch 5 Bytes anstatt 8 Bytes benötigt werden
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
82
Beispiel Kompression
§ Komprimieren einer Indexliste mit Kombination
aus Gap- und Variable-Byte Encoding
d2 | 5
d6 | 2
d8 | 6
§ Gap-Encoding führt zu folgender Liste ganzer Zahlen
È2, 5, 4, 2, 2, 6Í
mit abwechselnden Dokumenten-IDs und Termhäufigkeiten
§ Variable-Byte Encoding ergibt
10000010 10000101 10000100 10000010 10000010 10000110
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
83
Anfragebearbeitung
§ Stellt ein Benutzer eine Anfrage, so muss diese mit Hilfe
des invertierten Index in möglichst kurzer Zeit und
mit möglichst wenig Ressourcen bearbeitet werden
§ Zwei Arten von Anfragebearbeitung:
§ konjunktiv, d.h. alle Anfrageterme müssen in einem
Dokument im Ergebnis vorkommen (AND)
§ disjunktiv, d.h. mindestens einer der Anfrageterme
muss in einem Dokument im Ergebnis vorkommen (OR)
§ Konjunktive Anfragebearbeitung insbesondere bei großen
Dokumentensammlungen (z.B. WWW) verwendet
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
84
Anfragebearbeitung
§ Abstraktion vom konkreten Retrieval-Modell (z.B. VSM);
Wert (score) eines Dokuments d zur Anfrage q ist
ÿ
score(q, d) =
score(v, d)
vœq
z.B. mit
N
score(v, d) = tf (v, d) · log
df (v)
§ Anfragebearbeitung liest nur Indexlisten zu Termen aus
der Anfrage und aggregiert den Wert der Dokumente
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
85
Term-at-a-Time Anfragebearbeitung
§ Term-at-a-Time Anfragebearbeitung liest die Indexlisten
zu den Termen aus der Anfrage eine nach der anderen
a
d1, 0.2 d3, 0.1 d5, 0.5
b
d5, 0.3 d7, 0.2
§ Für jedes Dokument, das in einer Indexliste gesehen wird,
muss im Hauptspeicher sein bisher aggregierter Wert
(accumulator) gehalten werden
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
86
Term-at-a-Time Anfragebearbeitung
§ Optimierungen bei konjunktiver Anfragebearbeitung
§ liest Indexlisten zu Anfragetermen v in aufsteigender
Reihenfolge ihrer Länge, d.h. df(v)
§ wurde ein Dokument nicht in der ersten gelesenen
Indexliste gesehen, kann es fortan ignoriert werden
§ Top-K Anfragebearbeitung, d.h. Bestimmen der K
Dokumente mit den höchsten Werten mittels
Sortieren nachdem letzte Indexliste
vollständig gelesen wurde
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
87
Document-at-a-Time Anfragebearbeitung
§ Document-at-a-Time Anfragebearbeitung liest die
Indexlisten zu den Termen aus der Anfrage parallel
a
d1, 0.2 d3, 0.1 d5, 0.5
b
d5, 0.3 d7, 0.2
(vgl. MergeJoin in Kapitel 3)
§ Indexlisten hierzu nach Dokumenten-IDs sortiert
§ Dokument wird zur gleichen Zeit in allen Indexlisten
gesehen und es kann entschieden werden, ob es zum
Ergebnis gehört (konjunktiv vs. disjunktiv)
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
88
Document-at-a-Time Anfragebearbeitung
§ Optimierung bei konjunktiver Anfragebearbeitung
§ Indexlisten können durch sogenannte Skip-Pointer,
als eingebettete Indexstruktur, erweitert werden;
diese erlauben ein Überspringen ganzer
Blöcke von nicht benötigten
Indexeinträgen
§ Top-K Anfragebearbeitung, d.h. Bestimmen der K
Dokumente mit den höchsten Werten, indem
die bisher gesehenen K besten Dokumente
in einer Prioritätswarteschlange (MinHeap)
vermerkt werden
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
89
5.7 Websuche
§ Suche im World Wide Web ist heute eine der populärsten
Anwendungen von Methoden des Information Retrievals
§ Suchmaschinen (z.B. Altavista, Excite) in den frühen
1990ern setzten auf u.a. das Vektorraum-Modell sowie
einfache Statistiken (z.B. Zahl eingehender Links)
§ Googles Erfolg ab 1998 beruhte mutmaßlich auf der
besseren Ausnutzung des Webgraphen mittels
des Verfahrens PageRank
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
90
Websuche
§ Seit Mitte der 2000er Jahre verwenden Suchmaschinen
mehr und mehr Signale neben textueller Relevanz und
linkbasierter Wichtigkeit, beispielsweise solche abgeleitet
aus Beobachtungen des Benutzerverhaltens
§ Zur Kombination dieser Signale werden heute Verfahren
des maschinellen Lernens (learning to rank) eingesetzt
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
91
Webgraph
§ World Wide Web als gerichteter Graph G(V, E)
§ Webseiten (URLs) sind die Knoten (V) dieses Graphs
§ Hyperlinks sind die Kanten (E) dieses Graph
Adjazenzmatrix:
2
0
60
A=6
41
0
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
1
0
0
0
0
0
0
1
3
1
17
7
15
0
92
PageRank
§ PageRank basiert auf Zufallsbewegung (random walk)
eines Websurfers durch den Graph G(V,E)
§ mit Wahrscheinlichkeit ε springt der Websurfer
zu einem zufällig gewählten Knoten des Graph
§ mit Wahrscheinlichkeit (1- ε) folgt der Websurfer
einer zufällig gewählten ausgehenden Kante
des aktuell besuchten Knotens
p(v) = (1
✏) ·
X
(u,v)2E
p(u)
✏
+
out(u) |V |
§ PageRank p(v) eines Knotens v misst seine Wichtigkeit
und spiegelt die Zeit wieder, die im Knoten verbracht wird
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
93
PageRank
§ PageRank berechenbar mittels iterativen Verfahrens auf
einer Matrix P von Übergangswahrscheinlichkeiten
P(u,v) =
;
‘/|V | + (1 ≠ ‘)/out(u) : (u, v) œ E
‘/|V |
:
sonst
‘ = 0.2
2
0.05
60.05
P =6
40.45
0.05
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
0.45
0.05
0.05
0.05
0.05
0.05
0.05
0.85
3
0.45
0.857
7
0.455
0.05
94
PageRank
§ PageRank berechenbar mittels iterativen Verfahrens auf
einer Matrix P von Übergangswahrscheinlichkeiten
§ beginne mit initialem Vektor
Ë
È
fi (0) = |V1 | . . . |V1 |
§ berechne Vektor nach i Schritten als
fi (i) = fi (i≠1) P
seine Einträge entsprechen der Wahrscheinlichkeit, dass
der Websurfer nach i Schritten in einem Knoten ist
(i)
(i≠1)
| < ” z.B. mit ” = 10≠5
§ höre auf, wenn |fi ≠ fi
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
95
PageRank
§ Iteratives Verfahren (power iteration) angewandt
auf unseren Beispielgraphen
⇥
⇤
(0)
⇡ = 0.25 0.25 0.25 0.25
⇥
⇤
(1)
⇡ = 0.15 0.15 0.25 0.45
⇥
⇤
(2)
⇡ = 0.15 0.11 0.41 0.33
⇡
(10)
⇥
= 0.18
..
.
0.12
0.34
0.36
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
⇤
2
0.05
60.05
P =6
40.45
0.05
0.45
0.05
0.05
0.05
0.05
0.05
0.05
0.85
3
0.45
0.857
7
0.455
0.05
96
Verteilter invertierter Index
§ World Wide Web ist zu groß, um in den Primärspeicher
oder Sekundärspeicher eines einzelnen Rechners
zu passen; zudem müssen viele Anfragen
zeitgleich mit kurzen Antwortzeiten
bearbeitet werden
§ Suchmaschinen partitionieren den invertierten Index
und halten ihn so verteilt im Primärspeicher vieler
vernetzter Rechner; zudem werden Partitionen
redundant gehalten, um eine Lastverteilung
bei der Anfragebearbeitung zu erreichen
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
97
Verteilter invertierter Index
§ Invertierter Index kann auf zwei Arten partitioniert werden
§ nach Dokumenten-IDs, so dass jeder Rechner einen
invertierten Index für einen Teil der Dokumente hält
§ nach Termen (Wörtern), so dass jeder Rechner einen
invertierten Index für einen Teil der Terme hält
P2
P1
c++
object
class
oriented
loop
java
pointer
overflow
code
sort
python
array
stack
d1
2
1
1
1
0
0
0
0
0
0
0
0
0
d2
0
0
1
1
0
0
0
0
2
2
2
0
0
d3
0
0
0
0
0
2
0
1
0
1
0
0
2
d4
1
0
0
0
0
0
1
0
2
0
0
1
0
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
P3
d5
1
1
1
1
0
1
0
0
0
0
0
0
0
d6
0
0
0
0
0
0
0
0
0
1
2
1
1
d7
0
1
1
0
0
2
0
0
0
0
0
1
0
d8
2
0
0
0
0
2
0
0
0
0
1
0
0
d9
0
0
0
0
2
0
0
0
1
2
0
0
0
d10
0
0
2
0
0
0
0
0
1
0
0
2
2
98
Verteilter invertierter Index
§ Invertierter Index kann auf zwei Arten partitioniert werden
§ nach Dokumenten-IDs, so dass jeder Rechner einen
invertierten Index für einen Teil der Dokumente hält
§ nach Termen (Wörtern), so dass jeder Rechner einen
invertierten Index für einen Teil der Terme hält
c++
object
class
oriented
loop
java
pointer
overflow
code
sort
python
array
stack
d1
2
1
1
1
0
0
0
0
0
0
0
0
0
d2
0
0
1
1
0
0
0
0
2
2
2
0
0
d3
0
0
0
0
0
2
0
1
0
1
0
0
2
d4
1
0
0
0
0
0
1
0
2
0
0
1
0
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
d5
1
1
1
1
0
1
0
0
0
0
0
0
0
d6
0
0
0
0
0
0
0
0
0
1
2
1
1
d7
0
1
1
0
0
2
0
0
0
0
0
1
0
d8
2
0
0
0
0
2
0
0
0
0
1
0
0
d9
0
0
0
0
2
0
0
0
1
2
0
0
0
d10
0
0
2
0
0
0
0
0
1
0
0
2
2
P1
P2
P3
99
Verteilter invertierter Index
§ Anfragebearbeitung auf verteiltem invertierten Index
§ bei Partitionierung nach Dokumenten-ID muss die
Anfrage auf allen Partitionen bearbeitet werden;
fällt eine Partition aus, kann immerhin noch
ein Teilergebnis bestimmt werden
§ bei Partitionierung nach Termen muss die Anfrage
nur auf den Partitionen bearbeitet werden, die
einen der Anfrageterme beinhalten; fällt eine
Partition aus, können Anfragen mit den
enthaltenen Termen nicht mehr
bearbeitet werden
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
100
Learning-to-Rank
§ Suchmaschinen verwenden eine Vielzahl von Signalen,
um Dokumente zu einer Anfrage in eine Rangfolge
zu bringen, so dass relevante Dokumente
möglichst weit oben erscheinen
§ Beispiele von Signalen, die Anwendung finden:
§ textuelle Relevanz (z.B. Kosinusähnlichkeit mit Anfrage)
§ linkbasierte Wichtigkeit (z.B. PageRank)
§ textuelle Qualität (z.B. Anteil der Schreibfehler)
§ Spamwahrscheinlichkeit
§ Lesbarkeit
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
101
Learning-to-Rank
§ Sinnvolle Kombination der Signale kann mittels Verfahren
des maschinellen Lernens bestimmt werden
§ Klassifikationsverfahren (z.B. logistische Regression)
lernen anhand von Trainingsdaten wie sich
Datenpunkte (hier: Dokumente) in zwei oder
mehrere Klassen anhand von Merkmalen
(hier: Signale) einteilen lassen
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
102
Learning-to-Rank
#
0.8 0.7 0.1
#
0.1 0.1 0.7
..
.
#
0.0 0.1 0.8
#
0.9 0.6 0.2
$
0.1 R
$
0.5 N
$
0.9 N
$
0.1 R
Trainingsdaten
mit Klassen
Relevant
Nicht-Relevant
Klassifikator
#
0.7 0.7 0.1 0.1
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
?
$
Anfragezeit:
Klasse R/N eines
bisher unbekannten
Dokuments wird
bestimmt
103
Learning-to-Rank
§ Trainingsdaten für den Klassifikator bestimmt z.B.
§ mittels Relevanzbewertungen durch Juroren
§ durch Beobachtung des Benutzerverhaltens
(z.B. klickt der Benutzer für Anfrage auf Dokument)
§ Zur Anfragezeit werden die Top-K (z.B. 1000) Dokumente
gemäß eines wichtigen Signals (z.B. textuelle Relevanz)
bestimmt und dann unter Berücksichtigung der
anderen Signale mit Hilfe des Klassifikators
in eine neue Rangfolge gebracht
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
104
Zusammenfassung
§ Invertierter Index als vorherrschende Indexstruktur
im Information Retrieval; geschickte Kompression
ist essentiell für effiziente Anfragebearbeitung
§ Term-at-a-Time und Document-at-a-Time als zwei Arten
der Anfragebearbeitung auf invertiertem Index
§ Websuche unterscheidet sich durch Ausnutzung von
Hyperlinks (z.B. mittels PageRank), Verteilung des
invertierten Index und den Einsatz von Verfahren
des maschinellen Lernens
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
105
Literatur
[1]
C. D. Manning, P. Raghavan, H. Schütze:
Information Retrieval, Cambridge University Press, 2008
(Kapitel 5 & 19-21)
[2]
W. B. Croft, D. Metzler, T. Strohman:
Search Engines – Intelligent IR in Practice,
Pearson, 2010
(Kapitel 4 & 5)
Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval
106
Herunterladen