• No results found

PageRank - Hur fungerar den och hur kan den förbättras?

N/A
N/A
Protected

Academic year: 2022

Share "PageRank - Hur fungerar den och hur kan den förbättras?"

Copied!
41
0
0

Loading.... (view fulltext now)

Full text

(1)

INOM

EXAMENSARBETE TEKNIK, GRUNDNIVÅ, 15 HP

STOCKHOLM SVERIGE 2020,

PageRank

Hur fungerar den och hur kan den förbättras?

ALEXEJ FILINAU

WOJCIECH RATUSZNIK

(2)

Sammanfattning

I det här arbetet undersöktes PageRank-algoritmen som är en metod att ge hemsidor en rank på internet. I början förklaras algoritmens uppbyggnad med hjälp av teori. Fortsättningsvis undersöks optimerade versioner av algo- ritmen som utnyttjar internets blockstruktur för en snabbare beräkningstid.

Algoritmens känslighet med avseende på α undersöks också för att förstå hur PageRank fungerar. Sist studeras sökmotoroptimering av en hemsida för att se hur viktigt det är med länkar för att få ett bra PageRank-värde.

Resultaten visar att algoritmen som tar hänsyn till blockstrukturen har en snabbare konvergenshastighet när antalet block ökar, och att känsligheten hos algoritmen ökar markant då 0.9 < α < 1. Slutligen visar undersökning- en av sökmotoroptimeringen hur viktigt det är med genomtänkta länkar på en hemsida. Slutsatserna av arbetet är att algoritmen som använder block- strukturen på internet är bättre för beräkning av PageRank-värden och att känsligheten hos den vanliga PageRank-algoritmen påverkas i stor utsträck- ning, speciellt då α går mot 1. Även länkar är väsentliga för en hemsida för att få ett bra PageRank-värde.

Abstract

In this project, the PageRank-algorithm was studied. This algorithm is a method to rank all the webpages on the internet. In this work, PageRank is explained and motivated by mathematical theory. Further in the project, optimized versions of the algorithm that use the block structure of the in- ternet are analyzed. PageRank’s sensitivity with respect to α is also studied to understand how the algorithm works. Lastly, search engine optimization (SEO) is studied to see how important it is with links to have a good rank- ing. The results show that the algorithm that uses the block structure has a faster convergence speed with the increasing number of blocks. The sensi- tivity of PageRank increases significantly for 0.9 < α < 1. Lastly, the results from the SEO study shows how important well written links are on a web- page. The conclusions from these results are that the algorithm that uses the block structure of the internet is better for the calculation of PageRank- values. Furthermore, the sensitivity of the ordinary PageRank-algorithm is heavily affected by α, especially when α goes to 1. Links are also essential on a webpage to have a good PageRank-value.

(3)

Innehåll

1 Inledning och bakgrund 1

1.1 Bakgrund . . . 1

1.2 PageRank idag . . . 1

2 PageRank 2 2.1 Matematisk beskrivning av PageRank-algoritmen . . . 6

2.2 Implementation av PageRank-algoritmen . . . 11

2.3 Numeriska exempel . . . 13

3 BlockRank 16 3.1 BlockRank-algoritmen . . . 16

3.2 Undersökning av BlockRank-algoritmen . . . 18

3.2.1 Undersökning med 3 slumpmässiga block . . . 18

3.2.2 Undersökning med olika antal slumpmässiga block . . . 21

4 Algoritmens känslighet 24 4.1 Parametern α . . . 24

4.2 Variationer av algoritmen . . . 24

4.2.1 Intelligent surfer-modellen . . . 24

4.2.2 Användarbaserad ranking . . . 24

4.3 Parameterstudie av α . . . 25

4.3.1 Random surfer-modellen . . . 25

4.3.2 Intelligent surfer-modellen . . . 30

4.3.3 Jämförelse av de två modellerna . . . 31

5 Sökmotoroptimering 32 5.1 Undersökning av SEO . . . 33

6 Slutsatser 35

Källförteckning

(4)

1 Inledning och bakgrund

1.1 Bakgrund

Mellan åren 1995 till 1998 arbetade två doktorander vid Stanford Univeristy, Ser- gey Brin och Lawrence Page, med ett projekt som de kallade för PageRank. De tillhörde de första som förstod vilken betydelse internet kommer att ha i framti- den samtidigt som de lyckades att skapa en sökmotor; avsevärt mer effektiv än de andra tillgängliga sökmotorerna under den tiden. Page och Brin hade som ut- gångspunkt att sortera relevansen av en hemsida, kallad för rank, utifrån antalet referenser denna hemsida hade från andra hemsidor samt genom att ta hänsyn till de refererande hemsidornas rank. En referens från en viktig hemsida, besökt av många användare, behövde väga tyngre än flera referenser från mindre populära hemsidor. Med denna utgångspunkt startade de den idag mycket välkända Googles sökmotor och senare företaget Google. Inspirationen till namnet tog de från talet googol (10100) som symboliserade deras mål med projektet, att skapa en väldigt storskalig sökmotor [1].

1.2 PageRank idag

Idag är Google den mest använda sökmotorn i världen. Ca 73 % av alla sökningar görs på hemsidan [2]. Under åren har sökmotorn utvecklats för att anpassa sig till det ständigt expanderande internet. PageRank-algoritmen däremot, som den skapades och presenterades i detta projekt, används fortfarande [3]. Google blev däremot inte det enda tillämpningsområdet för algoritmen. Idag används denna i många områden där nätverk representeras av grafer, bland annat nätverksanalys, biologi, kemi, neurovetenskap och fysik. Exempelvis används en modifierad version av algoritmen för att bestämma vilka arter i ett ekosystem som är livsviktiga för att omgivningen ska klara sig under förändringar [4].

År 2016 tog Google bort möjligheten att se en hemsidas PageRank. Detta gjordes förmodligen för att många utnyttjade systemet och förbättrade hemsidors rank på både etiska och oetiska sätt. De etiska sätten handlar om att ha bra innehåll och skriva bra länkar på hemsidan för att då höja hemsidans relevans. Hur en hemsidas PageRank kan förbättras ytterligare undersöks i Sektion 5.

(5)

Sedan borttagningen har alla hemsidor idag ett hemligt PageRank-värde för att optimera sökningarna i sökmotorn. Hur ofta och hur Google beräknar alla värden vet ingen förutom företaget. Däremot beräknas förmodligen alla värden efter en crawl av internet. Med det menas att det är en algoritm som går igenom hela internet och antecknar information av hemsidor [5]. Just Googles algoritm heter Googlebot [6]. Denna algoritm måste gå igenom upp till 1,7 miljarder hemsidor som finns idag över hela internet [7]. Beräkningen av PageRank för 1,7 miljarder hemsidor går inte fort. För att effektivisera detta använder algoritmen potensme- toden. Denna metod är praktisk för stora matriser eftersom att den använder matris-vektormultiplikation. Utöver detta modifieras algoritmen ytterligare för att beräkningen ska gå fortare. Detta ger BlockRank-algoritmen, som utnyttjar inter- nets blockstruktur för att underlätta beräkningarna. Denna algoritm undersöks på djupet i Sektion 3.

2 PageRank

Internet kan ses som en stor riktad graf där hemsidorna representeras av noder och länkarna mellan sidorna kan ses som riktade kanter i grafen.

Grafer inom matematiken definieras som ett par G = (V, E), där V är en mängd vars element kallas för noder och E är kanter, vilka definieras som 2-mängder av nodelementen. En riktad graf är en graf vars kanter har riktningar mellan noderna [8].

I detta projekt kallas kanter för länkar vilket är lämpligare för en grafrepresen- tation av internet. Vidare beskrivs en graf i projektet av en grannmatris. Denna beskriver en graf genom att ange vilka noder som har länkar mellan varandra [9].

Definitionen är följande:

