Инженер компании Google раскрывает алгоритмы ранжирования

Позвольте представиться. Меня зовут Амит Сингал. Я работаю в Google руководителем команды, ответственной за ранжирование.

Вот уже восемнадцать лет я работаю в сфере поисковых технологий, начав в 1990 года выпускником по специальности «компьютерные науки». В научных кругах «поисковые алгоритмы» называют «Информационный поиск» (Information Retrieval или IR). Я пришел в Google в 2000 году и с тех пор работаю над алгоритмами ранжирования Google.

Ранжирование Google — это набор взаимосвязанных алгоритмов, используемых для поиска документов, наиболее релевантных для запроса пользователя. Мы используем эти алгоритмы для сотен миллионов запросов в день из набора миллиардов и миллиардов страниц. Эти алгоритмы работают для каждого запроса, введенного в большинство служб поиска Google.

Так как поиск в сети — это самая используемая служба Google, а также самая широкоизвестная, те же алгоритмы ранжирования используются, с некоторыми изменениями, в других службах поиска, таких как Images, News, YouTube, Maps, Product Search, Book Search и других.

Самый частозадаваемый мне вопрос о ранжировании Google: "Как Вы это делаете?".

Существуют принципы ранжирования.
Рассмотрим, для примера, такой график:


Изображение: Принципы ранжирования сайтов

Конечно, для создания такой современной системы как наша, требуется очень много, и я постараюсь рассказать о некоторых технологиях в следующей статье. Сегодня, я бы хотел вкратце объяснить основные принципы ранжирования Google:

наиболее релевантные запросу результаты;
стараться сделать алгоритмы как можно проще;
полная автоматизация, никакого ручного вмешательства в работу алгоритмов.

Первый принцип очевиден. Работая над поисковым движком, мы хотим быть абсолютно уверены в том, что каждый пользователь получит наиболее релевантные результаты своего запроса. Мы обычно называем это принципом «не пропустить ни один запрос». Всякий раз когда мы возвращаем менее, чем идеальные результаты для любого запроса пользователей на любом языке мира в любой стране — это вдохновляет нас на улучшение алгоритмов и приближение их к идеальным.

Второй принцип также очевиден. Разве не желает каждый программист или системный проектировщик, чтобы его система оставалась простой и понятной? Во время работы поисковой системы, когда мы получаем большое количество запросов от пользователей, на которые нужно ответить, и плюс ко всему учитывая все языки мира. И гораздо легче обрабатывать запрос множеством простых алгоритмов, результаты которых будут собраны и обработаны финальным.

Мы много работаем над упрощением нашей системы без ухудшения качества результата. Это постоянная проблема, но она стоит наших трудов. Мы делаем около десяти изменений алгоритмов ранжирования каждую неделю, тщательно рассматриваем их до запуска. Наши инженеры абсолютно точно понимают, почему страница была ранжирована именно таким образом для данного запроса. Система, в которой легко разобраться, позволяет нам быстро делать усовершенствования. Вот, что подразумевает принцип «Старайтесь делать проще«.

Ни одно обсуждение алгоритмов ранжирования Google не обходится без распространенного, но ошибочного, вопроса: "Google вручную редактирует свои результаты?". Позвольте мне в ответ на это просто назвать наш третий принцип: «Никакого ручного вмешательства». На наш взгляд, сеть была создана людьми. Вы одни из тех, кто создает страницы и посещает их. Мы используем вклад человека в наших алгоритмах. Финальное упорядочение результатов определяется исключительно нашими алгоритмами, использующими достижения и разработки огромного Интернет-сообщества, а не вручную, т.е. весь процесс происходит полностью автоматически.

Мы считаем, что субъективное мнение каждого индивидуума является субъективным, а информация, выбранная нашими алгоритмами из огромной массы человеческих знаний, записанных на веб-страницах и ссылках на них гораздо выше, чем субъективное мнение.

Вторая причина, по которой мы принципиально против ручного вмешательство в результаты ранжирования — это то, что неверно обработанный запрос является поводом для улучшения наших алгоритмов.

Совершенствуя основной алгоритм, мы не просто улучшаем тот один запрос, мы совершенствуем целый класс запросов, причем всегда для всех языков мира. Однако, я должен добавить, что так же существуют правила для написания сайтов, рекомендованные Google, и мы принимаем меры в отношении сайтов, нарушающих наши правила или по некоторым другим причинам (таким, как требования закона, детская порнография, вирусы/вредоносное ПО, и т.д.).

