Поисковая система видит не «важные страницы», а огромный ориентированный граф. PageRank превращает структуру ссылок в вероятностный эксперимент: где окажется читатель, если очень долго переходить по ссылкам и иногда начинать путь заново?
Голоса, которые имеют разный вес
Пусть каждая веб-страница является вершиной, а гиперссылка — ориентированным ребром. Уже здесь возникает отличие от школьного голосования. Страница , на которую ссылаются сто никому не известных каталогов, не обязательно важнее страницы , на которую ведёт одна ссылка с главной страницы университета. Голос сам имеет вес, а этот вес ещё только предстоит найти.
Если из вершины выходит ссылок, простейший случайный читатель выбирает каждую с вероятностью . Переходы задаёт стохастическая матрица
Вектор-строка хранит вероятности положения после кликов, поэтому
Эта формула связывает тему с цепями Маркова, а способ многократно умножать вектор на матрицу — со степенным методом для собственных векторов. Никаких меток «хорошая страница» алгоритм не получает. Ранг рождается из геометрии графа и правила движения.
Слева показаны шесть страниц и направления ссылок; толщина стрелки равна вероятности перехода . В центре та же система записана разреженной матрицей, справа поток . Три панели переводят одну модель с языка графов на язык матриц, а затем — на язык вероятностного движения.
Неподвижное распределение
Если после долгого движения распределение перестаёт заметно меняться, его предел удовлетворяет
Это левый собственный вектор матрицы для собственного числа . Компонента имеет ясный частотный смысл: доля времени, которую длинная траектория проводит на странице . В отличие от отдельной прогулки, стационарное распределение описывает весь поток.
Рассмотрим три страницы: ссылается на и , — только на , — только на . Баланс потоков даёт
После нормировки получаем . Входящая степень у равна двум, но один из входов несёт только половину потока. Поэтому просто считать ссылки недостаточно.
Тупики, ловушки и случайный прыжок
Реальный веб-граф неудобнее учебного. У страницы без исходящих ссылок строка матрицы состоит из нулей: вероятность «исчезает». Её заменяют равномерным переходом на любую вершину либо заданным распределением интересов .
Вторая неприятность тоньше. Группа страниц может ссылаться только друг на друга. Попав внутрь такого замкнутого множества, случайный читатель больше не выйдет. Тогда результат зависит от начальной точки, а несколько стационарных распределений конкурируют.
PageRank смешивает следование ссылкам с телепортацией:
С вероятностью читатель нажимает ссылку, а с вероятностью выбирает новую страницу по . При положительных компонентах из любой вершины можно попасть в любую другую за один случайный прыжок.
В верхней панели вершины образуют ловушку: весь поток со временем остаётся внутри неё. В нижней панели пунктирные рёбра показывают телепортационные переходы; рядом нанесены стационарные вероятности при . Цвет кодирует величину , а не входящую степень.
Вычисление без полной матрицы
Для миллиарда страниц нельзя хранить плотную матрицу . Но веб-граф разрежен: каждая страница содержит лишь небольшое число ссылок. На одной итерации достаточно пройти по списку рёбер и распределить массу между соседями. Цена шага близка к , память — .
Начинают, например, с и останавливаются, когда
Малое сильнее уважает ссылки, но медленнее забывает старт и дольше выходит из почти замкнутых сообществ. Большая телепортация ускоряет перемешивание, зато приближает ранг к . Это тот же конфликт смещения и устойчивости, который встречался при регуляризации моделей.
Остаток контролирует изменение вектора, но не сообщает, насколько полезен итоговый поиск. Алгоритмическая сходимость и качество продукта — разные вопросы.
Персонализация вместо единственного рейтинга
Вектор не обязан быть равномерным. Если сосредоточить телепортацию на страницах про биологию, получится тематический PageRank. Если описывает интересы пользователя, ранг станет персональным. Линейность даёт полезный факт: PageRank для смеси
равен той же смеси рангов для и . Поэтому можно заранее вычислить несколько тематических векторов и быстро комбинировать их.
Но персонализация создаёт новую власть: кто выбрал стартовое распределение, тот частично выбрал видимую картину мира. Связь с рекомендательными системами прямая: математически удобная релевантность может сужать разнообразие источников.
Лаборатория: поток по живому графу
Сначала установите телепортацию в ноль и включите ловушку. Запустите несколько тысяч кликов из разных начальных вершин. Затем верните и сравните эмпирические частоты с точным вектором. Наконец, измените : отдайте половину телепортационной массы одной вершине и проследите, как влияние распространяется дальше по рёбрам.
Не ограничивайтесь первой строкой рейтинга. Запишите расстояние между двумя соседними итерациями, число шагов до порога и перестановки в первой пятёрке. Небольшое изменение вероятностей может заметно поменять порядок почти равных страниц.
Реальный граф и честная проверка
Набор Web-Google из коллекции SNAP содержит около вершин и более пяти миллионов рёбер. Это снимок веба 2002 года, а не современный интернет; дата входит в описание данных так же обязательно, как число рёбер. Для школьного эксперимента разумно взять достижимый подграф из – вершин.
Сравните входящую степень, PageRank и персонализированный PageRank. Рассчитайте коэффициенты корреляции и отдельно разберите страницы с самым большим расхождением рангов. Проверьте устойчивость верхней двадцатки при , и . Если вершины обозначены анонимными номерами, не приписывайте им смысл, которого в данных нет.
Каждая точка — вершина фрагмента Web-Google. По горизонтали отложен , по вертикали — . Подписаны вершины, у которых PageRank особенно велик или мал относительно степени: именно они требуют объяснения через качество источников и число исходящих ссылок.
Мини-исследование: когда меняется первая тройка
Возьмите граф из 30–50 страниц одного небольшого тематического сайта и не вычисляйте ранг «один раз». Сначала зафиксируйте исходный граф и получите . Затем проведите три вмешательства: удалите одно ребро с вершины-лидера, добавьте ссылку с вершины среднего ранга на аутсайдера и превратите одну страницу в тупик. Для каждой версии считайте
и расстояние Кендалла между полными порядками. Такое исследование отделяет два эффекта: абсолютное изменение вероятности и перестановку почти равных мест.
Особенно полезно заранее сделать прогноз стрелками на бумаге. Ссылка от сильной страницы делит её исходящий поток; поэтому новый адресат получает не «весь авторитет», а долю. Удаление ребра перераспределяет массу между оставшимися выходами. Тупик после исправления равномерным прыжком действует иначе, чем телепортация всего процесса. Сверьте эти качественные предсказания с расчётом.
Наконец, повторите вмешательства для персонализированного . Если рейтинг резко меняется от одного ребра, его нельзя подавать пользователю как устойчивую объективную шкалу. Здесь PageRank встречается с анализом чувствительности модели: вместе с ответом исследуйте, какие малые изменения данных способны его перевернуть.
Что унести с собой
PageRank — не магическая мера истины, а стационарный поток в выбранном графе. Телепортация одновременно чинит математику, ускоряет вычисление и вводит prior . Разреженный степенной метод делает задачу масштабируемой. А интерпретация результата требует знать, как собран граф, что означает ребро и для кого определена релевантность.