Довольно часто люди приходят в интернет за быстрой справкой. Что такое [палимпсест]? [когда жил иван грозный]? [что снял вернер херцог], про которого я только что соврал, что, конечно же, смотрел его фильмы? В таких случаях Яндекс старается сократить путь пользователя до нужной информации — прямо на странице результатов поиска, справа от основной выдачи, появляется карточка с общей информацией о предмете запроса. Она называется «объектный ответ».
Помимо основных фактов, карточка объектного ответа содержит дополнительную информацию. Какую именно — зависит от типа объекта. Скажем, на карточке фильма довольно много фактов — по запросу [терминатор] Яндекс сообщит пользователю год выхода, жанр, режиссёра, продюсера, автора музыки и длительность первого «Терминатора», вкратце опишет сюжет, покажет рейтинг на КиноПоиске и предложит посмотреть трейлер. Объектный ответ по запросу [рига] будет состоять из общего описания города и информации о площади, населении и дате возникновения, а по запросу [снусмумрик] — из портрета персонажа и информации о том, из какого он произведения.
Показывать карточки с основными фактами об объектах на странице выдачи Яндекс начал в апреле 2015 года. На тот момент в базе объектных ответов были описания 92 миллионов известных личностей, фильмов, музыкальных альбомов, городов, лекарств, автомобилей и других сущностей.
Кроме общей информации объектный ответ содержит дополнительные блоки. Один из них непосредственно относится к объекту запроса. Для запросов о кино Яндекс покажет блок «Актёры», о писателях — «Книги», о городах — «Достопримечательности» и так далее. Во второй блок попадают другие популярные объекты из той же категории — скажем, для Риги это прибалтийские города, а для Снусмумрика — персонажи детских книг.
Карточки объектов формируются автоматически, с помощью семантического графа — модели, описывающей совокупность объектов, их свойств и связей между ними. Информация об объектах приходит из десятков источников. Например, факты о музыкантах берутся из Википедии, находятся на порталах discogs.com и других специализированных сайтах с большими базами структурированных данных. Система оценивает степень совпадения информации, отсеивает дубли и противоречащие факты (например, разнящиеся годы жизни одного человека), а те, что дополняют друг друга, добавляет в карточку.
Список объектов в дополнительных блоках строится по похожей схеме. Только если в первом случае собираются и сопоставляются найденные в разных источниках факты об объектах, то для создания списка ассоциаций сопоставляются связи между этими объектами. Например, если в нескольких базах данных «Завтрак на траве» и «Олимпия» описаны как картины Эдуарда Мане, то, скорее всего, так оно и есть. А вот если в одной из них среди произведений Мане значатся «Кувшинки», но ни в одном другом источнике такая связь не встречается, то она может быть отсеяна как ошибочная. Это, впрочем, не значит, что редко встречающаяся связь автоматически отбраковывается. Среди прочих факторов система учитывает и авторитетность источника, поэтому в некоторых случаях в карточку попадают факты или связи, которые нашлись только на одном, но очень надёжном ресурсе.
Всего в базе объектных ответов несколько сотен миллионов связей. Поэтому просто составить список ассоциаций недостаточно. Нужно автоматически решить, какие из них показывать в карточке. Среди прочего, для этого используется метод машинного обучения Матрикснет, позволяющий учитывать множество факторов при анализе поведения пользователей. Например, Матрикснет может обратить внимание на то, что задав запрос [подсолнухи], люди часто не удовлетворяются результатами поиска и уточняют: [подсолнухи ван гог]. К тому же эти слова часто встречаются вместе в текстах — причём там же, как правило, упоминаются «Поль Гоген» и «Поль Сезанн». Учитывая эти и другие данные, система может сделать вывод, что связи между этими объектами представляют наибольший интерес для пользователей. Поэтому в блоках «Произведения» и «Смотрите также», сопровождающих карточку к запросу [ван гог], обязательно окажутся «Подсолнухи» и Гоген с Сезанном.
Наконец, на самом последнем этапе, когда карточка полностью готова, основанный на Матрикснете механизм решает, нужно ли её показывать, — может быть, пользователю совсем не интересна эта информация? Чтобы выяснить, соответствует ли карточка запросу, он сравнивает её с описаниями страниц в результатах поиска. Например, в ответ на запрос [getz] можно было бы показать информацию о саксофонисте Стене Гетце. Но, проанализировав результаты поиска, большинство из которых оказываются связаны с автомобилями, механизм ранжирования решит показать карточку машины.