Алгоритмы так распространились в наше время, потому что они идеально подходят для компьютеров. Алгоритм приводит нас к ответу задачи, опираясь на схему, лежащую в основе нашего метода ее решения. Компьютеру не нужно думать. Он просто снова и снова следует инструкциям, заложенным в алгоритм, и как будто по волшебству выдает нужный нам ответ.
Один из самых замечательных алгоритмов нашего времени – это алгоритм, ежедневно помогающий миллионам людей путешествовать по интернету. Если бы я оказался на необитаемом острове и мог взять с собой только один алгоритм, я, вероятно, выбрал бы тот, который управляет поисковой системой Google (хотя толку от него было бы мало, так как у меня, скорее всего, не было бы подключения к интернету).
На заре интернета (я говорю о начале 1990-х) существовал каталог, в котором были перечислены все имеющиеся веб-сайты. В 1994 году их было всего 3000. Интернет был настолько мал, что было достаточно легко пролистать этот перечень и найти в нем то, что нужно. С тех пор ситуация сильно изменилась. Когда я начинал писать этот абзац, в интернете был 1 267 084 131 активный вебсайт. Спустя несколько предложений это число возросло до 1 267 085 440 (текущее состояние можно проверить по адресу http://www.internetlivestats.com).
Как же Google решает, какой именно из миллиардов сайтов рекомендовать? Мэри Эшвуд, 86-летняя бабушка из города Уигана[22]
, всегда тщательно вставляла в свои поисковые запросы вежливые «пожалуйста» и «спасибо», возможно представляя себе, что обращается к группе энергичных практикантов, которые просеивают бесконечные запросы вручную. Когда ее внук Бен открыл ее лэптоп и увидел запрос «пожалуйста переведите римское число mcmxcviii спасибо», он не смог устоять перед искушением рассказать всему миру о заблуждениях своей бабушки через твиттер. Каково же было его удивление, когда кто-то из сотрудников Google ответил на его сообщение:Дорогая бабушка Бена,
как вы поживаете?
Вы порадовали нас в мире миллиардов поисковых запросов.
Кстати, ответ – 1998.
Спасибо ВАМ
В этом случае бабушка Бена достучалась до человеческой части Google, но компания, разумеется, никак не может лично отвечать на все те запросы, которые поступают в систему Google – по миллиону каждые 15 секунд. Но, если в Google нет волшебных эльфов, прочесывающих интернет, как же поисковой системе удается столь поразительно эффективно находить ответы, нужные пользователю?
Причина всего этого – в мощности и красоте алгоритма, который Ларри Пейдж и Сергей Брин сочинили в стэнфордском студенческом общежитии в 1996 году. Сначала они собирались назвать свой алгоритм Backrub[23]
, но в конце концов остановились на имени Google, от принятого в математике названия числа, равного единице со ста нулями, – «гугол» (Не то чтобы не существовало других алгоритмов, которые использовались с той же целью, но их концепции были весьма примитивны. Например, для человека, желающего найти дополнительную информацию по теме «вежливая бабушка и Google», существовавшие алгоритмы отыскали бы все страницы, содержащие эти слова, и расположили их в определенном порядке: те сайты, на которых термины запроса встречаются наибольшее количество раз, попали бы в верхнюю часть списка.
Такой метод вполне работоспособен, но его очень легко обмануть: любой хозяин цветочного магазина может тысячу раз вписать в метаданные своего сайта выражение «Цветы к Дню матери» и моментально окажется на первом месте в результатах поиска всех любящих сыновей и дочерей. Нужна поисковая система, которой хитрым веб-дизайнерам было бы не так просто помыкать. Как же можно получить неискаженную меру важности веб-сайта? И как выяснить, на какие сайты можно не обращать внимания?
У Пейджа и Брина возникла следующая светлая мысль: если на некий веб-сайт ведет много ссылок, значит, те сайты, с которых они ведут, сигнализируют, что его стоит посетить. То есть можно демократизировать меру ценности веб-сайта, позволив другим веб-сайтам голосовать за те сайты, которые они считают важными. Однако и этот алгоритм можно было обмануть. Нужно было всего лишь создать тысячу искусственных сайтов со ссылками на сайт цветочного магазина, и он снова оказывался вверху списка выдачи. Чтобы предотвратить такое положение дел, разработчики алгоритма решили придавать больший вес голосам сайтов, которые сами пользуются уважением.
Но и тогда один вопрос по-прежнему оставался без ответа: как ранжировать сайты по относительной важности? Рассмотрим, например, миниатюрную сеть, изображенную на схеме: