AI inom Ämnesinriktad Webcrawling

Relevanta dokument
Web Crawlers. TDTS09, Datornät och internetprotokoll. Denis Golubovic Fredrik Salin Linköpings universitet Linköping

Slutrapport Vertikala Sökmotorer Uppdrag från.se:s Internetfond Våren 2008

Optimering av webbsidor

SEO Sökmotoroptimering

Googles sidrankning - linjär algebra värt en förmögenhet


Sökmotoroptimering. Per Svanström SMM. Online Communication Manager. Web Intelligence. /persvanstrom /in/persvanstrom /profiles/per.


Internets historia Tillämpningar

de var svåra att implementera och var väldigt ineffektiva.

2D1418, Språkteknologi NADA, Kungliga Tekniska Högskolan SÖKMOTOROPTIMERING. Av Erik Lindgren

Algoritmer: Från kaos till ordning? Bild från Pixabay

GRATIS SEO, SÖK- OPTIMERING? JA, DETTA KAN DU GÖRA SJÄLV!

Projekt Intelligent Indexering

Peter Hellström. PH-Digital Marketing

Personifierad Netflix

Att utnyttja semantiska länkstrukturer vid sökning i hyperlänkade dokumentmängder

Arbeta med Selected Works en lathund

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

Hitta en artikel som använt samma teoretiker i samma sammanhang som du. Viktor Öman, bibliotekarie viktor.oman@mdh.se

WEBB365.SE. Hur skriver man sökmotoroptimerade texter

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor

Checklista. 10 saker du behöver ha på plats för SEO 2019

Söka, värdera, referera

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

Måldriven, informationscentrerad webbdesign

Föreläsning Datastrukturer (DAT037)

Webbplats analys cite4me.org

Tentamen i Algoritmer & Datastrukturer i Java

I CINAHL hittar du referenser till artiklar inom omvårdnad och hälsa. Även en del böcker och avhandlingar finns med.

Twitter från ett informetriskt perspektiv

Detta dokument innehåller anvisningar för upprättande av en sökplan i kursen TDDD39 Perspektiv på informationsteknologi.

729G43 Artificiell intelligens / Maskininlärning 3. Marco Kuhlmann

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU

Vad behövs för att skapa en tillståndsrymd?

Sovra i materialet. Vad är viktigt? Vad kan tas bort? Korta ner långa texter.

Sökmotorer På Internet Google

Datastrukturer och algoritmer. Föreläsning 4 Test, Stack och Kö

Sökmotormarknadsföring

So ka artiklar och annan litteratur

AI-Tekniker. För domänspecifika problemområden i StarCraft 2. Mattias Tiger Fredrik Präntare

Tentamen Datastrukturer D DAT 036/INN960

Öka prestanda i Shared-Cache multi-core processorer

Tommy Färnqvist, IDA, Linköpings universitet

Föreläsning Datastrukturer (DAT036)

3) Routern kontrollerar nu om destinationen återfinns i Routingtabellen av för att se om det finns en väg (route) till denna remote ost.

Föreläsning Datastrukturer (DAT036)

Informationssökning - att söka och finna vetenskapliga artiklar! Linköpings Universitetsbibliotek

Tentamen Datastrukturer D DAT 036/INN960

WEBBLÄTTLÄST SLUTRAPPORT

Grundläggande EndNote

Det svenska sökbeteendet 2012

PubMed (Medline) Fritextsökning

Handledare: Mikael Goldmann

Teoretisk del. Facit Tentamen TDDC (6)

Introduktion till språkteknologi

WEBBKLUSTRING SLUTRAPPORT

Talsystem Teori. Vad är talsystem? Av Johan Johansson

Biblioteken, Futurum 2017

2D Potentialen i en nervcell definieras normalt som skillnaden i spänning mellan dess axon och dendrit.

Datorer och kunskap - Den semantiska webben Robert Herber

Tentamen Datastrukturer D DAT 035/INN960

