Wprowadzenie do budowy usług informacyjnych

Slides:



Advertisements
Podobne prezentacje
Przykład liczbowy Rozpatrzmy dwuwymiarową zmienną losową (X,Y), gdzie X jest liczbą osób w rodzinie, a Y liczbą izb w mieszkaniu. Niech f.r.p. tej zmiennej.
Advertisements

Wprowadzenie do budowy usług informacyjnych
KSZTAŁTOWANIE STRUKTURY KAPITAŁU A DŹWIGNIA FINANSOWA
POWIAT MYŚLENICKI Tytuł Projektu: Poprawa płynności ruchu w centrum Myślenic poprzez przebudowę skrzyżowań dróg powiatowych K 1935 i K 1967na rondo.
Grażyna Mirkowska PJWSTK 15 listopad 2000
Metoda simpleks Simpleks jest uniwersalną metodą rozwiązywania zadań programowania liniowego. Jest to metoda iteracyjnego poprawiania wstępnego rozwiązania.
Opracowała: mgr Magdalena Dukowska
Wyszukiwanie informacji
Liczby pierwsze.
Domy Na Wodzie - metoda na wlasne M
Badania operacyjne. Wykład 2
Elementarne struktury danych Piotr Prokopowicz
Wprowadzenie System rozproszony jest kolekcją niezależnych, autonomicznych komputerów, które dla użytkownika prezentują się jak jeden komputer. Można wyróżnic.
Materiały pochodzą z Platformy Edukacyjnej Portalu
ZŁOŻONOŚĆ OBLICZENIOWA
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
UŁAMKI DZIESIĘTNE porównywanie, dodawanie i odejmowanie.
(dla szeregu szczegółowego) Średnia arytmetyczna (dla szeregu szczegółowego) Średnią arytmetyczną nazywamy sumę wartości zmiennej wszystkich jednostek.
Wpływ warunków na niewiadome na wyniki wyrównania.
Algorytm Rochio’a.
Wprowadzenie do budowy usług informacyjnych
Metody Sztucznej Inteligencji w Sterowaniu 2009/2010Optymalizacja miary efektywności działania sztucznych sieci neuronowych Dr hab. inż. Kazimierz Duzinkiewicz,
Metoda simpleks opracowanie na podstawie „Metody wspomagające podejmowanie decyzji w zarządzaniu” D. Witkowska, Menadżer Łódź Simpleks jest uniwersalną.
Wykład 7 Wojciech Pieprzyca
Ukryte indeksowanie semantyczne SVD Struktury danych
Zapis informacji Dr Anna Kwiatkowska.
WYKONYWANIE ZAPYTAŃ Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka.
Średnie i miary zmienności
Jak wypadliśmy na maturze z matematyki w 2010 roku?
Opracowanie wyników pomiarów
Ogólnopolski Konkurs Wiedzy Biblijnej Analiza wyników IV i V edycji Michał M. Stępień
O relacjach i algorytmach
Dzisiaj powtarzamy umiejętności związane z tematem-
Algorytmy i struktury danych
Agnieszka Jankowicz-Szymańska1, Wiesław Wojtanowski1,2
Podstawy programowania II
Wyrażenia algebraiczne
Elementy Rachunku Prawdopodobieństwa i Statystyki
Rozkłady wywodzące się z rozkładu normalnego standardowego
Obserwatory zredukowane
Modelowanie i identyfikacja 2010/2011Optymalizacja miary efektywności działania sztucznych sieci neuronowych Dr hab. inż. Kazimierz Duzinkiewicz, Katedra.
A-priori Partition Mateusz Mor, Kasper Rzepecki, Daniel Mendalka, Michał Samsonowski.
1. Pomyśl sobie liczbę dwucyfrową (Na przykład: 62)
Materiały pochodzą z Platformy Edukacyjnej Portalu
1. ŁATWOŚĆ ZADANIA (umiejętności) 2. ŁATWOŚĆ ZESTAWU ZADAŃ (ARKUSZA)
  Prof.. dr hab.. Janusz A. Dobrowolski Instytut Systemów Elektronicznych, Politechnika Warszawska.
