구글의 간판 알고리즘.
논문의 피인용지수를 웹 페이지에 맞게 가다듬어 적용한 알고리즘. 웹 자체가 처음에는 대학 간 정보공유를 위한 '사이버 도서관' 으로 시작했다는 점을 생각하면 굉장히 흥미로운 부분이다.
정확한 알고리즘은
$$ PR(A) = \frac{1-d}{N} + d(\sum_{k=1}^N \frac{PR(T_k)}{C(T_k)}) $$
PR() : PageRank()
d : damping Factor, 댐핑 요소, 직역하자면 감쇠율. 여기에서는 페이지 이탈율을 말한다. 이게 0.85면 85%의 유저가 페이지를 이탈한다는 뜻.
T: A 페이지를 링크하고 있는 사이트들.
N: T 페이지들의 총 갯수.
C(x) : x 페이지 안의 링크 갯수.
A라는 페이지의 페이지랭크값은 A라는 페이지를 가리키는 모든 페이지 수 분의 유지율 + A를 가리키는 페이지 각각의 링크 갯수 분의 그 페이지의 페이지랭크값의 총합.
https://sungmooncho.com/2012/08/26/pagerank/
‘쉽게 설명한’ 구글의 페이지 랭크 알고리즘
네이버 검색엔진의 문제점을 처음 지적한 글을 썼던 2년 전부터 이 블로그에 언젠가 한 번 써보고 싶었던 주제가 하나 있었다. 구글의 PageRank 알고리즘을 설명하는 것이다. 원리는 간단하지만 알고리즘을 설명하려고 하면 말이 길어질 것 같고 쉽게 설명할 수 있을까 싶어 블로그에 쓸까 말까 망설였는데, 그냥 한 번 시작해보려고 한다. “Go…
sungmooncho.com
이렇게 링크를 걸어 예시를 들어보자.
해당 페이지를 A, 이 페이지를 $$ T_k $$ 라 하자.
$$ PR(A) = \frac{1-d}{N} + d(\sum_{k=1}^N \frac{PR(T_k)}{C(T_k)}) $$
여기서 이 페이지의 링크는 하나이므로
$$ C(T_k) = 1 $$
이고 다른 페이지의
$$ \frac{PR(T_n)}{C(T_n)} $$
값을 임시로 a, b, c, ... 라 하자.
$$ PR(A) = \frac{1-d}{N} + d(a+b+c+...+PR(T_k)) $$
가 된다.
즉 내가 링크를 함으로써 내 페이지랭크값만큼 A의 페이지랭크값이 올라간다.
'문과적 프로그래밍' 카테고리의 다른 글
MSVC cl.exe 유니코드 (0) | 2020.03.03 |
---|---|
파이썬 타입 어노테이션(python type annotation) = 파이썬 정적 타입 (0) | 2020.02.05 |