Optimera din sajt för sökmotorer

Källuppgifter i fysik FAFA55

Kort om World Wide Web (webben)

HKGBB0, Artificiell intelligens

Ämnesområden. Examensarbete inom datavetenskap (1DV41E) Martin Fredriksson

Syns ni på sökmotorerna?

FÖA110 Informationssökningsövningar facit

Vad är Internet? Innehåll: Inledning Vad är Internet? Om du kan Internetadressen Söka på Internet Länklistor Övningar Repetition

Använda Internet. med hjälp av Internet Explorer. Nybörjarguide

Bra hemsidor, trender och Google sökmotor

Manual HSB Webb brf

17. DEN OSYNLIGA FRIA WEBBEN EXEMPEL

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT Lars Larsson Algoritmer 1

Biblioteksresurser. Vt 2014 Tanja Donner

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

Sö ka litteratur i ERIC

Seminarium 13 Innehåll

Elektronisk patientjournal

Sociala medier och Flickr som marknadsföring Essä i kursen Digitala Distributionsformer Högskolan Väst Av: Nicklas Johansson

Innehåll. Källkritik och vetenskaplighet. Introduktion till UB

Söka artiklar i CSA-databaser Handledning

Ontologier. Cassandra Svensson

Upprepade mönster (fortsättning från del 1)

Informatik C, VT 2014 Informationssökning och referenshantering. Therese Nilsson

ADT Prioritetskö. Föreläsning 13 Innehåll. Prioritetskö vs FIFO-kö. Prioritetskö Exempel på användning. Prioritetsköer och heapar

Lathund till PEP. AND: begränsar sökningen, båda sökorden måste förekomma i samma referens, t.ex. infantile AND sexuality

Mall för en kortare rapport/uppsats

Magnus Nielsen, IDA, Linköpings universitet

SEO & SEM ESSENTIALS

Undersök och diskutera sökalgoritmer. Se video

Marknadsföring på internet

Föreläsning 7 Datastrukturer (DAT037)

Föreläsning Datastrukturer (DAT037)

Import från databaser till Mendeley

Sammanfattning av informationssökning VT19

Datakursen PRO Veberöd våren 2011 internet

NELL - Never-Ending Language Learner

Sökanalys för intranät

Transkript:

AI inom Ämnesinriktad Webcrawling Anders Österholm Kogvet 2 Linköpings Universitet andos561@student.liu.se Abstract En förutsättning för Internets användbarhet är att det går att söka efter information i det på ett smidigt sätt. Problemet för generella sökmotorer som t ex google, altavista, lycos är skalbarheten i systemen. En generell sökmotor måste kunna hantera sökningar inom alla områden och leverera resultat som passar alla sorters användare. På senare år har intresse riktats mot mer ämnesinriktade sökrobotar och sökmotorer som specialiserat sig på att ge information inom en specifik domän. Flera populära sådana finns redan idag. Utmaningen vid byggandet av en ämnesinriktad sökmotor ligger i att automatiskt kunna hitta sidor som är relevanta för ämnet. I det här arbetet presenteras tekniker som implementerats i ämnesinriktade sökrobotar för att de själva ska kunna identifiera relevansen hos sidorna de besöker. 1. Inledning Få människor har undgått att märka att Internet har utvecklats till ett mycket stort nätverk med mycket nyttig och onyttig information. För att hitta information på Internet använder de flesta idag någon sökmotor. Exempel på populära sökmotorer är Google, Altavista och Yahoo. En viktig komponent i en sökmotor är program som kallas sökrobotar. Andra namn på sökrobotar är spindlar (spider), mask (worm) och WebCrawler [1]. Sökrobotarna utför Webcrawling vilket kan förklaras som traversering av Internet. Denna förklaring på begreppet förutsätter att Internet kan ses som en Graf där varje Webbsida är en nod i grafen och länkarna mellan sidor är bågar mellan noder. Konkret innebär traversering att sökroboten autonomt navigerar runt bland sidorna på Internet enligt någon algoritm och skickar sidorna till sökmotorns databas (se fig. 1). Databasen för en generell sökmotor som söker genom hela Internet blir mycket stor i och med att man i teorin önskar lagra hela Internet i den. Googles databas innehåller 3,3 miljarder sidor [www.google.se]. Google sparar dock inte hela sidor i databasen utan de dissekeras och indexeras utifrån innehållet. När en användare via www.google.com gör en sökning på Internet görs alltså sökningen i Googles egen databas och inte på själva webben. Detta är en nödvändighet för att sökningen ska kunna presentera resultat inom rimlig tid. Syftet med detta arbete är inte att gå in på hur sökmotorn effektivt söker igenom sin databas när en användare gör en förfrågan (sökning) i den. Det här arbetet fokuserar på hur sökrobotarna effektivast traverserar Internet. Verkligheten är sådan att även Google

