구글 PageRank 알고리즘



구글은 PageRank(PR) 이라는 알고리즘을 사용한다. PageRank는 구글의 창업자 중 한명인 LarryPage를 생각하여 지어진 이름이다. PR은 구글이 최초로 개발한 알고리즘이며, 가장 널리 알려져 있고, 구글이 창업부터 사용한 알고리즘이다.

PageRank의 원리/알고리즘
PR은 한 페이지를 다른 페이지들이 인용하는 정도에 따라 페이지를 랭킹한다는 아이디어를 바탕으로 한다. 한 페이지로 가는 다양한 링크들의 수와 질로 그 페이지가 얼마나 중요한지를 매기는데, 이것은 중요한 페이지들은 그렇지 않은 페이지들에 비해 다른 페이지들에 의해 인용을 더 많이 받을 것(링크를 더 많이 받을 것) 이라는 논리에 기초한 것이다. 이 논리에 '인용한 페이지에서 그 링크의 중요도'도 추가되어 알고리즘이 나온다.

PR(A) = (1-d) + d (PR(T1)/C(T1) + … + PR(Tn)/C(Tn))

PR(A) : A라는 웹사이트의 페이지 랭크
T1 ... Tn : 그 페이지를 인용한(링크를 건) 다른 페이지들
d : Damping Factor (보통 0.85로 설정) - 어떤 검색자가 그 페이지를 보고 만족하지 않아서 다른 페이지를 볼 확률
C(Tn) : T 페이지가 갖고 있는 총 링크 개수

PR(Tn) / C(Tn) 을 함으로써 위에서 말한 "페이지의 질"을 수치로 표현할 수 있게 된다.

페이지 A로 가는 링크가 실린 페이지에서 다른 링크가 많으면 많을수록 A로 가는 링크의 중요성은 떨어질 것이다. 반면에, 링크가 얼마 실려 있지 않은데, 그 중 하나가 A로 가는 링크라면 A로 가는 링크는 그만큼 중요하다는 뜻이다.

또, A를 가리키는 페이지가 중요한 페이지면, A도 그만큼 중요할 것이다. 반면에, 그 페이지가 중요하지 않다면 A를 가리키는 링크도 그만큼 덜 중요할 것이다.

이것을 모두 종합하여 페이지 T의 랭크값을 T가 갖고 있는 링크의 개수로 나누면 T에서의 A로 가는 링크의 중요도를 수치로 표현할 수 있게 된다.

이것을 "링크의 정규화된 값"(Normalized Numbers of Links on a Page)라고 한다.

d를 고려하지 않고 이것을 더 일반화시키면 다음의 수식이 된다.
PR(u) = \sum_{v \in B_u} \frac{PR(v)}{L(v)}
L(v) : v에 있는 링크의 총 개수
Bu : u 페이지를 인용한 페이지들의 집합

마지막으로 정리하면, 영향력 있는 페이지가 인용할수록 한 페이지의 랭크값은 올라간다.
하지만, 인용을 하면서 출처를 밝히지 않으면 페이지랭크에 반영이 되지 않는다.

PageRank는 구글을 비롯한 다양한 Search Engine이 쓰는 알고리즘이다. 하지만 이것만 쓰이는 것은 아니다. 여기에 검색에 영향을 주는 13가지 요소가 적힌 블로그가 있다.