Anton Nossik (dolboeb) wrote,
Anton Nossik
dolboeb

This journal has been placed in memorial status. New entries cannot be posted to it.

Почему Google и Яндекс рекомендуют нам вместо Баха слушать песню «Валенки» (или Ваенги)

Наткнулся сегодня в фейсбучной ленте на обстоятельную инструкцию по поиску в Гугле.

Даже тепло стало на душе: вспомнилось, сколько я таких инструкций 15 лет назад и прочитал, и написал. Воспроизвожу её полностью:

[Инструкция по поиску в Google]
1. Как найти точную фразу или форму слова
С помощью оператора " ". Заключите фразу или слово в кавычки, и Google будет искать веб-страницы, где есть ровно такая фраза (форма слова).
Пример:
["я к вам пишу"]
2. Как найти цитату, в которой пропущено слово
Забыли слово в цитате? Возьмите всю цитату в кавычки, а вместо пропущенного слова поставьте звездочку *. Цитата найдется вместе с забытым словом.
Пример:
["ночь улица * аптека"]
3. Как найти любые из нескольких слов
Просто перечислите все подходящие варианты через вертикальный слеш: |. Google будет искать документы с любым из этих слов.
Пример:
[ананасы | рябчики | шампанское]
[дачные участки (рублевское | киевское | минское) шоссе]
4. Как найти слова в пределах одного предложения
Используйте оператор с красивым именем «амперсанд» — &. Если соединить слова амперсандом, Google найдет документы, где эти слова стоят в одном предложении.
Пример:
[памятник Пушкину & Псков]
5. Как найти документ, содержащий определённое слово
Поставьте перед нужным словом плюс, не отделяя его от слова пробелом. В запрос можно включить несколько обязательных слов.
Пример:
[Памятник Шолохову +бульвар]
6. Как исключить слово из поиска
Поставьте минус перед словом, которое вы не хотите видеть в ответах. Так можно исключить даже несколько слов:
Пример:
[мумий тролль мультфильм -рок -лагутенко]
[схемы вязания спицами -купить]
7. Как искать на определенном сайте
Для этого подойдет оператор site. Он позволяет прямо в запросе указать сайт, на котором нужно искать. Только обязательно поставьте после site двоеточие.
Пример:
[конституция рф site:consultant.ru]
[маяковский окна site:lib.ru]
8. Как искать документы определенного типа
Вам нужен оператор mime. Поставьте в запросе mime, двоеточие и затем тип документа, который вам нужен. Например, pdf или doc.
Пример:
[заявление на загранпаспорт mime:pdf]
9. Как искать на сайтах на определенном языке
С помощью оператора lang. После lang нужно поставить двоеточие и написать, на каком языке вам нужны документы. Если это русский язык, то нужно указать ru, если украинский — uk. Белорусский язык обозначается как by, английский — en, французский — fr.



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

Когда создавались Яндекс (в 1997) и Google (в 1998), целевой аудиторией двух этих сервисов являлись те пользователи, которые существовали в ту пору в Интернете. То есть ничтожное меньшинство жителей планеты Земля, отличающееся от 99% других её обитателей наличием образования, компьютера, подключения к Интернету, присутствием компьютерной грамотности и любознательности.

Разумеется, эта целевая аудитория ценила в поисковике возможность найти в точности то, что они в нём ищут. Именно для этой цели и предназначались regular expressions, о которых речь идёт в инструкции выше. Они позволяли при поиске исключить огромную массу ложных находок, омонимов, откровенного коммерческого спама, уточнить свой запрос и повысить релевантность находок.

Разумеется, уже в середине 1990-х на рынке интернет-поиска появились визионеры, которые предрекали, что такой разумный и осознанный спрос – ненадолго. И они создавали поисковые системы, адресованные пользователю, который сам не знает, что он ищет. То есть основной фишкой этих систем было редактирование введённого поискового запроса. Чтобы пользователь Вася из известного анекдота мог ввести в поисковую строку «Иоганн Себастьян Бах», а на выходе, как положено, получить «Валенки, валенки — неподшиты, стареньки». Над визионерами смеялись все подряд: и разработчики поисковых систем, и рядовые пользователи, и венчурные капиталисты. Поэтому все эти проекты бесславно закрылись примерно в те же годы, когда Google вышел на IPO. А к тому моменту, как на IPO вышел Яндекс, стёрлась даже память о том, как они назывались.

Однако пророчество оказалось верным. Просто оно опередило своё время, как какой-нибудь предтеча iPhone под названием Apple Newton, производство которого зарубил в 1990-е годы лично Стив Джобс, вернувшись к руководству Apple. Индустрия устроена так, что если ты предвидишь глобальные тренды не на 5 лет, а сразу на 10, то карачун тебе, Церетели, как говорил Н.С. Михалков в бессмертных «Жмурках». Не верите? Поинтересуйтесь, сколько популярных соцсетей умерло за 5 лет до появления Фейсбука. Поинтересуйтесь судьбой мессенджеров, на 10 лет опередивших Viber и WhatsApp. В Интернете смотреть на 5 лет вперёд — признак гения. Смотреть на 10 лет вперёд — кратчайший путь к разорению.

Когда пророчество сбылось, Гуглу и Яндексу не составило большого труда реформировать свои алгоритмы поиска. Сегодня оба этих поисковика живут по тому самому принципу: пользователь сам не знает, что он ищет. А мы — знаем. Потому что у нас огромная база поисковой истории (и глобальной и твоей персональной), мы можем прогнать любой твой запрос через спеллчекер, и, кстати, мы знаем, в какой ты сейчас находишься стране, и какой у тебя язык операционной системы. Весь этот огромный накопленный массив знаний о том, что людям на самом деле нужно, штатно используется для корректировки запросов, которые пользователи вводят в Google и Яндекс.