Låt A vara grannmatrisen till en graf G. Antag att grafen har N stycken no- der som numreras med j = 1, ..., N . A är en N × N matris där matriselementen aij, i, j = 1, ..., N ges av aij = 1 om det finns en länk från j till i och aij = 0 annars [9].

(6)

Figur 1: Ett exempel på en riktad graf.

Page och Brin [1] definierade en hemsidans PageRank-värde, r enligt r(vi) = X

vj∈Bvi

r(vj)

|vj| (1)

där vi betecknar hemsidan i, Bvi betecknar mängden av alla sidor som pekar på vi och |vi| betecknar antalet länkar ut från en hemsida.

Ekvation 1 kan skrivas på formen r = Ar där r är en vektor med hemsidornas PageRank-värden och A är en normaliserad grannmatris.

För grafen i Figur 1 kan Page och Brins formel beskrivas med följande matris- vektorekvation

r =

0 0 0 1 0

1

2 0 0 0 12

1

2 1 0 0 12 0 0 12 0 0 0 0 12 0 0

r (2)

Raderna i matrisen A ger information om vilka noder som länkar till motsva- rande nod och kolumnerna ger information om vilka noder som en nod pekar på.

Detta är en egenskap hos beskrivningen av en graf med en grannmatris. Som ett exempel kan vi notera att, första raden i matrisen endast har ett nollskilt element vilket är det fjärde elementet. Detta betyder att det endast är den fjärde noden

(7)

som länkar till första noden och den fjärde noden har endast en utgående länk.

För att lösa denna ekvation används potensmetoden som givet en startvektor r0 löser följande iterativa process

rk+1 = Ark k = 0, 1, 2, ... (3)

Givet en tillräckligt bra startgissning så konvergerar potensmetoden mot egenvek- torn som motsvarar det dominanta egenvärdet.

Det finns även andra iterativa metoder som skulle kunna lösa ekvation 2 men att använda potensmetoden har viktiga fördelar. Potensmetoden kräver matris- vektormultiplikationer i varje iteration men eftersom A är en gles matris kan multiplikationerna göras effektivt. Nackleden med potensmetoden är den lång- samma konvergensen, men eftersom att den är praktisk för stora matriser så är fördelarna övervägande.

En gles matris är en matris där majoriteten av elementen är noll. Antalet nol- lelement dividerat med det totala antalet element är ett mått för hur gles en matris är. Om detta mått är större än 0.5 sägs matrisen vara gles [10].

Denna egenskap hos en matris kan utnyttjas för beräkningar som kräver mul- tiplikationer av stora matriser. Matriselement sparas i datorminnet och just för glesa matriser sparas endast deras nollskilda element och dess index. Därav kan användning av glesa matriser ha avsevärd påverkan på hur mycket datorminne det krävs för att spara data. Vidare har det ett avtryck på beräkningstiden. De be- räknignsmetoderna som används för glesa matriser tar inte hänsyn till operationer med nollelement och därav är beräkningarna snabbare [10].

Matrisen A i Ekvation (2) uppfyller kravet för en så kallad kolumnstokastisk ma- tris. I en kolumnstokastisk matris summerar varje kolumn till 1. Notera däremot att om grafen har en hängande nod (nod 4 i Figur 2) finns det en kolumn i A bestående av endast nollor. En sådan matris är inte längre en kolumnstokastisk matris, vilket medför problem med exempelvis konvergensen av potensmetoden.

I senare avsnitt presenteras ett bevis för att en kolumnstokastisk matris har ett

(8)

egenvärde lika med 1.

Figur 2: En enkel riktad graf med en hängande nod.

Page och Brins lösning på problemet med hängande noder var att ersätta noll- kolumner med nollskilda kolumner, vilket är en modifikation av matrisen A. Om det inte finns någon länk från noden j till i låt aij = N1 där N är antalet element i kolumnen. Matrisen för Figur 2 blir då

0 0 0 15 0

1

2 0 0 15 12

1

2 1 0 15 12 0 0 0 15 0 0 0 1 15 0

Den modifierade matrisen kan beskrivas med följande ekvation A = A +˜ 1

N1aT (4)

Där 1 är en vektor med ettor, och a är en vektor där ai = 1 om ingen utgående länk från i och 0 annars. ˜A är nu en kolumnstokatsik matris. För en kolumnstokastisk matris gäller att dess största egenvärde är lika med 1 och de andra egenvärden är mindre än 1.

Efter modifikationen ovan är det garanterat att matrisen ˜A har ett egenvärde

(9)

lika med 1 och potensmetoden kan användas för att hitta egenvektorn motsva- rande detta egenvärde. Dock återstår det ett problem, potensmetoden kommer att konvergera till olika egenvektorer för olika initialvektorer. Page och Brins lös- ning på detta problem var att implementera en Random surfer -modell som gör det möjligt för en internetsurfare att nå alla noder från den aktuella noden som internetsurfaren befinner sig på. Detta ger en modifikation av matrisen ˜A enligt följande

A = α ˜A + (1 − α) 1

N11T (5)

Där α är en konstant mellan 0 och 1.

Den ovanstående modifikationen gör att alla element i A är > 0 och rk+1 = Ark konvergerar till en unik egenvektor. Matematiskt kan denna modifikation beskrivas med hjälp av teori för Markovkedjor, vilket presenteras i nästa avsnitt.

2.1 Matematisk beskrivning av PageRank-algoritmen

Låt G vara en riktad graf och |u| antalet länkar utgående från en nod u. Betrakta en slumpmässig internetsurfare som besöker sidan u vid tiden k. I nästa steg väljer internetsurfaren helt slumpmässigt en av alla noder som u länkar till. Låt denna nod betecknas vi. Detta kan uttryckas som att vid tiden k + 1 landar nätsurfaren på noden vi med sannolikheten |u|1 [1].

PageRank-värdet, r, för en hemsida videfinieras som sannolikheten att internetsur- faren är på hemsidan vi vid något tidssteg k > K [1], där K är ett heltal.

Markovkedjor

En stokastisk process X = (X(t) : t ∈ T ) är en samling slumpvariabler, där t står för tiden. Vidare kallas X(t) tillståndet av processen vid tiden t [11].

En diskret tidsprocess X = (X0, X1, X2, ...) kallas för en markovkedja om och endast om tillståndet vid tiden t endast beror på tillståndet i tiden t − 1. Formellt gäller det att [11]

P (Xt= at|Xt−1= at−1, ..., X0 = a0) = P (Xt = at|Xt−1 = at−1) (6)

(10)

för alla värden a0, a1, ..., at och alla t ≥ 1

Det är viktigt att notera att ett visst tillstånd i en markovkedja endast beror på det föregående tillståndet. Det räcker med det tidigare tillståndet för att be- räkna nuvarande tillståndet.

Tidshomogen markovskedja

En markovkedja är tidshomogen om och endast om övergångssannolikheterna är tidsoberoende. Formellt gäller att [11]: Det finns konstanter Pi,j sådana att

Pi,j = P (Xt = j|Xt−1 = i) (7)

gäller för alla tider t. I detta projekt antas alla markovkedjor vara tidshomogena.

Ett tillstånd j är åtkomlig från tillståndet i om och endast om det finns ett heltal n ≥ 0 sådan att Pi,jn > 0, vilket innebär att sannolikheten är strikt större än 0 och att detta tillstånd kan nås inom n steg. Vidare gäller det att om två tillstånd i och j är åtkomliga från varandra, sägs det att dessa kommunicerar. I riktad graf-representationen av en kedja innebär det att noderna i och j har en riktning åt båda håll [11].

Irreducibel markovkedja

En markovkedja är irreducibel om och endast om alla tillstånd tillhör en kommu- nikationsklass [11]. En kommunikationsklass är en mängd av tillstånd sådan att alla tillstånd i denna mängd kommunicerar med varandra.

I detta projekt representeras varje markovkedja av en ändlig graf, därav är mar- kovkedjan ändlig. En sådan kedja är irreducibel om och endast om dess graf repre- sentation är starkt ansluten. Det kan sammanfattas som att en kedja är irreducibel när det alltid går att nå ett annat tillstånd från något tillstånd i grafen [11].