som har den största databasen bara har en bråkdel av hela Internet lagrad. Utvecklingen av Internet har visat att sökmotorerna inte klarar av att utöka sina databaser i samma takt som Internet växer [5]. Fig 1 [2] Modell av en Sökmotor med 2 sökrobotar Därför har många sökmotorer inriktat sig på att istället för att försöka samla in så många sidor som möjligt, försöka samla in så bra sidor som möjligt. Att värdera hur bra en sida är och att samla in så bra sidor som möjligt, är sökrobotarnas viktigaste uppgifter. Det finns en mängd teorier och tekniker kring hur sökrobotarna ska lösa dessa uppgifter och många av dem innefattar användande av någon form av AI. Ett område som vuxit fram på senare år och som det forskats mycket på inom Webcrawling är så kallad ämnesinriktad (Topic-Driven), eller fokuserad, Crawling [4, 5, 6, 11]. Det har skapats flera sökmotorer där användare kan söka efter saker inom specifika domäner som t ex resor [www.mrjet.com], hemelektronik [www.pricerunner.com, www.kelkoo.com], vetenskapliga arbeten [www.citeseer.com]. I det här arbetet studeras algoritmer inom ämnesinriktad Webcrawling eftersom den kräver intelligentare sökrobotar än generell Webcrawling. Slutsatser kan sedan dras om hur bra olika sorters AI kan tillämpas inom ämnesinriktad Webcrawling.

2. Det svåra i att bygga en bra Sökrobot Den största gemensamma svårigheten för alla sorters sökmotorer är det faktum att deras sökrobotar inte har möjlighet söka igenom hela Internet inom rimlig tid. I teorin skulle det gå att göra, men då skulle det behövas en stor mängd sökrobotar och mycket kapacitet hos servrarna som ska indexera sidorna. Problemet för en sökmotor med stor databas är också att storleken på databasen är omvänt proportionell mot hur uppdaterad den är. Ju större databasen är desto långsammare går det att uppdatera den. En förutsättning för att användare ska vilja använda sökmotorn är att det går att hitta aktuell information via den. Om en sökmotor skickar ut många sökrobotar på Internet för att snabbt få in information kan detta leda till problem på grund av att sökrobotar tar plats. För många sökrobotar kan leda till överbelastning på nätverket eller delar av det. Man skulle i det extrema fallet med många sökrobotar kunna hamna i en situation där hela Internettrafiken domineras av sökrobotar. Även i mindre skala gäller det att sprida ut sökrobotarna så att alla inte hamnar på samma ställe samtidigt och skapar lokal överbelastning. Ett annat problem som utvecklare av sökrobotar måste tackla är hur ofta samma sida ska besökas av en robot för att hitta uppdateringar av den. Internet är en dynamisk omgivning [3] och undersökningar har visat att det tar ungefär 50 dagar för 50% av innehållet på Internet att ändras [4] För.com domänen tar det bara 11 dagar. På grund av detta blir återbesök på sidor en viktig del i Webcrawling för att sökmotorn ska kunna hålla databasen aktuell. För att prestandan ska vara maximal hos sökmotorn måste antalet sökrobotar balanseras så att flödet av data till sökmotorns databas hålls på en konstant lagom hög nivå. De flesta databaser fungerar så att de har en kö av sidor som robotar har skickat till den. Själva indexeringen, alltså att konvertera sidorna till det format som databasen lagrar dem i och lagringen är tidskrävande. Om Sökrobotarna rapporterar in sidor i för hög takt kommer kön bli så lång att när en sida kommit igenom kön och placerats i databasen har den redan hunnit bli gammal och originalet på nätet har hunnit förändras. Är sökrobotarna för få, kommer kön vara tom och databasen uppdateras inte i optimalt. Det har skrivits en del om att optimera antalet sökrobotar i [12]. Det finns även framtagna Etiska regler [1] för vad en sökrobot får och inte får göra på Internet. Dessa är det noga att man följer om man vill utveckla en sökmotor. Det är tillåtet at använda en robot, om resultaten blir offentliga. Det är alltså inte tillåtet att orsaka belastning på nätverk för enbart personliga syften Det är etiskt korrekt at skriva robotar som bara hämtar sidor som accepterar att bli hämtar. Det är inte etiskt korrekt att skapa Robotar som observerar vilka sidor en användare besöker, och utför handlingar, som att visa reklam.