А те самые regular expressions, о которых речь идёт в инструкции, входят в неразрешимое противоречие с этим новым принципом. Потому что они говорят поисковику: не надо редактировать мой запрос. Не надо вместо моих поисковых слов предлагать «более лучшие», потому что более популярные у ваших пользователей, варианты. На это высокомерное пожелание поисковик сурово отвечает: надо Федя, надо. И совершенно спокойно игнорирует любые регулярные выражения, будь то плюсы, минусы, кавычки, интервал дат, язык, восклицательный знак и т.п.

Для 95% пользователей мирового Интернета этот подход работает. Люди, которые не в состоянии правильно проспеллить название Beatles, могут совершенно нормально ввести запрос БИТЫЛЗ, и в ответ получить то, что искали.

С точки зрения тех 5%, которые точно знают, что они хотели найти (например, те олбанские сайты, создатели которых пишут БИТЫЛЗ совершенно сознательно), такой поисковый результат, основанный на «исправлении» введённого запроса, кажется ересью, шумом, помехами и говном. Но увы, системами, заточенными под массовый спрос, их мнение не учитывается.

Хорошая новость состоит в том, что в интеллектуальном соревновании смекалка всегда победит тупость. И поиск, основанный на использовании regular expressions, всё равно позволяет получать более качественные, лучше отфильтрованные результаты, чем общедоступные алгоритмы корректировки запроса. Важно просто понимать текущий статус всех этих инструментов. Если раньше они были универсальными ключами к поиску, сегодня они стали отмычками. Изготовитель замков отвечает за действенность ключей, но он не несёт никакую ответственность перед теми, кто пытаются взломать его замок отмычкой. Более того, он с ними последовательно борется.

В порядке актуальной иллюстрации к тому, как ведётся эта борьба, и как она влияет на качество поисковых результатов, приведу пример буквально из предыдущего поста. Иск Сечина к Ведомостям рассматривала судья Хуснетдинова. Я ввёл запрос: «судья хуснетдинова останкинский суд». Ни одной секунды ни поморщась, Гугл исправил в моём запросе фамилию судьи на «Хуснутдинова»:

Конечно, в идеальном мире он мог бы исправить и в обратную сторону — если б алгоритм «улучшения» запросов был бы интеллектуальным, и включал бы сверку релевантности соседних поисковых аргументов. Но увы, под такие тонкие материи его алгоритм не заточен. Гугл тупо посмотрел в своей базе, что Хуснетдинова там встречается всего в 38.400 документах, а Хуснутдинова — в целых 554.000. То есть второй вариант — он в 14,5 раз более лучший. Поэтому в ответ на мой запрос с правильной фамилией судьи Гугл мне сразу же выдал вариант с неправильной фамилией.

Надо отдать должное: при этом Гугл совершенно честно предупредил о подмене, и даже предложил поискать тот вариант, который я запрашивал изначально.

Яндекс на первый взгляд отработал мой запрос более корректно: Хуснетдинову он не заменил, а просто подмешал к ней более популярный вариант, и сразу же об этом честно предупредил:

Но это только на первый взгляд он честно раскрыл механизмы искажения моего запроса. Посмотрите на адресную строку броузера, увидите там в конце &lr=213. Это параметр, использованный для искажения выдачи по моему запросу, исходя из того, что мой IP-адрес определён как московский. Соответственно, мне показали результаты для Москвы. А если взять и вручную поменять эту самую цифру 213 на любую другую — например, на 118 — то вылезут совершенно другие результаты. Любуемся:

Видите подсказку, что результаты — для Нидерландов? Она там появилась исключительно потому, что геокод 118 противоречит данным Яндекса о моём текущем IP-адресе. Если б Яндекс думал, что я действительно нахожусь сейчас в Нидерландах то я бы такого предупреждения не получил. Хотя результаты поисковой выдачи отличались бы от московских.

Почему Яндекс думает, что Зяугария из Буинска более правильна для Москвы, а Ландыш из Казани — для Нидерландов, вопрос не ко мне. Если ориентироваться на подсказки Яндекса, то и в Нидерландах, и в Москве окажется, что самой релевантной находкой по этой фамилии поисковик считает всё же федерального судью по гражданским делам Останкинского райсуда. Ту самую, что постановила изъять и уничтожить остатки тиража «Ведомостей» с нехорошей статьёй про дом Сечина:

Как видим, у одного и того же робота Яндекса есть сразу четыре взаимоисключающих суждения о том, что я на самом деле искал: то ли судью, то ли Зяугарию, то ли Ландыш, то ли просто фамилией ошибся, и надо в ней букву поправить. Для критики всех этих версий у нас нет ни данных, ни критерия. Но очень важно понимать, что поисковый результат по одному и тому же запросу может очень сильно различаться в зависимости от параметров, которые поисковик не считает нужным ни раскрывать, ни обсуждать.

10 лет назад среди людей, освоивших regular expressions, бытовала присказка: если ты чего-то не нашёл в Интернете — значит, этого просто нет в природе. Сегодня если не находишь того, что искал, нужно прежде всего задуматься, сколько искажений поисковик внёс в твой запрос.
Tags: google, поиск, яндeкс
Subscribe

Recent Posts from This Journal

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 62 comments
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →