Сначала присвоим всем сайтам равные веса. Представим себе, что каждый веб-сайт – это корзина; положим в каждую корзину по восемь шаров, что означает, что все они имеют одинаковый ранг. После этого веб-сайты должны отдать свои шары тем сайтам, на которые они ссылаются. Если они содержат ссылки не на один, а на несколько сайтов, то они отдают каждому из них равное число шаров. Поскольку веб-сайт А содержит ссылки на оба сайта – В и С, он отдает каждому из них по 4 шара. Однако на сайте В есть ссылка только на сайт С, и все его восемь шаров переходят в корзину веб-сайта С (см. следующую схему).
После первого перераспределения веб-сайт С кажется очень сильным. Но эту процедуру нужно повторять, потому что веб-сайт А усилится благодаря ссылке на него, которая имеется на сайте С, получившем теперь высокий рейтинг. В следующей таблице показаны изменения количества шаров в итерациях этого процесса.
Пока что этот алгоритм не выглядит особенно удачным. По-видимому, он не стабилизируется и работает довольно неэффективно, что нарушает два из наших четырех условий идеального алгоритма. Великая идея Пейджа и Брина заключалась в том, что они поняли: принцип распределения шаров нужно определить исходя из связности сети. Так совпало, что в университетском курсе математики их научили одному хитрому приему, который позволял получать правильное распределение всего за один шаг.
Для его применения прежде всего нужно построить матрицу, отражающую перераспределение шаров между веб-сайтами. В первом столбце матрицы записывается доля шаров, передаваемых от веб-сайта А другим сайтам. В данном случае 0,5 общего числа шаров переходит сайту В, а еще 0,5 – вебсайту С. Тогда матрица перераспределения выглядит следующим образом:
Задача состоит в нахождении собственного вектора этой матрицы с собственным значением, равным 1. Это вектор-столбец, который не изменяется при умножении на саму матрицу[24]
. Нахождению таких собственных векторов, или точек устойчивости, мы учим своих студентов в начале их университетского курса. В случае нашей сети оказывается, что матрицу перераспределения стабилизирует следующий вектор-столбец:Это означает, что если мы разделим шары в пропорции 2:1:2, то полученное распределение весов будет стабильным. При раздаче шаров по тем правилам, которые мы использовали до этого, получается то же распределение по сайтам – 2:1:2.
Собственные векторы матриц – невероятно могущественный инструмент математики и точных наук вообще. Именно они позволяют определить энергетические уровни частиц в квантовой физике. Они могут рассказать об устойчивости вращающейся текучей среды – например, вращающейся звезды – или о скорости размножения вируса. Возможно, они даже послужат ключом к пониманию распределения простых чисел среди чисел вообще.
Рассчитав собственный вектор связности сети, мы видим, что веб-сайтам А и С должен быть присвоен один и тот же ранг. Хотя ссылка на сайт А имеется только на одном сайте (С), тот факт, что веб-сайт С высоко ценится и содержит ссылку только на сайт А, означает, что эта ссылка придает сайту А высокую ценность.
Таков основной принцип алгоритма. В нем есть еще несколько дополнительных тонкостей, которые потребовалось ввести, чтобы алгоритм заработал в полную силу. Например, он должен учитывать аномалии – например, веб-сайты, не содержащие никаких ссылок на другие сайты и становящиеся поэтому тупиковыми складами перераспределяемых шаров. Но в основе алгоритма лежит именно эта простая идея.
Информация об основном устройстве поисковой системы общедоступна, но внутри алгоритма есть параметры, которые держатся в тайне и изменяются со временем, что несколько затрудняет взлом алгоритма. Но замечательнее всего устойчивость алгоритма Google и его неуязвимость к попыткам его обмануть. Веб-сайту очень трудно сделать у себя что-либо, что повысило бы его рейтинг. Его положение могут усилить только другие сайты. Если вы посмотрите на веб-сайты, которым алгоритм ранжирования страниц Google присваивает высокий рейтинг, вы увидите среди них сайты многих крупных новостных агентств и университетов, например Оксфорда и Гарварда. Это связано с тем, что многие сторонние сайты размещают ссылки на данные и мнения, опубликованные на сайтах университетов, потому что многие люди по всему миру высоко оценивают исследования, которыми мы занимаемся.
Интересно отметить одно следствие такого положения вещей: когда владелец веб-сайта, входящего в оксфордскую сеть, размещает у себя ссылку на какой-нибудь сторонний сайт, это приводит к повышению ранга этого стороннего сайта, потому что сайт Оксфорда отдает ему малую часть своего огромного престижа (или запаса шаров). Поэтому меня часто просят разместить на моем сайте на математическом факультете Оксфорда ссылки на сторонние веб-сайты. Такие ссылки повышают ранг этих сайтов и, как знать, даже могут позволить им осуществить заветную мечту всех вебсайтов – появиться на первой странице результатов поиска в Google.