2009-09-20 4 views
20

저는 자국 내 페이지의 색인을 생성하는 검색 엔진을 개발하는 데 관심이있는 학생입니다. 저는 지금 언젠가 사용할 알고리즘을 연구하고 있으며, HITS와 PageRank를 최고의 것으로 여기고 있습니다. HITS 알고리즘보다 안정적이기 때문에 PageRank를 사용하기로 결정했습니다 (또는 읽었습니다).PageRank 및 해당 수학 : 설명 필요

PageRank와 관련된 수많은 기사와 학술 논문을 찾았지만 문제는이 논문에서 알고리즘을 구성하는 대부분의 수학 기호를 이해할 수 없다는 것입니다. 특히 Google 매트릭스 (기약적이고 확률 론적 매트릭스)가 어떻게 계산되는지 이해하지 못합니다.

나의 이해는이 두 제품을 기반으로합니다

는 사람이 적은 수학 기호와 기본 설명 (예 좋을 것이다)을 제공 할 수?

미리 감사드립니다.

+2

가까운 장의 이유는 알고리즘에 대한 완벽한 질문입니다. – johnc

+3

사실. 나는 '닫지 마라'라고 투표 할 수 있기를 바란다. –

+1

검색 엔진을 개발 중이며 PageRank를 사용하려는 경우 변호사에게 문의하십시오. 페이지 랭크 (PageRank)는 미국에서 적어도 미국 특허권의 적용을받습니다. 귀하의 국가에서 법적으로 어떻게 작동하는지 확신 할 수 없지만 확실하게 알고있는 사람 (예 : 현지 변호사)과 상담해야합니다. –

답변

26