Sterowanie – metody alokacji biegunów II
Podstawy statystyki, cz. II
Badanie kwartalne BO 2.3 SPO RZL Wybrane wyniki porównawcze edycji I- VII Badanie kwartalne Beneficjentów Ostatecznych Działania 2.3 SPO RZL – schemat.
Stało- i zmiennopozycyjna reprezentacja liczb binarnych
EcoCondens Kompakt BBK 7-22 E.
EcoCondens BBS 2,9-28 E.
User experience studio Użyteczna biblioteka Teraźniejszość i przyszłość informacji naukowej.
WYNIKI EGZAMINU MATURALNEGO W ZESPOLE SZKÓŁ TECHNICZNYCH
Testogranie TESTOGRANIE Bogdana Berezy.
Jak Jaś parował skarpetki Andrzej Majkowski 1 informatyka +
Co to jest dystrybuanta?
Model obiektowy bazy danych
Systemy dynamiczne 2014/2015Obserwowalno ść i odtwarzalno ść  Kazimierz Duzinkiewicz, dr hab. in ż. Katedra In ż ynierii Systemów Sterowania 1 Obserwowalność.
Zagadnienia AI wykład 2.
Elementy geometryczne i relacje
Strategia pomiaru.
Warstwowe sieci jednokierunkowe – perceptrony wielowarstwowe
Statystyczna analiza danych w praktyce
Statystyczna analiza danych
Elementy cyfrowe i układy logiczne
Wybór nazwy lub słów kluczowych dla interesującego nas szeregu czasowego. Opcjonalnie – ustawienie innych dostępnych atrybutów szukania.
Co do tej pory robiliśmy:
ALGORYTMY I STRUKTURY DANYCH
Zapis prezentacji:

Wprowadzenie do budowy usług informacyjnych Uniwersytet Łódzki Katedra Informatyki W. Bartkiewicz Wprowadzenie do budowy usług informacyjnych Wykład 3. Model wektorowy wyszukiwania informacji

Rankingowanie Katedra Informatyki W modelu boolowskim dokument albo odpowiadał zapytaniu, albo nie. Dobre dla doświadczonych użytkowników, dobrze rozumiejących swoje potrzeby, dziedzinę wyszukiwania i bazę dokumentów. Nieodpowiednie dla (większości) użytkowników, którzy nie potrafią sformułować swoich potrzeb w postaci wyrażeń logicznych. Alternatywą jest ocena stopnia relewancji dokumentu dla danego zapytania (scoring). Dzięki temu dokument może odpowiadać zapytaniu w pewnym stopniu, co pozwala często uzyskać satysfakcjonujące użytkownika wyniki, nawet jeśli potrzeba informacyjna sformułowana jest nie do końca precyzyjnie. Wynikiem zapytania jest ranking dokumentów, posortowany malejąco według stopnia relewancji. Najbardziej relewantne dokumenty prezentowane są użytkownikowi na początku rankingu, najmniej relewantne – na końcu. Ułatwia to przeglądanie wyników zapytania złożonych z wielu dokumentów.

Wyszukiwanie topologiczne Katedra Informatyki W wyszukiwaniu topologicznym zapytania formułowane są w postaci tzw. zapytania prostego lub „worka słów” (bag of words), czyli zestawu termów (słów kluczowych) nie połączonych żadnymi operatorami logicznymi. Użytkownik w zapytaniach po prostu określa słowa kluczowe, które odzwierciedlają jego potrzeby informacyjne. Wyszukiwarka znajduje przechowywane w systemie dokumenty, które opisane są zestawem słów kluczowych „podobnym” do podanych przez użytkownika w zapytaniu. Podobieństwo to zazwyczaj określane jest z wykorzystaniem miar opartych na podstawie liczby słów kluczowych występujących jednocześnie w opisie dokumentu i w zapytaniu. Wyszukiwarka tworzy ranking znalezionych dokumentów, prezentując je w kolejności od najbardziej do najmniej podobnych.

Wyszukiwanie topologiczne Katedra Informatyki Współczynnik dopasowania prostego Problem – nie uwzględnia długości dokumentu i zapytania Współczynnik Dice’a Współczynnik Jaccarda Współczynnik cosinusoidalny

Katedra Informatyki Model wektorowy Zapytanie i dokumenty reprezentowane są jako wektory q = [q1, q2,..., qn], dj = [w1j, w2j,..., wnj] w przestrzeni Rn, gdzie n jest liczbą wszystkich termów indeksujących (rozmiar słownika). Współczynnik cosinusoidalny =

Model wektorowy Macierz termów/dokumentów Katedra Informatyki Model wektorowy Macierz termów/dokumentów Term\Dokument 1 2 3 4 5 6 7 8 9 10 11 12 Blaster Czarna dziura Grawitacja Gwiazda Indianie Kosmos Kowboj Nadprzestrzeń Obserwacja Planeta Podróż Rewolwerowiec Teleskop n x N = liczba termów x liczba dokumentów

Model wektorowy Tworzenie rankingu Katedra Informatyki Model wektorowy Tworzenie rankingu Term\Dokument 1 2 3 4 5 6 7 8 9 10 11 12 Blaster Czarna dziura Grawitacja Gwiazda Indianie Kosmos Kowboj Nadprzestrzeń Obserwacja Planeta Podróż Rewolwerowiec Teleskop 1 3 2 1 4 0,61 0,41 0,18 0,50 0,73 0,67 0,55 5 7 6 10 1