Perioden d(k) av ett tillstånd k för en tidshomogen markovkedja med övergångs- matrisen P ges av [11]

d(k) = gcd(m ≥ 1 : Pk,km > 0) (8)

(11)

där gcd är den största gemensamma delaren. Om d(k) = 1, så kallar vi tillståndet k aperiodiskt.

En markovkedja är aperiodisk om och endast om alla dess tillstånd är aperio- diska [11].

Antag att X är en ändlig markovkedja med övergångsmatrisen P . En radvek- tor v = (p0, p1, ..., pn−1) kallas en stationär sannolikhetsfördelning för P om och endast om [11]

1. Dess element är icke-negativa och summerar till 1.

2. vP = v.

Varje aperiodisk, irreducibel och ändlig markovkedja har exakt en stationär sanno- likhetsfördelning. En diskret markovkedja som satisfierar egenskaperna att den är irreducibel, aperiodisk och har en stationärfördelning kallas för en Ergodisk mar- kovkedja [11]. Dock behandlas inte den Ergodiska satsen för markovkedjor djupare i detta projekt.

Betrakta en markovkedja framkallad av en random walk på grafen G, där alla tillstånd ges av noder i G och den stokastiska övergångsmatrisen beskriver över- gången från j till i och ges av A där aij = |j|1. För att A skall uppfylla kravet för en övergångssannolikhetsmatris bör varje nod ha minst en utgående länk, vilket innebär att A inte får ha några nollkolumner. Detta gäller endast då G saknar hängande noder, det vill säga noder utan ingående länkar från andra noder. A kan modifieras till en giltig övergångsmatris genom att lägga till en mängd länkar till hemsidor med |u|=0. Detta kan intuitivt förklaras som att nätsurfaren besökande en hemsida utan länkar, rör sig helt slumpmässigt till någon hemsida i nästa tids- steg [12].

Detta beskrivs formellt som: Låt a vara en N -dimensionell kolumnvektor som identifierar noder med 0 utgående länkar.

ai = 1 om |i| = 0 och ai = 0 annars (9)

(12)

Då konstrueras ˜A som [12]

A = A +˜ 1

N1aT (10)

Där 1 är en N -dimensionell vektor med ettor som element.

Detta var den första modifikationen av algoritmen som presenterades i förra del- kapitel men utan teoretisk bakgrund. Tack vare denna modifikation är matrisen en kolumnstokastisk matris och Perron-Frobenius sats gäller.

Perron-Frobenius sats

Låt A vara en kolumnstokastisk matris. En kolumnstokastisk matris är en n × n- matris bestående av icke-negativa tal vars kolumnsummor är lika med 1 [13].

Det finns olika varianter av Perron-Frobenius sats. Den som används i detta ar- bete handlar om icke-negativa matriser. Låt A vara en icke-negativ matris, vilket betyder att matrisens alla element är icke-negativa. Då gäller [14]:

1. Det finns ett positivt egenvärde λ till A som har en tillhörande icke-negativ egenvektor v.

2. λ är till beloppet större än eller lika med alla andra egenvärden till A.

3. Alla andra positiva egenvektorer till A är multipler av v.

4. λ har algebraisk multiplicitet 1.

I detta projekt är A en kolumnstokastisk matris och en sådan har alltid minst en egenvektor som motsvarar egenvärdet 1. Detta bevisas i nästa stycke.

Bevis. Summan av alla element i kolumnerna är 1 vilket medför

[1 1 . . . 1]A = [1 1 . . . 1] (11) Vilket betyder att AT har egenvektor med egenvärde 1. Egenvärdena för A och AT är dock de samma. Matrisen (A−λI)T = (AT−λI) vilket medför att det(AT−λI) = det((A − λI)T) = det(A − λI). Om deras karakteristiska ekvationer är lika så är deras egenvärden lika.

(13)

Från den Ergodiska satsen för markovkedjor är det känt att markovkedjan defi- nierad genom ˜A har en unik stationär sannolikhetsfördelning om ˜A är aperiodisk och irreducibel. Det första gäller för en markovkedja på en internetgraf och det andra gäller när G är starkt ansluten bland sidorna, vilket oftast inte gäller för internetgrafen. Därav krävs ytterligare modifikation av algoritmen för att erhålla denna egenskap. Det räcker att lägga till en ny mängd utgående länkar med små sannolikheter till alla noder. Detta resulterar i att grafen blir starkt ansluten bland alla noder [12].

A = α ˜A + (1 − α)E (12)

E = 1

N11T (13)

Där resultatet kan tolkas som att i varje tidssteg med sannolikheten (1 − α), kom- mer en internetsurfare röra sig till en slumpmässig sida istället för att följa en länk utåt. Värdet för α väljs ofta till 0.85 [12]. (I detta projekt varierades detta värde och effekterna presenteras i Sektion 4.3.)

Antag att sannolikhetsfördelningen över internetsurfarens plats vid tiden 0 är x(0), då är sannolikhetsfördelningen för surfarens plats vid tiden k given av x(k) = Akx(0), där A är den ovan modifierade övergångsmatrisen. Den unika stationära sannolikhetsfördelningen av markovkedjan definieras som gränsvärdet när k går mot oändligheten för x(k). Detta är ekvivalent med gränsvärdet när k går mot oändligheten för A(k)x(0), och är oberoende av initialfördelningen x(0). PageRank- algoritmen använder potensmetoden för att beräkna PageRank-vektorn som är den unika stationära sannolikhetsfördelningen då potensmetoden har konvergerat till en önskad tolerans [12]. Den största fördelen med användningen av potensme- toden för beräkningen av PageRank-vektorn är att denna metod sparar matris- vektorprodukter istället för matriskoefficienter och därav inte är lika lagringskost- sam [6].

Potensmetoden

Potensmetoden är en iterationsalgoritm som löser egenvärdesproblemet Ax = λx genom att hitta x och λ givet en matris A och en intialvektor x(0). Metoden an- vänder iterationen xi+1 = Axi. Följande sats gäller för potensmetoden.

(14)

En sats för potensmetoden

Låt A vara en n × n matris med reella egenvärden λ12,....,λn som satisfierar

1|≥|λ2|≥...≥ |λn|. Antag att egenvektorerna för A spänner upp Rn. Då kon- vergerar potensmetoden linjärt för nästan varje initialvektor till egenvektorn med egenvärdet λ1 med konvergenskonstanten S=|λλ2

1| [15].

Bevis. Låt v1,...,vn vara egenvektorer som utgör en bas för Rn, med egenvärdena λ1,...,λn. Uttryck initialvektorn i denna bas som x0=c1 v1+...+cn vn för konstan- terna ci. För nästan varje initialvektor innebär att c1,c2 kan antas vara nollskillda.

Potensmetoden ger följande

Ax0=c1λ1v1+ c2λ2v2+ ... + cnλnvn

A2x0 = c1λ21v1+ c2λ22v2+ ... + cnλ2nvn

Akx0 = c1λk1v1+ c2λk2v2+ ... + cnλknvn

Efter division med λ1 för varje steg kommer första termen i högerledet att do- minera när k går mot oändligheten.

Akx0

λk1 = c1v1+ c2 λk2

λk1v2+ ... + cnλkn λk1vn

eftersom att |λ1|>|λi| för i > 1 kommer alla termer förutom det första i ekva- tionen ovan att konvergera till 0 med hastigheten S ≤ |λλ2

1|, exakt lika med denna hastighet då c2är nollskild. Metoden konvergerar till en multipel av den dominanta egenvektorn v1 med egenvärdet λ1 [15].

2.2 Implementation av PageRank-algoritmen

Implementationen av algoritmen genomfördes med verktyget MATLAB. Detta gjordes genom att skapa en funktion i programmet som läser in filer med data som beskriver hur olika noder i en graf länkar till andra noder. Beskrivningen ges av en textfil i matrisform där första kolumnen består av alla noder i grafen och elementen i varje rad beskriver vilka noder den noden i första kolumnen länkar till.

