Мы не так уникальны, как думаем: миллионы людей до нас озадачивали и миллионы после нас озадачат поисковик почти одинаковыми вопросами. С другой стороны, мы слишком непредсказуемы: на формулировку нашего запроса влияет огромное количество неосознаваемых нами факторов. И хотя бы поэтому запрос каждого из нас, каким бы банальным он ни был, требует индивидуального подхода.
Фактически вся работа поисковика «Яндекс» сводится к двум простым вещам: понять, что на самом деле хочет узнать человек, и за несколько секунд найти для него среди миллиардов документов в Сети подходящие.
Снять отпечатки
Система работы поисковика чем-то похожа на «Матрицу», а поисковый робот (созданная ею сложная, самостоятельно принимающая решения программа) — на агента Смита.
Чтобы не обыскивать весь Интернет каждый раз, когда кому-то что-то нужно узнать, поисковик делает часть работы заранее — проверяет, что есть в Сети и где это лежит, с помощью тысяч поисковых роботов. Они бывают двух типов: основной и быстрый. Основной обходит и обрабатывает Интернет в целом, а быстрый — документы, появившиеся минуту или даже пару секунд назад. Задача программ-роботов — отобрать годную и полезную для пользователей информацию, переработать ее, отсеяв все устаревшее и ненужное. В чем-то это напоминает сортировку мусора: бумага в один контейнер, стекло в другой, пластик в третий, пищевые отходы в четвертый...
Собранная роботами информация образует так называемый слепок Интернета. Он хранится на тысячах серверов «Яндекса» и постоянно обновляется. Слепок похож на список, в котором указано, в каком месте какую информацию можно найти. В этом списке у каждого ключевого слова указана не одна, а миллионы «страниц». Чтобы все обновления слепка были доступны пользователям, их переносят из хранилища на «базовый поиск». Данные от основного робота переносятся раз в несколько дней, а от быстрого робота — в реальном времени.
Вывести на чистую воду
Разыскивая ответ на заданный вопрос в подготовленной базе, машина сталкивается с двумя основными сложностями. Первая сложность — язык. Прежде чем искать ответ на вопрос, машине важно понять, на каком языке это делать. Например, для русскоязычного человека на запрос «дружина князя Игоря» поиск найдет документы с информацией о войске, а для украинца на «дружина князя Iгоря» выдаст также документы, упоминающие княгиню Ольгу, его супругу, так как по-украински «жена» — это «дружина». Да и в богатом русском языке одно и то же слово или его производные могут означать разные вещи. Например, слово «стали» — это одна из форм существительного «сталь» и глагола «стать». Вторая сложность — человеческая психология. Вводя запрос, мы ожидаем быстрого и точного ответа, не заботясь, естественно, о соответствии формулировки запроса принципам математического анализа, по которым работает мозг машины. Например, введя в поисковую строку слово «наполеон», что человек хочет получить: рецепт торта или биографию французского императора, купить коньяк или найти адрес психиатрической больницы?
В таких ситуациях в дело вступают сразу несколько технологий. Можно выдать вам под строкой поиска несколько подсказок, конкретизирующих запрос. Мол, выберите, что вам нужно: «наполеон — рецепты» или «Наполеон — Бонапарт». Если пользователь не реагирует на просьбу машины и не добавляет к «наполеону» слов, то делу помогает технология «Спектр»: не надеясь на помощь, машина сразу ищет информацию по нескольким категориям (и про торт, и про императора, и про коньяк...). Кроме того, понять пользователя помогают механизмы персонализации — знания машины о том, что этот пользователь искал со своего компьютера день-два-три-месяц назад: если вы часто задавали «Яндексу» вопросы про кулинарию, то машина вначале покажет вам результаты, говорящие, что наполеон — торт.
Комбинации: клубы по интересам
Задача поисковой машины не сводится к тому, чтобы просто отобрать документы, в которых встречаются слова и словосочетания из поискового запроса. Машина должна понять, какие документы соответствуют нашим противоречивым требованиям и почему они им соответствуют. Хотим ли мы получить информацию о наполеоне-пирожном, или, может быть, мы пару лет посещали фитнес-клуб с пафосным названием, а то и вовсе озабочены комплексами людей невысокого роста. В любом случае решение задачи требует нетривиального подхода.
Создатели поисковой программы «Яндекс» нашли такой подход, делегировав право выбора машине. С одной стороны, бездушная, но очень быстрая и умная машина не знает и не хочет ничего знать о нас как о личностях, а с другой — она старается выяснить о каждом как можно больше.
Помимо географического положения пользователя и лингвистического анализа его запросов, поисковая машина использует несколько тысяч критериев, совершенно неочевидных для человека.
Фокус в том, что эти критерии машина разрабатывает и обновляет самостоятельно.
Она просто использует данные о предпочтениях и пользовательском поведении миллионов людей и связывает это «среднее арифметическое» с историей наших запросов. Принципы, которыми руководствуется «Матрица» внутри себя, сопоставляя тысячи разработанных ею категорий пользовательских интересов, часто не укладываются в традиционные человеческие представления о том, какими в принципе могут быть «интересы». Их десятки тысяч. Они создают друг с другом разные, порой забавные, комбинации. К примеру, одной из таких комбинаций может являться соответствие результатов поиска интересам человека, разводящего тритонов. При этом человек не просто интересуется тритонами, а уже разводит их, но только первый год.
Оценки. Руки помощи
«Матрица», конечно, сама решает (с помощью высшей математики), что и в какой последовательности нужно показать пользователям на основании десятков тысяч критериев. Но живых людей «Матрица» тоже использует — 1000 сотрудников «Яндекса», так называемых асессоров, оценивают результаты поиска по тому или иному запросу (конечно, не каждый запрос подвергается оценке, и делается это не в режиме реального времени) на предмет их соответствия ожиданиям обычного пользователя: не такого рационального, как машина, не такого точного в формулировках, противоречивого и эмоционального.
Алиса Кирсанова