Model wektorowy Wagi termów Katedra Informatyki Jak dotąd zakładaliśmy, że zarówno wektor zapytania q = [q1, q2,..., qn] jak i opisy dokumentów dj = [w1j, w2j,..., wnj] mają charakter binarny, i zawierają wyłącznie współrzędne 0 i 1. Wartości binarne oznaczają: Dany term może wystąpić w dokumencie (zapytaniu) lub nie. Wszystkie termy w opisie dokumentu (albo zapytaniu) traktowane są równoważnie. Nie ma możliwości wyspecyfikowania informacji, że pewien term jest bardziej istotny dla treści dokumentu niż inny. Ponieważ model wektorowy ma (w przeciwieństwie do boolowskiego) charakter algebraiczny, a nie logiczny, możemy łatwo zrezygnować z tego ograniczającego założenia. Dla wyznaczenia cosinusoidalnej miary podobieństwa (podobnie zresztą jak i dla innych stosowanych miar) nie ma znaczenia czy analizowane wektory mają współrzędne binarne, czy rzeczywiste.

Model wektorowy Wagi termów Katedra Informatyki W modelu wektorowym wyszukiwania informacji zarówno wektory zapytania q = [q1, q2,..., qn], jak i opisu dokumentu dj = [w1j, w2j,..., wnj] mogą być dowolnymi wektorami w przestrzeni Rn. Term i w opisie dokumentu (zapytania) j, reprezentowany jest przez pewną nieujemną liczbę rzeczywistą wij, nazywaną „wagą”: Im większa wartość wagi termu, tym bardziej jest on istotny dla opisu treści dokumentu. Wartość wij = 0 oznacza, że dany term w opisie dokumentu nie występuje.

Model wektorowy Wagi termów Katedra Informatyki Wagi termów zazwyczaj tworzone są przy wykorzystaniu tzw. formuły tf*idf, uwzględniającej dwa podstawowe elementy oceny istotności termu: Częstość termu tf (term frequency) Liczba wystąpień termu w dokumencie lub inna miara znaczenia termu dla treści konkretnego dokumentu. Odwrotność częstości dokumentu idf (inverse document frequency) Miara wartości informacyjnej termu, czyli jego przydatności dla rozróżniania treści różnych dokumentów w kolekcji. Jeśli term występuje w wielu dokumentach, to jego wartość dyskryminacyjna jest relatywnie niższa. Może więc być to po prostu odwrotność liczby dokumentów w których występuje dany term: 1/df(i). Zazwyczaj jednak stosuje się przyjętą na drodze empirycznej nieco zmodyfikowaną miarę idf(i) = log(N/df(i)), gdzie N jest liczbą dokumentów w kolekcji.

Model wektorowy Wagi termów Katedra Informatyki tfij – (term frequency) częstość termu i w dokumencie j, idfi – (inverse document frequency) odwrotność częstości dokumentów N – liczba dokumentów w kolekcji dfi – liczba dokumentów zawierających term i. (1 mln dok.) df idf 1 6 100 4 1 000 3 10 000 2 100 000 1 000 000

Model wektorowy Macierz termów/dokumentów Katedra Informatyki Model wektorowy Macierz termów/dokumentów Term\Dokument 1 2 3 4 5 7 8 9 10 11 12 Blaster Czarna dziura 6 Grawitacja Gwiazda Indianie Kosmos Kowboj Nadprzestrzeń Obserwacja Planeta Podróż Rewolwerowiec Teleskop df idf 3 0,60 4 0,48 5 0,38 8 0,18 6 0,30

Model wektorowy Macierz termów/dokumentów Katedra Informatyki Model wektorowy Macierz termów/dokumentów Term\Dokument 1 2 3 4 5 6 7 8 9 10 11 12 Blaster 1,81 0,00 0,60 1,20 Czarna dziura 4,77 0,95 0,48 2,86 Grawitacja 0,38 2,28 3,42 0,76 Gwiazda 0,88 0,18 0,70 1,06 1,41 0,35 1,23 Indianie 4,82 4,21 3,01 Kosmos 0,53 Kowboj 2,39 1,43 Nadprzestrzeń 1,91 Obserwacja Planeta 4,29 Podróż 0,30 0,90 1,51 2,11 Rewolwerowiec Teleskop

Model wektorowy Cosinusoidalna miara podobieństwa Katedra Informatyki Cosinus kąta między wektorem zapytania i wektorem dokumentu t 1 q d j t 3 t 2 θ

