세상에는 셀 수도 없이 많은 직업이 존재하고 또 그것을 위한 준비 과정도 다양하다. 그래도 가장 공통분모가 큰 것을 찾는다면 아마 수학이지 않을까 싶다. 최근 미국 금융가에 수학자, 통계물리학자가 스카웃되어 돈을 번다는 기사들 많이 보았을 것이다(사실 사회적으로 이 현상이 바람직하냐 안하냐는 논란이 많다). 뿐만아니라 구글의 탄생 배경에 "구글 페이지 랭크 알고리즘"이라는 것이 있다. 또 페이스북이나, 다른것들은 어떤가. 속을 들여다 보면 "그래프이론"이라는 수학의 한부분이 주축을 이루고 있다. 그리고 우리가 매일 인터넷으로 결재하고 인증하고 하는 부분들.. 사실을 "정수"를 다루는 학문에서 출발한 암호학이 들어 있다. 그외 셀 수도 없이....
오늘은 그 유명한 "구글 페이지 랭크 알고리즘"을 쉽게 살펴보자. 우선 구글에서 "구글 페이지 랭크 알고리즘" 검색어를 입력하면 첫번째로 나오는 페이지에서 그 내용을 설명하고 있다.(놀랍다. 이래서 구글 검색이 영향력 있는거 아니겠는가?) http://sungmooncho.com/2012/08/26/pagerank/
왜 이 페이지가 처음으로 보일까? 물론 그페이지를 자세히 읽어보면 내용을 알 수 있겠지만 좀더 쉬운 예제로 살펴 보자
일단 요새는 휴대폰에 친한 친구들 연락처 다들 저장하고 있을것이다. 그걸로 인기도를 측정해보자. 간단하게 A,B,C,D 네 친구가 있다. 각자 휴대폰에
사람 저장연락처
==== ==========
A: C
B: A,C,D
C: A,D
D: A,B
가 되어 있다면 누가 가장 인기 있다고 볼 수 있을까? A가 갯수가 가장 많으니 A? 글쎄다 구글 계산법에 의하면
나의 인기도
= (1-d)
+ d*(내번호를 저장하고 있는 친구1의 인기도)/(친구1이 저장하고 있는 전화번호 개수)
+ d*(............................친구2의 .........)/(친구2가 ............)
+ d*(............................친구3의 .........)/(친구3이 ............)
+ ........
즉 나의 인기도는
- 나의 전화번호를 저장하고 있는 친구들의 수.
- 또 그 친구들 각자의 인기도
- 그리고 그 친구들이 각각 저장하고 있는 전화번호 개수
- 등에 의해 결정된다..
여기서 d는 좀 특수한 수자인데.. 일단 0.85 라고 알고가자..
다소 이야기가 복잡한데 모르니 위의 예를 직접가지고 풀어보자. 각각의 인기도를 a,b,c,d 라 하면
a = (1-0.85) + 0.85 * (b/3 + c/2 + d/2) (A의 전화번로를 B,C,D 가 가지고 있음)
b = (1-0.85) + 0.85 * (d/2) (B의 전화번호는 D 만가지고 있음)
c = (1-0.85) + 0.85 * (a/1+b/3)
d = (1-0.85) + 0.85 * (b/3 + c/2)
이리 정리되면 한결 보기 편해졌다. 이제 행열을 배웠다면 이것을 어떻게 쉽게 풀지 알것이다.
나온다. 결과를 보면 오히려 C 의 인기도가 높다. 이유는 비교적 인기높은 A의 주소록을 독점하고 있는데서 온다.
사실 인터넷 페이지수는 셀수도 없이 많은데 저련 행렬을 만들고 계산할 수 있는가? 현대의 기술로 충분히 가능하고 또 그렇게 하고 있다. 좋은 수학적 알고리즘이 있고 또 하드웨어도 충분히 빠른 그런 세상인 것이다. 물론 구글이 저 알고리즘만 적용하는건 아니다. (추측이자 당연하다고 믿지만) 지리적으로 어디인지, 접속 IP 주소는 어디인지, 과거에 이 IP에서는 어떤 검색을 자주했는지,... 등 모든 데이터를 종합하여 검색 결과를 보여준다. 어쩌면 나에대해 오히려 나 자신보다 잘 알고 있을지도 모른다..
댓글 없음:
댓글 쓰기