Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Google PageRank Google PageRank
다음 소프트
검색기술부
전희원
2006.10.16
PageRank PageRank 정의정의
PageRank thesisPageRank thesis• A page is important if it is pointed to by other A page is important if it is pointed to by other
important pageimportant page• InlinkInlink• OutLinkOutLink• 확률과 통계에 의한 확률과 통계에 의한 PageRank VectorPageRank Vector의 반복계산의 반복계산
r P i= ∑Pj∈BPi
r Pj∣Pj∣
Basic PageRank Algorithm
Original PageRank Formula Original PageRank Formula
r(P_i) r(P_i) • 페이지 페이지 P_i P_i 를 가르키는 모든 페이지의 를 가르키는 모든 페이지의 PageRankPageRank의 합의 합
B_p B_p • P_iP_i를 가르키는 페이지의 집합를 가르키는 페이지의 집합
|P_j| |P_j| • P_jP_j로부터의 로부터의 OutlinkOutlink의 갯수 의 갯수
r(P_j)r(P_j)• 페이지 페이지 P_jP_j를 가르키는 모든 페이지의 를 가르키는 모든 페이지의 PageRankPageRank의 합의 합
r P i= ∑Pj∈BPi
r Pj∣Pj∣
Unknown
Iterative procedureIterative procedure
가정가정• 모든 페이지의 초기 모든 페이지의 초기 PageRankPageRank는 는 1/n 1/n 이다이다..– n : number of page int the world
• Iteration Iteration 방법으로 해결방법으로 해결
– R_k+1(P_i) : P_i의 K+1번째 Iteration– 따라서 R_0(P_i) = 1 / n
rk1Pi= ∑P j∈BPi
rkPj∣Pj∣
Iterative PageRank Algorithm
예제예제(1)(1)
1 2
3
56
4
옛날에 전세계의 웹페이지가 옛날에 전세계의 웹페이지가 66개였다개였다..
이것들의 이것들의 PageRankPageRank를 생각를 생각해보자해보자
예제예제(2)(2)
22번째까지의 번째까지의 Iteration Iteration 예예
Iteration0 Iteration1 Iteration2 Rank at Iter 2.---------------------------------------------------------------------------r_0(P_1) = 1/ 6 r_1(P_1) = 1/18 r_2(P_1) = 1/36 5r_0(P_2) = 1/ 6 r_1(P_2) = 5/36 r_2(P_2) = 1/18 4r_0(P_3) = 1/ 6 r_1(P_3) = 1/12 r_2(P_3) = 1/36 5r_0(P_4) = 1/ 6 r_1(P_4) = 1/ 4 r_2(P_4) = 17/72 1r_0(P_5) = 1/ 6 r_1(P_5) = 5/36 r_2(P_5) = 11/72 3r_0(P_6) = 1/ 6 r_1(P_6) = 1/6 r_2(P_6) = 14/72 2
식을 더 직관적으로식을 더 직관적으로
그래프로 표현그래프로 표현• 자료구조 책을 참고하자면 그래프 표현법은자료구조 책을 참고하자면 그래프 표현법은??– 인접행렬(adjacency matrices)– 인접리스트(adjacency list)– 인접다중리스트(adjacency multilist)
• 직관적인 방법직관적인 방법
– 메트릭스로 표현
– Sparse matrix 계산의 경우 인접리스트가 유리
– 하지만 여기서는 고려하지 않겠음 ^^;
예제의 예제의 Matrix Matrix 표현표현
H = [0 1
212 0 0 0
0 0 0 0 0 013
13 0 0 1
3 0
0 0 0 0 12
12
0 0 0 12 0 1
20 0 0 1 0 0
]P1 P2 P3 P4 P5 P6
P1 P2 P3 P4 P5 P6
∏ k1 T = ∏ k T H
“∏ ” “∏ ” is n column is n column VectorVector
Alias PagerankVectorAlias PagerankVector
이슈사항이슈사항
IterationIteration은 언제까지 인가은 언제까지 인가?? 수렴의 보장수렴의 보장?? ∏ ∏ 초기값의 영향은 얼마나되나초기값의 영향은 얼마나되나?? Iteration Iteration 횟수는 예상할 수 있나횟수는 예상할 수 있나?? RankSink, Positive Value RankSink, Positive Value 문제문제• 예제의 예제의 1313번째의 ∏값번째의 ∏값
– (0, 0, 0, 2/3, 1/3, 1/5) Cycle Cycle 문제문제
또 한번의 개선또 한번의 개선(1) - Makov Chain(1) - Makov Chain
Makov ChainMakov Chain• HH는 는 Transition probability matrixTransition probability matrix의 특징을 가지고 있다의 특징을 가지고 있다..• Makov ChainMakov Chain이 만족하는 조건을 충족 시키면 이 만족하는 조건을 충족 시키면 Sink, CycleSink, Cycle
문제를 해결할 수 있다문제를 해결할 수 있다..– Stochastic– Irreducible– Aperiodic
• 그래서 그래서 HH에 대한 보정 작업이 필요하다에 대한 보정 작업이 필요하다..
Brin Brin 과 과 PagePage가 제안한 수정모델가 제안한 수정모델• Random surferRandom surfer– Dangling node and teleport
• HH의 변형모델인 의 변형모델인 Stochastic matrix Stochastic matrix 제안제안
또 한번의 개선또 한번의 개선(2) – stochastic matrix(2) – stochastic matrix
S = H + a*( (1/n)*e^t )S = H + a*( (1/n)*e^t )• aa벡터에서 벡터에서 ( a_i = 1 If i == ( a_i = 1 If i == 단말노드 단말노드 else a_i = 0)else a_i = 0)
S = [0 1
212 0 0 0
16
16
16
16
16
16
13
13 0 0 1
3 0
0 0 0 0 12
12
0 0 0 12 0 1
20 0 0 1 0 0
] updated
또 한번의 개선또 한번의 개선(3) – Google Matrix(3) – Google Matrix
G = α *G = α * S + (1 – α) 1/n * e*e^TS + (1 – α) 1/n * e*e^T αα의 의미는의 의미는??• α = 0.6α = 0.6일때일때??
PageRank methodPageRank method의 결과의 결과
∏ k1 T = ∏ k T G
Example(1)Example(1)
앞 페이지의 예제를 예로 들면앞 페이지의 예제를 예로 들면
G = .9⋅H.9⋅010000.1⋅
111111⋅1 /6⋅111111
G= [1 /61 7/15 7 /15 1 /60 1 /60 1 /601 /6 1/6 1 /6 1 /6 1 /6 1 /619/60 19/60 1 /60 1 /60 19/60 1 /601 /60 1/60 1 /60 1 /60 7 /15 7 /151 /60 1/60 1 /60 7 /15 1 /60 7 /151 /60 1/60 1 /60 11 /12 1 /60 1 /60
]
Example(2)Example(2)
∏∏^T = (.03721 .05396 .04151 .3751 .206 .2863)^T = (.03721 .05396 .04151 .3751 .206 .2863)• Ranked to (6 4 5 1 3 2)Ranked to (6 4 5 1 3 2)• ∏∏_1 = 0.03721 _1 = 0.03721 의 의미의 의미
– 3.721 % 의 시간을 Page1을 보는데 쓴다.
프로그래머를 위한 식 정리프로그래머를 위한 식 정리• ∏∏^(k+1)T = α * ( ∏^(k)T) * H + (α ( ∏^(k)T) a + 1 - α)e^T/n^(k+1)T = α * ( ∏^(k)T) * H + (α ( ∏^(k)T) a + 1 - α)e^T/n• 구현 예제구현 예제
–Http://www.freesearch.pe.kr/545
여러 부연설명여러 부연설명
α α • Page Page 와 와 BrinBrin의 논문에 의하면 의 논문에 의하면 0.850.85• 대략 대략 Iteration : 50Iteration : 50• α^50 = (0.85)^50 α^50 = (0.85)^50 ≈≈ 0.000296 (2~3 places of accuracy) 0.000296 (2~3 places of accuracy)• 약 약 33 억 페이지에서 실험한 결과 억 페이지에서 실험한 결과
• 10^(-10) 10^(-10) 정도의 정확도를 계산 정도의 정확도를 계산
Vector – Matrix Vector – Matrix 계산 복잡도 계산 복잡도• O(n^2)O(n^2)• Sparse Matrix (Sparse Matrix ( 평균 평균 1010 개의 링크일 경우 개의 링크일 경우))–O(nnz(H)) -> O(n) -> O(10n)
• Other Iteration MethodOther Iteration Method–GMRES, BICGSTAB– 저장공간의 많아야 한다.
– 구글 식에는 (∏, H, a, PageRank Vector : 2)
끝끝
Google PageRank and BeyondGoogle PageRank and Beyond Next ReadNext Read
• Combating Web Spam with TrustRankCombating Web Spam with TrustRank– http://www.vldb.org/conf/2004/RS15P3.PDFhttp://www.vldb.org/conf/2004/RS15P3.PDF
다음 세미나 주제다음 세미나 주제??• HIT HIT 랭킹 알고리즘랭킹 알고리즘
• TrustRank TrustRank 알고리즘알고리즘
수고하셨습니다수고하셨습니다..