(15)

Figur 3: Ett exempel på en graf.

Grafen i Figur 3 beskrivs av en textfil på följande form,

Figur 4: Textfil av ovanstående graf.

I de undersökningar där textfiler med riktigt data saknades, skapades slumpmäs- siga matriser på samma form som den ovanstående textfilen.

Givet en textfil med data skapar funktionen en beskrivning av grafen som en grannmatris och alla modifikationer av matrisen gjordes enligt de stegen som är beskriva i tidigare delkapitel.

Slutligen används potensmetoden för att beräkna PageRank-värdena till en önskad tolerans. I det här fallet var toleransen 10−6.

Pseudokod för potensmetoden

Den första versionen av potensmetoden implementerades enligt följande pseudokod

(16)

x = rand(length(A), 1) i = 0

lambda = 0 lambdalast = 50

A = α ˜A + (1 - α)ones(length( ˜A), length( ˜A))/length( ˜A) while abs(lambda - lambdalast) > 10−6 do

lambdalast = lambda x = Ax

x = x/norm(x) lambda = x0Ax i = i + 1 end

x = x/sum(abs(x))

Algoritm 1: Potensmetoden.

Notera att A är en fylld matris. För att utnyttja att grannmatrisen A är en gles matris skriver vi om

Ax = αAx + α

N(aTx)1 + (α − 1) N

N

X

i=1

xi1 (14)

och utnyttjar detta i algoritmen där det nu endast sker matris-vektormultiplikation med en gles matris (första termen), en skalärmultiplikation gånger en vektor (andra termen) och resultatet av en summa gånger en vektor (tredje termen). I Tabell 3 finns en jämförelse av tiden.

2.3 Numeriska exempel

För att illustrera hur PageRank fungerar har vi beräknat PageRank-värdena för sidorna i grafen som presenteras i Figur 5.

(17)

Figur 5: En enkel riktad graf.

Nod 1 2 3 4 5

PageRank 0.1716 0.1737 0.3214 0.1666 0.1666

Tabell 1: PageRank värden för noderna i grafen i Figur 5.

Resultat presenteras i Tabell 1. Det framstår tydligt från resultatet att den tredje noden är den viktigaste. Detta resultat är rimligt eftersom det är den noden med störst antal noder som länkar till den.

Figur 6: En enkel riktad graf vars en nod är hängande.

Nod 1 2 3 4 5

PageRank 0.0361 0.2016 0.3730 0.0361 0.3532

Tabell 2: PageRank värden för noderna.

(18)

Resultatet att den tredje noden i Figur 6 är den viktigaste är inte förvånande.

Däremot är ett så högt värde för den femte noden förvånande. Detta kan förklaras genom att den nod som pekar på den femte noden är den tredje, och PageRank- värdet för en nod beror inte bara på antalet noder som länkar till denna. Viktiga noder kan väga mer än ett större antal mindre viktiga noder.

Det är värt att kommentera varför värdet för den första och fjärde noden är den- samma och varför värdet inte är noll. Deras värde är samma eftersom att de inte har noder som länkar till dem. Vidare gäller det att värdet inte är noll eftersom att den modifikationen av PageRank-algoritmen som gjordes, handlade om att en internetsurfare alltid kan hoppa slumpmässigt till en godtycklig hemsida. Alltså om ingen länk till dessa finns, så finns det fortfarande en sannolikheten att en internetsurfare besöker hemsidan. Detta resultat presenterades i Sektion 2.1.

Jämförelse av de två olika implementationerna

För att jämföra de olika implementationerna som presenterades i Sektion 2.2, mät- tes tiden för matris-vektormultiplikation. Algoritmen kördes för den första versio- nen som presenterades i Algoritm 1 och för den andra versionen som presenterades i Ekvation 14. Dessa algoritmer kördes för delar av en matris som beskriver Berkley och Stanfords internet-graf. Denna fullständiga matris är 7 · 105× 7 · 105. På grund av matrisens storlek, jämfördes tiden för mindre delar av storlek n × n. Tiden mättes 1000 gånger för att ta ett medelvärde och presenteras i Tabell 3.

Matrisstorlek [n] Tid version 1 [s] Tid version 2 [s] Gånger snabbare

5 · 102 0.0002 0.00009 2

1 · 103 0.0016 0.00024 6

5 · 103 0.0604 0.0015 39

1 · 104 0.2511 0.0034 74

Tabell 3: Tiden för de olika implementationerna.

Resultaten visar att implementationernas tid skiljer sig åt för matriser av alla storlekar, speciellt då n ökar. Version 2 blir upp till 74 gånger snabbare än version 1 och är därför det bättre sättet att implementera PageRank-algoritmen på.

(19)

3 BlockRank

3.1 BlockRank-algoritmen

Idén bakom BlockRank-algoritmen är att utnyttja strukturen av internet. Grafen för internet har en blockstruktur, vilket innebär att majoriteten av länkar på en huvudsaklig hemsida (kallad för värd) länkar till sidor från samma värd [12].

Beräkningen av den i tidigare delkapitel förklarade PageRank-algoritmen blir väl- digt beräkningskostsam när grannmatrisen blir stor. I BlockRank-algoritmen ut- nyttjas blockstrukturen genom att beräkna PageRank-värdet lokalt för varje värd.

Sedan viktas dessa lokala PageRank-värden genom att jämföra hur viktiga de är i förhållande till de andra lokala PageRank-värden. I nästa steg sätts de ihop till en approximativ global PageRank-vektor. Slutligen beräknas en PageRank-vektor med den approximativa vektorn som startvektorn [12].

Tanken i denna metod är att den ovannämnda approximationen konstruerad från de lokala PageRank-vektorerna skall vara väldigt nära den verkliga globala PageRank- vektorn. Detta resulterar i att potensmetoden där den globala Google-matrisen A används, kommer att utföras i betydligt färre steg jämfört med standardmetoden som kräver fler iterationer med den stora matrisenA och där önskas det att få en tidsvinst [12].

Beräkning av lokal PageRank för varje block

Eftersom de flesta block har få länkar in och ut från sitt block jämfört med antalet länkar inuti blocket, är det rimligt att rankning för sidorna som befinner sig inuti blocket bestäms av länkarna inuti blocket. Därav beräknades lokala PageRank- värden med den vanliga PageRank-algoritmen men endast på delblock av den stora grafen och det bortsågs från eventuella länkar till andra block [12].

Viktande av varje block

Antag att det finns k block. Först skapades en blockgraf B, där varje nod motsvar ett block. Vidare är länkar mellan de tidigare sidor som länkade till andra sidor i ett annat block betraktade som länkar mellan block. Vikten av en länk mellan

(20)

två block beräknades som det totala antalet länkar från sidorna i ena blocket, I, till det andra, J , alla viktade med deras lokala PageRank-värde i blocket I. Om Google-matrisen A var den totala grafen och li lokala PageRank-vektorn av sidan i inuti blocket I, då var vikten av kanten BI J given av [12]

BI J =X

i

X

j

Aijli (15)

Det skrivs om med matrisnotation genom att betrakta n × k matrisen L vars kolumner är lokala PageRank-värden lJ. Vidare definieras en n × k matris S med samma struktur som L, men vars nollskilda element är 1. Blockmatrisen B är en k × k matris [12]

B = LTAS (16)

B är en övergångsmatris, där elementen BI J representerar övergångssannolikheten av block I till block J . När matrisen B var konstruerad, tillämpades PageRank- algoritmen för att beräkna BlockRank-vektorn b.

Approximation av global PageRank

I detta steg fanns det två olika rankningar. De lokala PageRank-värden av var- je block samt BlockRank-vektorn b vars element var BlockRank-värden för varje block, vilket är ett mått på den relativa vikten jämfört med andra block [12].

Det globala PageRank-värdet för en sida j approximerades som dess lokala PageRank- värde lj, viktad med BlockRank bj för det block det befinner sig i [12].