Основная технология нашей системы ранжирования пришла из области науки «Информационного поиска» (Information Retrieval или IR). IR-сообщество исследует поиск почти 50 лет. Оно использует статистику особенностей слов, таких, как частота слов, для ранжирования страниц. IR заложило для нас твердый фундамент, и мы построили на нем огромную систему, используя ссылки, структуру страниц и многие другие новшества.

В последнее десятилетие сущность поиска изменилась от «дайте мне то, что я сказал» до «дайте мне то, что я хочу». Ожидания пользователей от поиска справедливо выросли. Мы много работаем над удовлетворением ожиданий каждого пользователя, и для это нам необходимо как можно лучше понимать страницы сайтов, запросы и наших пользователей. За последнее десятилетие мы довели технологии до понимания этих трех компонентов (процесса поиска) до совершенно новых измерений.

На протяжении всей статьи, когда речь будет идти о запросах в Google, они будут заключены в квадратные скобки [ ], для обозначения начала и конца запроса. (Страницы и результаты поиска часто меняются, поэтому, со временем, некоторые примеры, используемые здесь, будут работать не так, как описано.)

Понимание страниц

За годы мы глубоко продвинулись в технологии краулинга и индексирования. В результате мы получаем очень большой и свежий каталог. Кроме размеров и актуальности, мы добавили в наш каталог и другие улучшения. Одна из ключевых технологий, которую мы разработали для понимания страниц, привязывает логически-важные понятия к странице, даже если она их не содержит.

Технологии ранжирования Google


Допустим, мы найдем официальный сайт Sprovieri Gallery в Лондоне по запросу на итальянском [galleria sprovieri londra], хотя на сайте нет ни слова London, ни Londra. В США пользователь, ищущий [cool tech pc vancouver, wa] найдет страницу www.cooltechpc.com несмотря на то, что нигде на странице не указано, что они находятся в Ванкувере. Другие нами разработанные технологии включают в себя распознавание более важных и менее важных слов на странице и свежесть информации на сайте.
Понимание запросов

Важно понимать, что ищут наши пользователи (больше, чем просто слова в их запросе). Мы достигли некоторых заметных успехов в этом направлении, включающих в себя лучшую в своем роде систему распознавания текстового содержимого, развитую систему синонимов и очень мощную систему анализирования.

Многие пользователи время от времени используют нашу систему распознавания содержимого. Системе известно, что кто-то, вводящий в строке поиска [kofee annan], на самом деле ищет мистера Кофи Аннана, и подсказывает ему об этом: Did you mean: kofi annan; тогда как если кто-то ищет [kofee beans], то ему на самом деле нужны coffee beans (кофейные бобы).

Сделать это для разных языков и с высокой точностью довольно сложно, но мы хорошо справляемся.

Синонимы — это фундамент нашей работы по пониманию запросов. Это одна из самых сложных проблем, решаемых нами в Google. Даже если что-то очевидно для человека, это может быть неразрешимой проблемой для автоматического языкового обработчика.

Как пользователь, я не хочу слишком много думать о том, какие слова мне использовать для запросов. Часто я даже не знаю, какие слова правильные. Здесь включается в работу наша система синонимов. Она может выполнять сложные модификации запросов, то есть она знает, что слово ‘Dr’, в запросе [Dr Zhivago], означает Doctor, в то время как в [Rodeo Dr] оно значит Drive. Пользователь, который ищет [back bumper repair] получает результаты для rear bumper repair. Для [Ramstein ab] мы автоматически получим результат для Ramstein Air Base, а при запросе [ b&b ab] мы будем искать Bed and Breakfasts in Alberta, Canada.

Мы достигли такого уровня понимания запросов для практически сотни различных мировых языков, этим я действительно горжусь!

Другая технология, которую мы используем в нашей системе ранжирования — это поиск идеи. Обнаружение главной идеи запроса позволяет возвратить намного более релевантные результаты. Например, наши алгоритмы поймут, что в запросе [new york times square church] пользователь ищет известную церковь на Times Square, а не статьи из New York Times. Но мы не останавливаемся на поиске идей, мы добавляем правильные идеи, когда, например, кто-то ищет [PC and its impact on people], то на самом деле он ищет impact of computers on society (влияние компьютеров на общество), а пользователю, ищущему [rainforest instructional activities for vocabulary], нужны rain forest lesson plans. Наши алгоритмы анализа запросов имеют множество встроенных современных методик, и, повторюсь, мы делаем это практически для всех языков, с которыми мы работаем.
Понимание пользователей