3. Ämnesinriktad Webcrawling Utvecklare har börjat inse att en generell sökmotor som ska indexera hela webben får problem med skalbarheten, det blir svårare och svårare att klara av att svara på alla typer av sökningar från olika människor på ett bra sätt. Därför är det inte konstigt att det har riktats ett stort intresse mot ämnesinriktad sökning. Som nämndes i inledningen finns det idag sökmotorer som är Domänspecifika och gör sökningar inom endast en domän. Domänspecifika sökmotorer har stor nytta av att använda ämnesinriktade Sökrobotar som endast söker efter sidor inom deras område. Detta löser problemet med skalbarheten i och med att sökmotorerna riktar sig till en viss typ av användare och alltid arbetar i samma kontext. En domänspecifik sökmotor kan också hålla sin databas mer uppdaterad i och med att den är mindre och sökrobotarna kan traversera Internet snabbare utan att behöva utforska alla webbsidor [5]. Utmaningen i att göra en ämnesspecifik Sökrobot ligger i att den måste analysera innehållet på varje sida för att avgöra hur relevant den är för ämnet. 3.1 Arkitekturen i en ämnesinriktad sökrobot Figur 2 visar hur en arkitektur för hur en ämnesinriktad sökrobot med omgivning kan se ut. Modellen är skapad av S. Chakrabarti, M. Berg and B Dom [6]. Läsaren hänvisas till deras arbete för en mer detaljerad genomgång. Den ämnesinriktade sökroboten består av en klassificerare (classifier) som gör bedömningar av sidor som blivit besökta för att avgöra om det är värt att expandera sidans länkar, en destillerare (distiller) som går igenom besökta sidor och bedömer vilken prioritet de ska få i sökmotorn. Själva sökroboten (Crawler) har en mängd programtrådar (Worker threads) som representerar varje enskild sökrobot. Watchdog hämtar hem sidorna från länkarna som ligger i frontier. Fig. 2 [6] Blockdiagram av en ämnes-inriktad crawler som visar hur Sökroboten (Crawler), klassifieraren och destilleraren är integrerade.