x(0)j = ljbj (17)

Med matrisnotation

x(0) = Lb (18)

PageRank med utvecklad startvektor

Vidare användes den approximativa globala PageRank-vektorn, x(0), som en start- vektor i den vanliga PageRank-algoritmen. Denna beräkning genomfördes för att erhålla den globala PageRank-vektorn x [12].

(21)

3.2 Undersökning av BlockRank-algoritmen

I följande avsnitt presenteras undersökningar av olika blockstrukturer. Notera att följande grafer saknar en huvudsaklig värd för varje block. I dessa block har alla noder i princip lika hög rank eftersom alla länkar är helt slumpmässiga inom dess intervall. Detta är alltså en förenklad version av internets blockstruktur.

3.2.1 Undersökning med 3 slumpmässiga block

Först presenteras resultat från en undersökning av en helt slumpmässig internet- graf. Figur 7 har exakt samma struktur som den slumpmässiga grafen.

Figur 7: Graf med blockstruktur.

Grafen i Figur 7 har 15 noder och det är en tydlig blockstruktur i grafen med tre block som sammankopplas av länkarna mellan nod 3 och 7 samt nod 8 och 12.

I undersökningen var den slumpmässiga grafen betydligt större. Den hade totalt 9000 noder och varje nod länkade till 1000 andra noder eller 999 noder och sig själv. Den hade exakt samma struktur som ovanstående figur. Den var uppdelad i tre block med 3000 noder i varje block och endast en länk mellan varje block, se Figur 8.

Resultatet för 5000 beräkningar av globala PageRank-värdet var att snittiden för potensmetoden med en helt slumpmässig startvektor tog 0.2187 sekunder för att uppnå konvergens vid en önskad tolerans. Tiden mättes med MATLAB-funktionen

(22)

tic/toc.

Detta ska jämföras med BlockRank-algoritmen, som beräknade lokala PageRank- värden för 50000 upprepningar för de tre blocken under snittiden 0.0273 sekun- der. Vidare utfördes 50000 upprepningar för beräkning av vektorn b och dess PageRank-värde över de tre blocken för att slutligen skapa en approximativ start- vektor och beräkning av globala PageRank-algoritm med denna vektor tog tiden 0.0914 sekunder alltså blev den totala tiden, 0.1180 sekunder.

PageRank BlockRank

Antal block 1 3

Antal noder 9000 9000

Tid 0.2187 0.1180

Tabell 4: Jämförelse av de två metoderna.

Det är enkelt att verifiera att båda metoderna konvergerar till samma vektor.

PageRank-algoritmen beräknade en vektor som är en rankning för alla hemsidor- na i grafen och BlockRank-algoritmen beräknade också en sådan vektor. För att BlockRank-algoritmen skall vara korrekt måste vektorerna vara desamma. Där- för skapades en vektor vars element är en kvot av de två vektorernas element och MATLAB-funktionen max (denna vektor) gav, 1.0017, och min(denna vek- tor), 0.9978. Alltså var dessa vektorer väldigt lika varandra. Eventuella skillnader kan bero på avrundningsfel från alla beräkningar som utförs.

PageRank-värden för dessa vektorer var väldigt jämnt fördelade, de låg i inter- vallet från 1.017 · 10−4 till 1.2 · 10−4, vilket är rimligt eftersom att orsaken till att någon nod i grafen får fler länkar är helt slumpmässig och denna fördelning är samma för varje nod. Därför borde inte nodernas ranking skilja sig mycket.

Eftersom att de slutgiltiga vektorerna för PageRank-och BlockRank-algoritmen gav i princip likadan rankning av den globala grafen, kan slutsatsen dras att BlockRank-algoritmen för en sådan blockuppdelning endast kräver 54 procent av tiden för PageRank-algoritmen.

(23)

Figur 8: Visualisering av den slumpmässigt framtagna grannmatrisen.

Utveckling med MATLAB-funktionen sparse

Matrisen i denna undersökning var en 9000×9000 matris. I varje kolumn var det to- talt 1000 nollskillda element, vilket innebär att endast 19 av matrisen var fylld med nollskillda element. (Notera att detta gäller för matrisen innan alla modifikationer som gjordes i Sektion 2. Efter modifikationerna så var alla element nollskillda.

Användningen av sparse-funktionen tillämpas på matrisen A innan modifikatio- nerna.) Eftersom att 12 > 19 är matrisen gles. Dessutom är de matriserna för lokala PageRank-värdena glesa med en kvot lika med 13. Därav tillämpades MATLAB- funktionen sparse på grannmatriser för både PageRank-och BlockRank-algoritmen och följande utveckling i beräkningstid uppnåddes: De lokala PageRanks beräkna- des med 0.0247 sekunder jämfört med tidigare 0.0273 sekunder. BlockRank beräk- nades med 0.0749 jämfört med tidigare 0.0914 sekunder sekunder vilket gav total tid = 0.0996. Ordinär PageRank beräknades inom 0.1180 sekunder.

PageRank BlockRank

Antal block 1 3

Antal noder 9000 9000

Tid 0.1797 0.0996

Tabell 5: Jämförelse av de två metoderna efter användning av sparse-funktionen i MATLAB.

Beräkningarna gjordes återigen för snittiden för 5000 mätningar.

(24)

3.2.2 Undersökning med olika antal slumpmässiga block

I första steget av denna undersökning utvecklades ovanstående blockdiagram till 6 block istället för 3. Varje block bestod av 1500 noder där varje nod länkade till 1000 andra slumpmässiga noder, med undantag för en nod i varje block som länkade till 999 andra noder i samma block och hade en länk till nästa block. Notera att alla be- räkningar gjordes utan sparse-funktionen. Funktionen användes inte eftersom att jämförelsen av hur antalet block påverkar beräkningstiden blev tydligare utan den.

BlockRank-algoritmen beräknade lokala PageRank-vektorer för 50000 upprepning- ar för de 6 blocken under snitttiden 0.005 sekunder. Beräkningar av vektorn b och dess PageRank-vektor över de 6 blocken och beräkning av den ordinära PageRank- vektorn med approximativ startvektor tog tiden 0.0630 sekunder. Totala tiden blev 0.0680 sekunder.

Nästa steg av denna undersökning var samma som de ovanstående men med 9 block. Varje block bestod av 1000 noder där varje nod länkade till 990 andra slumpmässiga noder, med undantag för en nod i varje block som länkade till 989 andra noder i samma block och hade en länk till nästa block.

BlockRank-algoritmen beräknade lokala PageRanks för 50000 upprepningar för de 9 blocken under snitttiden 0.004 sekunder. Beräkningar av vektorn b och dess PageRank-vektor över de 9 blocken och beräkning av ordinär PageRank-vektor med approximativ startvektor tog tiden 0.0462 sekunder. Totala tiden blev 0.0502 sekunder.

Algoritm BlockRank BlockRank

Antal block 6 9

Antal noder 9000 9000

Tid 0.0680 0.0502

Tabell 6: BlockRank med 6 och 9 block.

(25)

Beräkningstid mot antalet block

Figur 9: Beräkningstid mot antalet block.

Figur 9 presenterar resultatet från de ovanstående delsektionerna. Det är ett rim- ligt resultat att med ökande antal block minskar beräkningstiden. Ett större antal block medför att matrismultiplikationen utförs snabbare vilket möjliggör en tids- vinst.

Alltså är BlockRank-algoritmen bättre anpassad till internets struktur och där- av ett bättre val för beräkningen av hemsidornas rank.

Internets blockstruktur

BlockRank-algoritmen bygger på att internet har en blockstruktur. För att få en faktisk bild av strukturen för internet användes en funktion i MATLAB som ska- par en grannmatris för en önskad hemsida och av önskad storlek. Denna funktion var hämtad från Numerical Computing with Matlab [16].