Наша работа по пониманию намерений пользователя нацелена на возврат результатов, которые действительно хотят пользователи получить, а не просто тех, которые они написали в своем запросе. Эта работа начинается с системы локализации мирового уровня. И добавляет нашу улучшенную технологию индивидуализации и несколько других больших шагов, таких как Универсальный Поиск, сделанных нами в понимании намерений пользователей.

Наш упор на принцип «наиболее релевантные запросу результаты» отражается в нашей работе по локализации. Один и тот же запрос, написанный в различных странах, даст абсолютно разные результаты. Пользователь, ищущий [bank] в США, должен получить Американские банки, в то время как пользователь в Великобритании ищет Bank Fashion line или British financial institutions. Результаты этого запроса должны содержать местные финансовые подразделения в других англоговорящих странах, таких как Австралия, Канада, Новая Зеландий, ЮАР.

Настоящее веселье начинается, когда этот запрос вводится в не-англоговорящей стране, например в Египте, Израиле, Японии, России, Саудовской Аравии, Швейцарии. Также, запрос [football] относится к совершенно различным видам спорта в США, Австралии и Великобритании.


Изображение: Круговая диаграмма приоритетов ранжирования

Эти примеры в основном показывают, как мы получаем правильные местные версии одинаковых смысловых значений в различных странах (финансовые подразделения, спорт и т.д.). Однако, один и тот же запрос можно иметь совершенно разное значение в разных странах.

Например, [Côte d'Or] это географический регион во Франции, но это крупный производитель шоколада в соседней, франкоговорящей Бельгии; и да, эти вещи мы тоже получаем правильно.
Персонализация

Персонализация — это еще одна сильная особенность нашей поисковой системы, которая подгоняет результаты поиска для каждого пользователя.

Пользователи, которые "залогинились" во время поиска и имеют включенный журнал посещений, получают результаты, которые более релевантны для них, чем общие результаты Google. Например, пользователь, который имеет множество запросов, относящихся к футболу, получит более «футбольные» результаты на запрос [giants], тогда как другие пользователи могут получить результаты, относящиеся к бейсбольной команде. Аналогично, если вы стремитесь получить результаты из какого-то интернет-магазина, вам лучше искать товар на этом сайте. По нашим оценкам, пользователи, получающие персональные результаты, находят их более релевантными, чем неперсонализированные результаты.

Другой случай пользовательских намерений можно рассмотреть на примере запроса [chevrolet magnum]. Magnum на самом деле делается компанией Dodge, а не Chevrolet. Поэтому, мы показываем результаты для Dodge Magnum с пометкой See results for: dodge magnum.

Наша работа над Универсальным Поиском — это ещё один пример нашего толкования намерений пользователя для предоставления им того, что они (иногда) на самом деле хотят. Т.е., кто ищет [bangalore], получают не только нужные веб-страницы, также ему становится доступна карта, видео, жизнь на улицах Бангалоре и т.д., и плюч ко всему еще и новости/блоги о Бангалоре.

В заключение, позвольте мне коротко упомянуть последнее улучшение, сделанное нами в механизме поиска: Cross Language Information Retrieval (CLIR). Это позволяет пользователям сначала получить информацию не на их родном языке, а затем, используя технологию перевода Google, мы делаем информацию доступной. Я называю это улучшение «дайте мне то, что мне нужно, на любом языке». Пользователь, который ищет биографию Тони Блэра в России, набирающий [Тони Блэр биография] получает предложение посмотреть результаты, переведенные с английского. Аналогично, пользователь, ищущий песни из фильмов Дисней в Египте с запросом [أغاني أفلام ديزني], получит предложение посмотреть английские результаты.

Нам очень нравится CLIR, так как он действительно помогает нам в нашей миссии по организации информации в мире и приданию ей универсальной доступности и пользы.

Я могу продолжать показывать примеры современных технологий, которые мы разработали, чтобы сделать нашу систему ранжирования настолько хорошей, какой она является, но на самом деле решение проблемы поиска еще далеко за горами. Многие запросы до сих пор не получают удовлетворяющих результатов в Google, и наличие каждого такого запроса — это возможность улучшить и дополнить нашу систему ранжирования. Я уверен, что с таким количеством технологий, разрабатываемых нашей группой, мы сделаем большие улучшения в наших алгоритмах ранжирования в ближайшем будущем.
Заключение

Я надеюсь, что две мои статьи о ранжировании Google дали понять, что мы живем и дышим поиском, и нам это нравится больше, чем когда-либо. Наше старание служить пользователям по всему миру беспрецендентно. Мы гордимся сами собой, запуская очередной алгоритм в нашу систему ранжирования. Мы усердно работаем каждый день, чтобы сделать ее еще лучше.

PageRanker.Ru