Читать книгу В одно касание. Бизнес-стратегии Google, Apple, Facebook, Amazon и других корпораций - Нил Мехта - Страница 6
Глава 1. Разработка программного обеспечения
Как работает поиск в Google?
ОглавлениеКаждый раз при создании запроса в Google поисковая система просматривает более 30 триллионов страниц в интернете и находит первые 10 результатов. В 92 % случаев пользователь выбирает результат на первой странице (то есть топ-10). Найти 10 лучших из 30 триллионов результатов действительно сложно – почти так же сложно, как случайно найти монетку, упавшую где-то в Нью-Йорке. Тем не менее Google успешно делает это за полсекунды. Но как?
На самом деле Google не посещает каждую страницу в интернете каждый раз, когда создается какой-то запрос. Google фактически хранит информацию о страницах в базах данных (таблицы информации, как в Excel) и использует алгоритмы, считывающие эти базы данных, чтобы решить, что показать пользователю. Алгоритмы – это просто ряд заданных правил. У людей может быть встроен «алгоритм» для создания бутерброда с маслом и сыром, в то время как на компьютерах Google есть алгоритмы для поиска страниц на основе поискового запроса.
Веб-паук
Алгоритм начинается с создания базы данных каждой страницы в интернете. Google использует программы, называемые «пауками», которые «ползут» по страницам, пока не найдут их все (или, по крайней мере, пока Google не решит, что этого достаточно). «Пауки» начинают с нескольких страниц и добавляют их в список страниц Google, называемый индексом. Затем они переходят по всем исходящим ссылкам на этих страницах и находят новый набор страниц, который добавляют в индекс. Далее они переходят по всем ссылкам уже на новых страницах и так далее, пока Google не найдет что-нибудь еще.
Это непрерывный процесс; Google всегда добавляет новые страницы в индекс или обновляет их, если они меняются. Индекс огромен, он весит более 100 млн ГБ. Для того чтобы поместить его на внешнем жестком диске объемом 1 ТБ, потребовалось бы 100 тысяч таких дисков, а если поставить их друг на друга, высота составит примерно 1,5 км.
Поиск слова
Поиск в Google работает таким образом: он принимает запрос (текст, введенный в строку поиска) и просматривает индекс, чтобы найти наиболее подходящие страницы. Как Google это делает? Самый простой способ – найти определенное ключевое слово, что-то вроде нажатия Ctrl+F или Cmd+F для поиска в гигантском документе Word. Именно так работали поисковые системы 1990-х годов: они искали запрос в своем индексе и отображали страницы с наибольшим количеством совпадений, атрибут, называющийся плотностью ключевых слов.
Как выяснилось, эту схему довольно легко обойти. Если ввести в поисковую строку «шоколадный батончик Snickers», то можно предположить, что snickers.com окажется в списке первых найденных страниц. Но если поисковая система просто считала количество повторяющихся слов «сникерс» на странице, кто-то мог бы создать «левую» страницу со словом «сникерс, сникерс, сникерс, сникерс» и т. д., и таким образом она бы оказалась в числе первых в результатах поиска. Очевидно, что такая страница окажется не очень полезной.
PageRank
Взамен алгоритма плотности ключевых слов основным нововведением Google стал алгоритм под названием PageRank, созданный Ларри Пейджем и Сергеем Брином в 1998 году в рамках работы над кандидатской диссертацией. Пейдж и Брин обратили внимание, что оценить приоритетность страницы можно, посмотрев на другие важные страницы, со ссылкой на нее. Это словно, находясь на вечеринке, узнать, что кто-то популярен, увидев этого человека, окруженного другими известными людьми. PageRank присваивает каждой странице оценку на основании других своих оценок, данных всем остальным страницам, которые дают ссылку на эту страницу. (Оценка тех страниц зависит от других страниц, которые дают на них ссылку, и т. д.; это рассчитывается с помощью линейной алгебры.)
Например, в случае создания новой страницы об Аврааме Линкольне, ее PageRank был бы очень низким. Но если бы какой-нибудь малоизвестный блог добавил ссылку на эту страницу, это повысило бы ее PageRank. PageRank больше заботится о качестве входящих ссылок, чем об их количестве, поэтому даже если десятки непопулярных блогов дадут ссылку на эту страницу, пользы будет мало. Но если бы газета New York Times (которая, скорее всего, имеет высокий PageRank) дала бы ссылку на нее, то ее PageRank взлетел бы.
Как только Google находит в своем индексе все страницы, в которых упоминается поисковый запрос, он ранжирует их по нескольким критериям, включая PageRank. У Google также есть много других критериев: он учитывает последнее обновление страницы, пропускает веб-сайты, похожие на спам (например, сайт «сникерс, сникерс, сникерс, сникерс», о котором писалось выше), учитывает местоположение (он может выдать сайт Национальной футбольной лиги, если пользователь ввел запрос «футбол» и при этом находится в США, и Английскую Премьер-лигу, если он ввел аналогичный запрос, находясь в Англии) и многое другое.