Model wektorowy Indeks odwrotny Katedra Informatyki Term\Dokument 1 2 3 4 5 6 7 8 9 10 11 12 Blaster Czarna dziura Grawitacja df idf 3 0,60 4 0,48 5 0,38 1 3 5 1 12 3 Blaster 3 Czarna dziura 4 Grawitacja 5 4 10 5 2 7 1 10 6 3 1 4 6 6 9 7 2 10 9 dfi tfij Wagi termów wij=tfij*idfi obliczamy w locie podczas wyszukiwania – dodając nowe dokumenty nie trzeba ich przeliczać

Model wektorowy Realizacja zapytań Katedra Informatyki Po znalezieniu w słowniku indeksu odwrotnego wszystkich termów występujących w zapytaniu, należy dla wszystkich dokumentów występujących w listach odsyłaczy tych termów obliczyć współczynniki cosinusów określające ich podobieństwo do zapytania, a następnie stworzyć ranking zawierający k najlepszych dokumentów. Długości dokumentów |dj| nie zależą od zapytania q. Mogą więc być obliczone wcześniej, tak by skrócić czas realizacji zapytania. Obliczone długości dokumentów mogą być przechowywane dodatkowo w indeksie, poza strukturą inwersyjną. Podczas realizacji zapytania obliczony współczynnik cosinusów skalujemy zapamiętaną długością dokumentu. Ponieważ robimy to tylko raz, więc dodatkowe nakłady obliczeniowe są niewielkie. W indeksie odwrotnym zamiast „surowych” częstości termów tfij, możemy przechowywać ich znormalizowane wartości tfij/|dj|.

Model wektorowy Realizacja zapytań Katedra Informatyki Możliwych jest cały szereg strategii i algorytmów realizacji rankingu. Generalnie jednak wymagają one wykonania następujących operacji: Dla każdego dokumentu tworzymy i inicjujemy wartością 0, akumulator – zmienną w której będziemy sumować miarę podobieństwa. W zależności od implementacji akumulatory mogą być przechowywane w statycznej lub dynamicznej strukturze danych. Dla wszystkich odsyłaczy dokumentów we wszystkich termach indeksujących zapytania, dodajemy do akumulatora odpowiedniego dokumentu kolejne wyrazy qi*wij. Po przeliczeniu wszystkich odsyłaczy, wybieramy akumulatory o wartościach większych od 0. Porównując wartości wybranych akumulatorów wyszukujemy k najwyższych wyników. Sortujemy otrzymane k akumulatorów w porządku malejącym i zwracamy odpowiadające im dokumenty jako wynik zapytania.

Model wektorowy Realizacja zapytań Katedra Informatyki TO_S(q) ALOCATE tablicę akumulatorów A foreach a[j]A a[j].doc = k, a[j].s = 0 foreach termu zapytania q[i]q FIND q[i] w słowniku indeksu odwrotnego foreach dokumentu d[j] w liście odsyłaczy termu q[i] a[j].s += w[i][j]*q[i] ALOCATE strukturę danych wynik INSERT k najlepszych akumulatorów do wynik SORT akumulatory malejąco względem a.s return wynik Według termów Statyczna tablica akumulatorów W najprostszej postaci algorytmu akumulatory mogą być wybierane do zwykłej tablicy. Wybieramy akumulatory o wartości a[j].s > 0 do tablicy roboczej i sortujemy. Do tablicy wynik przepisujemy k pierwszych elementów tablicy roboczej. Dużą poprawę efektywności uzyskuje się jednak stosując jakąś „samosortującą” się strukturę danych, np. drzewo, kolejka priorytetowa. Przepisujemy niezerowe akumulatory do struktury danych. Następnie pobieramy k pierwszych do tablicy wynik.

Model wektorowy Realizacja zapytań - przykład Katedra Informatyki 1 3 5 1 12 3 Blaster 3 Czarna dziura 4 Grawitacja 5 4 10 5 2 7 1 10 6 3 1 4 6 6 9 7 2 10 9 A 1 2 3 4 5 6 7 8 9 10 11 12 Zapytanie: Czarna dziura, Grawitacja. Zakładamy, że wagi termów qi występujących w zapytaniu są równe 1, pozostałych równe 0 – częsta praktyka. Inicjujemy tablicę akumulatorów A. Znajdujemy w słowniku indeksu term „Czarna dziura”. Obliczamy idf = log(N/df) = log(12/4) = log(3)  0,5. Przetwarzamy po kolei listę odsyłaczy termu czarna dziura.