Först undersöktes KTH:s hemsida, genom att ta fram grannmatrisen av olika stor- lek för www.kth.se. Blockstukturen för det första försöket var en 500 × 500 matris som verifierade hypotesen om internets blockstruktur även om denna inte var li- ka perfekt som för de slumpmässiga graferna. Dock ett försök för att skapa en matris av samma storlek som de slumpmässigt framtagna matriserna gav sämre resultat. Strukturen för denna matris var blockuppdelat. Däremot var den väldigt gles, vilket förmodligen beror på att MATLAB-funktionen var för enkel för en

(26)

sådan beräkning och missade en del länkar. Nedan presenteras visualiseringen av blockstrukturen för de olika matriserna.

(a) Visualisiering av grannmatrisen av stor- lek 500 × 500.

(b) Visualisiering av grannmatrisen av stor- lek 9000 × 9000.

Figur 10: Visualisiering av grannmatrisen för www.kth.se.

Undersökningen upprepades även för www.google.se. Denna hemsida hade samma tendens; matrisen av liten storlek gav lovande resultat däremot försöken för att ska- pa stora matriser blev misslyckade på grund av hur glesa dessa var. Nedanstående figurer beskriver matriser för google av storlek 1000 × 1000 samt 20000 × 20000.

(a) Visualisiering av grannmatrisen av stor- lek 1000 × 1000.

(b) Visualisiering av grannmatrisen av stor- lek 20000 × 20000.

Figur 11: Visualiseringen av grannmatrisen för www.google.se.

(27)

4 Algoritmens känslighet

4.1 Parametern α

Ekvationen för Google-matrisen ges i Ekvation 5 och ser ut på följande sätt A = α ˜A + (1 − α) 1

N11T (19)

Parametern α som varierar mellan 0 och 1 är en skalningsfaktor som kontrollerar hur mycket internets naturliga hyperlänkstruktur prioriteras [6]. Då det är en av de få parametrarna i modellen påverkar den förmodligen känsligheten hos algoritmen.

Detta undersöks i de kommande avsnitten.

4.2 Variationer av algoritmen

4.2.1 Intelligent surfer-modellen

Den så kallade Intelligent surfer-modellen är en variation av den grundläggande modellen där länkarna till sidor är viktade för att förbättra sökresultaten. Vikterna beror på vad internetsurfaren söker på och hur relevant varje länk är till sökningen.

Alltså om en sida har relevant information som är relaterad till sökningen så kom- mer sannolikheten att surfaren trycker på den länken vara större. Om en hemsida inte har några länkar eller om länkarna inte har någon relevans så skapas länkar från sidan till alla andra hemsidor i internetgrafen som i Random surfer -modellen [17].

4.2.2 Användarbaserad ranking

En annan variation av den grundläggande modellen är den så kallade användarba- serade modellen. Poängen med denna modifikation är att spara gammal data för att förbättra framtida sökningar. På detta sätt kommer internetsurfaren inte att flytta sig slumpmässigt till en hemsida, utan istället flytta sig till sidor som är på något sätt relaterade till tidigare sökningar eller annan internetanvändning. Detta implementeras genom att ersätta 1T i Ekvation (19) med en sannolikhetsvektor aTa > 0 som är baserad på gammal data. Följande struktur på matrisen A fås [6]

A = α ˜A + (1 − α)1

N1aTa (20)

(28)

Eftersom vektorn aTa är baserad på gammal data blir det svårt att undersöka hur denna modifikation påverkar känsligheten hos algoritmen. Det går att slumpgene- rera vektorn men då blir det inte en intressant undersökning. På grund av detta undersöktes inte denna variation av algoritmen.

4.3 Parameterstudie av α

4.3.1 Random surfer-modellen

En parameterstudie av α gjordes genom att köra algoritmen för varierande värden på α. Detta gjordes genom att öka parametern med 0.01 för varje steg. För att mäta konvergenshastigheten mättes antalet iterationer det tog för potensmetoden att konvergera till en vektor med alla PageRank-värden, givet en tolerans på 10−6. Detta gjordes ett upprepat antal gånger för att sedan beräkna ett medelvärde av alla mätningar. Mätningarna gjordes upp till 20000 gånger där antalet mätningar berodde på storleken av grafen. Detta gjordes för noggrannare resultat och bättre figurer att analysera.

Grafen i Figur 5 undersöktes först. PageRank-värdena varierade enligt följande figur

Figur 12: PageRank-värden för olika α.

där PR1 är PageRank-värdet för nod 1 osv. Notera att PR4 är täckt av PR5, vilket betyder att de beter sig på samma sätt med ökande α. Detta är tydligare i

(29)

Tabell 1. Det som är tydligt i figuren är att nod 3 ökar mest då α ökar. Detta är rimligt då med ökande α så minskar faktorn för random surfer i algoritmen och då dominerar strukturen hos grafen. I detta fall är nod 3 den som har flest länkar och har därför högst PageRank. Det som också är tydligt i figuren är att alla värden inte är känsliga för små störningar i α, dvs. att då α ändras lite sker det ingen drastisk förändring i PageRank-vektorn.

Konvergenshastigheten undersöktes också för grafen i Figur 5 och resultaten visas i Figur 13(a). Konvergenshastigheten undersöktes även för en större slumpgenererad graf av storlek 93 × 93 för att sedan jämföra dessa. Resultaten för den större grafen presenteras i Figur 13(b).

(a) Konvergenshastigheten för en liten graf. (b) Konvergenshastigheten en stor graf.

Figur 13: Konvergenshastigheten för grafen i Figur 5 (a) och för en graf med storlek 93 × 93 (b).

För den mindre grafen ökar konvergenshastigheten linjärt för α < 0.5 och går från ca 3 till 10 iterationer. Efter att α har passerat 0.5, ökar antalet iterationer fortare och går från ca 10 till 27 iterationer. Alltså ökar konvergenshastigheten 4 gånger så fort som för α < 0.5. I jämförelse, beter sig konvergenshastigheten annorlunda för den större grafen. Här är ökningen icke-linjär och homogen överallt. Det underliga med Figur 13(b) är att det tar i genomsnitt färre iterationer än för den mindre grafen. Detta kan bero på att grafen är bättre balanserad med fler länkar som ger en snabbare konvergens.

(30)

För att undersöka parametern α och dess påverkan djupare skapades grafen i Figur 14(a) som sedan modifierades till grafen i Figur 14(b).

(a) Den ursprungliga grafen. (b) Den modifierade grafen.

Figur 14: En designad graf.

Resultaten för grafen i Figur 14(a) presenteras i Figurerna 15(a) och 15(b).

(a) PageRank-värden för grafen. (b) Konvergenshastigheten för grafen.

Figur 15: Resultat för grafen i Figur 14(a).

Resultaten för denna graf är annorlunda än tidigare. Alla PageRank-värden blir instabila då α > ≈ 0.9. Instabiliteterna syns i grafen då derivatan för dessa värden

(31)

ökar för stora α. Sedan syns det även att nodernas PageRank-värden är uppdelade i två grupper, där ena gruppens värden går mot 0. Detta är noderna i den övre delen av grafen. Den nedre delen av grafen dominerar i popularitet då noderna 4, 5, 6 utgör en sluten graf. Detta betyder om en internetsurfare kommer till nod 4 så kommer surfaren inte ut från loopen. Då α går mot 1 kommer random surfer - modifikationen att försvinna och därför går de övre nodernas PageRank-värden mot 0.

Att grafen är dåligt designad syns även i resultaten för konvergenshastigheten i Figur 15(b). Då α går mot 1 ökar antalet iterationer kraftigt men sjunker sedan precis då α blir 1. Detta kan bero på att det tar längre tid för algoritmen att kon- vergera då de mest populära noderna finns i den nedre loopen. För varje iteration flyttas det mindre och mindre rank till nod 4, 5, 6 och på grund av detta ökar tiden exponentiellt. Detta tyder på att algoritmen för just denna graf är extremt känslig och instabil då α > 0.9.

Resultaten för grafen i Figur 14(b) presenteras i Figurerna 16(a) och 16(b).