3.2 AI-tekniker för att göra effektiva ämnesinriktade sökrobotar Utmaningen för en ämnesinriktad sökrobot ligger i att den måste kunna identifiera hur relevant en sida är för det aktuella ämnet samt att hitta de relevanta sidorna utan att gå omvägar genom Internet. Det är här som AI visar sig användbart. De algoritmer för att styra sökrobotarna som tas upp i detta arbete är Bredden först [4 7], Best First [4, 3], Page Rank[4, 8, 9], Shark Search [4] och Info-Spiders [4, 11]. 3.2.1 Bredden-först Crawling En bra måttstock för att avgöra hur bra Crawlingalgoritm man har gjort är att jämföra den med en bredden-först sökning. Bredden-först är ett mycket överskådligt sätt att traversera på utan hemligheter. Metoden började användas för WebCrawling redan 1994. Najork, Wiener [7] har med experiment på 351 miljoner sidor visat att Bredden-först sökning är betydligt kostnadseffektivare än Page Rank vad avser datorkraft även om Page Rank hittar bättre sidor. Nedan följer en implementation av bredden-först i pseudokod. Fig 3 [4]: Pseudokod för en bredden-först sökrobot Förklaring av algoritmen: Sökroboten fungerar så att den samlar in ett antal länkar från varje sida den besöker och lägger dem i en kö med enqueue(). Länkarna i kön kallas kandidater eller frontier (se fig 3). Sökroboten besöker varje sida dit länkarna i frontier pekar och hämtar dem till sökmotorns databas med fetch()funktionen tills den hämtat så många länkar som maxvärdet MAX_PAGES tillåter. Under traverseringen får frontier inte bli större än MAX_BUFFER som är ett mått på hur mycket minne sökroboten har rätt att använda. Lägger man inte in MAX_BUFFER så kommer sökroboten att konsumera för mycket minne. Notera att när MAX_BUFFER är full utforskas bara en länk från varje sida.

Fig 3 [5]: Illustration av begreppet frontier. Den streckade linjen utgör gränsen mellan besökta sidor och sidor i frontier. Dessa kallas även kandidater. 3.2.2 Best-first Crawling Best-first är ett generellt namn på sökalgoritmer där noden som ska expanderas väljs utifrån en evalueringsfunktion [3]. En best-first algoritm anpassad för en sökrobot kan se ut enligt följande: Fig4 [4] Best-first search Förklaring av algoritmen: Idén med best-first är att givet en frontier med länkar så väljs den bästa länken, enligt något kriterium, ut först och besöks av sökroboten. Kriteriet i denna algoritm är den lexikala överensstämmelsen mellan ämnets nyckelord och innehållet sidan dit länken pekar. Funktionen sim() beräknar lexikala överensstämmelsen genom att beräkna cosinus-överensstämmelsen (cosine similarity)

mellan ämnet och innehållet på sidan. cosinus-överensstämmelsen beräknas med följande formel: där q är ämnet, p är den hämtade sidan och f kd är frekvensen av förekomster av k i d. De sidor med minst överensstämmelse tas bort för att göra plats åt andra i MAX_BUFFER. 3.2.3 Page Rank PageRank skapades av Brin och Page [8] och är den metod som Google s sökmotor bygger på idag. Den var ursprungligen avsedd som modell för surfbeteenden hos Internetanvändare. PageRank fungerar i grunden så att varje sida tilldelas ett värde av sökmotorn. Detta värde representerar sannolikheten för att en surfare som slumpvis följer länkar mellan olika sidor befinner sig på en viss sida vid en viss tidpunkt. PageRank definieras enligt följande [8] Låt A vara en webbsida. T1 Tn är antalet sidor som länkar till A. Värdet d uttrycker sannolikheten för att en surfare med ett slumpvist surfande tröttnar på sidan och går vidare till en annan sida. d brukar ha värdet 0.85. C(A) definieras som antalet länkar som går ut från sidan A och B u är de sidor som länkar till u. PageRank för en sida ges av följande ekvation. PR(A) = (1-d) + d (PR(T1)/C(T1) + + PR(Tn)/C(Tn)) Följande figur illustrerar ett exempel på hur Page Rank fungerar. Fig 5 [9]. En något förenklad modell av PageRank som illustrerar den fundamentala principen. Rutorna är Webbsidor och de röda pilarna är länkar. Siffrorna är Rankingvärden som överförs mellan sidorna.

