Uma boa unidade de medida para definir o PageRank de uma página pode ser a percentagem (%) de páginas que ela é mais importante. Por exemplo, se uma página tem PageRank de 33% significa que ela é mais importante que um terço de toda a Web. Se o seu PageRank é 99% significa que ela é superior a quase todas as páginas da Web.
Métrica PageRank para os nós de uma rede simples, expressos em percentagens. (O Google usa uma escala logarítmica). O nó C tem um valor de PageRank mais elevado do que o nó E, apesar de existirem poucas ligações para C, a ligação para C vem de um nó importante e, portanto, tem um valor elevado. Se um utilizador começar num nó aleatório com uma probabilidade de 85% de escolher uma ligação aleatória a partir do nó que está a visitar no momento, e uma probabilidade de 15% de saltar para um nó escolhido aleatoriamente de toda a rede, esse utilizador vai chegar ao nó E 8,1% das vezes. (A probabilidade de 15% de saltar para um nó arbitrário corresponde a um fator de amortecimento de 85%). Sem amortecimento, qualquer utilizador acabariam nos nós A, B, ou C, e todos os outros teriam o valor zero para PageRank. Através da utilização do fator de amortecimento, o nó A está ligado a todos os nós da rede, mesmo que não tenha ligações para outros nós.
ageRank foi desenvolvido na
Universidade de Stanford por
Larry Page (daí o nome Page Rank
3 ) e
Sergey Brin em 1996
4 , no contexto de um projeto de investigação sobre um novo tipo de motor de busca
5 6 . Sergey Brin teve a ideia de que a informação na web poderiam ser ordenada numa hierarquia de "popularidade de ligações": Uma página é mais importante se tiver mais hiperligações a apontar para si. Foi co-autoria de Rajeev Motwani e Winograd Terry. O primeiro artigo sobre o projeto, descrevendo a métrica PageRank e o protótipo inicial do motor de busca Google, foi publicado em 1998
5 . Logo depois, Page e Brin fundaram a Google Inc., a empresa por trás do motor de busca Google.
A métrica PageRank foi inspirada na análise de citações, desenvolvida por Eugene Garfield em 1950 na Universidade da Pensilvânia, e pelo método “Hyper Search”, desenvolvido por Massimo Marchiori, da Universidade de Pádua. No mesmo ano, foi introduzido o PageRank (1998), Jon Kleinberg publicou seu trabalho sobre HITS . Os fundadores do Google citaram Marchiori, e Kleinberg no seu artigo original
5 .
Um motor de busca chamado "RankDex" da IDD Information Services, desenhado por Robin Li, desde 1996, já explorava uma estratégia semelhante para pontuação e ranking de páginas
7 . A tecnologia utilizada em RankDex foi patenteada em 1999
8 e usada mais tarde quando Li fundou a Baidu na China.
9 10 O trabalho de Li está referenciado em algumas patentes, de métodos de pesquisa do Google, de Larry Page.
11
A métrica PageRank de uma página representa a probabilidade de uma pessoa chegar a essa página, clicando aleatoriamente em hiperligações. O cálculo de PageRank é escalável, ou seja, é executável em tempo útil se aumentarmos consideravelmente o número de páginas da rede. O cálculo de PageRank é iterativo, ou seja, exige várias passagens, chamadas de "iterações", os valores obtidos em cada iteração convergem para os valores desejados de PageRank. Na primeira iteração é atribuído um valor de PageRank inicial
igual para todas as páginas (N é o número total de páginas).
Imagine uma rede de apenas 4 páginas A, B, C e D. As ligações de uma página a si própria e as ligações múltiplas entre duas páginas são ignoradas.
Inicialmente, a soma dos valores de PageRank de todas as páginas da web correspondia ao número de páginas na web. Em versões posteriores, o PageRank, passou a assumir valores entre 0 e 1, representando uma distribuição probabilística, ou seja, a probabilidade de um utilizador, percorrendo ligações aleatoriamente, chegue a uma determinada página.
No primeiro passo do processo de cálculo iterativo do PageRank, todas as páginas têm o mesmo valor de PageRank. No nosso exemplo de 4 páginas, o primeiro passo consiste em atribuir o valor 0,25 de PageRank a cada uma das quatro páginas. Note-se que a soma dos valores de PageRank de todas as páginas é 1.
Fig. 1- Todas as páginas têm apenas uma referência para a página A.
Numa rede com a configuração da figura em cima, na segunda iteração, cada ligação transfere o valor 0,25 para o PageRank de A, ou seja:
Fig. 2- Páginas que referenciam mais de uma página.
No caso da rede em cima, na segunda iteração, o valor de B é transferido metade para A (0,125) e outra metade para C (0,125). Como D referencia 3 páginas, o seu valor a transferir é dividido por três, neste caso o PageRank de A recebe os seguintes valores.
Portanto, a contribuição de uma ligação para o PageRank da página referenciada, é igual ao valor de PageRank da página com a ligação, dividido pelo número de ligações que a página contém. Se representarmos por L() o número de ligações de uma página, podemos reescrever a expressão em cima, para a nossa rede de 4 páginas:
Generalizando, o valor de PageRank para uma página u pode ser expresso da seguinte forma:
O valor de PageRank de uma página u, depende dos valores de PageRank de cada página v contida no conjunto Bu (conjunto de todas as páginas que referenciam u), dividido pelo número de referências L(v) existentes em v.
O processo iterativo de cálculo de PageRank encontra problemas quando uma página não tem ligação a outras páginas.
Fig. 3- Página sem ligação.
Se for aplicado o cálculo à rede da figura anterior, acabamos por obter o valor zero para ambas as páginas
A e
B 12 . Em cada iteração,
B recebe algum do PageRank de
A(neste caso particular
B recebe todo o PageRank de
A, mas numa rede mais complexa onde
A tivesse ligações a outras páginas,
B receberia apenas uma parte do PageRank), mas como
B não tem ligações, não passa o seu valor a outras páginas, neste caso
A. Isto produz um efeito de drenagem do PageRank para fora da rede.
Outro problema encontrado no cálculo do PageRank acontece quando uma rede contém um ciclo (rank sink).
Fig. 4- Exemplo de um ciclo (rank sink).
Considere-se um ciclo fechado de páginas ligadas entre si, mas que nenhuma das páginas ligue a uma página fora do ciclo. Num cenário destes, o cálculo do PageRank fica "preso" no ciclo infinito, em cada iteração o valor de PageRank é transmitido de uma página para outra do ciclo, sem nunca distribuir o valor para páginas fora do ciclo
12 e sem que os valores convirjam para valores estacionários de PageRank.
Os problemas acima descritos são resolvidos por um conceito introduzido pelo PageRank e designado por fator de amortecimento. A teoria de PageRank considera que um utilizador (ou surfista) imaginário que siga as ligações entre as páginas, aleatoriamente, acabará por se aborrecer e parar de seguir as ligações. A probabilidade, em cada passo, de o utilizador continuar a seguir as ligações é o fator de amortecimento d. O fator de amortecimento, sendo uma probabilidade, pode variar entre 0 e 1.
Desta forma o valor de PR(A) passa a ter uma componente correspondente à contribuição das páginas que apontam para A, ponderado pela probabilidade d do utilizador seguir as ligações das páginas:
e uma componente correspondente ao utilizador ter selecionada a página aleatoriamente ponderado pela probabilidade de o utilizador não seguir as ligações das páginas (1-d)
Com a introdução do fator de amortecimento
d, o cálculo do valor de PageRank, passa a ter a seguinte expressão,
representa o número total de páginas:
Existem outras variantes para o cálculo de PageRank, mas a expressão em cima tem a particularidade de a soma dos valores de PageRank de todas as páginas ser 1. Obtém-se desta forma uma distribuição probabilística, ou seja, a probabilidade de um utilizador chegar à página A.
O fator de amortecimento introduz as seguintes características no cálculo de PageRank:
- Uma página, pelo simples facto de existir, tem uma probabilidade igual a todas as outras de ser selecionada pela escolha aleatória de um utilizador
- Uma página que não tenha ligações está ligada a todas as páginas da rede
- Resolução dos problemas de páginas sem ligações e ciclos (rank sink).
O fator de amortecimento
d pode assumir valores entre zero e 1, como já foi indicado. Com
d = 1, passamos à forma simplificada do algoritmo, com
d = 0, não é atribuído nenhum peso à estrutura de hiperligações entre páginas da rede, todas as páginas ficam com o valor de PageRank igual a
, onde
é o número de páginas da rede. Portanto, quanto mais próximo estiver
d de 1, maior é o peso dado á estrutura da rede. É normalmente atribuído o valor 0,85 para o fator de amortecimento
5 .
Assumindo que a rede é constituída pelas
páginas
P1,
P2, …,
Pn,
M(Pi) representa o conjunto de páginas que referenciam
Pi,
L(Pj) representa o número de referências na página
Pj. A expressão para o cálculo do valor de PageRank, pode ser reescrito da seguinte forma:
- (*)
O vetor R que contém o valor de PageRank para todas das páginas pode ser representado da seguinte forma
Construindo uma matriz de transição
M de nxn, onde n é o número total de páginas, um elemento
Mij (linha
i e coluna
j) é dado pela função
:
- , se não existe referência da página pj para a página pi
- , se existe referência da página pj para a página pi, : é o número de referências existentes em pj (grau de saída ou número de ligações que saem de pj)
- Note-se que a função está normalizada, ou seja :
A expressão para o cálculo de PageRank para todas as páginas, pode ser escrita da seguinte forma matricial:
Se representarmos por 1 o vector de uns, com o valor 1 em todos os elementos, com n linhas e uma coluna, temos:
- .
Um vez que a soma de todos os elementos do vetor R é 1 (ou seja PR(P1)+PR(P2)+…PR(Pn) = 1 ), então o produto de R pela matriz E nxn, com o valor 1 em todos os seus elementos, é igual ao vetor 1, Portanto, podemos reescrever a expressão para o cálculo de R, da seguinte forma:
Colocando R em evidência, obtemos:
Ou seja,
R é o vetor próprio da matriz de adjacências modificada
, para o valor próprio 1, onde:
Portanto, a métrica PageRank pode ser vista como uma variante da métrica de centralidade de vetor próprio.
Vamos designar por x(0) os valores iniciais de PageRank e por x(t) os valores calculados de PageRank na iteração t.
Na primeira iteração
t=0, é atribuído o valor
a todas as páginas, ou seja, cada elemento do vetor
x(0) tem o valor:
Em cada iteração
t+1, calculamos o valor de
x(t+1) multiplicando a matriz
pelo vetor
x(t) ( valores de PageRank calculados na iteração anterior):
A matriz
tem as seguintes propriedades
12 :
- irredutível
- primitiva
- estocástica
Com base nestas propriedades de
, prova-se
12 que
x(t) converge para o vetor próprio
R 13 .
O cálculo iterativo termina quando a variação de x(t) para x(t+1), é menor que um determinado valor
pré-definido:
Esta forma de cálculo é escalável, numa rede com 322 milhões de ligações, verifica-se uma convergência, com uma tolerância razoável, em aproximadamente 52 iterações
6 . A velocidade de convergência, neste método de cálculo depende do valor de amortecimento
d 14 .
Para verificar o PageRank de uma determinada página existem duas opções:
- Instalar a Google Toolbar que a cada página visitada apresenta imediatamente o PageRank do site na própria barra.
- Visitar sites que fornecem a cotação do site digitado.
A partir de 2010 o Google começou a utilizar a tag: rel:
nofollow como um critério a mais ao PageRank. Anteriormente, quando era verificada essa tag nas páginas o Google as ignorava. Essa ação do Google era devido ao fato de serem considerados spams as páginas quem continham essa tag. O propósito em ignorar essas páginas estava relacionado ao fato de nas pesquisas aparecerem páginas irrelevantes, ou seja, imprecisão no resultado de busca. Posteriormente, com a difusão do linkjuice, o Google modificou o julgamento quanto em relação ao nofollow. Quando é encontrado um
linkjuice, este é ignorado e à página não é acrescentada a votação no PageRank.
Referências
- Ir para cima↑ United States Patent(em inglês).
- Ir para cima↑ Lisa M. Krieger, "Stanford Earns $336 Million Off Google Stock", San Jose Mercury News, 1 de Dezembro de 2005
- Ir para cima↑ David Vise and Mark Malseed. The Google Story. [S.l.: s.n.], 2005. p. 37. ISBN ISBN 0-553-80457-X
- Ir para cima↑ Raphael Phan Chung Wei. "New Straits Times", 2002-05-16.
- ↑ Ir para:a b c d The Anatomy of a Large-Scale Hypertextual Web Search Engine, Computer Networks and ISDN Systems, Volume 30, Issues 1–7, Brin, S.; Page, L., April 1998, Pages 107–117, Proceedings of the Seventh International World Wide Web Conference
- ↑ Ir para:a b Page, Lawrence; Brin, Sergey; Motwani, Rajeev and Winograd, Terry (1998), The PageRank Citation Ranking: Bringing Order to the Web, Technical Report, Stanford University
- Ir para cima↑ Li, Yanhong (6 de Agosto de 2002). "Toward a qualitative search engine". Internet Computing, IEEE (IEEE Computer Society) 2 (4): 24–29.
- Ir para cima↑ "Hypertext Document Retrieval System and Method", Patente Nº U.S.: 5920859, Criador: Yanhong Li, Filing Data: 5 de Fevereiro de 1997, Data emissão: 6 de Julho de 1999
- Ir para cima↑ Greenberg, Andy, "The Man Who's Beating Google", Forbes magazine, 5 de Outubro de 2009
- Ir para cima↑ "About: RankDex", rankdex.com
- Ir para cima↑ specially Lawrence Page, Patentes: 6,799,176 (2004) "Method for scoring documents in a linked database", 7,058,628 (2006) "Method for node ranking in a linked database", and 7,269,587 (2007) "Scoring documents in a linked database"2011
- ↑ Ir para:a b c d David Austin Grand Valley State University, "How Google Finds Your Needle in the Web's Haystack",The American Mathematical Society
- Ir para cima↑ Altman, Alon; Moshe Tennenholtz (2005). "Ranking Systems: The PageRank Axioms". Proceedings of the 6th ACM conference on Electronic commerce (EC-05). Vancouver, BC. Retrieved 2008-02-05
- Ir para cima↑ Taher Haveliwala and Sepandar Kamvar.. (Março 2003). "The Second Eigenvalue of the Google Matrix"
Nenhum comentário:
Postar um comentário