(a) PageRank-värden för grafen. (b) Konvergenshastigheten för grafen.

Figur 16: Resultat för grafen i Figur 14(b).

Resultaten för denna graf skiljer sig mot resultaten för den icke-modifierade grafen.

På samma sätt delas grafen upp i två grupper vars PageRank-värden antingen går mot 0 eller delas jämnt. Skillnaden här är att nod 5 och 6 pekar på varandra och

(32)

har därför bättre ranking än nod 4. Det märkbara i resultaten är att konvergens- hastigheten inte är instabil längre. Den beter sig som förväntat med både linjär ökning och en snabbare icke-linjär ökning då α blir större. Detta beror förmodligen på att grafen är liten och då antalet noder ökar så övergår ökningen till en ökning av exponentiell karaktär. Däremot är grafen fortfarande uppdelad, vilket betyder att instabiliteterna inte beror på blockuppdelningen.

Liknande grafer skapades för att undersöka om det var dubbellänken som löste problemet med konvergenshastigheten. Det visade sig att för större enkelriktade grafer hade kurvan för konvergenshastigheten samma utseende som i Figur 15(b).

Alltså tar algoritmen väldigt lång tid för enkelriktade grafer då α > 0.9. Vad detta beror på är oklart.

Alltså visar resultaten att konvergenshastigheten beror på om grafen är enkelriktad eller ej. Detta medför att konvergenshastigheten för grafer som är enkelriktade, är extra känslig för variation av parametern α, då parametern är större än 0.9. An- ledningen till detta fenomen är oklart. Det är också tydligt att PageRank-värden blir känsligare för förändring då α > 0.9. Detta syns i figurerna då derivatan av värden ökar och därmed blir linjerna brantare. Från resultaten dras slutsatsen att algoritmens känslighet påverkas markant då parametern α > 0.9.

Från resultaten ovan syns det att α påverkar känsligheten hos algoritmen och även konvergenshastigheten då parametern ökar. Detta förklarar varför Brin och Page valde α = 0.85. Det visar sig vara ett värde som ger en stabil algoritm men som också konvergerar snabbt. I resultaten är det tydligt att då variabeln blir större än ca 0.9 så ökar konvergenshastigheten exponentiellt. Känsligheten hos PageRank- värden ökar också mycket vid denna punkt och därmed är det bäst att ha ett värde på α < 0.9. Samtidigt är det önskat att ha ett stort värde på parametern för att behålla internets naturliga struktur och inte inkludera slumpmässigheten i alltför stor utsträckning.

(33)

4.3.2 Intelligent surfer-modellen

På samma sätt som i föregående avsnitt, undersöktes känsligheten hos algoritmen för Intelligent surfer-modellen. För att kunna jämföra de olika modellerna under- söktes en viktad version av grafen i Figur 14(a) och en viktad version av grafen i Figur 14(b). Dessa grafer presenteras i Figurerna 17(a) och 17(b).

(a) Den ursprungliga grafen med viktade länkar.

(b) Den modifierade grafen med viktade län- kar.

Figur 17: En designad viktad graf.

Resultaten för grafen i Figur 17(a) presenteras i Figurerna 18(a) och 18(b). Resul- taten för den modifierade grafen i Figur 17(b) presenteras i Figurerna 19(a) och 19(b).

(34)

(a) PageRank-värden för grafen. (b) Konvergenshastigheten för grafen.

Figur 18: Resultat för grafen i Figur 17(a).

(a) PageRank-värden för grafen. (b) Konvergenshastigheten för grafen.

Figur 19: Resultat för grafen i Figur 17(b).

4.3.3 Jämförelse av de två modellerna

Resultaten från föregående sektion skiljer sig inte mycket från resultaten i Sektion 4.3.1. Konvergenshastigheten skiljer sig inte alls och beter sig på samma sätt för bå- da modellerna. Figurerna för PageRank-värden skiljer sig däremot, vilket orsakas av de viktade länkarna. Detta är inte förvånande då i Random surfer -modellen är alla länkar viktade med 1, medan i Intelligent surfer -modellen är länkarna viktade beroende på vad internetsurfaren söker på. I Figur 18(a) syns även instabiliteterna

(35)

då α är stort.

Slutsatsen från denna jämförelse är att det inte blir någon större skillnad i känslig- het mellan de olika modellerna. Konvergenshastigheten är nästan identisk medan PageRank-värden varierar beroende på hur länkarna i grafen är viktade. Slutsat- serna från Sektion 4.3.1 gäller även för Intelligent surfer -modellen.

5 Sökmotoroptimering

Search engine optimization (SEO) är olika sätt att förbättra en hemsidas rank.

Detta görs för att sidan ska bli mer relevant och hamna högre upp på sökningen när någon söker på specifika termer. Det är vanligt att företag optimerar sina si- dor för att göra reklam och öka populariteten på sina hemsidor. Det finns främst fem etiskt korrekta sätt att sökmotoroptimera en hemsida enligt Michigan Tech University [18]. Dessa presenteras nedan.

1. Publicera relevant innehåll

Att ha innehåll av hög kvalité på sin hemsida är det viktigaste och kommer öka sidans rank mest. För att öka den ytterligare bör skaparen fokusera på endast ett par nyckelord inom ett visst område. Dessa ord bör vara vanligt använda begrepp inom området och tanken är att det ska vara ord som folk ofta söker på. Fort- sättningvis är placeringen av dessa nyckelord väldigt viktigt. Optimalt bör orden finnas med i hemsidans internetadress (URL) men även i titeln på hemsidan och i rubriker. Däremot ska nyckelorden inte vara i alla rubriker för att det då kan bli för mycket för internetsurfaren och då sänks kvalitén på hemsidan. Till sist bör nyckelbegreppen upprepas ett antal gånger i texten på hemsidan, speciellt i inledningen och i sammanfattningen. De bör även vara skrivna i fet eller kursiv stil för att ytterligare få dem att stå ut.

2. Uppdatera innehållet regelbundet

Som tidigare nämnts, är innehållet det viktigaste på en hemsida. På grund av detta är det extra viktigt att informationen är uppdaterad. Att ha en regelbundet upp- daterad hemsida är en av de bästa egenskaperna hos en sida och ökar relevansen markant.

(36)

3. Metadata

Metadata eller information om data är uppdelat i tre grupper för en hemsida. I dessa grupper beskrivs vad sidan innehåller och underlättar sökningen för sökmo- torer och därmed ökar chansen för att en internetsurfare ska trycka på länken. Den första gruppen består av metadata för titlarna och då ger information om titlarna som finns på hemsidan. Denna data är den viktigaste för en bra ranking. Den andra gruppen består av information om innehållet på hemsidan. Det är optimalt att ge en kort men utförlig förklaring för att uppmuntra surfare att trycka på länken till sidan. En bra beskrivning som består av två meningar är det vanligaste. Den sista och minst viktiga gruppen är metadata om nyckelorden. Denna används sällan då nyckelorden redan används mycket i texten men det skadar inte att lägga till denna information i form av fraser.

4. Använda en länkvärdig hemsida

Det är viktigt att ha relevanta länkar på hemsidan. I texten ska dessa skapas med hjälp av nyckelorden som används i texten och då beskriver vart länken leder.

Detta eftersom "Klicka här" länkar inte har något sökmotorvärde förutom själva internetadressen, och då inte kommer förbättra en hemsidas rank alls. Väl genom- tänkta länkar inte bara ökar länkens och hemsidans rank, utan även förbättrar upplevelsen för internetsurfaren, speciellt för dem som använder skärmläsare.

5. Använda alternativa beskrivningar

Att använda alternativ text som förklarar bilder på hemsidan är bra för hemsidans rank. Detta för att sökmotorer lättare ska hitta sidan men också för att underlätta användningen för de som använder endast-text webbläsare eller skärmläsare.

5.1 Undersökning av SEO