PageRank har sitt ursprung i de citationssystem som finns inom vetenskapliga kretsar. Olika forskningspublikationer har olika mycket status beroende på bl a vem som har skrivit dem. När en högstatusartikel citerar en annan artikel innebär det att denna andra artikel rimligtvis också har hög status. Om däremot en dålig artikel citerar en artikel med hög status så får varken den bättre artikeln eller den sämre någon mer status. Detta resonemang kan överföras till Internet där sidorna kan ses som artiklar och citationer kan ses som länkar. T ex får inte Nisses nybörjarhemsida så mycket rang av att länka till yahoo.com. Om däremot yahoo.com skulle länka till Nisses nybörjarhemsida så skulle den få mycket hög rang. Ett problem med PageRank är att rankingen för sidorna i databasen egentligen måste räknas om för varje ny sida som läggs till i och med att sidorna hänger ihop. Om en sidas rang ändras så kommer sidorna som länkar till den få ny rang och även sidorna som länkar till dessa osv. Av praktiska skäl brukar inte PageRank räknas om för varje ny sida, utan det görs med jämna intervall. Ett annat problem med PageRank är hur det initialt ska avgöras vad som har hög ranking. Där behövs analys av innehåll för att bestämma några bra sidor att utgå ifrån. Med tillräckligt många iterationer över databasen där värdena räknas om behövs inga initiala värden sättas, men den metoden är mycket mer tidsödande. En beskrivning i pseudokod av en ämnes-inriktad Sökrobot som använder PageRank följer nedan: Fig 6 [4] Pseudokod för PageRank-algoritmen

Förklaring av algoritmen i fig 6: Med jämna intervall måste Page-Rankvärden räknas om för sidorna med recompute_scores_pr. Notera att enqueue() tar sidan (doc) som argument. Detta görs för at PageRank förutom sidorna i frontier även måste ha en datastruktur för de sidor som besökts för att kunna räkna ut PageRank värdet för sidorna. merge() räknar ut PageRank värdet för en sida genom att slå ihop den ranking som fås av sim()och den som fås av föräldrarna till sidan. 3.2.4 Shark Search Fig 8 [4] Pseudokod för Shark Search-algoritmen Shark Search är en mer aggressiv variant av Fish Search [1]. Principen för dessa sökalgoritmer är att Internet kan delas in i områden och att förekomsten av ett ämne är större i vissa områden av Internet än i andra. Därför lönar sig bättre att söka mer noggrant i dessa bra områden och att avbryta en sökning i ett område där förekomsten är låg. Det som skiljer Shark Search från Fish Search är främst två saker. Det första är att Shark Search använder kontinuerliga värden för att mäta relevans istället för binära som Fish-search använder. Det andra är att Shark Search har mer omfattande

metoder för att uppskatta hur relevanta länkar i frontier är genom att använda sig av den text som står i länken på sidan (den som man ska klicka på för att länkas), texten runt länken samt den ärvda relevansen från föräldrarna till sidan. Förklaring av algoritmen i fig 8: Värdet r är en vikt på hur påverkan av relevanspoängen för sidan ska fördelas mellan den som ges av neighborhood_score() och den som ges av inherited_score() när relevanspoängen beräknas. Värdet d anger hur djupt Sökroboten tillåts att fortsätta söka. Om inga bra sidor hittas kommer d gå mot 0 och då avbryta sökningen i den grenen. I ett bra område kommer d att behålla sitt värde. 3.2.5 Info-Spiders Info-Spiders har tagits med i detta arbete för att algoritmen är intressant ur AI-synpunkt. Den använder sig av reinforcement learning [10], neurala nät och evolutionära algoritmer för att sökroboten ska lära sig vilka länkar som är värda att besöka. Info-Spiders sökrobotar arbetar parallellt oberoende av varandra och bygger sina egna Neurala nät. Varje sökrobot har en lista med nyckelord och ett neuralt nätverk som används för att förutsäga relevansen hos outforskade länkar. Varje in-nod till nätverket får antalet förekomster av ett nyckelord i den omgivande texten till länken. på sidan som indata. Dessa indata är viktade så att ju närmare länken ett ord står desto mer bidrar det till värdet. I det nät som testades i [4] användes inga mellanlager i det neurala nätet. Detta innebär att nätet bara kan lära sig linjära separationer i indata. I detta arbete sker ingen fördjupning i vilka konsekvenser det får för inlärningen. Utdata från det neurala nätet sker genom endast en nod. Värdet som fås är en kvalitetsuppskattning av länken som var indata. Fig 9 [11] Info-Spider sökrobotens tillvägagångssätt för att uppskatta kvaliteten för länkarna från sidan den befinner sig på. För varje länk på sidan räknas antalet förekomster av varje nyckelord (term) ut och som bilden visar har ord som på sidan har kortare avstånd till länken fördel av att viktas högre.

