PageRank и его математика: требуется объяснение

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

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

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

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

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


person Kennedy    schedule 20.09.2009    source источник
comment
Почему закрытые голоса, это совершенно правильный вопрос об алгоритмах?   -  person johnc    schedule 20.09.2009
comment
Верно. Хотел бы я проголосовать за «не закрываться».   -  person Nick Johnson    schedule 20.09.2009
comment
Если вы разрабатываете поисковую систему и хотите использовать PageRank, вы можете проконсультироваться с юристом. PageRank защищен патентами, по крайней мере, в США. Я не уверен, как это будет работать на законных основаниях в вашей стране, но вам, вероятно, следует проконсультироваться с кем-то, кто знает наверняка (например, с вашим местным юристом).   -  person Daniel Pryden    schedule 20.09.2009
comment
Я думал, что алгоритмы нельзя запатентовать, только их реализации.   -  person ilya n.    schedule 21.09.2009
comment
@lagerderek: Я могу только предположить, что это было из-за грамматики и т. Д. Я подумал, что это хороший вопрос, поэтому я его почистил.   -  person ire_and_curses    schedule 21.09.2009
comment
@Nick Johnson: Да, это очень востребованная функция. Вы можете проголосовать за него здесь: meta.stackexchange.com/questions/125/   -  person ire_and_curses    schedule 21.09.2009
comment
@Daniel Даже если алгоритм запатентован, это не запрещает вам исследовать его, патент распространяется на реализации изобретения, которые в любой возможной форме конкурируют с гипотетическим бизнесом владельца патента, но вы все равно можете исследовать алгоритм в своей личной жизни.   -  person Antti Huima    schedule 21.09.2009


Ответы (7)


Формальное определение 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, также ссылается на многие другие страницы или нет. [Нв]

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

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

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

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

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

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

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

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

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

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

person mjv    schedule 20.09.2009
comment
Спасибо за это. Я приму ваш совет - person Kennedy; 21.09.2009

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

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

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

person Michael Dorfman    schedule 20.09.2009

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

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

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

person Alterlife    schedule 20.09.2009

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

person Jeff Kubina    schedule 20.09.2009

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

"Programming Collective Intelligence" также содержит хорошее обсуждение рейтинга страниц.

person duffymo    schedule 20.09.2009

Даффимо опубликовал лучший референс, на мой взгляд. Я изучал алгоритм ранжирования страниц на старшем курсе бакалавриата. Page Rank делает следующее:

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

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

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

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

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

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

person ldog    schedule 21.09.2009

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

person torayeff    schedule 18.10.2012