Sieci komputerowe Wykład 8: Wyszukiwarki internetowe Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe (II UWr) Wykład 8 1 / 37
czyli jak znaleźć igłę w sieci Sieci komputerowe (II UWr) Wykład 8 2 / 37
Historia Wstęp Dawno, dawno temu... Sieć bez wyszukiwarek Statyczne zbiory zasobów (katalogi stron, nadal istnieja) Polskie Zasoby Sieciowe...... wydawane na CD! Obecnie: Cała gama wyszukiwarek: Google, Live Search, Yahoo! Search, A9... + wyszukiwarki treści specjalistycznych Sieci komputerowe (II UWr) Wykład 8 3 / 37
Historia Wstęp Dawno, dawno temu... Sieć bez wyszukiwarek Statyczne zbiory zasobów (katalogi stron, nadal istnieja) Polskie Zasoby Sieciowe...... wydawane na CD! Obecnie: Cała gama wyszukiwarek: Google, Live Search, Yahoo! Search, A9... + wyszukiwarki treści specjalistycznych Sieci komputerowe (II UWr) Wykład 8 3 / 37
Historia Wstęp Dawno, dawno temu... Sieć bez wyszukiwarek Statyczne zbiory zasobów (katalogi stron, nadal istnieja) Polskie Zasoby Sieciowe...... wydawane na CD! Obecnie: Cała gama wyszukiwarek: Google, Live Search, Yahoo! Search, A9... + wyszukiwarki treści specjalistycznych Sieci komputerowe (II UWr) Wykład 8 3 / 37
Wyszukiwarki Wstęp Trzy etapy działania Przeszukiwanie sieci Indeksowanie treści Wyszukiwanie informacji Sieci komputerowe (II UWr) Wykład 8 4 / 37
Wyszukiwarki Wstęp Trzy etapy działania Przeszukiwanie sieci Indeksowanie treści Wyszukiwanie informacji Sieci komputerowe (II UWr) Wykład 8 4 / 37
Web crawling Przeszukiwanie sieci Web crawler działa jak przegladarka WWW podażaj aca za wszystkimi odnośnikami, które widzi. Sieci komputerowe (II UWr) Wykład 8 5 / 37
Problem Przeszukiwanie sieci Graf sieci WWW wyglada tak (stan na rok 2000, ok. 200 mln stron) Ok. 10% stron nie jest podłaczonych do głównej sieci WWW. Teraz jeszcze gorzej: 100mld stron (około 45mld zaindeksowane) Obrazek ze pracy Graph structure of the Web, Broder et al. Sieci komputerowe (II UWr) Wykład 8 6 / 37
Problem Przeszukiwanie sieci Graf sieci WWW wyglada tak (stan na rok 2000, ok. 200 mln stron) Ok. 10% stron nie jest podłaczonych do głównej sieci WWW. Teraz jeszcze gorzej: 100mld stron (około 45mld zaindeksowane) Obrazek ze pracy Graph structure of the Web, Broder et al. Sieci komputerowe (II UWr) Wykład 8 6 / 37
Problem Przeszukiwanie sieci Graf sieci WWW wyglada tak (stan na rok 2000, ok. 200 mln stron) Ok. 10% stron nie jest podłaczonych do głównej sieci WWW. Teraz jeszcze gorzej: 100mld stron (około 45mld zaindeksowane) Obrazek ze pracy Graph structure of the Web, Broder et al. Sieci komputerowe (II UWr) Wykład 8 6 / 37
Przeszukiwanie sieci Na które strony nie wchodzimy Webcrawlery (zazwyczaj) respektuja tzw. pliki robots.txt Przykładowy robots.txt User-agent: * Disallow: /cgi-bin/ Disallow: /images/ Disallow: /tmp/ Disallow: /private/ Sieci komputerowe (II UWr) Wykład 8 7 / 37
Przeszukiwanie sieci Dalsze problemy z przechodzeniem grafu sieci Strony generowane dynamicznie (wypełnianie formularzy) Obiekty nietekstowe (obrazki, filmy, strony we Flashu, programy w Javie,...) Często uaktualniane strony Sieci komputerowe (II UWr) Wykład 8 8 / 37
Wyszukiwarki Indeksowanie Trzy etapy działania Przeszukiwanie sieci Indeksowanie treści Wyszukiwanie informacji Sieci komputerowe (II UWr) Wykład 8 9 / 37
Indeksowanie Indeksowanie znalezionych stron Problemy: Liczba stron Ponad 100 różnych języków (różne alfabety!) 30% stron to kopie innych stron Sieci komputerowe (II UWr) Wykład 8 10 / 37
Indeksowanie Po czym możemy indeksować? Po zawartości (słowa w tekście) Po znacznikach meta Po tytule Czy to wystarcza? Sieci komputerowe (II UWr) Wykład 8 11 / 37
Indeksowanie Po czym możemy indeksować? Po zawartości (słowa w tekście) Po znacznikach meta Po tytule Czy to wystarcza? Sieci komputerowe (II UWr) Wykład 8 11 / 37
Indeksowanie Problemy z indeksowaniem po zawartości strony Na stronie http://www.porsche.com/ nie występuje słowo car ani auto. Na stronie http://www.google.com/ nie występuje słowo wyszukiwarka. Strona wortschatz.uni-leipzig.de/papers/top10000en.txt zawiera 10 tysięcy najpopularniejszych słów angielskich. Niektóre słowa, np. WWW, Web występuja na prawie każdej stronie. Sieci komputerowe (II UWr) Wykład 8 12 / 37
Indeksowanie Problemy z indeksowaniem po zawartości strony Na stronie http://www.porsche.com/ nie występuje słowo car ani auto. Na stronie http://www.google.com/ nie występuje słowo wyszukiwarka. Strona wortschatz.uni-leipzig.de/papers/top10000en.txt zawiera 10 tysięcy najpopularniejszych słów angielskich. Niektóre słowa, np. WWW, Web występuja na prawie każdej stronie. Sieci komputerowe (II UWr) Wykład 8 12 / 37
Pomysł Indeksowanie Możemy indeksować również po nazwach odnośników prowadzacych do danej strony. Istotniejsze jest to co o naszej stronie myśla inni niż my sami. Sieci komputerowe (II UWr) Wykład 8 13 / 37
Pomysł Indeksowanie Możemy indeksować również po nazwach odnośników prowadzacych do danej strony. Istotniejsze jest to co o naszej stronie myśla inni niż my sami. Sieci komputerowe (II UWr) Wykład 8 13 / 37
Wyszukiwarki Wyszukiwanie informacji Trzy etapy działania Przeszukiwanie sieci Indeksowanie treści Wyszukiwanie informacji Sieci komputerowe (II UWr) Wykład 8 14 / 37
Wyszukiwanie informacji Główny problem (dla jęz. angielskiego) 95% stron da się zbudować używajac tych samych 6.000 słów. Wniosek: Wyszukanie niektórych słów, a nawet ich kombinacji, zwraca kilkadziesiat milionów trafień. Które trafienia zwrócić użytkownikowi jako pierwsze? Sieci komputerowe (II UWr) Wykład 8 15 / 37
Wyszukiwanie informacji Główny problem (dla jęz. angielskiego) 95% stron da się zbudować używajac tych samych 6.000 słów. Wniosek: Wyszukanie niektórych słów, a nawet ich kombinacji, zwraca kilkadziesiat milionów trafień. Które trafienia zwrócić użytkownikowi jako pierwsze? Sieci komputerowe (II UWr) Wykład 8 15 / 37
Wyszukiwanie informacji Główny problem (dla jęz. angielskiego) 95% stron da się zbudować używajac tych samych 6.000 słów. Wniosek: Wyszukanie niektórych słów, a nawet ich kombinacji, zwraca kilkadziesiat milionów trafień. Które trafienia zwrócić użytkownikowi jako pierwsze? Sieci komputerowe (II UWr) Wykład 8 15 / 37
Sortowanie wyników Oczywiste: najpierw wyświetlamy strony sponsorowane. Ale żeby nam płacono, musimy zwracać też dobre wyniki dla niesponsorowanych stron. Sieci komputerowe (II UWr) Wykład 8 16 / 37
Sortowanie wyników Oczywiste: najpierw wyświetlamy strony sponsorowane. Ale żeby nam płacono, musimy zwracać też dobre wyniki dla niesponsorowanych stron. Sieci komputerowe (II UWr) Wykład 8 16 / 37
Sortowanie wyników, cd. Stara strategia (do ok. roku 1998): Jeśli użytkownik szuka słowa X zwracamy stronę, która zawiera jak najwięcej X Patologie: Mnóstwo słów (często niezwiazanych z treścia) w znacznikach meta. Niewyświetlane napisy (np. w kolorze tła). Sieci komputerowe (II UWr) Wykład 8 17 / 37
Sortowanie wyników, cd. Stara strategia (do ok. roku 1998): Jeśli użytkownik szuka słowa X zwracamy stronę, która zawiera jak najwięcej X Patologie: Mnóstwo słów (często niezwiazanych z treścia) w znacznikach meta. Niewyświetlane napisy (np. w kolorze tła). Sieci komputerowe (II UWr) Wykład 8 17 / 37
Które strony sa ważne? Brin, Page 98 - Algorytm Algorytm przypisujacy ważność poszczególnym stronom (jedna wartość dla każdej strony). Sieci komputerowe (II UWr) Wykład 8 18 / 37
Wyszukiwanie informacji Główna idea: Ważne strony wskazuja (maja odnośniki) na inne ważne strony. Każdej stronie P i przypisujemy rangę R(P i ) [0, 1]. Jeśli strona P i ma l i sasiadów, to każdemu przekazuje 1/l i swojej rangi: R(P i ) = R(P j ), l j P j B i gdzie B i jest zbiorem stron, z których prowadzi krawędź do P i. Sieci komputerowe (II UWr) Wykład 8 19 / 37
Żeby zrozumieć rekurencję, trzeba zrozumieć rekurencję Mamy rekurencyjna zależność: Uproszczony algorytm : R(P i ) = P j B i R(P j ) l j Żeby policzyć rangę (ważność) danej strony trzeba policzyć rangi stron do niej prowadzacych A zatem rangi stron do nich prowadzacych... itd. Oczywiście można też obliczyć R(P i ) rozwiazuj ac układ równań (dużo stron niepraktyczne) Sieci komputerowe (II UWr) Wykład 8 20 / 37
Żeby zrozumieć rekurencję, trzeba zrozumieć rekurencję Mamy rekurencyjna zależność: Uproszczony algorytm : R(P i ) = P j B i R(P j ) l j Żeby policzyć rangę (ważność) danej strony trzeba policzyć rangi stron do niej prowadzacych A zatem rangi stron do nich prowadzacych... itd. Oczywiście można też obliczyć R(P i ) rozwiazuj ac układ równań (dużo stron niepraktyczne) Sieci komputerowe (II UWr) Wykład 8 20 / 37
Żeby zrozumieć rekurencję, trzeba zrozumieć rekurencję Mamy rekurencyjna zależność: Uproszczony algorytm : R(P i ) = P j B i R(P j ) l j Żeby policzyć rangę (ważność) danej strony trzeba policzyć rangi stron do niej prowadzacych A zatem rangi stron do nich prowadzacych... itd. Oczywiście można też obliczyć R(P i ) rozwiazuj ac układ równań (dużo stron niepraktyczne) Sieci komputerowe (II UWr) Wykład 8 20 / 37
Żeby zrozumieć rekurencję, trzeba zrozumieć rekurencję Mamy rekurencyjna zależność: Uproszczony algorytm : R(P i ) = P j B i R(P j ) l j Żeby policzyć rangę (ważność) danej strony trzeba policzyć rangi stron do niej prowadzacych A zatem rangi stron do nich prowadzacych... itd. Oczywiście można też obliczyć R(P i ) rozwiazuj ac układ równań (dużo stron niepraktyczne) Sieci komputerowe (II UWr) Wykład 8 20 / 37
Żeby zrozumieć rekurencję, trzeba zrozumieć rekurencję Mamy rekurencyjna zależność: Uproszczony algorytm : R(P i ) = P j B i R(P j ) l j Żeby policzyć rangę (ważność) danej strony trzeba policzyć rangi stron do niej prowadzacych A zatem rangi stron do nich prowadzacych... itd. Oczywiście można też obliczyć R(P i ) rozwiazuj ac układ równań (dużo stron niepraktyczne) Sieci komputerowe (II UWr) Wykład 8 20 / 37
Rozwiazanie Zacznijmy od dowolnych rang R i obliczajmy kolejne wartości ze wzoru R(P i ) P j B i R(P j ) l j, Sieci komputerowe (II UWr) Wykład 8 21 / 37
Przykład Wyszukiwanie informacji R(P i ) P j B i R(P j ) l j, Obrazki ze strony http://wwwcs.uni-paderborn.de/cs/ag-madh/www/teaching/2005ss/internetalg/skript.html Sieci komputerowe (II UWr) Wykład 8 22 / 37
Przykład, cd. Wyszukiwanie informacji R(P i ) P j B i R(P j ) l j Dochodzimy do stanu stacjonarnego: R(a) = 1.2, R(b) = 1.2, R(c) = 0.6 Możemy go przeskalować: Jeśli zaczniemy od R(a) = R(b) = R(c) = 1/3, to dojdziemy do R(a) = 0.4, R(b) = 0.4, R(c) = 0.2. Sieci komputerowe (II UWr) Wykład 8 23 / 37
Czy to zawsze działa? W szczególności, czy: 1 wektor rang zawsze zbiega do stanu stacjonarnego? 2 ostateczna wartość zależy od stanu poczatkowego? 3 rangi faktycznie odpowiadaja ważności stron? Rangi a ważność strony ranga pojedynczy wskaźnik (co ze słowami o wielu znaczeniach?) możliwość nadużywania systemu przez tworzenie zbiorów stron, które wskazuja na nasza (ćwiczenie) Sieci komputerowe (II UWr) Wykład 8 24 / 37
Czy to zawsze działa? W szczególności, czy: 1 wektor rang zawsze zbiega do stanu stacjonarnego? Nie 2 ostateczna wartość zależy od stanu poczatkowego? 3 rangi faktycznie odpowiadaja ważności stron? Rangi a ważność strony ranga pojedynczy wskaźnik (co ze słowami o wielu znaczeniach?) możliwość nadużywania systemu przez tworzenie zbiorów stron, które wskazuja na nasza (ćwiczenie) Sieci komputerowe (II UWr) Wykład 8 24 / 37
Czy to zawsze działa? W szczególności, czy: 1 wektor rang zawsze zbiega do stanu stacjonarnego? Nie 2 ostateczna wartość zależy od stanu poczatkowego? Nie 3 rangi faktycznie odpowiadaja ważności stron? Rangi a ważność strony ranga pojedynczy wskaźnik (co ze słowami o wielu znaczeniach?) możliwość nadużywania systemu przez tworzenie zbiorów stron, które wskazuja na nasza (ćwiczenie) Sieci komputerowe (II UWr) Wykład 8 24 / 37
Czy to zawsze działa? W szczególności, czy: 1 wektor rang zawsze zbiega do stanu stacjonarnego? Nie 2 ostateczna wartość zależy od stanu poczatkowego? Nie 3 rangi faktycznie odpowiadaja ważności stron? Nie Rangi a ważność strony ranga pojedynczy wskaźnik (co ze słowami o wielu znaczeniach?) możliwość nadużywania systemu przez tworzenie zbiorów stron, które wskazuja na nasza (ćwiczenie) Sieci komputerowe (II UWr) Wykład 8 24 / 37
Czy to zawsze działa? W szczególności, czy: 1 wektor rang zawsze zbiega do stanu stacjonarnego? Nie 2 ostateczna wartość zależy od stanu poczatkowego? Nie 3 rangi faktycznie odpowiadaja ważności stron? Nie Rangi a ważność strony ranga pojedynczy wskaźnik (co ze słowami o wielu znaczeniach?) możliwość nadużywania systemu przez tworzenie zbiorów stron, które wskazuja na nasza (ćwiczenie) Sieci komputerowe (II UWr) Wykład 8 24 / 37
Problem nr 1: strony bez odnośników Kolejne wartości rang: R(1) R(2) 0.5 0.5 0 0.5 0 0...... Strony bez odnośników wysysaja cała wagę przeznaczona na rangi. Tymczasowe rozwiazanie: dodajmy pętle do stron bez odnośników. Obrazki ze strony http://www.ams.org/featurecolumn/archive/pagerank.html Sieci komputerowe (II UWr) Wykład 8 25 / 37
Problem nr 1: strony bez odnośników Kolejne wartości rang: R(1) R(2) 0.5 0.5 0 0.5 0 0...... Strony bez odnośników wysysaja cała wagę przeznaczona na rangi. Tymczasowe rozwiazanie: dodajmy pętle do stron bez odnośników. Obrazki ze strony http://www.ams.org/featurecolumn/archive/pagerank.html Sieci komputerowe (II UWr) Wykład 8 25 / 37
Problem nr 1: strony bez odnośników Kolejne wartości rang: R(1) R(2) 0.5 0.5 0 0.5 0 0...... Strony bez odnośników wysysaja cała wagę przeznaczona na rangi. Tymczasowe rozwiazanie: dodajmy pętle do stron bez odnośników. Obrazki ze strony http://www.ams.org/featurecolumn/archive/pagerank.html Sieci komputerowe (II UWr) Wykład 8 25 / 37
Problem nr 2 (nawet pętle nie pomagaja) 1 2 3 Kolejne wartości rang: R(1) R(2) R(3) 0.5 0.5 0 0.75 0 0.25 0.75 0 0.25 0.75 0 0.25......... Wynik (stan stacjonarny) zależy od wartości poczatkowej! Sieci komputerowe (II UWr) Wykład 8 26 / 37
Problem nr 2 (nawet pętle nie pomagaja) 1 2 3 Kolejne wartości rang: R(1) R(2) R(3) 0.5 0.5 0 0.75 0 0.25 0.75 0 0.25 0.75 0 0.25......... Ale jeśli zaczniemy od innych: R(1) R(2) R(3) 0 0 1 0 0 1 0 0 1......... Wynik (stan stacjonarny) zależy od wartości poczatkowej! Sieci komputerowe (II UWr) Wykład 8 26 / 37
Problem nr 2, cd. Wyszukiwanie informacji 1 2 3 Dlaczego? Problem zbiegania do różnych stanów stacjonarnych pojawia się, bo graf nie jest silnie spójny Gdyby nie był spójny, byłoby jeszcze gorzej Czy silna spójność wystarcza? Sieci komputerowe (II UWr) Wykład 8 27 / 37
Problem nr 2, cd. Wyszukiwanie informacji 1 2 3 Dlaczego? Problem zbiegania do różnych stanów stacjonarnych pojawia się, bo graf nie jest silnie spójny Gdyby nie był spójny, byłoby jeszcze gorzej Czy silna spójność wystarcza? Sieci komputerowe (II UWr) Wykład 8 27 / 37
Problem nr 2, cd. Wyszukiwanie informacji 1 2 3 Dlaczego? Problem zbiegania do różnych stanów stacjonarnych pojawia się, bo graf nie jest silnie spójny Gdyby nie był spójny, byłoby jeszcze gorzej Czy silna spójność wystarcza? Nie! Sieci komputerowe (II UWr) Wykład 8 27 / 37
Problem nr 3: okresowość Kolejne wartości rang: R(1) R(2) R(3) R(4) R(5) 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2............... Ale jeśli zaczniemy od innych: R(1) R(2) R(3) R(4) R(5) 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0............... Obrazki ze strony http://www.ams.org/featurecolumn/archive/pagerank.html Sieci komputerowe (II UWr) Wykład 8 28 / 37
Problem nr 3: okresowość Kolejne wartości rang: R(1) R(2) R(3) R(4) R(5) 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2............... Ale jeśli zaczniemy od innych: R(1) R(2) R(3) R(4) R(5) 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0............... Obrazki ze strony http://www.ams.org/featurecolumn/archive/pagerank.html Sieci komputerowe (II UWr) Wykład 8 28 / 37
Problem 3, cd. Wyszukiwanie informacji Okresowość wierzchołka Okres wierzchołka s = GCD długości wszystkich cykli zawierajacych s Okresowość grafu Graf jest okresowy jeśli wszystkie wierzchołki maja okres > 1. Sieci komputerowe (II UWr) Wykład 8 29 / 37
Problem 3, cd. Wyszukiwanie informacji Okresowość wierzchołka Okres wierzchołka s = GCD długości wszystkich cykli zawierajacych s Okresowość grafu Graf jest okresowy jeśli wszystkie wierzchołki maja okres > 1. Sieci komputerowe (II UWr) Wykład 8 29 / 37
Co nam daje silna spójność i nieokresowość? Uogólnijmy nasz graf: dodajemy do krawędzi wagi; wymagamy, żeby suma wag krawędzi w ij wychodzacych ze strony P i była równa 1. Obliczamy R(P i ) P j w ij R(P j ) własności silna spójność i okresowość dotycza grafu, w którym patrzymy na krawędzie o niezerowych wagach Twierdzenie Jeśli graf jest silnie spójny i nieokresowy, to istnieje tylko jeden stan stacjonarny i uproszczony algorytm do niego zbiega. Sieci komputerowe (II UWr) Wykład 8 30 / 37
Co nam daje silna spójność i nieokresowość? Uogólnijmy nasz graf: dodajemy do krawędzi wagi; wymagamy, żeby suma wag krawędzi w ij wychodzacych ze strony P i była równa 1. Obliczamy R(P i ) P j w ij R(P j ) własności silna spójność i okresowość dotycza grafu, w którym patrzymy na krawędzie o niezerowych wagach Twierdzenie Jeśli graf jest silnie spójny i nieokresowy, to istnieje tylko jeden stan stacjonarny i uproszczony algorytm do niego zbiega. Sieci komputerowe (II UWr) Wykład 8 30 / 37
Co nam daje silna spójność i nieokresowość? Uogólnijmy nasz graf: dodajemy do krawędzi wagi; wymagamy, żeby suma wag krawędzi w ij wychodzacych ze strony P i była równa 1. Obliczamy R(P i ) P j w ij R(P j ) własności silna spójność i okresowość dotycza grafu, w którym patrzymy na krawędzie o niezerowych wagach Twierdzenie Jeśli graf jest silnie spójny i nieokresowy, to istnieje tylko jeden stan stacjonarny i uproszczony algorytm do niego zbiega. Sieci komputerowe (II UWr) Wykład 8 30 / 37
Modyfikacja algorytmu Nie modyfikujemy samego algorytmu, tylko uruchamiamy go na lekko zmodyfikowanym grafie. Chcemy, żeby graf po modyfikacji był silnie spójny był nieokresowy możliwie najmniej różnił się od oryginalnego Sieci komputerowe (II UWr) Wykład 8 31 / 37
Interpretacja probabilistyczna Inne spojrzenie na proces obliczania stanu stacjonarnego ranga = prawdopodobieństwo, że jesteśmy w danym wierzchołku na poczatku losujemy sobie dowolna stronę potem klikamy losowo w odnośniki po wielu kliknięciach prawdpodobieństwo jest dyktowane przez coś podobnego do stanu stacjonarnego w ważnych stronach jesteśmy z większym prawdopodobieństwem Pomysł: niech nasz losowy klikacz jeśli nie ma wyjścia z danej strony, zaczyna od nowa nawet jeśli wyjście jest to zaczyna od nowa z prawdopodobieństwem 1 α. Jak to przełożyć na modyfikację grafu? Sieci komputerowe (II UWr) Wykład 8 32 / 37
Interpretacja probabilistyczna Inne spojrzenie na proces obliczania stanu stacjonarnego ranga = prawdopodobieństwo, że jesteśmy w danym wierzchołku na poczatku losujemy sobie dowolna stronę potem klikamy losowo w odnośniki po wielu kliknięciach prawdpodobieństwo jest dyktowane przez coś podobnego do stanu stacjonarnego w ważnych stronach jesteśmy z większym prawdopodobieństwem Pomysł: niech nasz losowy klikacz jeśli nie ma wyjścia z danej strony, zaczyna od nowa nawet jeśli wyjście jest to zaczyna od nowa z prawdopodobieństwem 1 α. Jak to przełożyć na modyfikację grafu? Sieci komputerowe (II UWr) Wykład 8 32 / 37
Interpretacja probabilistyczna Inne spojrzenie na proces obliczania stanu stacjonarnego ranga = prawdopodobieństwo, że jesteśmy w danym wierzchołku na poczatku losujemy sobie dowolna stronę potem klikamy losowo w odnośniki po wielu kliknięciach prawdpodobieństwo jest dyktowane przez coś podobnego do stanu stacjonarnego w ważnych stronach jesteśmy z większym prawdopodobieństwem Pomysł: niech nasz losowy klikacz jeśli nie ma wyjścia z danej strony, zaczyna od nowa nawet jeśli wyjście jest to zaczyna od nowa z prawdopodobieństwem 1 α. Jak to przełożyć na modyfikację grafu? Sieci komputerowe (II UWr) Wykład 8 32 / 37
Interpretacja probabilistyczna Inne spojrzenie na proces obliczania stanu stacjonarnego ranga = prawdopodobieństwo, że jesteśmy w danym wierzchołku na poczatku losujemy sobie dowolna stronę potem klikamy losowo w odnośniki po wielu kliknięciach prawdpodobieństwo jest dyktowane przez coś podobnego do stanu stacjonarnego w ważnych stronach jesteśmy z większym prawdopodobieństwem Pomysł: niech nasz losowy klikacz jeśli nie ma wyjścia z danej strony, zaczyna od nowa nawet jeśli wyjście jest to zaczyna od nowa z prawdopodobieństwem 1 α. Jak to przełożyć na modyfikację grafu? Sieci komputerowe (II UWr) Wykład 8 32 / 37
Rozwiazanie Wyszukiwanie informacji Jak radzić sobie z okresowościa i brakiem silnej spójności? Mnożymy wagi istniejacych krawędzi przez α Z wierzchołków z których wychodza krawędzie dodajemy sztuczne krawędzie (z wagami 1 α n ) od każdego innego wierzchołka (w tym także pętle). Z wierzchołków z których nie wychodza krawędzie dodajemy sztuczne krawędzie (z wagami 1 n ) od każdego innego wierzchołka. Sieci komputerowe (II UWr) Wykład 8 33 / 37
Przykładowa modyfikacja Przed: 1 2 1 Po: 1 α 2 1 2 1 2 1 2 α + 1 α 2 Sieci komputerowe (II UWr) Wykład 8 34 / 37
Własności Wyszukiwanie informacji Twierdzenie Po powyższej modyfikacji otrzymujemy graf silnie spójny i nieokresowy. Dowód Po pominięciu wag, otrzymany graf jest grafem pełnym. Sieci komputerowe (II UWr) Wykład 8 35 / 37
Algorytm Wyszukiwanie informacji Algorytm Zaczynamy od R(u) = 1 n. W każdym kroku obliczamy R(P i ) = P j w ij R(P j ) = 1 α n + α P j nie ma odnosnikow R(P j) n + R(P j ) l j P j B i Sieci komputerowe (II UWr) Wykład 8 36 / 37
Uwagi końcowe Wyszukiwanie informacji Google używa(ł) z α = 0.85. Im większa wartość α, tym graf jest bliższy oryginalnemu: dla α = 0 otrzymujemy graf pełny (z ppb. 1/n na wszystkich krawędziach). Im mniejsza wartość α, tym szybsza zbieżność do stanu stacjonarnego Sieci komputerowe (II UWr) Wykład 8 37 / 37