Den generella algoritmen för InfoSpiders ser ut enligt följande: Fig 9 [4] Pseudokod för Info-Spiders-algoritmen Förklaring till algoritmen: insert() funktionen utför utplacering av sökrobotarna på startsidor som tagits fram. Varje sökrobot får ett slumpvist beteende och en viss energimängd. sim() funktionen i denna algoritm genererar en energimängd som beror av hur mycket sidan agenten är på överensstämmer med ämnet. Energin läggs sedan till agentens

befintliga energi. learn_to_predict() är själva inlärningsfunktionen i algoritmen. Här tillämpas reinforcement-learning med höjning/sänkning av energinivån som belöning/straff. För varje länk som går ut från sidan görs en uppskattning av hur bra den sidan kan vara med hjälp av vad agenten har lärt sig. Boltzman() funktionen avgör om agenten ska dö. Detta gör den om relevansen på sidan är så låg att agentens energi blir 0. Slutligen avgörs om agenten ska reproducera sig sig. Om agenten har mycket energi kan betyder det förmodligen att den hittar bra länkar. Då körs split() för att skapa en agent till. Fördelen med detta är att det finns fler agenter i ett område på Internet där sidorna är relevanta. Den nya agenten kommer att vara en muterad version av den gamla. Detta för att med hjälp av mångfalden genererad av evolution kunna göra bättre uppskattningar i relevansen hos outforskade länkar. 3.3 Prestanda hos Algoritmerna I det här arbetet har inga tester av de olika algoritmerna gjorts och därför finns inga data från körningar att presentera. Tester har dock utförts i [1, 2, 7, 10], intresserade hänvisas dit. Vad som kan sägas är att prestandan hos en sökrobot är beroende av hur man testar den. I [4] gjordes en jämförelse mellan bl a de sökalgoritmer som presenterats här. Ett intressant resultat därifrån är att PageRank inte klarade sig i konkurrensen med de andra algoritmerna trots att Google som är den mest populära generella sökmotorn använder just PageRank. Bredden först var som väntat den algoritm som klarade sig sämst. Prestandamässigt är dock bredden-först den teknik som kräver minst datorkraft per utforskad sida. Som generell Webcrawlingalgoritm är Bredden-först konkurrenskraftig. Best-first med lexikal överensstämmelse som bedömningskriterium är en konkurrenskraftig Sökrobotalgoritm för ämnesinriktad sökning visar testerna i [4]. Den klarade sig i dessa tester något bättre än Shark Search. Info-Spiders är den intressantaste algoritmen i detta arbete i och med att den använder sig av maskininlärning. Den klarade sig inte bättre än de bästa av de andra sökalgoritmerna i tester [4] vilket visar att maskininlärning idag inte ger någon fördel inom området Ämnesinriktad WebCrawling. Orsaken till att det är svårt att få maskininlärning att lyckas är att Sökrobotarna bara har tillgång till begränsad lokal information [4]. Flera av de ämnesspecifika sökmotorerna som finns på Internet idag använder sökrobotar för att assistera människor i arbetet [www.pricerunner.com, www.kelkoo.com] Det kan tolkas som att ämnesspecifika robotar inte klarar av att arbeta helt autonomt, men att de ändå kan utföra viss sökning som gör nytta i en ämnesspecifik sökmotor. Det är svårt att få aktuell information på området i och med att de kommersiella företagen inte gärna lämnar ut uppgifter om hur deras sökrobotar arbetar.