Model wektorowy Realizacja zapytań - przykład Katedra Informatyki 4 10 5 2 7 1 10 6 Czarna dziura 4 4 10 5 2 7 1 10 6 tf*idf = 10*0.5 = 5 2*0.5 = 1 1*0.5 = 0.5 6*0.5 = 3 A 1 2 3 4 5 6 7 8 9 10 11 12 A 1 2 3 4 5 6 7 8 9 10 11 12 A 1 2 3 4 5 6 7 0.5 8 9 10 11 12 A 1 2 3 4 5 6 7 0.5 8 9 10 11 12

Model wektorowy Realizacja zapytań - przykład Katedra Informatyki Grawitacja 5 3 1 4 6 6 9 7 2 10 9 idf = log(12/5)  0,4 3 1 4 6 6 9 7 2 10 9 1*0.4 = 0.4 6*0.4 = 2.4 9*0.4 = 3.6 2*0.4 = 0.8 9*0.4 = 3.6 A 1 2 3 0.4 4 5 6 7 0.5 8 9 10 11 12 A 1 2 3 0.4 4 7.4 5 6 7 0.5 8 9 10 11 12 A 1 2 3 0.4 4 7.4 5 6 3.6 7 0.5 8 9 10 11 12 A 1 2 3 0.4 4 7.4 5 6 3.6 7 1.3 8 9 10 11 12 A 1 2 3 0.4 4 7.4 5 6 3.6 7 1.3 8 9 10 6.6 11 12

Model wektorowy Realizacja zapytań - przykład Katedra Informatyki Wyszukujemy powiedzmy 4 dokumenty (k = 4) A 1 2 3 0.4 4 7.4 5 6 3.6 7 1.3 8 9 10 6.6 11 12 A 1 0,0 2 3 0,1 4 1,3 5 0,4 6 0,8 7 0,5 8 9 10 1,4 11 12 2,2 5,6 5,7 2,8 4,6 2,5 4,8 4,4 Wybór > 0 rob 3 0,1 4 1,3 5 0,4 6 0,8 7 0,5 10 1,4 Sorto wanie rob 10 1,4 4 1,3 6 0,8 7 0,5 5 0,4 2 0,1 3 Wybór 4 wynik 10 1,4 4 1,3 6 0,8 7 0,5 Długości dokumentów

Model wektorowy Realizacja zapytań - przykład Katedra Informatyki Wyszukujemy powiedzmy 4 dokumenty (k = 4) A 1 0,0 2 3 0,1 4 1,3 5 0,4 6 0,8 7 0,5 8 9 10 1,4 11 12 1.4 10 1.3 4 0.8 6 0.4 5 0.1 3 0.5 7 Wybór > 0 Wybór 4 wynik 10 1,4 4 1,3 6 0,8 7 0,5 Np. Drzewo binarne w którym każdy potomek jest nie większy od rodzica

Model wektorowy Realizacja zapytań Katedra Informatyki Stosowanie tablicy akumulatorów staje się problematyczne dla dużych kolekcji: Każdy dokument w kolekcji musi mieć swój akumulator – w przypadku kolekcji o rozmiarach milionów dokumentów, rozmiary tablicy mogą być nieakceptowalne. Wiele akumulatorów będzie niewykorzystanych – będą miały wartość 0. Alternatywą dla przechowywania akumulatorów jest zastosowanie dynamicznej struktury danych. Dostęp musi być optymalizowany ze względu na identyfikator dokumentu. Zazwyczaj stosowane są struktury danych pochodzące od drzew B+ lub indeksów haszujących. Jest to rozwiązanie wyraźnie gorsze pod względem efektywności przetwarzania zapytania. Ale pod warunkiem, że identyfikatory dokumentów mogą zostać wykorzystane do indeksowania odwołań do tablicy akumulatorów. W innym przypadku dostęp do tablicy akumulatorów również musimy indeksować.

Model wektorowy Realizacja zapytań Katedra Informatyki TO_D(q) INITIALIZE dynamiczną strukturę akumulatorów D foreach termu zapytania q[i]q FIND q[i] w słowniku indeksu odwrotnego foreach dokumentu d[j] w liście odsyłaczy termu q[i] if  akumulator aD taki że a.doc == d[j] a.s += w[i][j] else ALLOCATE nowy akumulator a a.doc = d[j], a.s = w[i][j]*q[i] D = D  {a} ALOCATE strukturę danych wynik INSERT k najlepszych akumulatorów do wynik SORT akumulatory malejąco względem a.s return wynik Według termów Dynamiczna alokacja akumulatorów

