Pagerank и его математика: требуется объяснение
Я студент, заинтересованный в разработке поисковой системы, которая индексирует страницы из моей страны. Я изучал алгоритмы для использования в течение некоторого времени, и я определил хиты и PageRank как лучшие там. Я решил пойти с PageRank, так как он более стабилен, чем алгоритм хитов (или так я прочитал).
Я нашел бесчисленное количество статей и научных работ, связанных с PageRank, но моя проблема в том, что я не понимаю большинство математических символов это формирует алгоритм в этих работах. В частности,я не понимаю, как вычисляется Матрица Google (неприводимая, стохастическая матрица).
мое понимание основано на этих двух статьях:
- http://online.redwoods.cc.ca.us/instruct/darnold/LAPROJ/fall2005/levicob/LinAlgPaperFinal2-Screen.pdf
- http://ilpubs.stanford.edu:8090/386/1/1999-31.pdf
может ли кто-нибудь предоставить базовый объяснение (примеры были бы хорошими) с меньшими математическими символами?
спасибо заранее.
7 ответов
формальное определение PageRank, как определено на странице 4 цитируемого документа, выражается в математическом уравнении с забавным символом " E " (на самом деле это заглавная Сигма греческой буквы. Сигма-это буква "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 с приведенной выше формулой, новые вычисленные значения становятся "лучше", поскольку вы повторяете этот процесс несколько раз. Значения сходятся, т. е. каждый из них ближе и ближе к тому, что это фактическое / теоретическое значение. Поэтому, повторяя достаточное количество раз, мы достигаем момента, когда дополнительные итерации не добавят никакой практической точности к значениям, предоставленным последней итерацией.
сейчас... Теоретически это мило и денди. Фокус в том, чтобы преобразовать этот алгоритм в нечто эквивалентное, но что можно сделать быстрее. Существует несколько работ, в которых описывается, как это и аналогичные задачи могут быть выполнены. У меня нет таких ссылок, но будет добавь это позже. Будьте осторожны, они будут включать здоровую дозу линейной алгебры.
EDIT: как и было обещано, вот несколько ссылок, касающихся алгоритмов расчета ранга страницы. эффективное вычисление PageRank Haveliwala 1999 /// использование блочной структуры сети для вычислений PR Kamvar etal 2003 /// быстрый двухступенчатый алгоритм вычисления PageRank Lee et al. 2002
хотя многие авторы ссылок, приведенных выше, из Стэнфорда, не займет много времени, чтобы понять, что поиск эффективного расчета PageRank-like является горячей областью исследований. Я понимаю, что этот материал выходит за рамки ОП, но важно намекнуть на тот факт, что базовый алгоритм непрактичен для больших сетей.
чтобы закончить с очень доступным текстом (но со многими ссылками на подробную информацию), я хотел бы упомянуть Википедия отличная статья
Если вы серьезно относитесь к такого рода вещам, вы можете рассмотреть вводный/освежающий класс по математике, особенно линейной алгебре, а также класс информатики, который имеет дело с графами в целом. Кстати, отличное предложение от Майкла Дорфмана, в этом посте, для видео OCW лекций 1806 года.
надеюсь, это немного поможет...
Если вы серьезно относитесь к разработке алгоритма поисковой системы, я бы серьезно рекомендую вам пройти курс линейной алгебры. В отсутствие личного курса Курс MIT OCW Гилберта Странга довольно хорош (видеолекции на http://ocw.mit.edu/OcwWeb/Mathematics/18-06Spring-2005/VideoLectures/).
такой класс, безусловно, позволит вам понять математические символы в документе, который вы предоставляете-в этой статье ничего нет это не было бы охвачено в курсе линейной алгебры первого года.
Я знаю, что это не ответ вы ищете, но это действительно лучший вариант для вас. Когда кто-то пытается объяснить вам отдельные символы или алгоритмы, когда у вас нет хорошего понимания основных понятий, это не очень хорошее использование чьего-либо времени.
Это бумага, которая вам нужна:http://infolab.stanford.edu / ~backrub/google.html (Если вы не узнаете имена авторов, вы найдете более подробную информацию о них здесь:http://www.google.com/corporate/execs.html).
символы, используемые в документе, описаны в документе на английском языке.
Спасибо, что заставил меня погуглить.
вы также можете прочитать вводный учебник по математике за построением матрицы Pagerank, написанной Дэвидом Остином под названием как Google находит свои иглу в веб-Сена; Он начинается с простого примера и строится до полного определения.
" $ 25,000,000,000 Собственный Вектор: Линейная Алгебра За Google". от Rose-Hulman немного устарел, потому что теперь ранг страницы является проблемой линейной алгебры $491B. Я думаю, что статья написана очень хорошо.
"Программирование Коллективного Разума" имеет хорошее обсуждение ранга страницы, а также.
Duffymo опубликовал лучший рефернс на мой взгляд. Я изучал алгоритм ранжирования страниц в выпускном классе. Ранг страницы делает следующее:
- определите набор текущих веб-страниц как состояния конечной цепи Маркова.
-
определите вероятность перехода с сайта u на v, где есть исходящая ссылка на v из u, чтобы быть
1/u_{n}, где u_{n} - количество исходящих ссылок из u.
предположим, что Марковская цепь, определенная выше, неприводима (это может быть применено только с небольшим ухудшением результатов)
- можно показать, что каждая конечная неприводимая цепь Маркова имеет стационарное распределение. Определите ранг страницы как стационарное распределение, то есть вектор, который содержит вероятность случайной частицы оказаться на каждом заданном сайте, поскольку число переходов состояний бесконечность.
Google использует небольшое изменение метода мощности для поиска стационарного распределения (метод мощности находит доминирующие собственные значения). Кроме этого ничего нет. Его довольно простой и элегантный и, вероятно, один из самых простых приложений марковских цепей я могу думать, но это стоит много денег!
таким образом, весь алгоритм pagerank учитывает топологию интернета Как указание на то, должен ли веб-сайт быть важный. Чем больше входящих ссылок имеет сайт, тем больше вероятность того, что случайная частица проведет свое время на сайте в течение бесконечного количества времени.
Если вы хотите узнать больше о ранге страницы с меньшим количеством математики, то этой очень хороший учебник по основным матричным операциям. Я рекомендую его всем, у кого мало математического фона, но хочет погрузиться в алгоритмы ранжирования.