Шрифт:
Интервал:
Закладка:
Как же выявлять эти качества в большой сети, где можно продолжать такой подсчет до бесконечности? Существуют различные способы, но лучше я опишу самую суть задачи. Давайте начнем с того, что просто учтем количество друзей первой степени (непосредственных). Итак, как мы видим из рисунка 2.5, и Нэнси, и Уоррен получат по 2 балла, поскольку у каждого из них — по два друга. Далее, учтем друзей второй степени. Но должны ли мы наделять их таким же значением, что и друзей первой степени? Например, если мы представим себе, что информация начнет распространяться от Нэнси, то, вероятнее всего, она перейдет от Нэнси к Майлсу, затем к кому-нибудь из друзей Майлса, — поскольку она должна вначале перейти от Нэнси к Майлсу, а затем дальше — уже от Майлса. Пожалуй, менее вероятно, что ей понадобится для распространения два шага, а не один шаг, — скажем, в два раза менее вероятно. Так что пока давайте присвоим другу друга значение вдвое меньшее, чем непосредственному другу. У Нэнси одиннадцать друзей второй степени, поэтому присваиваем ей 11/2 баллов, учитывая количество друзей ее друзей. А у Уоррена имеется только один друг второй степени, поэтому он получает 1/2. Итак, у Нэнси пока что 7,5 балла, если считать ее друзей первой и второй степени, а у Уоррена — только 2,5. Далее мы переходим к подсчету друзей третьей степени: у Нэнси их трое, а у Уоррена — двое. Опять-таки присвоим новым друзьям значение вдвое меньшее по сравнению с предыдущим уровнем, то есть по 1/4. Таким образом, к уже набранным очкам Нэнси прибавится еще 3/4, а к прежним очкам Уоррена — 2/4, после чего общее число баллов у Нэнси уже достигло 8,25, а у Уоррена оно выросло до трех. Продолжая подсчет таким способом, мы сможем количественно оценить, насколько охват людей в сети у Нэнси больше, чем у Уоррена.
Относительное сравнение Нэнси с Уорреном позволяет разрешить и другой вопрос. Давайте условимся, что центральность каждого из них пропорциональна сумме центральностей их друзей. Этот подсчет будет подобен тому, что уже проделан нами ранее. Тем самым Нэнси получит некоторую долю очков Эллы и Майлса — из-за того, что будет учтена некоторая доля очков их друзей, и так далее. Эти повторные операции будут подобными, потому что Элла и Майлс получают очки от своих друзей, которые приходятся друзьями второй степени Нэнси, а те очки получены от их друзей, которые приходятся Нэнси друзьями третьей степени, и так далее{26}.
По счастью, система уравнений такого типа — когда центральность каждого человека пропорциональна сумме центральностей его друзей — вполне естественная и легкорешаемая математическая задача. Она появилась благодаря ряду научных работ известнейших математиков, живших с XVIII по ХХ век: это Эйлер, Лагранж, Коши, Фурье, Лаплас, Вейерштрасс, Шварц, Пуанкаре, фон Мизес и Гилберт. Гилберт назвал решения подобных задач «айген-векторами», или «собственными векторами», и это общепринятое современное название. Неудивительно, что собственные вектора фигурируют во всевозможных областях, от квантовой механики (уравнение Шрёдингера) до алгоритма eigenface, содержащего основные строительные блоки для программ распознавания лиц. Решая задачу собственного вектора в нашем примере, мы приходим к ответу: количество баллов у Нэнси приблизительно в 3 раза больше, чем у Уоррена, что мы и видим на рисунке 2.6{27}.
Рис. 2.6. Центральности по собственному вектору для каждого узла (человека). У Нэнси почти в 3 раза больше баллов, чем у Уоррена, хотя у обоих имеется одинаковое количество связей. Больше всего баллов у Майлса, хотя у Эллы наибольшая центральность по степени.
Инновация Брина и Пейджа заключалась в том, чтобы выстраивать веб-страницы согласно алгоритму, который они назвали PageRank. Он имеет прямое отношение к тому, что мы описали выше, и к вычислению собственного вектора. Правда, Брин и Пейдж не собирались распространять слухи по сети, но перед ними стояла сходная итеративная задача — так называемая задача случайного пользователя. Интернет-пользователь начинает с какой-то одной страницы, а затем случайным образом переходит оттуда по ссылке на другую страницу, причем он может с одинаковой вероятностью выбрать любую из ссылок. Затем все повторяется — пользователь таким же случайным образом блуждает по Сети{28}. Со временем, если мы вычислим относительное количество раз, которое пользователь посещает каждую страницу, мы получим собственный вектор. В этом случае баллы, которые присваиваются на каждом этапе, пропорциональны количеству ссылок, имеющихся на каждой странице.
Перед Брином и Пейджем стояли две трудности. Умозрительная задача — найти наиболее значимые страницы — решалась уже известным нам путем: следовало не смотреть на популярность страниц, а просчитывать, насколько хорошо они обеспечены связями в этом итеративном, айген-векторном смысле. Более практическая задача заключалась в том, чтобы внедрить этот принцип в колоссальном масштабе всей Паутины, а это значило, что нужно облазить всю сеть и проиндексировать страницы, накопить данные о содержании каждой страницы и об имеющихся на ней ссылках, а затем произвести итеративные вычисления, чтобы определить их сетевое положение. Одно дело — производить подобные расчеты для Нэнси и Уоррена в нашей маленькой сети, показанной выше, и совсем другое — проделывать то же самое для миллиардов страниц, тем более что они постоянно меняют содержание и ссылки.
Брин с Пейджем разработали алгоритм, основанный на такого рода вычислениях и хорошо подходивший для огромных сетей, назвали его BackRub и запустили в работу на стэнфордских серверах. Название BackRub (буквально backrub значит «массаж спины») происходит от backlink — «обратной ссылки», то есть такой ссылки, которая приводит пользователя на ту или иную страницу. BackRub быстро перерос студенческие аккаунты, которые Брин и Пейдж завели на стэнфордских серверах, и в 1997 году они уже перенесли поисковую машину в другое место и назвали ее Google. Это было чуть видоизмененное название числа гугол (googol) — 10100, что говорило об огромном размере Всемирной сети, которую удалось-таки покорить их алгоритму. Всех, кому доводилось искать что-либо в интернете в ранние годы его существования, поражала способность Google находить полезные страницы. К тому времени имелось уже немало поисковых машин, конкурировавших между собой, и, как правило, пользователям приходилось перепробовать их все, чтобы найти в сети нужную страницу — часто безрезультатно. В 1998 году PC Magazine сообщил, что Google «на удивление ловко и удачно находит полезные страницы», и поместил его в сотню самых важных веб-страниц{29}. Остальное — уже история{30}.