Model wektorowy Realizacja zapytań - przykład Katedra Informatyki 1 3 5 1 12 3 Blaster 3 Czarna dziura 4 Grawitacja 5 4 10 5 2 7 1 10 6 3 1 4 6 6 9 7 2 10 9 Zapytanie: Czarna dziura, Grawitacja. Zakładamy, że wagi termów qi występujących w zapytaniu są równe 1, pozostałych równe 0 – częsta praktyka. Inicjujemy strukturę akumulatorów D (w naszym przykładzie tablica haszująca mod 4). Znajdujemy w słowniku indeksu term „Czarna dziura”. Obliczamy idf = log(N/df) = log(12/4) = log(3)  0,5. Przetwarzamy po kolei listę odsyłaczy termu czarna dziura.

Model wektorowy Realizacja zapytań - przykład Katedra Informatyki Czarna dziura 4 10 2 5 1 7 6 2 5 2*0.5 = 1 4 3 1 D 1 7 1*0.5 = 0.5 5 4 3 2 D 0.5 10 4 tf*idf = 10*0.5 = 5 5 3 2 1 D D 1 2 3

Model wektorowy Realizacja zapytań - przykład Katedra Informatyki Czarna dziura 4 10 2 5 1 7 6 6 10 6*0.5 = 3 5 4 3 2 1 D 0.5 7 5 4 3 2 1 D 0.5 7

Model wektorowy Realizacja zapytań - przykład Katedra Informatyki Grawitacja 5 1 3 6 4 9 2 7 10 idf = log(12/5)  0,4 1 3 1*0.4 = 0.4 5 4 2 D 0.5 7 10 0.4 6 4 6*0.4 = 2.4 7.4 3 2 1 D 5 0.5 7 10 0.4 9 6 9*0.4 = 3.6 7.4 4 3 2 1 D 5 0.5 7 10 0.4 3.6

Model wektorowy Realizacja zapytań - przykład Katedra Informatyki Grawitacja 5 1 3 6 4 9 2 7 10 idf = log(12/5)  0,4 2 7 2*0.4 = 0.8 7.4 4 3 1 D 5 1.3 10 0.4 3.6 6 9 10 9*0.4 = 3.6 7.4 4 3 2 1 D 5 1.3 7 6.6 0.4 3.6 6 D 7.4 4 1 5 1 2 3 10 3.6 6 3 0.5 7 0.4 3

Model wektorowy Realizacja zapytań Katedra Informatyki Druga grupa podejść do przetwarzania zapytania, opiera się na przetwarzaniu odsyłaczy w porządku dokumentów, a nie termów. Odsyłacze przypisane danemu termowi muszą być uporządkowane według identyfikatora dokumentu. Zakłada się również, że liczba termów w zapytaniu jest ograniczona i nie większa niż pewna z góry założona liczba Q. Listy inwersyjne przypisane termom zapytania mogą być wtedy przetwarzane równolegle, a nie sekwencyjnie, jak w przypadku wcześniej omawianych strategii opartych na porządku termów. W ten sposób jesteśmy w stanie obliczyć całkowity wynik dokumentu, zanim rozpoczniemy obliczenia dla następnego.

Model wektorowy Realizacja zapytań Katedra Informatyki DO(q) ALOCATE strukturę danych wynik foreach termu zapytania q[i]q FIND q[i] w słowniku indeksu odwrotnego h[i] = pierwszy odsyłacz z listy inwersyjnej dla termu g[i] while nie koniec wszystkich list inwersyjnych w tablicy h[i] FIND min takie że h[min].doc = MIN h[i].doc a.doc = h[min].doc, a.s = 0 foreach h[i] if a.doc == h[i].doc then a.sum += h[i].w[i][j]*q[i] NEXT h[i] if koniec listy inwersyjnej q[i] then h[i]=koniec; SELECT a do wynik SORT akumulatory malejąco względem a.s return wynik Według dokumentów

Model wektorowy Realizacja zapytań - przykład Katedra Informatyki 1 3 5 1 12 3 Blaster 3 Czarna dziura 4 Grawitacja 5 4 10 5 2 7 1 10 6 3 1 4 6 6 9 7 2 10 9 Zapytanie: Czarna dziura, Grawitacja. Zakładamy, że wagi termów qi występujących w zapytaniu są równe 1, pozostałych równe 0 – częsta praktyka. Inicjujemy strukturę wynik (w naszym przykładzie kolejka priorytetowa minimum, dla k=4 elementów). Znajdujemy w słowniku indeksu term „Czarna dziura”. Obliczamy idf = log(N/df) = log(12/4) = log(3)  0,5. h[0] = wskaźnik do pierwszego odsyłacza dla tego termu Znajdujemy w słowniku term „Grawitacja”. Obliczamy idf = log(N/df) = log(12/5) = log(2.4)  0,4. h[1] = wskaźnik do pierwszego odsyłacza dla tego termu