페이지 랭크 (PageRank)의 형식 (고화질)는. 재미 "E"기호 (이 사실 수도 시그마 그리스어 문자와 수학 방정식으로 표현된다 시그마 문자 "S입니다 "여기서는 Summation을 나타냅니다. 이 공식은 이 페이지 X의 페이지 랭크 (PageRank)를 계산하는 것을 말한다 간단히 말해서

...

 
    For all the backlinks to this page (=all the pages that link to X) 
    you need to calculate a value that is 
     The PageRank of the page that links to X [R'(v)] 
     divided by 
     the number of links found on this page. [Nv] 
     to which you add 
      some "source of rank", [E(u)] normalized by c 
      (we'll get to the purpose of that later.) 

    And you need to make the sum of all these values [The Sigma thing] 
    and finally, multiply it by a constant [c] 
     (this constant is just to keep the range of PageRank manageable) 

의 핵심 아이디어는이 공식 인은 그 주어진 X 페이지에 링크를 모든 웹 페이지 가치에 가치를 더하고 있습니다. 어떤 페이지에 링크함으로써 그들은이 페이지에 찬성하여 "투표"합니다. 그러나이 "투표"두 가지 요인에 따라 다소 무게가 :

  • [ '(V) R]
  • 사실 X에 연결하는 페이지의 인기가 X에 링크 페이지 또한 다른 많은 페이지로 연결되거나 연결되지 않습니다.

    • 그것은 알 수없는 사람보다는 분야에서 인정받는 전문가로부터 추천서를 얻기 위해 일반적으로 더 나은 : [네바다]

    이 두 가지 요소

  • 은 매우 직관적 인 아이디어를 반영합니다.
  • 누구에게 추천을했는지에 관계없이 다른 사람에게 추천함으로써 자신의 추천 가치를 떨어 뜨리고 있습니다.당신이 발견으로

,이 공식은 X의 페이지 범위를 알고 있기 때문에, 당신은 당신이 알 어떻게를 누른 다음 X에 링크 된 모든 페이지의 페이지 랭크 (PageRank)를 알 필요가 다소 순환 참조의 을 사용합니다 모든 이들의 페이지 랭크 (PageRank)의 일부 "임의"로 시작하여 값? ... 융합의 다음 문제에서 문서 킥의 섹션에서 설명하는 곳이 있습니다. 기본적으로

(또는 페이지 랭크 (PageRank)의 바람직 "괜찮은 생각"값, 페이지 수를 계산하고 위 공식을 사용하여 PageRank를 계산하면이 프로세스를 몇 번 반복 할 때 새로운 계산 값이 "더 좋아집니다". 수렴 즉 그들은 각각 실제/이론적 가치에 더 가깝고 가까워진다. 따라서 충분한 양의 반복을 통해 추가 반복이 마지막 반복에서 제공된 값에 실제적인 정밀도를 추가하지 못하는 순간에 도달합니다.

지금 ... 이론상 멋지고 멋쟁니다. 트릭은이 알고리즘을 동등하지만 더 빨리 수행 할 수있는 알고리즘으로 변환하는 것입니다. 이 작업과 유사한 작업을 수행하는 방법을 설명하는 몇 가지 문서가 있습니다. 나는 그런 언급을하지 않았지만 나중에 이것들을 추가 할 것이다. 그들은 선형 대수학의 건강한 복용량을 포함 할 것입니다주의하십시오.

EDIT : 약속대로 페이지 순위를 계산하는 알고리즘과 관련된 몇 가지 링크가 있습니다. Efficient Computation of PageRank Haveliwala 1999 /// Exploiting the Block Structure of the Web for Computing PR Kamvar etal 2003 /// A fast two-stage algorithm for computing PageRank Lee et al. 2002

위에 제공된 링크의 저자의 많은 스탠포드에서 있지만, 그것은 효율적으로 페이지 랭크 (PageRank) 같은 계산에 대한 탐구가 뜨거운 것을 실현하기 위해 오래 걸리지 않습니다 연구 분야. 이 자료는 OP의 범위를 넘어서는 것으로 알고 있지만 기본 알고리즘은 큰 웹에는 실용적이지 않다는 사실을 암시하는 것이 중요합니다. , 당신이 사물의 종류에 대한 심각한 경우 Wikipedia's excellent article

을 언급하고 싶습니다

당신이 입문을 고려할 수있다, (심층 정보에 많은 링크와 함께 아직) 매우 접근 할 텍스트를 완료하려면/수학 교과목, 특히 선형 대수학뿐만 아니라 일반적으로 그래프를 다루는 컴퓨터 과학 수업. BTW, OCW의 1806 강의 비디오에 대한 Michael Dorfman의 훌륭한 제안. 나는이 조금 도움이되기를 바랍니다

... 당신은 검색 엔진 알고리즘을 개발하는 방법에 대한 심각한 경우

+0

고마워요. 내가 조언을 구할거야 – Kennedy

9

, 나는 심각하게 당신이 선형 대수학 과정을 권하고 싶습니다. 인 - 인 코스가 없다면 Gilbert Strang의 MIT OCW 코스가 아주 좋습니다 (비디오 강의는 http://ocw.mit.edu/OcwWeb/Mathematics/18-06Spring-2005/VideoLectures/입니다).

이와 같은 클래스를 사용하면 제공하는 문서의 수학 기호를 확실히 이해할 수 있습니다. 첫 번째 연도 선형 대수학 과정에서는 다루지 않을 내용이 없습니다.

나는 이것이 당신이 찾고있는 대답이 아니라는 것을 알고 있습니다. 그러나 그것은 정말로 당신을위한 최선의 선택입니다. 누군가가 당신에게 기본적인 개념을 잘 이해하지 못했을 때 개별 기호 나 알고리즘을 설명하려고하면 다른 사람의 시간을 잘 활용할 수 없습니다.

+0

고마워. 고마워. – Kennedy

3

데이빗 오스틴 (David Austin)이 작성한 페이지 랭크 행렬 How Google Finds Your Needle in the Web's Haystack이 작성한 수학에 대한 입문 튜토리얼을 읽어 볼 수도 있습니다. 간단한 예제로 시작하여 전체 정의로 빌드합니다.

3

Duffymo가 내 의견으로는 최고의 추천을 게시했습니다. 나는 상급 학년도에 페이지 순위 알고리즘을 공부했다. 페이지 순위는 다음을 수행합니다.

  1. 유한 마크 포인트 체인의 상태로 현재 웹 페이지 집합을 정의하십시오.
  2. 브이 사이트 U로 천이 확률을 정의 여기서 될 U의 V 행 나가는 링크가

    1 U_는 {N}의 링크가는 아웃의 개수/U_ {N} 유.

  3. 위에서 정의한 마르코프 체인 (이 결과의 약간 저하 적용 가능)

    그것은 모든 유한 기약 마르코프 체인을 표시 할 수
  4. 가 고정 분포 기약라고 가정. 페이지 랭크를 고정 분포로 정의하십시오. 즉 상태 전환 수가 무한대로 올라갈 때 임의의 입자가 각 주어진 사이트에서 끝날 확률을 유지하는 벡터를 정의하십시오.

Google은 고정 분포를 찾기 위해 전원 방법에 약간의 변형을 사용합니다 (전력 법은 지배적 인 고유 값을 찾습니다). 그 외에는 아무 것도 없습니다. 그 간단하고 우아하고 아마도 내가 생각할 수있는 마크로프 체인의 가장 단순한 응용 중 하나 일지 모르지만 그것은 가치있는 많은 돈입니다!

그래서 모든 pagerank 알고리즘은 웹 사이트가 중요한지 여부를 나타내는 지표로 웹 토폴로지를 고려합니다. 사이트가 들어오는 링크가 많을수록 무한한 시간 동안 사이트에서 시간을 보내는 임의의 입자의 확률이 커집니다.

0

더 적은 수의 페이지 랭크에 대해 더 알고 싶다면 this은 기본 행렬 연산에 대한 아주 좋은 지침서입니다. 나는 약간의 수학적 배경을 가지고 있지만 순위 알고리즘을 배우고 자하는 모든 이들에게 추천합니다.