Web mining In het bijzonder web usage mining
Hoofdstuk web mining uit: Data Mining, Introductory and dvanced Topics; Margaret H. Dunham
Web mining Web content mining: wat staat er in webpagina s? Web crawlers, search engines Server-side personalization, collaborative filtering Web structure mining: hoe zijn web-pagina s aan elkaar gerelateerd? Web usage mining: hoe wordt er gesurfd over web-pagina s? Wie doet dat? Wanneer? Komt dat vaak voor?
Web mining taxonomie Web mining taxonomie [Zaï99] Web mining Web content mining Web structure mining Web usage mining Web page content mining Search result mining General access pattern tracking Customized usage tracking
Motivatie web mining i.h.a. Gericht adverteren. Stroomlijnen van een web-site. Surfgedrag van kijkers-maar-niet-kopers beïnvloeden. Dode pagina s (of secties) ontdekken en meer prominente plaats geven. Personalizatie.
IG: drie lagen Groupware application Monitoring / data-mining component Feedback component Web-mining stopt bij de 2e laag
Web usage mining Hoe wordt er door een site heengeklikt? Uitgangspunt: weblog, of clickstream data. 1. Server perspectief. anbod staat centraal: Welke pagina s werden er aangeklikt? Hoe vaak? Wanneer? In welke volgorde? 2. Client perspectief. Vraag staat centraal: Wie bekeek die pagina s? Dezelfde vragen als boven, maar nu per bezoeker.
oorbeeld: pache s access.log 127.0.0.1 - - [30/May/2004:11:52:59 +0200] "GET /icons/a.gif HTTP/1.1" 200 246 127.0.0.1 - - [30/May/2004:11:52:59 +0200] "GET /icons/tex.gif HTTP/1.1" 200 251 127.0.0.1 - - [30/May/2004:11:52:59 +0200] "GET /icons/p.gif HTTP/1.1" 304-127.0.0.1 - - [30/May/2004:11:52:59 +0200] "GET /icons/text.gif HTTP/1.1" 304-127.0.0.1 - - [30/May/2004:11:52:59 +0200] "GET /icons/image2.gif HTTP/1.1" 304-127.0.0.1 - - [30/May/2004:11:53:03 +0200] "GET /mason/prosupport5/all.msn HTTP/1.1" 200 7534 127.0.0.1 - - [30/May/2004:11:53:15 +0200] "GET /mason/prosupport11/ HTTP/1.1" 200 6380 127.0.0.1 - - [30/May/2004:11:53:21 +0200] "GET /mason/prosupport13/ HTTP/1.1" 200 7331 127.0.0.1 - - [30/May/2004:11:54:04 +0200] "GET /mason/prosupport13/ HTTP/1.1" 200 7333 127.0.0.1 - - [30/May/2004:11:54:05 +0200] "GET /mason/prosupport13/ HTTP/1.1" 200 7331 127.0.0.1 - - [30/May/2004:11:54:31 +0200] "GET /mason/prosupport13/ HTTP/1.1" 200 3439 127.0.0.1 - - [30/May/2004:11:54:31 +0200] "GET /mason/prosupport13/stylefile.css HTTP/1.1" 200 1086 127.0.0.1 - - [30/May/2004:11:54:36 +0200] "POST /mason/prosupport13/create_case.msn HTTP/1.1" 200 8066 127.0.0.1 - - [30/May/2004:12:04:17 +0200] "GET /mason/ HTTP/1.1" 200 4419 127.0.0.1 - - [30/May/2004:12:04:17 +0200] "GET /icons/blank.gif HTTP/1.1" 200 148 127.0.0.1 - - [30/May/2004:12:04:17 +0200] "GET /icons/folder.gif HTTP/1.1" 200 225 127.0.0.1 - - [30/May/2004:12:04:17 +0200] "GET /icons/compressed.gif HTTP/1.1" 200 1038 127.0.0.1 - - [30/May/2004:12:04:17 +0200] "GET /icons/unknown.gif HTTP/1.1" 200 245 127.0.0.1 - - [30/May/2004:12:04:20 +0200] "GET /mason/prosupport13/ HTTP/1.1" 200 7390 127.0.0.1 - - [30/May/2004:21:14:55 +0200] "GET /Tk-widget-defaults.cgi HTTP/1.1" 200 6601 127.0.0.1 - - [30/May/2004:21:15:00 +0200] "POST /Tk-widget-defaults.cgi HTTP/1.1" 200 2037 127.0.0.1 - - [30/May/2004:21:15:06 +0200] "POST /Tk-widget-defaults.cgi HTTP/1.1" 200 9162 127.0.0.1 - - [30/May/2004:21:17:33 +0200] "POST /Tk-widget-defaults.cgi HTTP/1.1" 200 9162 127.0.0.1 - - [30/May/2004:21:25:38 +0200] "GET /Tk-widget-defaults.cgi HTTP/1.1" 200 6601 127.0.0.1 - - [30/May/2004:21:25:41 +0200] "POST /Tk-widget-defaults.cgi HTTP/1.1" 200 8656 127.0.0.1 - - [31/May/2004:19:44:33 +0200] "GET /Tk-widget-defaults.cgi HTTP/1.1" 200 6601 127.0.0.1 - - [31/May/2004:19:44:38 +0200] "POST /Tk-widget-defaults.cgi HTTP/1.1" 200 2033 127.0.0.1 - - [31/May/2004:19:44:43 +0200] "POST /Tk-widget-defaults.cgi HTTP/1.1" 200 2021 127.0.0.1 - - [31/May/2004:19:44:47 +0200] "POST /Tk-widget-defaults.cgi HTTP/1.1" 200 9206 127.0.0.1 - - [31/May/2004:20:02:48 +0200] "GET /Tk-widget-defaults.cgi HTTP/1.1" 200 6601 127.0.0.1 - - [31/May/2004:20:02:51 +0200] "POST /Tk-widget-defaults.cgi HTTP/1.1" 200 9206
27.0.0.1 - - [30/May/2004:12:04:20 +0200] GET /een-dir/een-page.html/ HTTP/1.1" 200 7390 27.0.0.1 - - [30/May/2004:21:17:33 +0200] POST /some-script.cgi HTTP/1.1" 200 9162 27.0.0.1 - - [30/May/2004:21:14:55 +0200] GET /een-dir/een-andere-page.html/ HTTP/1.1" 00 3581 27.0.0.1 - - [30/May/2004:21:14:55 +0200] GET /een-dir/niet-bestaande-page.html/ HTTP/1.1" 04 0 27.0.0.1 - - [30/May/2004:21:15:00 +0200] POST /some-script.cgi HTTP/1.1" 200 2037 27.0.0.1 - - [30/May/2004:21:15:06 +0200] POST /some-script.cgi HTTP/1.1" 200 9162
Web-access log Iedere regel bevat ruwweg (uit mijn hoofd): IP adres Tijdstip transactie Soort actie (GET / POST) Betreffende bestand, plaatje of script Gebruikte protocol HTTP code (200, 404, ) antal bytes
Voorbeeld Webmaster ontdekt dat veel gebruikers de volgende reeks pagina s doorlopen: (, B,, C ) Maatregel webmaster? Refereer in B naar C.
Een zogenaamde trie
Een gecomprimeerde trie
Efficiënte opslag van suffixes 1. Suffix trie. Een trie van alle suffixes. (Handout p. 8, Fig. 9.) 2. Suffix tree. Een gecomprimeerde trie van alle suffixes. (Handout p. 8, Fig. 10.) Zie verder: Dunham 209-211; Handouts.
Vier fasen in web-mining 1. Voorbewerken, ook wel masseren van de weblog. 2. Web-mining: het vinden van frequent voorkomende en/of interessante patronen. 3. Nabewerken: selecteren, filteren, en interpreteren. 4. Terugkoppelen: naar site en/of gebruikers.
Stappen voorbewerking 1. Weblog massage (verwijderen van irrelevante requests, zoals bijvoorbeeld afbeeldingen). 2. Gebruiker-identificatie. 3. Sessie-identificatie. 4. Pad-completering. 5. Formattering.
Problemen Identificatie gebruikers. IP adressen mappen niet 1-1 op gebruikers: Gebruiker surft via IS-provider. PC van gebruiker heeft tijdelijk IP-nummer toegewezen gekregen Firewall kwesties Identificatie requests. Niet alle requests worden gelogd. Web client bezit cache waaruit bewaarde pagina s kunnen worden geserveerd. Juridische kwesties. Vgl. problematiek wet persoonsregistratie.
Formele definitie log Een log is een is een verzameling tripels L = { ( u 1, p 1, t 1 ),, ( u n, p n, t n ) } waarbij voor elke 1 i n, u i een gebruiker p i een pagina (URL) t i een tijdstip.
Het begrip sessie Intuïtief: een reeks requests van één gebruiker. Twee kandidaat-definities: 1. Een sessie :: Def een reeks requests binnen één tijdspanne. 2. Een sessie :: Def een reeks requests waarbij elk volgend request binnen een bepaalde tijdslimiet dient plaats te vinden.
Probleem 1e definitie Stel vooraf opgegeven tijdspanne is precies 30 minuten. Persoon surft op www.cs.uu.nl van 13:30 uur tot 14:15 uur. Probleem: bij granulariteit van één minuut zijn er 15 sessies te onderscheiden: 13:30 14:00 13:31 14:01 13:32 14:02 etc.
Formele definitie sessie Laat e > 0. Een sessie is een geordende lijst S = { ( u,p 1,t 1 ),, ( u,p n,t n ) } waarbij voor elke 1 i n, u geïdentificeerd is als één en dezelfde gebruiker. p i een pagina (URL) t i een tijdstip, zó dat, als als i < n, dan t i+1 t i e.
Typen van patronen ssociatieregels Episoden Sequentiële patronen Voorwaartse rijen Maximaal frequente rijen Opeenvolgend Ordening Geen duplicaten Maximaal
Het begrip support Laat D een verzameling sessies zijn, en x% een bepaald percentage. Een ongeordende verzameling (of geordende reeks) pagina s wordt ondersteund door D als deze in, of bij, tenminste x% van de transacties, óf gebruikers, of tijdsintervallen voorkomt. Hangt af van gebruikte methode
ssociatie-regels Beschouw de volgende (in de tijd gediscretiseerde) sessie-verzameling: u 1 :, B, C u 2 :, C u 1 : B, C, E u 3 :, C, D, C, E Opdracht: geef alle pagina-verzamelingen die met elkaar geässocieerd zijn met een thresholdsupport van ten minste 30%.
lgoritme associatief clusteren L 1 = { {}, {B}, {C}, {E} } ( {D} niet vanwege 30% drempel) C 2 = alle 2-sets die met elementen van sets uit L 1 zijn te maken: = { {,B}, {,C,}, {,E}, {B,C}, {B,E}, C,E} } L 2 = { {,C}, {B,C}, {C,E} } C 3 = { {,B,C}, {,C,E}, {B,C,E} } waarvan allen niet boven 30% drempel uitkomen: L 3 = ; stop
Het begrip episode D 2 1 B 1 3 1 1 D 1 3 1 2 2 B 3 2
Het begrip meest frequente episoden 2 1 1 3 1 1 1 3 1 2 2 3 2
lgoritme voor het vinden van maximale MFE s 1. Stel gericht acyclysiche graaf op (DG) met kanten e. 2. Verwijder paden met support kleiner dan drempelwaarde. 3. Negeer niet-maximale paden.
Recente ontwikkelingen Web mining vraagtalen, bijv. MINT. Concept: G-rij. Ongeveer: reguliere expressies op paden: B.C :, B, willekeurige pagina, C B?C :, mogelijk gevolgd door B, C B*C :, nul of meer keren B, C.*C :, nul of meer keren willekeurige pagina, C