Model wektorowy Realizacja zapytań - przykład Katedra Informatyki min=1 3 h[0] 10 4 2 5 1 7 6 3 9 h[1] a Wynik: 0.1 3 dla h[1] wij=1*0.4 = 0.4 0.4 3 DocLen = 5.6, 0.4/5.6 = 0.1 10 4 2 5 1 7 6 9 h[0] h[1]

Model wektorowy Realizacja zapytań - przykład Katedra Informatyki min=0 4 10 4 2 5 1 7 6 9 h[0] h[1] a Wynik: 0.1 3 1.3 4 dla h[0] wij=10*0.5 = 5 5 4 DocLen = 5.7 7.4/5.7 = 1.3 dla h[1] wij=6*0.4 = 2.4 7.4 4 2 5 1 7 6 10 9 h[0] h[1]

Model wektorowy Realizacja zapytań - przykład Katedra Informatyki min=0 5 2 5 1 7 6 10 9 h[0] h[1] a Wynik: 0.1 3 1.3 4 DocLen = 2.8 1/2.8 = 0.4 dla h[0] wij=2*0.5 = 1 1 5 Wynik: 0.1 3 0.4 5 1.3 4 1 7 6 10 9 2 h[0] h[1]

Model wektorowy Realizacja zapytań - przykład Katedra Informatyki min=1 6 1 7 6 10 9 2 h[0] h[1] a Wynik: 0.1 3 0.4 5 1.3 4 DocLen = 4.6 3.6/4.6 = 0.8 dla h[1] wij=9*0.4 = 3.6 3.6 6 Wynik: 0.1 3 0.4 5 0.8 6 1.3 4 1 7 6 10 2 9 h[0] h[1]

Model wektorowy Realizacja zapytań - przykład Katedra Informatyki min=0 7 1 7 6 10 2 9 h[0] h[1] a Wynik: 0.1 3 0.4 5 0.8 6 1.3 4 DocLen = 2.5 1.3/2.5 = 0.5 dla h[0] wij=1*0.5 = 0.5 0.5 7 dla h[1] wij=2*0.4 = 0.8 1.3 7 Wynik: 0.4 5 0.8 6 1.3 4 Wynik: 0.4 5 0.5 7 0.8 6 1.3 4 6 10 9 h[0] h[1]

Model wektorowy Realizacja zapytań - przykład Katedra Informatyki min=0 10 6 10 9 h[0] h[1] a Wynik: 0.4 5 0.5 7 0.8 6 1.3 4 DocLen = 4.8 16.6/4.8 = 1.4 dla h[0] wij=6*0.5 = 3 3 10 dla h[1] wij=9*0.4 = 3.6 6.6 10 Wynik: 0.5 7 0.8 6 1.3 4 Wynik: 0.5 7 0.8 6 1.3 4 1.4 10

Model wektorowy Efektywność przetwarzania zapytań Katedra Informatyki ok. 2 mln stron WWW (30 GB) ponad 3 mln. różnych termów Krótkie zapytania (1 – 5 termów) k=10 wszystkie >0 k=1000 Źródło: Cambazoglu, Aykanat, Performance of query processing implementations in ranking-based text retrieval systems using inverted indices, IP&M, 42 (2006), 875-898.

Model wektorowy Efektywność przetwarzania zapytań Katedra Informatyki ok. 2 mln stron WWW (30 GB) ponad 3 mln. różnych termów Średnie zapytania (6 – 25 termów) k=10 wszystkie >0 k=1000 Źródło: Cambazoglu, Aykanat, Performance of query processing implementations in ranking-based text retrieval systems using inverted indices, IP&M, 42 (2006), 875-898.

Model wektorowy Efektywność przetwarzania zapytań Katedra Informatyki ok. 2 mln stron WWW (30 GB) ponad 3 mln. różnych termów Długie zapytania (21 – 250 termów) k=10 wszystkie >0 k=1000 Źródło: Cambazoglu, Aykanat, Performance of query processing implementations in ranking-based text retrieval systems using inverted indices, IP&M, 42 (2006), 875-898.

Model wektorowy Efektywność przetwarzania zapytań Katedra Informatyki Średnie zapytania (6 – 25 termów) k = 10 ok. 500 tys. stron WWW 1.5 mln. termów ok. 1 mln. stron WWW 2.2 mln. termów ok. 2 mln. stron WWW 3 mln. termów Źródło: Cambazoglu, Aykanat, Performance of query processing implementations in ranking-based text retrieval systems using inverted indices, IP&M, 42 (2006), 875-898.