En hemsidas ranking påverkas av vilka sidor som länkar till den men också vilka sidor som hemsidan länkar till. Beroende på PageRank-värdet hos noderna i ett nätverk, är alla länkar olika viktiga. För att se hur hemsidors ranking påverkas av länkar, gjordes en undersökning genom att skapa grafen i Figur 20 där länkar lades till eller togs bort. Algoritmen kördes med α = 0.85.

(37)

Figur 20: En graf med många länkar.

I början beräknades PageRank för grafen ovan. Sedan togs följande länkar bort:

6 → 5, 5 → 1, 2 → 6. Efter detta lades följande länkar till: 5 → 3, 6 → 2.

Resultaten presenteras i tabellen nedan. Notera att länkarna togs bort och lades till permanent.

PageRank Orginal −(6 → 5) −(5 → 1) −(2 → 6) +(5 → 3) +(6 → 2)

PR1 0.1870 0.2549 0.2175 0.1775 0.1435 0.0797

PR2 0.1366 0.1278 0.1443 0.1619 0.1593 0.2163

PR3 0.0780 0.0972 0.0866 0.0753 0.1394 0.1286

PR4 0.1313 0.1210 0.1403 0.1611 0.1580 0.1607

PR5 0.2581 0.1929 0.1848 0.2449 0.2603 0.2861

PR6 0.2091 0.2062 0.2265 0.1794 0.1394 0.1286

Tabell 7: PageRank-värden för noderna i grafen ovan.

PageRank-värderna för den omodifierade grafen är förväntade. Nod 5 och 6 är de mest populära sidorna då de har flest länkar som länkar till dem. Även nod 1 är populär eftersom både nod 5 och 6 länkar till den noden. Efter att den första länken mellan nod 6 och 5 togs bort blev plötsligt nod 1 den mest populära noden.

Detta eftersom att nod 6, som tidigare var populär, endast länkade till nod 1. Efter att länken mellan nod 5 och 1 togs bort, förändrades alla PageRank-värden endast lite. Efter att länken mellan nod 2 och 6 togs bort, ökade nod 5:s PageRank-värde väldigt mycket medan nod 6:s värde minskade, vilket berodde på att nod 5 låg i centrum och hade flest länkar som länkade till den. För att öka nod 3:s PageRank- värde skapades en länk från nod 5 till 3, vilket ökade nod 3:s värde. Till slut lades

(38)

den sista länken mellan nod 6 och 2 till, vilket minskade nod 1:s och 6:s PageRank- värde men ökade nod 5 till ett rekordhögt värde på 0.2861. Detta verkar rimligt då nod 2 länkar till nod 5 och då nod 2:s PageRank-värde ökar kommer även nod 5:s värde öka. Alltså är resultaten rimliga och visar hur effektivt länkar kan påverka en sidas PageRank. Slutsatsen som kan dras är att länkar är väsentliga för att en hemsidas PageRank ska vara bra.

6 Slutsatser

I det här arbetet undersöktes PageRank-algoritmen, dess känslighet samt hur en hemsidas PageRank kan förbättras med hjälp av sökmotoroptimering. Resultaten blev att BlockRank-algoritmen som utnyttjar blockstrukturen av matriser var ett snabbare alternativ när antalet block ökade. Tyvärr kunde inte internets block- struktur verifieras för stora grafer men de i arbetet använda källorna verifierade detta. Som följd av resultaten och blockstrukturen på internet drogs slutsatsen om att BlockRank-algoritmen är den mer optimerade versionen av algoritmen för beräkning av PageRank. Fortsättningvis, undersöktes känsligheten hos den vanliga PageRank-algoritmen. Resultaten blev att med ökat α ökade antalet iterationer det tog för algoritmen att konvergera. Enkelriktade grafer hade även mycket säm- re konvergenshastighet än grafer som inte var det. PageRank-värden blev också mycket känsligare för störning då parametern ökade. Slutsatsen som drogs från dessa resultat var att parametern α påverkar känsligheten hos algoritmen i stor utsträckning och då α går mot 1, blir algoritmen extremt känslig för störningar.

Till sist, undersöktes sökmotoroptimering av hemsidor och hur just länkar påver- kar PageRank-vektorn för en graf. Resultaten blev att då länkar mellan noder togs bort förändrades PageRank-värden märkbart. Från detta drogs slutsatsen om att länkar på en hemsida är väsentliga för en bra PageRank.

(39)

Referenser

[1] Brin S., Page L. (1998), The anatomy of a large-scale hypertextual Web search engine, Stanford University, Stanford.

[2] Net Marketshare (2017), Search Engine Market Share. Hämtad den 2020-02-07 från https://netmarketshare.com/search-engine-market-share.aspx.

[3] Barysevich. A (2019), Why we shouldn’t forget about PageRank in 2019. Hämtad den 2020-04-09 från https://searchengineland.com/

why-we-shouldnt-forget-about-pagerank-in-2019-315443.

[4] Wikipedia (2020), PageRank. Hämtad den 2020-04-09 från https://en.

wikipedia.org/wiki/PageRank.

[5] Link-Assistant (2019), The Vice and Virtue of PageRank (2019 edition).

Hämtad den 2020-04-26 från https://www.link-assistant.com/news/

google-page-rank-2019.html.

[6] Langville A., Meyer C., Google’s PageRank and Beyond: The Science of Search Engine Rankings, Princeton & Stanford Univerity, Princeton.

[7] Internet live stats (2020), Total number of Websites. Hämtad den 2020-04-26 från https://www.internetlivestats.com/total-number-of-websites/.

[8] Wikipedia (2018), Graf(grafteori). Hämtad den 2020-02-15 från https://sv.

wikipedia.org/wiki/Graf_(grafteori).

[9] Tornberg A-K (2013), Graph Models The PageRank Algorithm, Royal Institute of Technology, Stockholm.

[10] Wikipedia (2019), Gles matris. Hämtad den 2020-02-19 från https://sv.

wikipedia.org/wiki/Gles_matris.

[11] Klappenecker A. (2018), Markov Chains, Texas AM University, Texas.

[12] Sepandar D. K., Taher H. H, Christopher D. M, Gene H. G. (2003), Exploiting the Block Structure of the Web for Computing PageRank, Stanford University, Stanford.

(40)

[13] Wikipedia (2017), Stokastisk matris. Hämtad den 2020-02-17 från https://

sv.wikipedia.org/wiki/Stokastisk_matris.

[14] Wikipedia (2014), Perron-Frobenius sats. Hämtad den 2020-02-19 från https:

//sv.wikipedia.org/wiki/Perron-Frobenius_sats.

[15] Timothy Sauer (2017) Numerical Analysis Second Edition.

[16] Cleve Moler (2020). Numerical Computing with MATLAB https://www.mathworks.com/matlabcentral/fileexchange/

37976-numerical-computing-with-matlab, MATLAB Central File Exchange. Retrieved April 28, 2020.

[17] Richardson M., Domingos P., The Intelligent Surfer: Probabilistic Combina- tion of Link and Content Information in PageRank, Univerity of Washington, Seattle.

[18] Michigan Technological University, Five Ways to Improve your Site’s Ranking (SEO). Hämtad den 2020-03-25 från https://www.mtu.edu/umc/services/

digital/seo/.

(41)

References

Related documents

Konstruerad Ritad Granskad Godkänd Datum

För att öka kontrollen av den snabbt växande marknaden har den kinesiska regeringen publicerat nya regler och förändrade rutiner för tillsyn av marknaden för medicinsk

[r]

VYKRES MATERIAL POZNAMKA JED.. OZNACENI

Äldre personer som vårdas på sjukhus på grund av akut sjukdom löper ökad risk för försämrad funktionell status.. Studier indikerar att träning under sjukhusvistelsen kan

[r]

Hur lönenivån utvecklas har en avgörande betydelse för den totala ekonomiska tillväxten och beror långsiktigt till största delen på hur produktiviteten i näringslivet

Risken för framtida havsytehöjning bedöms inte utgöra något hot mot området då den befintliga bebyggelsen ligger som lägst på +4 meter och markområden för ny