Abstrakt
Cílem projektu bylo prověřit možnosti jednoho z dostupných nástrojů pro
web usage mining na reálných datech webového serveru Fakulty informatiky.
Projekt se zabývá instalací, zpracováním dat a interpretací výsledků,
které nad nimi byly dosaženy.
Úvod
Pro účely projektu byl vybrán nástroj WUM: A Web Utilization Miner
(domovská stránka projektu je na
http://wum.wiwi.hu-berlin.de/, který umožňuje načíst standardní
logy webového (HTTP) server Apache na základě nichž je schopen
analyzovat chování uživatelů při přístupu k webovému serveru. Obecně
jej lze použít pro hledání častých sekvencí v jakémkoliv zdroji dat.
Samotný program je napsaný v jazyce Java a vyžaduje tedy instalaci
javovského interpretu. Vzhledem k tomu, že obsahuje některé platformově
závislé prvky, je distribuován ve dvou verzích -- pro Unix/Linux
a pro Windows 95/98/NT/2000. Dále se budeme zabývat pouze
verzí pro Unix/Linux, která se nám ovšem spolehlivě ve fakultním
prostředí osvědčila pouze pod systémem Linux. Instalací ve fakultním
prostředí bude věnována další část. Provedli jsme rovněž lokální
instalaci pro Windows, která proběhla bez větších problémů.
Druhá část našeho projektu je věnována popisu funkcí, které WUM
nabízí. Z nich jsme dále vybrali ty, o kterých se domníváme,
že mají význam pro použití při analýze logů fakultního webového
serveru. Tato část však může sloužit jako vodítko pro rozhodování
o použití tohoto nástroje pro jiné účely.
Zbývající časti se věnují samotné analýze konkrétních dat fakultního
webového serveru. Vzhledem k jejich celkovému rozsahu jsme se rozhodli
vybrat pouze ta data, která souvisí s oficiální prezentací fakulty.
Poměrně velká část naší práce se tedy zabývala předzpracováním a čištěním
zpracovávaných dat. Na závěr uvádíme konkrétní výsledky analýzy přístupu
k fakultnímu webovému serveru na základě nichž se snažíme navrhnout postupy
pro zjištění možných vylepšení usnadňující uživatelům orientaci a dostupnost
potřebných informací.
Instalace programu
Jak bylo naznačeno v úvodu, budeme se dále zabývat pouze verzí pro Linux
a to pro prostředí Fakulty informatiky. (Postup instalace na lokální stanici
nezávislou na počítačové síti fakulty je však snadno odvoditelný). Vzhledem
k tomu, že webový server fakulty je rovněž hlavním studentským serverem,
směřovala naše snaha k instalaci programu na tento server pod operační
systém IRIX 6.5. Ačkoliv se jedná o program v jazyce Java, nebyli jsme
jej schopni korektně interpretovat ani doporučeným interpretem pravděpodobně
z důvodů nekompatibility některých použitých tříd. Vzhledem k tomu,
že server Aisa nabízí sdílení programových modulů pouze pro stroje
s platformou IRIX, pro nainstalování jsme zvolili místo na svazku domovských
adresářů (/home), který sdílí jak linuxové stroje, tak stroj Aisa
a tedy webový server.
Samotná instalace nejprve vyžaduje extrakci TAR archivu, například příkazem:
cd /home/xkripac/WUM
gtar xfvz WUM.v70.tar.gz
vzniklý adresář /home/xkripac/WUM/WUM.v70 pak obsahuje všechny potřebné
třídy (ve archívu JAR), dokumentaci, příklady použití a příklady spouštěcích
skriptu v podadresáři /home/xkripac/WUM/WUM.v70/bin. Zde je rovněž
skript pro interpret příkazů (BASH). V něm (na řádcích 28 a 29) jsou umístěny
konfigurační proměnné prostředí, které je třeba nastavit na hodnoty:
JAVA_HOME=/home/xkripac/WUM/jre1.2.2
WUM_HOME=/home/xkripac/WUM/WUM.v70
Poté je nutné do adresáře /home/xkripac/WUM/jre1.2.2 nainstalovat
balík The Java Development Kit verze 1.2.2, který lze obdržet na
stránkách společnosti Sun Microsystems.
Podle přiložené dokumentace je možné použít i novější verzi
javovského interpretu. Podle naších zkušeností je však lépe
pro Web Utitlization Miner nainstalovat právě tuto verzi.
Instalace je přesně popsaná v dokumentaci a její popis je nad rámec
tohoto projektu. Vzhledem k tomu, že jsme při ní nenarazili na žádný problém,
dovolíme si její popis vypustit.
Nyní by mělo být vše potřebné nainstalováno. Pro spuštění Web Utilization
Mineru v grafickém prostředí umožňujícím snadné uživatelské nastavení
jednotlivých funkcí včetně startu analýzy slouží příkaz:
$ /home/xkripac/WUM/WUM.v70/bin/wumgui
Popis funkcí programu
Program po spuštění umožňuje otvírat (zavírat), tvořit a mazat dolovací
databáze. To lze pomocí nabídky File a v ní položek Create Mining Base, Open
Mining Base, Close Mining Base a Delete Mining Base. Pokud žádnou databázi
nemáme, musíme ji vytvořit. Když otevřeme nově vytvořenou databázi, je potřeba
do ní importovat data z logu, který chceme analyzovat. To provedeme pomocí File
-> Import Log File, při importování lze zadávat různá omezovací kritéria, co při
importu vynechat, co naopak zahrnout apod. (např. pokud nemáme předfiltrovaný
log, můžeme chtít vynechat ze zpracování obrázky, tedy soubory s příponami .jpg,
.gif a další). V databázích s importovanými daty lze tato data smazat a znovu
importovat pomocí adekvátních položek v nabídce File.
Aby bylo možné po importu dat s nimi začít pracovat, je nutné vytvořit pomocí
nabídky Analyzer tzv. Visitor's Sessions a Aggregated Log (Database). První
zpracuje data do podoby popisů jednotlivých návštěv na stránkách (tzn. jak se
jeden každý návštěvních pohyboval po stránkách, návštěvníci jsou odlišeni IP
adresou nebo jejím doménovým jménem a délka trvání jedné návštěvy je implicitně
nastavena na 30 minut - lze změnit), druhá data setřídí do struktury stromu
podle toho, jaká byla podle logu hierarchie odkazování na stránkách (nad touto
strukturou pak zadáváme MINT dotazy).
Tato dvě předzpracování dat do databáze umožní už opravdovou práci s daty. V
nabídce Reports si můžeme nechat vygenerovat souhrnný statistický přehled o
datech pomocí položky Comprehensive Summary. V takto vzniklém souboru
WumReport.html najdeme statistiky o nejnavštěvovanějších a nejméně
navštěvovaných stránkách a adresářích, statistiky používaných webových
prohlížečů, statistiky nejčastějších návštěvníků stránek a další informace,
které použijeme jako výchozí, až se budeme rozhodovat, na které sekvence dat se
zaměříme při zadávání MINT dotazů nad databází. Jak totiž sami autoři v
materiálech přiložených k WUMu uvádějí, WUM není expertní systém, rozhodující za
uživatele, které sekvence z databáze považovat za zajímavé, ale pouze pomůcka
uživatele, aby se tyto sekvence lépe hledaly. Pomocí položky Web Site Pages
Report vygenerujeme html stránku WebSitePagesReport.html, která obsahuje
statistické informace o počtech přístupů na jednotlivé stránky a také relativní
četnosti přístupů, uvedené v procentech.
Nabídka Visualizer dovoluje zobrazit databázové i grafické podoby souborů,
vytvořených při předzpracování dat (Visitor's Sessions a Aggregated Log - lze
zobrazit také Observations, což je alternativní zobrazení Visitor's Sessions se
zřetelem na posloupnost návštěvníkových kroků v čase a ne jenom na existenci
posloupností těchto kroků) a ostatní soubory databáze. Grafické podoby nejsou
moc zdařilé (hlavně u Visitor's Sessions a Observations není vůbec vyřešeno
rozložení grafu po ploše a proto je znázornění každé trochu složitější návštěvy
naprosto nepoužitelné k prohlížení).
V nabídce Tools lze exportovat dolovací databázi, případně ji nechat
přeorganizovat, aby práce s ní byla co nejefektivnější. Dále zde lze upravovat
nastavení samotného programu WUM a jeho GUI.
Nejdůležitější nabídkou je nabídka Queries, pomocí níž zadáváme dotazy v jazyce
MINT nad daty v databázi. Můžeme si tvořit dávkové soubory těchto dotazů,
ukládat je a nahrávat, nebo je zadávat přímo a ukládat si pouze výsledky až po
zpracování dotazu. V nabídce Help a v přiložených materiálech k programu WUM lze
najít stručný popis syntaxe MINTu a pár příkladů jeho použití.
Předzpracování
Přestože samotný program WUM umožňuje při importu logů zadat charakteristiku
stránek, které se nemají do analýzy zahrnout, při testování jsme se rozhodli,
že přístup k webovému serveru fakulty je natolik specifický, že je vhodné
z důvodu efektivity zpracování nejprve data předzpracovat podle specifických
požadavků fakulty. Toto předzpracování provádíme programem
fiwum-filter.pl, který je napsán v jazyce
Perl a lze jej tedy interpretovat jak na stroji Aisa (s uloženými webovými
logy), tak na strojích s operačním systémem Linux.
Filtr fiwum-filter pracuje ve třech režimech. První režim, spouští se
bez parametrů, slouží pro analýzu aktuálního logu webového serveru,
umístěného v souboru /usr/local/etc/httpd/logs/access_log. Tento
soubor v současné době uchovává logy od noci ze soboty na neděli,
kdy jsou vždy všechny starší záznamy přesunuty a zkomprimovány do
souboru /usr/local/etc/httpd/logs/access_log.0.gz, z něj přesunuty
do /usr/local/etc/httpd/logs/access_log.1.gz a tak dále. Webový
server fakulty v současné době uchovává až jeden měsíc záznamů o přístupu.
Druhý režim tedy umožňuje jako parametr předat filtru jiný soubor,
který bude sloužit jako vstup. Nakonec třetí možnost umožňuje načítat
záznamy přímo ze standardního vstupu. Tam lze například zasílat
výsledky dekomprimace starších archivů a podobně.
Předzpracovávací filtr provádí několik základních činností:
Vzhledem k tomu, že na stránky poměrně v hojné míře přistupují různé automatické
roboty -- vyhledávače, ukázalo se jako nezbytné tyto přístupy do analýzy neuvažovat,
neboť se jedná o strojový přístup, který nic nevypovídá o logickém postupu uživatele
přistupujících na server. Seznam těchto strojů je umístěn v souboru
/home/xkripac/WUM/blacklist.hosts. Jedná se o textový soubor obsahující na každém
řádku jedno jméno stroje, který se bude ignorovat.
-
Největší zátěží pro webový server fakulty jsou osobní stránky jejich uživatelů.
Vzhledem k tomu, že obsah (a rozvržení) těchto stránek je plně na jejich autorech,
rozhodli jsme se je do analýzy nezahrnout a ušetřit tak spoustu výsledků, které
by pro případnou optimalizaci oficiálních stránek neměly velký význam. Filtr
proto nezahrnuje do další analýzy jak stránky studentů (pod adresami
http://www.fi.muni.cz/~login/, tak stránky učitelů fyzicky umístěné na
jiném serveru a odkazované adresou http://www.fi.muni.cz/usr/login/.
-
Podobně jako v případě strojů, jejichž přístup nechceme analyzovat, existují
na serveru také stránky, které nemají vypovídající hodnotu (např. robots.txt
což je soubor obsahující právě informace pro různé vyhledávače). Pro základní
analýzu je rovněž možné neuvažovat přístup k obrázkům a speciálním skriptům
(jako jsou počítadla stránek). Stránky jejichž přístup nechceme analyzovat
jsou umístěny analogicky v souboru /home/xkripac/WUM/blacklist.sites.
-
Jako poslední provádí předzpracovávací filtr sjednocování jednotlivých kódování.
Webový server fakulty umožňuje přistupovat na jednu stránku pod různými znakovými
(a jazykovými) stránkami. Jedna stránka se tak při přístupu z klientů s různým
kódováním loguje různě. Předzpracovávací filtr na základě seznamu možných
kódování v souboru /home/xkripac/WUM/charsets tyto různé přístupy sjednocuje.
Seznam možných kódování je uveden v konfiguraci webového serveru.
Výsledkem předzpracovávacího skriptu je proud relevantních záznamů o přístupu, který
filtr posílá na standardní výstup. Lze je jej proto snadno přesměrovat a případně
postupně doplňovat o nová data. Tento výstup lze přímo načíst pomocí funkce import
log v menu File programu WUM.
Příklad výstupu filtru:
Filtr zpracovavajici logy weboveho serveru FI MU
Nacteno 2 stroju pro ignorovani.
Nacteno 8 stranek pro ignorovani.
Nacteno 36 kompatibilnich znakovych sad.
Zpracovavam: /usr/local/etc/httpd/logs/access_log
. = 1000 zpracovanych radek
radek obsahuje 50 tecek
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
......................................
Ignorovano 51372 pristupu ze stroje inktomisearch.com.
Ignorovano 9897 pristupu ze stroje googlebot.com.
Ignorovano 6685 pristupu na stranku .png.
Ignorovano 90096 pristupu na stranku .gif .
Ignorovano 19528 pristupu na stranku cgi-bin/nph-count.
Ignorovano 3530 pristupu na stranku robots.txt.
Ignorovano 59 pristupu na stranku /ftp/.
Ignorovano 8915 pristupu na stranku /pics/.
Ignorovano 2055 pristupu na stranku favicon.ico.
Ignorovano 6735 pristupu na stranku .jpg .
Ignorovano 821433 pristupu k uzivatelskym strankam.
Celkem zpracovano 1088278 stranek.
Cas behu skriptu: 203s.
Výsledky analýzy
Analýzu jsme původně prováděli nad všemi dostupnými daty, tedy nad
třemi zkomprimovanými soubory a jedním souborem s aktuálními logy
pomocí příkazů:
(cd /usr/local/etc/httpd/logs/; \
gzcat `ls -r access_log*.gz`) | \
./fiwum-filter.pl - > access_log-full
./fiwum-filter.pl >> access_log-full
Celkový čas potřebný pro předzpracování byl asi 13 minut, přičemž
výsledný soubor obsahoval 265 306 řádků a zabíral asi 25MB. Jeho
načtení do interních struktur programu WUM (pomocí příkazu Import Log
File v menu File) trvalo na stroji nymfe27 s procesorem
MD Athlon(tm) XP 1600+ a 512MB paměti přibližně dvě hodiny. Po tomto
načtení trvala analýza uživatelských návštěv (pomocí funkce
Create visitor's sessions") přibližně šest minut. Přestože byl
původní počet analyzovaných přístupů předzpracovávacím filtrem
snížen asi na 10% původní velikosti, nepodařilo se nám zřejmě
kvůli jeho velikosti vytvořit agregovaný log, potřebný pro výslednou
analýzu. Program spadl s blíže neurčenou chybou javovského interpretu,
která byla zřejmě způsobena chynou prácí z pamětí programu.
Na základě tohoto jsme se rozhodli provádět analýzu po menších částech.
Vhodný počet dat, které program ještě zvládá zpracovat, odpovídá podle
našich testů jednomu týdnu záznamů webového serveru. Další analýzu jsme
se proto nakonec rozhodli provádět nad záznamy o přístupu mezi nedělí
8. 12. 2002 a sobotou 14. 12. 2002. Předzpracování takovéhoto množství
dat trvá přibližně tři minuty, načtení do interních struktur půl hodiny
a jednotlivá analýza okolo pěti minut. Ani toto zmenšené množství dat
však nedovoluje spustit funkci zobrazení agregovaného logu (stromu
všech průchodů), které padá podobně jako pro větší množství dat samotné
vytvoření agregovaného logu.
Základním výstupem, který program WUM generuje (a zobrazuje) jsou standardní
statistika přístupů na jednotlivé stránky (dostupná v souboru
WebSitePagesReport.html)
a statistika celkového přístupu k serveru (dostupná v souboru
WumReport.html). Tento druh statistik
však je standardní součástí běžných analyzátorů webového přístupu
(jako je například Webalizer,
které umožňují navíc rozšířené možnosti grafů a lepší strukturu.
Hlavní funkcí sloužící pro analýzu webového přístupu je možnost kladení
ad hoc dotazů v jazyce MINT, které umožňují (oprotí zmíněným běžným komerčním
analyzátorům webového přístupu) na základě předchozí znalosti
struktury serveru zobrazit konkrétní informace o jednotlivých sekvencí
uživatelských požadavků. Praktickým zkoumáním této možnosti jsme
však zjistili, že interaktivní kladení příkazů (tak, aby uživatel
nemusel čekat hodiny na jejich výsledek), je možné pouze u jednoduchých
dotazů a to pouze pro velice omezenou množinu dat. Byli jsme proto
nuceni opět zmenšit testovací množinu na (předzpracované) záznamy
pouze jednoho dne. Aby nedocházelo ke zkreslením, nezahrnuli jsme
záznamy z noci. Na takto zmenšené množině dat, se již dají vyhledávat
jednoduché sekvence (tedy takové, u kterých jednotlivé uzly grafu
navazují na sebe přímo) interaktivně, neboť trvají řádově minuty.
Důsledkem toho je, že program WUM není použitelný pro celkové rozsáhlé
analýzy celé prezentace Fakulty informatiky a je potřeba zaměřit se
pouze na jednotlivé jednoduché prvky. Jako příklad jsme zvolili
umístění odkazů týkajících se přijímacího řízení na hlavní stránku.
Tento odkaz byl přidán nedávno a z analýz, které jsme provedli
nad různými intervaly vyplývá, že se jedná o v této době jeden
z nejnavštěvovanějších zdrojů oficiálních stránek. Na základě
celkové statistiky přístupů (WumReport.html)
jsme zjistili, že sedmým nejnavštěvovanějším odkazem je dokument
prijimacky_kriteria_2003.pdf, který je součástí informací
o přijímacím řízení. Pomocí dotazu
select t
from node as a b, template a b as t
where a.url = "/"
and b.url = "/studijni/std_dokumenty/prijimacky_kriteria_2003.pdf"
jsme zjistili, že tento dokument nebyl ani jednou dotazován z hlavní
stránky přímo, naopak dotazem
select t
from node as a b c, template a b c as t
where a.url = "/"
and b.url = "/studijni/std_studium/st_prijimaci_rizeni.shtml"
and c.url = "/studijni/std_dokumenty/prijimacky_kriteria_2003.pdf"
zjistíme, že 13% všech přístupů k tomuto dokumentu pouze za jeden
den bylo přímo přes stránku týkající se přijímacího řízení bez
dalších mezikroků. Vzhledem k tomu, že tento dokument byl navštěvován
1,6-krát více než samotná stránka o přijímacím řízení, lze
uvažovat, zda dokument neumístit přímo na hlavní stránku. Tam je
naopak (zřejmě ne na základě analýzy přístupu) umístěn odkaz
na dokument "Zpráva o výsledcích přijímacího řízení v r. 2002",
který nebyl dotazován ani jednou a lze jej tedy po této
krátké analýze nahradit dokumentem prijimacky_kriteria_2003.pdf.
Podobnými kroky jsme provedli ještě další analýzy, z nichž tato
nejlépe vystihuje funkční postup autora serveru při analýze.
Pro rozhodování, jaké odkazy z dané tématiky umístit na nejlépe
dostupná místa, jsou tyto dílčí dotazy a analýzy vhodné. Pro
zpřesnění výsledků by bylo rovněž vhodné v předzpracovávacím filtru
provést výběr pouze těch strojů, které danou zkoumanou stránku
navštívili. To by umožnilo (při současném zachování předzpracovávacích
pravidel) snížení mohutnosti agregovaného grafu což by vedlo
k prohledávání pouze nad relevantními daty a tedy k celkovému
zvýšení efektivity.
Naopak, zcela oproti očekávání, nelze nástroj WUM použít pro
obecnou analýzu webového serveru fakulty. Ani po radikálním
předzpracování se nedaří snížit počet dat tak, aby program
vracel výsledky v reálném čase. Dotazy typu "Jaké nejčastější
kroky jsou prováděny při přístupu k dané stránce", které
by umožnily lépe přizpůsobit prezentaci jako celek uživateli,
nejsou v současné verzi možné ať už reálně z důvodu dlouhého
zpracování či pádů programu či pouze z důvodu nedostatku
této verze (v současné době nelze pro dotazy použít agregované
funkce). Případný autor webové prezentace tedy může tento nástroj použít
pouze pro analýzu konkrétní stránky (stránek) ve vztahu k ostatním.
Závěr
Projekt Web Usage Mining měl za úkol prozkoumat možnosti programu WUM
v konkrétních podmínkách Fakulty informatiky. Jeho součastí je
popis instalace samotného programu, výpis možných funkcí, které
lze využít pro analýzu webového přístupu, diskuse možných předzpracování
dat a výsledky jejich analýzy. Vzhledem k platformě Java, na které je
program vystavěn, jej lze podle našich poznatků reálně využít pouze
pro analýzu pomocí jednocuchých cílených dotazů na základě přechozí
znalosti struktury serveru a to pouze pro značně zmenšený objem
dat. Pro obecné dotazy nad větším počtem údajů (více než dva dny)
webového serveru je program (zřejmě špatnou prací z pamětí) nepoužitelný.
|