Model wektorowy Efektywność przetwarzania zapytań Katedra Informatyki Średnie zapytania (6 – 25 termów) Wszystkie akumulatory > 0 ok. 2 mln. stron WWW 3 mln. termów ok. 500 tys. stron WWW 1.5 mln. termów ok. 1 mln. stron WWW 2.2 mln. termów Źródło: Cambazoglu, Aykanat, Performance of query processing implementations in ranking-based text retrieval systems using inverted indices, IP&M, 42 (2006), 875-898.

Model wektorowy Optymalizacje Katedra Informatyki Czasy przetwarzania zapytania rzędu kilku (a nawet kilkunastu) sekund mogą być zbyt kosztowne w przypadku dużych, sieciowych kolekcji dokumentów, przeglądanych jednocześnie przez wielu użytkowników. Jego redukcja jest możliwa, ale wiąże się ona z rezygnacją z przetwarzania części danych. Nie mamy wówczas gwarancji, że utworzony ranking rzeczywiście obejmuje k najlepszych dokumentów. Do często stosowanych optymalizacji przetwarzania zapytań należą (między innymi) podejścia oparte na: Rezygnacji z przetwarzania odsyłaczy dokumentów w listach inwersyjnych, które mają już niewielki wpływ na końcową wartość współczynnika cosinusów. Wstępnym pogrupowaniu dokumentów w kolekcji. Redukcji wymiaru przestrzeni wektorowej, tzn. przekształceniu termów w opisach dokumentów i zapytaniach, tak by zredukować liczbę termów.

Model wektorowy Ranking częściowy Katedra Informatyki Wyznaczenie współczynnika cosinusów wymaga posumowania iloczynów wij*qi. Ranking częściowy polega na redukcji kosztów obliczeniowych tego procesu poprzez uwzględnienie w końcowych wyniku wyłącznie tych iloczynów wij*qi, które są dostatecznie duże. Możliwe do zastosowania wyłącznie dla algorytmów przetwarzania zapytania w porządku termów. Termy zapytania przetwarzane są w porządku malejących idf. Odsyłacze w listach inwersyjnych dla poszczególnych termów w indeksie uporządkowane są malejąco według tf, a nie identyfikatora dokumentu. Jeśli obliczony iloczyn wij*qi jest mniejszy od pewnego założonego progu, przetwarzanie danej listy inwersyjnej może zostać zakończone (ponieważ z uporządkowania odsyłaczy wynika, że wszystkie kolejne iloczyny będą mniejsze równe od niego). Niektóre implementacje ograniczają również obliczenia cosinusa wyłącznie do rzadkich termów (tzn. o dostatecznie dużym idf).

Model wektorowy Grupowanie dokumentów Katedra Informatyki Operacja grupowania (analizy skupień) dokumentów (ang. clustering) polega na określeniu w kolekcji jednorodnych tematycznie podzbiorów dokumentów. O grupowaniu będziemy mówili w dalszej części wykładu. Każda podgrupa dokumentów reprezentowana może być przez zbiór słów kluczowych nazywany jej prototypem, albo centroidem. Operacja grupowania kolekcji może być wykorzystana (między innymi) do przyśpieszenia procesu przetwarzania zapytania. Wcześniej przeprowadzamy operację grupowania kolekcji dokumentów. Liczba podgrup jest dużo mniejsza niż liczba wszystkich dokumentów. Zamiast wyznaczać podobieństwo przetwarzanego zapytania do dużej liczby dokumentów, obliczamy je dla znacznie mniejszej liczby centroidów. Następnie obliczamy cosinusy i sporządzamy ranking dla dokumentów należących do podgrup najbardziej podobnych podobnych do zapytania.

Model wektorowy Redukcja wymiarowości Katedra Informatyki Przypomnijmy, że w modelu wektorowym wyszukiwania traktujemy dokumenty jako wektory w pewnej przestrzeni o wymiarze odpowiadającym liczbie wszystkich możliwych termów w słowniku. Wymiar tej przestrzeni jest więc zazwyczaj bardzo duży. W prezentowanych wcześniej wynikach oceny efektywności algorytmów przetwarzania zapytania, wykorzystywana kolekcja miała blisko 3 miliony termów. Redukcja wymiarowości polega na znalezieniu takiego jej przekształcenia w przestrzeń o dużo niższym wymiarze (m << n), aby utracić jak najmniej informacji o różnicach między dokumentami (odległościach dokumentów). Zazwyczaj da się to zrobić – informacja dyskryminacyjna dokumentów jest mocno redundantna. Mniejszy wymiar przestrzeni – mniej termów, co przyśpiesza obliczenia cosinusów. O pewnej standardowej w IR metodzie, LSI (Latent Semantic Indexing) będziemy mówili w dalszej części wykładu.