4. Slutsats Att bygga ämnesinriktade Sökrobotar är ett sätt att lösa skalbarhetsproblemet på Internet. Bland dagens ämnesinriktade sökrobotar är de algoritmer som är baserade på Best Firstalgoritmer de som fungerar bäst. Att PageRank inte fungerar så bra för ämnesinriktad webcrawling beror inte på att den algoritmen är dålig. Snarare är det nog så att den inte kommer till sin rätta i ämnesinriktade sökningar. Metoden fungerar bäst i generella sökmotorer. PageRank är ett lysande sätt att rangordna sidor på i och med att det är analogt med hur människor rangordnar saker. Att använda Neurala nätverk och reinforcement learning för att lära robotarna att förutse var vilka länkar som går till bra sidor är intressant idé. Får man det att fungera kommer det gå att skapa betydligt effektivare sökrobotar. Men att skapa en effektiv helt autonom sökrobot med maskininlärning verkar inte vara praktiskt möjligt i dagsläget. Problemet är främst att robotarna har lite data att arbeta och träna med i och med att de bara agerar i en lokal miljö och har inte kunskap om mer än det fåtal sidor den arbetar på. Det behövs mer forskning på hur informationen på Internet är strukturerad för att kunna ge robotarna bättre verktyg att arbeta med. Att dagens ämnesspecifika sökmotorer använder sökrobotar för att assistera människor vid inhämtande av information tyder på att det finns nytta med dem, men i och med att de inte klarar sig autonomt behövs bättre metoder och algoritmer för att skapa helt autonoma ämnesinriktade sökrobotar. Referenser [1] O. Heinonen, Kimmo Hätönen, Mika Klemettinen WWW Robots and Search Engines 1996 [2] J. Talim, Z. Liu, Ph. Nain and E. G. Coffamn, Jr Controlling the robots of web Search Engines In Proc. ACM Sigmetrics 2001 [3] S. Russel and P Norvig Artificial Intelligence A Modern Approach, Prentice hall, 1995 [4] F Menczer, G Pant and P Srinivasan Topic-Driven Crawlers: Machine Learning Issues 2002 [5] CC Aggarwal, F Al-Garawi and PS Yu Intelligent Crawling on the World wide Web with Arbitrary Predicates In Proc. 10 th Intl. World wide web Conference, pages 96-105 [6] S. Chakrabarti, M. Berg and B Dom Focused crawling:a new approach to topicspecific Web resource discovery Elsevier Science B.V. 1999

[7] M. Najork and J. L. Wiener Breadth-First Search Yields High-Quality Pages 2001 [8] S. Brin L. Page The anatomy of a large-scale hypertextual Web search engine in Proceedings of WWW7, 14-18 Apr. 1998 [9] S. Brin, L. Page, R.Motwani and T. Winograd The PageRank citation ranking: Bringing order to the Web Tech. Rep. 1999-66 Stanford digital Libraries Working Paper, 1999. [10] J. Rennie and A. K. McCallum Using Reinforcement Learning to Spider the Web Efficiently proceedings of ICML-99 Workshop, Machine Learning in Text Data Analysis 1999 [11] F. Menczer and R. K. Belew Adaptive Retrieval Agents: Internalizing Local context and scaling up the web 1999 [12] J. Talim, Z. Liu P. Nain, E. G. Coffman, Jr Optimizing the Number of Robots of Web Search Engines Telecommunication Systems Journal Vol. 17, Nos 1-2 pp. 234-243, May-June 2001 www.pricerunner.com www.google.com www.altavista.com www.kelkoo.com www.lycos.com www.mrjet.com www.citeseer.com