Pagerank и его математика: требуется объяснение - PullRequest
20 голосов
/ 20 сентября 2009

Я студент, заинтересованный в разработке поисковой системы, которая индексирует страницы из моей страны. Я уже некоторое время исследую алгоритмы, которые можно использовать, и я определил HITS и PageRank как лучшие. Я решил использовать PageRank, поскольку он более стабилен, чем алгоритм HITS (или так я его прочитал).

Я нашел множество статей и научных статей, связанных с PageRank, но моя проблема в том, что я не понимаю большинство математических символов, которые образуют алгоритм в этих статьях. В частности, я не понимаю, как рассчитывается матрица Google (неприводимая стохастическая матрица).

Мое понимание основано на этих двух статьях:

Может ли кто-нибудь дать базовое объяснение (примеры были бы хорошими) с меньшим количеством математических символов?

Заранее спасибо.

Ответы [ 7 ]

26 голосов
/ 20 сентября 2009

Формальное определение PageRank, определенное на странице 4 цитируемого документа, выражается в математическом уравнении с помощью забавного символа «Е» (на самом деле это заглавная греческая буква сигмы. Сигма - буква «S»). что здесь означает Суммирование ).

В двух словах, эта формула говорит, что для расчета PageRank страницы X ...

   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, увеличивают ценность до ее «ценности». По ссылке на какую-то страницу они «голосуют» за эту страницу. Однако этот «голос» имеет больший или меньший вес в зависимости от двух факторов:

  • Популярность страницы, которая ссылается на X [R '(v)]
  • Тот факт, что страница, которая ссылается на X, также ссылается на многие другие страницы или нет. [Nv]

Эти два фактора отражают очень интуитивные идеи:

  • Обычно лучше получить рекомендательное письмо от признанного эксперта в этой области, чем от неизвестного.
  • Независимо от того, кто дает рекомендацию, также давая рекомендации другим людям, они уменьшают ценность своей рекомендации для вас.

Как вы заметили, эта формула использует в некоторой степени круговую ссылку , потому что для того, чтобы узнать диапазон страниц X, вам нужно знать PageRank всех страниц, ссылающихся на X. Тогда как вы Вычислите эти значения PageRank? ... Вот тут-то и объясняется следующий вопрос конвергенции в разделе документа.

По сути, начиная с некоторых «случайных» (или предпочтительно «приличных догадок») значений PageRank для всех страниц и вычисляя PageRank по формуле выше, новые вычисленные значения становятся «лучше», когда вы выполняете эту итерацию обработать несколько раз. Значения сходятся , т. е. каждое из них становится все ближе и ближе к фактическому / теоретическому значению. Поэтому, повторяя достаточное количество раз, мы достигаем момента, когда дополнительные итерации не добавят любая практическая точность значений, предоставленных последней итерацией.

Теперь ... Это хорошо и теоретически. Хитрость заключается в том, чтобы преобразовать этот алгоритм в нечто эквивалентное, но это можно сделать быстрее. Есть несколько работ, которые описывают, как это, и подобные задачи, могут быть выполнены. У меня нет таких ссылок, но я добавлю их позже. Остерегайтесь, что они будут включать здоровую дозу линейной алгебры.

РЕДАКТИРОВАТЬ: , как и было обещано, вот несколько ссылок, касающихся алгоритмов для расчета рейтинга страницы. Эффективное вычисление PageRank Haveliwala 1999 /// Использование блочной структуры сети для компьютерных PR Kamvar etal 2003 /// Быстрый двухэтапный алгоритм для вычисления PageRank Lee et al. 2002

Хотя многие авторы приведенных выше ссылок из Стэнфорда, не займет много времени, чтобы осознать, что стремление к эффективному PageRank-подобному вычислению является горячей областью исследований. Я понимаю, что этот материал выходит за рамки OP, но важно намекнуть на тот факт, что базовый алгоритм не подходит для больших сетей.

Чтобы закончить с очень доступным текстом (но со множеством ссылок на подробную информацию), я хотел бы упомянуть Отличная статья Википедии

Если вы серьезно относитесь к такого рода вещам, вы можете рассмотреть вводный / курс повышения квалификации по математике, в частности, по линейной алгебре, а также урок информатики, который имеет дело с графами в целом. Кстати, отличное предложение от Майкла Дорфмана, в этом посте, для видео OCW лекций 1806 года.

Надеюсь, это немного поможет ...

9 голосов
/ 20 сентября 2009

Если вы серьезно относитесь к разработке алгоритма для поисковой системы, я бы настоятельно рекомендовал вам пройти курс линейной алгебры. В отсутствие личного курса, курс MIT OCW Гилберта Странга довольно хорош (видео лекции на http://ocw.mit.edu/OcwWeb/Mathematics/18-06Spring-2005/VideoLectures/).

Такой класс, безусловно, позволит вам понять математические символы в документе, который вы предоставляете - в этом документе нет ничего такого, что не было бы освещено в курсе первого года по линейной алгебре.

Я знаю, что это не тот ответ, который вы ищете, но это действительно лучший вариант для вас. То, что кто-то пытается объяснить вам отдельные символы или алгоритмы, когда вы не понимаете базовых понятий, - это не очень хорошее использование чьего-либо времени.

5 голосов
/ 20 сентября 2009

Это бумага, которая вам нужна: http://infolab.stanford.edu/~backrub/google.html (Если вы не узнаете имена авторов, вы найдете больше информации о них здесь: http://www.google.com/corporate/execs.html).

Символы, используемые в документе, описаны в документе на английском языке.

Спасибо, что заставили меня погуглить.

3 голосов
/ 21 сентября 2009

Duffymo опубликовал лучшую ссылку на мой взгляд. Я изучал алгоритм рейтинга страницы в старшей школе. Рейтинг страницы делает следующее:

  1. Определите множество текущих веб-страниц как состояния конечной цепочки Маркова.
  2. Определите вероятность перехода с сайта u на v, где существует исходящая ссылка на v с u, чтобы быть

    1 / u_ {n}, где u_ {n} - количество исходящих ссылок от u.

  3. Предположим, что цепь Маркова, определенная выше, неприводима (это может быть выполнено только при небольшом ухудшении результатов)

  4. Можно показать, что каждая конечная неприводимая цепь Маркова имеет стационарное распределение. Определите ранг страницы как стационарное распределение, то есть вектор, который содержит вероятность того, что случайная частица попадет на каждый данный сайт, когда число переходов состояний уходит в бесконечность.

Google использует небольшое изменение в методе мощности, чтобы найти стационарное распределение (метод мощности находит доминирующие собственные значения). Кроме этого в этом ничего нет. Это довольно просто и элегантно и, вероятно, одно из самых простых применений цепей Маркова, о которых я только могу подумать, но это много денег!

Таким образом, все, что делает алгоритм PageRank, принимает во внимание топологию сети как показатель того, должен ли сайт быть важным. Чем больше входящих ссылок на сайт, тем выше вероятность того, что случайная частица проведет свое время на сайте в течение бесконечного количества времени.

3 голосов
/ 21 сентября 2009

«Собственный вектор за $ 25 000 000 000: линейная алгебра за Google». от Роуз-Халман немного устарел, потому что теперь Page Rank - это проблема линейной алгебры за $ 491B. Я думаю, что статья очень хорошо написана.

"Программирование Коллективного Разума" также неплохо обсуждает Page Rank.

3 голосов
/ 20 сентября 2009

Возможно, вы также захотите прочитать вступительное руководство по математике, стоящее за созданием матрицы Pagerank, написанной Дэвидом Остином, под названием Как Google находит вашу иголку в стоге сена в Интернете ; он начинается с простого примера и строится до полного определения.

0 голосов
/ 18 октября 2012

Если вы хотите узнать больше о рейтинге страниц с меньшим количеством математики, то этот очень хороший учебник по базовым матричным операциям. Я рекомендую его всем, кто мало знаком с математикой, но хочет погрузиться в алгоритмы ранжирования.

...