PAWEŁ WEICHBROTH POLITECHIKA GDAŃSKA, ASYSTET, ZAKŁAD ZARZĄDZAIA TECHOLOGIAMI IFORMATYCZYMI, POLITECHIKA GDAŃSKA 1 STRESZCZEIE Portale internetowe są obecnie powszechnym źródłem informacji, notując bardzo dużą liczbę odwiedzin w ciągu dnia. Aktywność użytkowników zapisywana jest w plikach loga serwera WWW. Analiza takich danych może być z powodzeniem wykorzystana do określenia ścieżek nawigacji użytkowników. Uzyskana w ten sposób wiedza pozwala na stworzenie skutecznej strategii marketingowej dla produktów i usług oferowanych w ramach portalu. W niniejszej pracy, wzorce zachowań użytkowników zostały ujęte w postaci reguł asocjacyjnych. Do ekstrakcji reguł z danych serwera WWW został wykorzystany program RuleMiner, napisany w obiektowym języku Java. Podstawą działania programu jest algorytm Apriori, przedstawiony w pracy [R. Agrawal, R. Srikant 1994]. Przeprowadzone badanie miało na celu znalezienie istotnych zależności pomiędzy serwisami portalu. Słowa kluczowe: Drążenie danych, reguły asocjacyjne, algorytm Apriori. AALIZA ZACHOWAŃ UŻYTKOWIKÓW PORTALU OET.PL W UJĘCIU REGUŁ ASOCJACYJYCH Wstęp Rozwój globalnej sieci komputerowych, rozpowszechnienie komputerów osobistych oraz wysoka dostępność do łącz internetowych spowodowały wzrost liczby użytkowników odwiedzających strony internetowe. Sukces witryn internetowych w głównej mierze leży w informacji jej aktualności oraz dostępności. Ewolucja procesu generowania treści na stronach internetowych z podejścia statycznego do dynamicznego, pozwoliła na łatwiejsze jej aktualizacje. Informacje dotyczące porządku, w jakim kolejne strony są otwierane, może być z zyskiem wykorzystane do przewidywania zachowania odwiedzin i tym samym pozycjonowania treści. Eksploracja danych i technik z tym związanym jest obecnie przedmiotem wielu badań [R. Kosala 2000; K. Hatonen 2003; R. Ivancsy 2006]. 1 Współpraca: Radosław Kita, kierownik do spraw analiz marketingowych, grupa Onet S.A. 1
W literaturze przedmiotu drążenia danych (Data mining), analiza serwisów internetowych określana jest mianem eksploracji zasobów Internetu (Web Mining). W oparciu o postać danych można w niej wyróżnić: analizę treści serwisu (Web Content Mining), analizę struktury serwisu (Web Structure Mining) oraz analizę sposobów korzystania z serwisu przez użytkowników (Web Usage Mining) [R. Kosala, H. Blockeel 2000, s. 3]. Zwykle każde kliknięcie odsyłacza odpowiada wizualizacji dokumentu html. W tym kontekście sesję użytkownika reprezentuje sekwencja kliknięć otwieranych stron w ramach jednej witryny. W ramach sesji użytkownika mogą one posłużyć do predykcji online ciągu otwieranych stron. Celem autorów pracy jest analiza wizyt użytkowników na portalu onet.pl. Prezentacja ścieżek nawigacji użytkowników w ramach witryny, została przedstawiona w ujęciu reguł asocjacyjnych. Do tego celu został napisany program komputerowy RuleMiner 2, który działa na podstawie algorytmu Apriori [R. Agrawal, R. Srikant 1994]. Artykuł składa się z trzech części. Pierwsza jest opisem programu RuleMiner; część druga stanowi charakterystykę organizacji badania; część trzecia pracy jest prezentacją wyników przeprowadzonego badania. 1. Opis programu RuleMiner Działanie programu RuleMiner opiera się na implementacji algorytmu Apriori. Stanowi on rozwiązanie problemu poszukiwania częstych zbiorów w bazach danych. Proces badawczy można podzielić na pięć faz: czyszczenia, sortowania, tworzenia zbiorów, transformacji oraz szukania sekwencji. Pierwsza faza polega na posortowaniu zawartości pliku loga serwera WWW na podstawie dwóch kluczy: identyfikatora sesji oraz ścieżki pliku html. Faza druga obejmuje znalezienie wszystkich częstych zbiorów jednoelementowych, przy założonym minimalnym wsparciu (minimum support). W oparciu o nie, algorytm generuje zbiory kandydujące (candidate itemsets), poprzez wykonanie operacji łączenia dwóch zbiorów jednoelementowych w jeden dwuelementowy. Dla każdej pary zostaje policzone wsparcie w pliku loga jeżeli wynosi co najmniej założony próg, para taka jest dołączana do zbiorów częstych i w kolejnym kroku zostanie wykorzystana do wygenerowania zbiorów kandydujących trzyelementowych. Kolejne kroki są iteracyjne, tj. częste zbiory trzyelementowe zostaną wykorzystane do stworzenia zbiorów kandydujących czteroelementowych, częste zbiory czteroelementowe do utworzenia zbiorów 2 Implementacja algorytmu została wykonana przez mgr Łukasza Mikulskiego, Asystenta w Zakładzie Lingwistyki Matematycznej i Teorii Współbieżności na Uniwersytecie Mikołaja Kopernika w Toruniu. 2
kandydujących pięcioelementowych, itd. Każda następna iteracja generuje zbiory kandydujące o rozmiarze większym o 1 w stosunku do poprzedniego. Algorytm kończy pracę w sytuacji braku możliwości wygenerowania kolejnych zbiorów kandydujących. Wynikiem końcowym jest suma k- elementowych częstych zbiorów (k=1,2,3, ). Kolejny krok to analiza otrzymanych zbiorów w celu odnalezienia reguł asocjacyjnych. Przeprowadzone badanie udowodniło, iż opisana metoda działa w liniowym czasie. Jest zależna od rozmiaru zbiorów kandydujących, zaś rozmiar pliku loga nie ma wpływu na formowanie kandydatów. Pseudo kod algorytmu programu RuleMiner przedstawia listing 1. /* Zmienne Ck zbiór wszystkich k- sekwencji kandydatów Lk zbiór wszystkich długich k- sekwencji F dane wejściowe (plik loga serwera) */ make(l1) verifysupport(l1,f) k:=1 while (Lk not empty) do begin k++; make(ck,lk-1) verify(ck,lk-1) verifysupport(ck,f) Lk:=Ck End for i=1 to k do findassrules(ci) */ Zaprezentowany algorytm Apriori został wykorzystany do znalezienia wszystkich częstych serwisów, zapisanych w pliku loga serwera WWW. ie ma zastosowania w taksonomii i nie obsługuję ruchomych okien. W jego implementacji można napotkać dwa problemy. Pierwszy z nich dotyczy natury zasobów obliczeniowych w procesie transformacji danych, jaki ma miejsce w trakcie każdego przejścia algorytmu po pliku loga. Program RuleMiner został uruchomiony w środowisku Eclipse (wirtualna maszyna Javy w wersji 1.6.0), na komputerze klasy IBM PC z procesorem Intel Core2 Quad, taktowanym zegarem 2.40 GHz oraz pamięcią operacyjną 2 GB. Tabela 1 pokazuje czasy wykonania programu RuleMiner poszukującego częstych zbiorów w pliku loga. Tabela 1: Efektywność pracy programu RuleMiner L.p. Wsparcie Czas pracy (min) 3
1 0,05 4:28 2 0,04 6:36 3 0,03 10:00 4 0,02 20:34 5 0,01 58:16 źródło: opracowanie własne Drugi problem dotyczy procedury generowania zbiorów kandydujących oraz obliczania wsparcia dla tych zbiorów. Oba procesy mają fundamentalne znaczenie dla efektywności pracy algorytmu. W programie RuleMiner obydwie kwestie zostały rozwiązane. 2. Organizacja badania Z punktu widzenia decyzyjnego zostało przeprowadzone badanie pierwotne, gdyż dane zostały uzyskane po raz pierwszy w celu rozwiązania postawionego problemu. Jako metodę przyjęto obserwacje, gdyż zdarzenia zostały zarejestrowane bez żadnej ingerencji badacza. W pracy poddano weryfikacji hipotezę o istnieniu wzorców zachowań użytkowników portalu internetowego Onet.pl. Badanie zostało podzielone na trzy etapy: (1) wybór zmiennych i oczyszczenie danych, (2) znalezienie częstych zbiorów przy z góry określonym minimalnym wsparciu dla serwisu, (3) wygenerowanie reguł asocjacyjnych na podstawie znalezionych częstych zbiorów. 3. Format zapisu danych pliku loga serwera www Log serwera WWW zawiera pełną historię odebranych żądań dostępu do plików, przechowywanych na serwerze. Większość serwerów WWW plików loga zapisuje dane w postaci Common Log Format określonego przez CER i CSA, jako część protokołu HTTP. Zgodnie ze standardem, zapisowi podlega: adres IP klienta, identyfikator użytkownika, czas dostępu, metoda żądania, adres URL strony, protokół transmisyjny, kod błędu i liczbę wysłanych bajtów. Dane pierwotne, otrzymane z portalu Onet.pl, posiadały odpowiednio pola: (1) czas sesji, (2) identyfikator sesji, (3) identyfikator użytkownika, (4) identyfikator serwisu, (5) identyfikator podserwisu, (6) adres ścieżki pliku html w ramach serwisu (listing 2). (1) (2) (3) (4) (5) (6) 140229 8654368670 216633042432611969 2 5723 724 140229 8654368670 216633042432611969 2 5723 724 4
140146 8678251821 204082442432803539 124 5086 8027313 141441 8678251835 211671882390063549 75 3895 10489304 151648 8679335472 206591022408096103 257 147655 8111602 źródło: Onet.pl 4. Oczyszczenie danych i wybór zmiennych do badania Pierwszym krokiem w procesie ekstrakcji wiedzy jest przygotowanie danych wejściowych, które obejmuje czyszczenie, przekształcenie oraz wybór zmiennych [P. Weichbroth, J. Korczak 2006, s. 261]. Przestrzeń badania została ograniczona z sześciu do dwóch zmiennych numerycznych: (2) identyfikatora sesji oraz (6) adresu ścieżki. Zmienna (2) reprezentuje anonimowego użytkownika portalu, zaś adres ścieżki to jego żądania do plików zlokalizowanych na serwerze. Po eliminacji niepotrzebnych zmiennych i usunięciu zbędnych znaków, plik loga zmniejszył się ponad siedmiokrotnie z 1440 MB do 218 MB (megabajtów). Zasięg czasowy badania to okres czterech godzin (14.00-19.00), obejmujący 2,13 mln sesji. 5. Analiza danych, prezentacja wyników badania Oczyszczony plik loga serwera WWW został poddany analizie w programie RuleMiner. Celem drugiego etapu badania było znalezienie częstych zbiorów. Współczynnik wsparcia został arbitralnie określony na pięciu różnych poziomach. Tabela 2 to sumaryczne zestawienie liczby znalezionych zbiorów dla założonego minimalnego wsparcia. Tabela 2: Zestawienie wyników działania programu RuleMiner L.p. Min. wsparcie Liczba zbiorów 1 0,05 12 2 0,04 17 3 0,03 24 4 0,02 38 5 0,01 64 W kontekście badania, zbiór reprezentuje ściśle zdefiniowany dokument html w postaci ścieżki. W tabeli 3 zostały przedstawione zbiory - ścieżki adresów plików html, posiadające co najmniej 10% wsparcie. Zbiory te są zależne względem siebie - wystąpiły łącznie z innymi zbiorami lub bardzo rzadko samodzielnie. 5
Tabela 3: Procentowe zestawienie żądań użytkowników do plików L.p. Adres ścieżki Wsparcie (%) 1 [www] 79,68 2 [poczta]/cnp/login.html.php3 27,50 3 [poczta]/np/dynamic/folder.html 25,89 4 [info]/swiat/item.html 20,59 5 [poczta]/np/dynamic/folder.html/open.html 15,24 6 [poczta]/wyloguj.html 14,30 7 [poczta]/np/dynamic/folder.html/delete.html 10,97 8 [sport]/pilka_nozna/ekstraklasa/wiadomosci.html 10,37 9 [sport]/formula_1/wiadomosci.html 10,03 Wsparcie na poziomie 79,7% dla zbioru {[www]}, oznacza iż w takim udziale dostęp do serwisów portalu odbył się po otworzeniu strony głównej. a podstawie znalezionych częstych ścieżek dokumentów html, zostały wyodrębnione częste serwisy (tabela 4). Potencjalne zależności między nimi, mogą być wykorzystane do dynamicznego pozycjonowania treści w ramach portalu. Tabela 4: Popularne serwisy portalu onet.pl azwa serwisu Wsparcie (%) azwa serwisu Wsparcie (%) www 79,68 moto 2,79 poczta 27,49 aukcje 2,73 info 20,58 film 2,51 sport 10,37 republika popup 2,45 biznes 7,98 życie gwiazd 1,82 sympatia 3,47 czytelnia 1,11 muzyka 3,47 portal wiedzy 1,09 partnerstwo 2,85 W oparciu o znalezione częste zbiory (tabela 3), program RuleMiner wygenerował pięć rodzajów reguł asocjacyjnych. Tabela 4 pokazuje liczebność reguł w oparciu o liczbę zbiorów. 6
Tabela 5: Liczba wygenerowanych reguł L.p. Liczba zmiennych w regule Liczba reguł 1 dwie 95 2 trzy 254 3 cztery 314 4 pięć 208 5 sześć 68 Dane z tabel 3 i 4 wskazują na zbiory z których zostały wygenerowane reguły asocjacyjne. Zaobserwowano, iż 95% reguł, o najwyższym wsparciu, dotyczyło wyłącznie trzech serwisów: [www], [poczta] i [sympatia]. ajwyższe wsparcie zanotowały reguły dotyczące strony głównej portalu. Tabela 6: Wybrane dwuelementowe reguły asocjacyjne dla zbioru {[www]} L.p. Reguła asocjacyjna Wsparcie Ufność 1 {[poczta]/cnp/login.html.php3} [www] 0,27 0,71 2 {[poczta]/np/dynamic/folder.html} [www] 0,26 0,70 3 {[info]/swiat/item.html]} [www] 0,20 0,98 4 {[sport]/pilka_nozna/ekstraklasa/wiadomosci.html} [www] 0,10 0,95 5 {[biznes]/pap.html]} [www] 0,04 0,96 źródło: opracowanie własne Sposób logicznej interpretacji otrzymanych reguł jest jednakowy. a przykład, reguła nr 3 oznacza: jeżeli w jednej sesji został otworzony zbiór {[info]/swiat}, to w 98% przypadków został otworzony także zbiór {[www]}. Można przypuszczać, iż pozostałe 2%, to bezpośredni dostęp do zbioru {[info]/swiat}, który odbył się z pominięciem strony głównej portalu. Działanie takie ma miejsce, kiedy jeden z użytkowników wysyła odsyłacz w postaci adresu URL (http://onet.pl/info/swiat/item.html) do innego użytkownika. Ten z kolei otwierając go, pomija stronę główną portalu. Wsparcie (frakcja) tej reguły w całym zbiorze oznacza, iż 20% wszystkich odwiedzin użytkowników stanowiły dwa zbiory {[www]} i {[info]/swiat}. Ze względu na rozmiar pracy, interpretacja otrzymanych wyników została ograniczona do sformułowania ogólnych wniosków. 7
Podobnie jak w pracy [R. Ivancsy, I. Vajk 2006, s. 87] reguły asocjacyjne mogą być przedstawione graficznie w postaci drzewa (tree pattern). Widok drzewa został zmieniony w taki sposób, iż poprzedniki są reprezentowane przez bąbelki z nazwą serwisu po lewej stronie, zaś następnik po prawej stronie. Strzałka skierowana grotem w stronę następnika, sugeruje logiczne następstwo, zaś tekst na niej pokazuje jej wsparcie i zaufanie. [info]/kraj [info]/kraj [biznes]/giełda 0,02 0,755 [info]/świat 0,015 0,773 [info]/świat 0,015 0,773 [www] [info]/cnn [biznes]/giełda [sport]/piłka nożna Rys. 1 Graficzna reprezentacja reguł asocjacyjnych Przeprowadzone badanie ujawniło ciekawy profil użytkownika, na który składają się trzy serwisy: [biznes], [info] i [www]. Za przykład niech posłuży reguła w postaci: {[biznes]/wiadomosci.html}, {[info]/swiat/item.html}, {[biznes]/gielda/wiadomosci.html} {[www]} o wsparciu 1,2% i zaufaniu 98,2%. Z pewnością została zidentyfikowana grupa użytkowników poszukujących bieżących informacji na temat giełdy papierów wartościowych i bieżących wiadomości ze świata. Powstałe reguły asocjacyjne wskazały także na wewnętrzne zależności w ramach jednego serwisu. a przykład, dla usługi poczty elektronicznej i serwisu sympatia, były to ścieżki nawigacji pomiędzy folderami tej usługi, odkryte na podstawie wykonanych przez użytkownika operacji typu: zaloguj, otwórz, skasuj, napisz lub wyloguj. Wnioski końcowe Dla każdego przyjętego poziomu wsparcia, udało się osiągnąć zadawalające wyniki w postaci reguł asocjacyjnych. Określenie współczynnika wsparcia na poziomie 70%, miało na celu ograniczenie liczby otrzymanych reguł. Dla tych dwóch z góry określonych parametrów, program RuleMiner wygenerował reguły asocjacyjne z których 5% stanowiły wartościowe źródło informacji. Badanie to miało charakter eksperymentalny i jest podłożem do rozszerzenia funkcjonalności programu oraz nawiązania stałej współpracy z grupą onet.pl. Definicje i pojęcia: 8
Reguła asocjacyjna: logiczne stwierdzenie, zapisane w postaci "jeżeli to" (if then), posiadające cechy probabilistyczne. Dzieli się na dwie części: (1) poprzednika jeżeli (antecedent) oraz (2) następnika (consequent) - to. Współczynnik wsparcia (support ratio): niech A B będzie liczbą sekwencji w postaci A B oraz to ogólna liczba transakcji. Współczynnik wsparcia jest ilorazem liczby sekwencji do liczby transakcji ogółem: support{a B} Współczynnik ufności (confidence ratio): niech A B będzie regułą typu jeżeli A to B, to współczynnik ufności jest ilorazem wsparcia reguły A B do wsparcia dla zmiennej A A: confidence{a B} B A A B A support{a B} support{a} A B Bibliografia: 1. Agrawal R., Srikant, R., Fast algorithms for mining association rules, [w:] Proceedings of the Twentieth International Conference on Very Large Data Bases. Morgan Kaufmann, San Francisco 1994. 2. Weichbroth P., Korczak J., Data mining drążenie danych, [w:] Informatyka ekonomiczna. Cześć I. Propedeutyka informatyki. Technologie informacyjne, red. Jerzy Korczak, Wrocław 2006. 3. Kosala R., Blockel H., Web mining research: A survey, [w:] ewsletter of the Special Interest Group (SIG) on Knowledge Discovery and Data Mininig SIGKDD: GKDD Explorations, 2000, nr 1. 4. Hatonen K., Boulicaut J. F., Klemettinen M., Miettinen M., Mason C., Comprehensive Log Compression with frequent patterns, DaWaK 2003, LCS 2737, pp. 360-370, Springer-Verlag Berlin, 2003. 5. Ivancsy R., Vajk I., Frequent pattern mining in web log data, Acta Polytechnica Hungarica, Vol. 3, o. 1, pp. 77-90, 2006. 9