EKSPLORACJA ZASOBÓW INTERNETU - MIŁOSZ KADZIŃSKI LABORATORIUM V INDEKS ODWROTNY + WEB ADVERTISING + MINING NAVIGATIONAL PATTERNS + APRIORI 1. Laboratorium V 1.1. Indeks odwrotny 1.2. Web advertising algorytm BALANCE oraz podstawy algorytmu Adwords 1.3. Podstawy eksploracyjnej analizy 1.4. Wykorzystanie łańcuchów Markowa do Mining Navigational Patterns 1.5. Algorytm A-Priori odkrywanie zbiorów częstych i reguł asocjacyjnych 2. Inverted index - indeks (plik) odwrócony Struktura danych przechowująca poszczególny termy jako klucze, oraz identyfikatory plików, w których te termy wystąpiły jako wartości (najczęściej implementowana jako tablica hashująca lub drzewo binarne). Cel: zwiększenie szybkości działania wyszukiwarki przy poniesieniu kosztu dodania informacji o dokumencie do indeksu W indeksie najczęściej przechowywane są indeksy dokumentów (numery porządkowe). Dodatkowo dla każdego termu często przechowywana jest długość listy dokumentów, które go zawierają. W wersji pełnej indeksu przechowuje się pary (DocID, TermPos), gdzie TermPos jest pozycją termu w ramach dokumentu o identyfikatorze DocID. Zwykle dokumenty dla danego termu są uszeregowane zgodnie z DocID. Inne pomysły polegają na wykorzystaniu tzw. statycznej jakości dokumentu (np. miary PageRank) lub miary TF. 3. Web Advertising Banery - 1995-2001, zwykle koszt X$ za 1000 wyświetleń (cost per mil CPM), czasami opłata była pobierana nie za samo wyświetlenie, a kliknięcie (cost per click CPC). Sponsored search, search advertising wprowadzone przez firmę Goto (Overture) w 2000r. Reklamodawcy składają oferty na słowa kluczowe Gdy ktoś w zapytaniu użyje tego słowa kluczowego, wyświetlana jest reklama związana z najwyższą ofertą (lub ranking reklam uporządkowanych wg malejącej wysokości ofert) Reklamodawca jest zobowiązany zapłacić tylko, jeśli reklama zostanie kliknięta Algorithmic search results vs. sponsored search results połączenie Adwords problem Sekwencja zapytań q 1, q 2, Wielu reklamodawców składa ofertę na każde zapytanie Kiedy pojawia się q i, wyszukiwarka musi określić zbiór reklamodawców, których reklamy zostaną pokazane użytkownikowi Cel: maksymalizacja zysku wyszukiwarki BALANCE (prosty) Każdy reklamodawca ma budżet b jednostek Składa oferty w wysokości 0/1 jednostek na każde zapytanie Wyświetlana jest reklama tego reklamodawcy, który ma największy niewydany budżet - 1 -
Competitive Ratio = min all possibile inputs M alg /M opt = 1 1/e BALANCE (uogólniony) Dowolne oferty, dowolne budżety Oferta = x i Budżet = b i Kwota wydana do tej pory = m i Część budżetu, która pozostała reklamodawcy: f i = 1 m i /b i Dla zapytania q zostanie wyświetlona reklama reklamodawcy i, dla którego największą wartość ma funkcja: i (q) = x i (1-e -fi ) Competitive Ratio = 1-1/e Google Adwords Algorithm (wersja początkowa) Prosta, zrozumiała, nawiązująca do Goto, your bid determines your position Dwie zmienne: CTR (Click Through Rate dla słowa kluczowego) oraz MAX BID (oferta maksymalnej kwoty, jaką jesteś w stanie zapłacić za kliknięcie reklamy) Rank Score = [CTR * MAX BID] Reklamadawcy (słowo widgets ) CTR MAX [CTR * MAX BID]=Rank Score Rank Score Rank BID Bidder A 0.04 $0.09 0.04 * 0.09.0036 #2 Bidder B 0.05 $0.09 0.05 * 0.09.0045 #1 Bidder C 0.02 $0.11 0.02 * 0.11.0022 #3 Wada z punktu widzenia Google: słowo mało popularne vs. top ranking Zmiany: Obserwacja (2004): I'm bidding on keyword [Mexia purple widget] (that's exact match) and my bid is $0.10 - There is no way anybody else is bidding on this term, so why is my ad ranking never any better that 19th? AND, since nobody else is bidding on that carefully selected exact match keyword, why are all those ads showing ahead of me? Odpowiedź: Google określa szerszy temat, z którym powiązane jest zapytanie i trzeba rywalizować z innymi reklamodawcami, którzy nie określi dokładnie tych słów jako kluczowe. Skutek: Nie da się już znaleźć tanich słów kluczowych, które pozwalają na osiągnięcie pierwszych pozycji. Obserwacja (2005): I keep raising my bids, but my ad positions (rankings) refuse to get better." Odpowiedź: Google uwzględnił wiele dodatkowych parametrów takich, jak: historia konta mierzona jako CTR wszystkich reklam i słów kluczowych na koncie; historyczny CTR tzw. display URL (adresu wyświetlanego na dole reklamy, które wskazuje stronę na którą przejdziemy po kliknięciu) w ad group (grupie reklam opracowanych przez reklamodawcą, które są dedykowane dla pojedynczego słowa kluczowego); istotność (relevance) słowa kluczowego w stosunku do - 2 -
reklam w ad group Skutek: Ciężko kontrolować pozycję tylko za pomocą oferty (a nawet jeśli to 0.1$ -> 1.5$) Obserwacja (2005): Wait a minute... My Google AdWords ad for my keyword has ranked in the top position for over a year and on Monday it's all of a sudden ranking 27th! I changed nothing and I'm still bidding an outrageous amount, so WHY AM I SEEING MY AD IN 27th position?" Odpowiedź: Google uwzględnia tzw. localization factor (skuteczność reklamy w regionie geograficznym, z którego pochodzi zapytanie) Skutek: Reklamy mogą mieć różne pozycje w różnych częściach świata Kolejna zmiana: landing page factor i wiele, wiele innych :) 4. Mining Navigation Patterns Wykorzystanie łańcuchów Markova (Markov Chains) Pomysł: sekwencje zapisu poruszania się po sieci (określonym serwisie) (navigational sequences) można przedstawić jako diagram przejść ze strony do strony Łańcuch Markova składa się ze zbioru stanów (stron lub wyświetleń stron w serwisie): S = {s 1, s 2,, s n } oraz ze zbioru prawdopodobieństw przejść między stanami: P = {p 1,1,, p 1n, p 21, p 2n,., p n,1,, p nn } W modelu łańcucha Markova prawdopodobieństwo przejścia ze strony s i do strony s j oblicza się jako iloraz liczby wystąpień s j po s i do liczby wystąpień s i. Ścieżka r ze stanu s i do stanu s j to sekwencja stanów z prawdopodobieństwami przejścia większymi niż 0. Prawdopodobieństwo osiągnięcia stanu s j ze stanu s i poprzez ścieżkę r to iloczyn prawdopodobieństw wzdłuż ścieżki: p, K ( r) p k k Prawdopodobieństwa osiągnięcia stanu s j ze stanu s i jest sumą po wszystkich ścieżkach, po których można dojść z s j do s i : p ( j \ i) p( r) r R 1-3 -
5. Algorytm A-Priori Model Market-Basket: zbiór produktów (items), np. sprzedawanych w supermarkecie zbiór koszyków (baskets), z których każdy jest małym zbiorem produktów, np. rzeczy, które klient kupuje danego dnia Analiza dotyczy powiązań między produktami w ramach koszyków. Ogólny cel: znajdź zbiory produktów, które pojawiają się w koszykach często mają wysokie wsparcie (powyżej progu (suport threshold) s) Wsparcie dla zbioru produktów I = liczba koszyków, które zawierają wszystkie produkty z I Przykłady wykorzystanie pomysłu: produkty-koszyki w standardowym rozumieniu piwo-pieluszki koszyki=zdania, produkty=dokumenty zawierające te zdania produkty, które zbyt często pojawiają się razem mogą reprezentować plagiaty (produkty nie muszą być w koszykach) koszyki=strony w sieci, produkty=słowa słowa, które pojawiają się razem często w dużej liczbie dokumentów mogą wskazywać na interesujące relacje term associations ( Brad, Angelina ) koszyki=słowa, produkty=dokumenty, strony znajdź powiązania między dokumentami na podstawie ich zawartości zbiory częste to grupy dokumentów, w których wiele słów pojawia się wspólnie koszyki=sesja użytkowanka, produkty=strony odwiedzone w czasie sesji np. 30% klientów, którzy odwiedzili /special-offer.htm złożyli zamówienie na /products/software Algorytm A-Priori: Pomysł: jeśli zbiór produktów pojawia się co najmniej s razy, to każdy z jego podzbiorów też pojawia się co najmniej s razy Jeśli produkt i nie pojawia się w s koszykach, to żadna para (w ogólności nadzbiór właściwy) zawierająca i nie może się pojawić w s koszykach Znajdź zbiory częste składające się z pojedynczych produktów (frequent items), które pojawiają się co najmniej w s koszykach Rozważ zbiory częste składające się z dwóch produktów, które pojedynczo pojawiały się wystarczająco często. Zbadaj, które spośród nich pojawiały się wystarczająco często (co najmniej s razy) W ogólności dla k-sets (zbiorów składających się z k produktów) C k = kandydat na zbiór częsty = zbiory, które mogą być zbiorami częstymi (support >= s) w świetle wiedzy, którą posiadamy dla zbiorów o liczności k-1 L k = zbiory częste o rozmiarze k C 1 = wszystkie pojedyncze produkty W ogólności, L k = zbiory z C k, dla których suport >= s - 4 -
C k+1 = zbiory składające się z k+1 produktów, których wszystkie podzbiory k-elementowe są w L k (są częste) Reguły asocjacyjne: Stwierdzenia jeżeli to dotyczące zawartości koszyków {i1, i2,, ik} j należy czytać następująco: jeśli koszyk zawiera wszystkie produkty i1, i2,, ik, to prawdopodobne jest (likely), że zawiera także produkt j Współczynnik pewności tej reguły to prawdopodobieństwo, że występuje j mając dane i1, i2,, ik (w liczniku liczba wystąpień razem wszystkich produktów z części warunkowej oraz części decyzyjnej; w mianowniku liczba wystąpień razem wszystkich produktów z części warunkowej) Odkrywanie reguł asocjacyjnych: Zadanie: znajdź wszystkie reguły asocjacyjne ze wsparciem co najmniej s (support >= s) oraz współczynnikiem pewności co najmniej c (confidence >= c) Reguła {i1, i2,, ik} j ma wysokie wsparcie, jeśli {i1, i2,, ik, j} będzie zbiorem częstym Reguła {i1, i2,, ik} j ma wysoki współczynnik pewności jeśli liczba wystąpień {i1, i2,, ik} nie jest znacząco większa od {i1, i2,, ik, j} Wykorzystanie: Wykorzystaj reguły, by dynamicznie przedstawiać ofertę dla konkretnego użytkownika Prefetch stron, które najprawdopodobniej odwiedzi użytkownik Site optimization (organizacja struktury serwisu) - 5 -
9. Ćwiczenia 1. Utwórz indeks odwrócony dla następujących dokumentów: D1: new Home sales top forecasts Term/Doc D1 D2 D3 D4 D2: home sales rise in july forecasts 1 0 0 0 forecasts D3: increase in home sales in july home 1 1 1 1 home D4: july new home sales rise in 0 1 1 0 In increase 0 0 1 0 increase Jakie są wyniki wyszukiwania dla july 0 1 1 1 july Zapytań: new 1 0 0 1 new sales AND rise rise 0 1 0 1 rise forecasts OR increase sales 1 1 1 1 sales top 1 0 0 0 top 2. Dwóch reklamodawców A oraz B dysponuje budżetem 4$. A składa ofertę na zapytanie x, a B składa ofertę na zapytania x oraz y. Wszystkie oferty mają wysokość 1$. Jaki będzie wybór reklam dokonany przez algorytm BALANCE dla ciągu zapytań: xxxxyyyy, a jaki dla ciągu zapytań: yxyxxyxy? Jaki jest optymalny przydział? Podaj competitive ratio dla tego przykładu. Zapytania: xxxxyyyy; competitive ratio = BAL, OPT Zapytania: yxyxxyxy; competitive ratio = BAL, OPT 3. Dana jest zapis przebiegu 16 sesji. Oblicz P(B\A), P(C\B) i P(C\A), P(D/A) Sesje: 6: A, B, C 12: B, C B 1: A, B 7: A, C 13: B, C A 2: A, B 8: A, C 14: B, C, D 3: A, B, C 9: A, B, D 15: B, C C D 4: A, B, C 10: A, B, D 16: B, D 5: A, B, C, D 11: A, B, D l. wystąpień A = l. wystąpień A = l. wystąpień B = P(B\A)= l. wystąpień AB = l. wystąpień AC = l. wystąpień BC = P(C\B)= P AB = P AC = P BC = P(C\A)= l. wystąpień B = l. wystąpień C = P(D\A)= l. wystąpień BD = l. wystąpień CD = P BD = P CD = - 6 -
4. Dana jest baza transakcji: {bread milk butter beer} {bread butter water jam beer} {beer diapers bread butter jam} {butter milk juice} {diapers beer juice water} Przy założeniu minimalnego wsparcia 0.6 (minsupport=0.6), znajdź wszystkie zbiory częste. Dla minimalnego współczynnika pewności 0.7 (minconfidence=0.7), znajdź wszystkie reguły asocjacyjne postaci item1 {item2, item3}. Ile jest takich pewnych reguł asocjacyjnych (o współczynniku pewności 1.0)? C1 L1 Support Reguła 1 {bread} {butter} {beer} Confidence = {milk} {water} Reguła 2 {jam} {diapers} {juice} Confidence = C2 L2 Support Reguła 3 C3 L3 Support Confidence = Regułę postaci item1 {item2, item3} można utworzyć tylko z zbiorów częstych składających się z 3 produktów - 7 -