четверг, 20 февраля 2014 г.

Всегда в поиске

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

Фактически вся работа поисковика «Яндекс» сводится  двум простым вещами: понять, что на самом деле хочет узнать человек, и за несколько секунд найти для него среди миллиардов документов в Сети подходящие.

СНЯТЬ ОТПЕЧАТКИ

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

Чтобы не обыскивать весь Интернет каждый раз, когда кому-то что-то нужно узнать, поисковик делает часть работы заранее — проверяет, что есть в Сети и где это лежит, с помощью тысяч поисковых роботов. Они бывают двух типов: основной и быстрый. Основной обходит и обрабатывает Интернет в целом, а быстрый — документы, появившиеся минуту или даже пару секунд назад.


Задача программ-роботов — отобрать годную и полезную для пользователей информацию, переработать ее, отсеяв все устаревшее и ненужное. В чем-то это напоминает сортировку мусора: бумага в один контейнер, стекло в другой, пластик в третий, пищевые отходы в четвертый... Собранная роботами информация образует так называемый слепок Интернета. Он хранится на тысячах серверов «Яндекса» и постоянно обновляется. Слепок похож на список, в котором указано, в каком месте какую информацию можно найти. В этом списке у каждого ключевого слова указана не одна, а миллионы «страниц».

Чтобы все обновления слепка были доступны пользователям, их переносят из хранилища на «базовый поиск». Данные от основного робота переносятся раз в несколько дней, а от быстрого робота — в реальном времени.

ВЫВЕСТИ НА ЧИСТУЮ ВОДУ

Разыскивая ответ на заданный вопрос в подготовленной базе, машина сталкивается с двумя основными сложностями. Первая сложность — язык. Прежде чем искать ответ на вопрос, машине важно понять, на каком языке это делать. Например, для русскоязычного человека на запрос «дружина князя Игоря» поиск найдет документы с информацией о войске, а для украинца на «дружина князя Iгоря» выдаст также документы, упоминающие княгиню Ольгу, его супругу, так как по-украински «жена» — это «дружина». Да и в богатом русском языке одно и то же слово или его производные могут означать разные вещи. Например, слово «стали» — это одна из форм существительного «сталь» и глагола «стать».

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

В таких ситуациях в дело вступают сразу несколько технологий. Можно выдать вам под строкой поиска несколько подсказок, конкретизирующих запрос. Мол, выберите, что вам нужно: наполеон-рецепты или Наполеон — Бонапарт. Если пользователь не реагирует на просьбу машины и не добавляет к «наполеону» слов, то делу помогает технология «Спектр»: не надеясь на помощь, машина сразу ищет информацию по нескольким категориям (и про торт, и про императора, и про коньяк...). Кроме того, понять пользователя помогают механизмы персонализации — знания машины о том, что этот пользователь искал со своего компьютера день-два-три-месяц назад: если вы часто задавали «Яндексу» вопросы про кулинарию, то машина вначале покажет вам результаты, говорящие, что наполеон — торт.

РУКИ ПОМОЩИ

Матрица, конечно, сама решает (с помощью высшей математики), что и в какой последовательности нужно показать пользователям на основании десятков тысяч критериев. Но живых людей Матрица тоже использует —1000 сотрудников «Яндекса», так называемых асессоров, оценивают результаты поиска по тому или иному запросу (конечно, не каждый запрос подвергается оценке, и делается это не в режиме реального времени) на предмет их соответствия ожиданиям обычного пользователя: не такого рационального, как машина, не такого точного в формулировках, противоречивого и эмоционального.

КЛУБЫ ПО ИНТЕРЕСАМ

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

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

Помимо географического положения пользователя и лингвистического анализа его запросов поисковая машина использует несколько тысяч критериев, совершенно не очевидных для человека.

Фокус в том, что эти критерии машина разрабатывает и обновляет самостоятельно.

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

(с) Алиса Кирсанова