Вы читаете plakhov

Не кинокритик. Не палеонтолог. - Яндекс.Телепатия или from Russia with love

дек. 15, 2010

02:17 pm - Яндекс.Телепатия или from Russia with love

Previous Entry В избранное Поделиться Next Entry

Запустили систему, над которой я работал последний год. За это время я успел её сначала полюбить, а потом возненавидеть (не переставая любить).

Технология "Спектр"

Здесь могу рассказать некоторые технические подробности, которые в официальный пост не вошли.

Система исследует запросы всех пользователей Яндекса и выделяет в них различные объекты
Тут произошла интересная вещь. Самым мощным источником информации для построения этой онтологии оказываются результаты выделения в массе поисковых запросов типичных "контекстов" и "концептов". Позже я ознакомился с работами A.Clark и некоторых других авторов, и оказалось, что этот сигнал неспроста. Подобный "парсинг" представляет собой некоторое (естественно, пока что крайне примитивное) приближение к тому, как человеческие существа учатся разговаривать на естественных языках. Такие вот 2017-дела.

Естественно! поверх всего этого работает много ручных правил всяких, фикслистов ("бензопила такая-то это не автомобиль" и т.п.), хаков, "чтение" википедии происходит по совершенно другим правилам, производится финальный проход совсем уж прямо алгоритмом Ахо-Корасик по заголовкам и снипетам готовых результатов в поисках спамоглупостей, и т.д. и т.п. Но все равно интересно, что из этого всего может выйти в прекрасном далёком.

поиск Яндекса максимизирует вероятность того, что человек найдет именно то, что искал
Это предложение описывает не столько результат, каким его хотелось бы видеть :), сколько процесс: используется честная вероятностная модель пользователя и его поведения, и выдача составляется таким образом, чтобы максимизировать некоторое матожидание в этой модели. Если обозначить количество url'ов на первой странице выдачи за N, то сложность этой процедуры экспоненциально растет с увеличением N (задача является NP-сложной, кроме шуток). К счастью, N, как правило, равно 10, к тому же простой "жадный" алгоритм для неё работает хорошо.

Эта вероятностная модель схожа с яндексовской метрикой pfound, о которой и Паша Карпович, и Илья Сегалович уже рассказывали в разных местах, и даже называется похоже. Она используется не только в текущем запуске, но и во многих других местах, где приходится иметь дело с тем, что разные пользователи хотят видеть в выдаче разные вещи (например, хоть как-то приближает к пониманию того, как определить, насколько уместны русскоязычные результаты в результатах украинского поиска). Я не могу сказать, что прямо изобрёл её (после некоторого количества размышлений такая модель кажется самоочевидной, так что её не раз переизобретали, а "о чем-то таком" в отделе качества поиска думали, наверное, вообще все), но всё-таки довел её до состояния named entity и популяризовал внутри компании.

И про название. Практически "всю дорогу" технология называлась "Разнообразием" ("Diversity"). Переименовать решили ближе к концу, когда после анонса во внутренней рассылке выяснилось, что "разнообразие" люди склонны понимать слишком буквально, и ожидают увидеть выдачу не сбалансированную по потребностям пользователей, а именно что максимально разнообразную. А "Спектром" при этом внутри называли совсем другую штуку. Ну что, всё как всегда.

Upd. Огромное спасибо прекрасной petsen , которая героически менеджила проект всё это время, проводила со мной ликбез насчёт всяких лингвистических тонкостей, уговаривала меня оставить одни безумные идеи и всерьез рассмотреть другие, ну и вообще подымала боевой дух. И Грише привет! :)

Comments:

[User Picture]
From:rocketsan
Date:Декабрь 15, 2010 12:07 pm none (UTC)
(Link)
А у тебя какая должность в Яндексе?
[User Picture]
From:plakhov
Date:Декабрь 15, 2010 01:31 pm none (UTC)
(Link)
Старший программист
[User Picture]
From:petsen
Date:Декабрь 15, 2010 12:29 pm none (UTC)
(Link)
Поздравляю!Ура!
[User Picture]
From:plakhov
Date:Декабрь 15, 2010 01:30 pm none (UTC)
(Link)
И тебя я поздравляю!
Сейчас небольшой апдейт напишу
[User Picture]
From:802_11
Date:Декабрь 15, 2010 12:34 pm none (UTC)
(Link)
нечаянно семантиквеб :>
куал
[User Picture]
From:itman
Date:Декабрь 15, 2010 02:40 pm none (UTC)
(Link)
+1
[User Picture]
From:avkh
Date:Декабрь 15, 2010 12:41 pm none (UTC)
(Link)
а в картинках цапка всё по-прежнему неадекватно
http://images.yandex.ru/yandsearch?text=%D1%86%D0%B0%D0%BF%D0%BE%D0%BA

тормоза у вас там в картинкопоиске работают
[User Picture]
From:avkh
Date:Декабрь 15, 2010 12:43 pm none (UTC)
(Link)
а, нет, присмотрелся, чуть получше стало, результат уже ненулевой
извиняйте
[User Picture]
From:alll
Date:Декабрь 15, 2010 12:45 pm none (UTC)
(Link)
Круто! Поздравляю!

А самому пользователю посмотреть спектр объектов, опознанных в его запросе и выбрать "ручками" подходящее можно будет?
[User Picture]
From:plakhov
Date:Декабрь 15, 2010 01:18 pm none (UTC)
(Link)
персонализация в планах
но вряд ли именно в такой форме
[User Picture]
From:itman
Date:Декабрь 15, 2010 02:41 pm none (UTC)
(Link)
Поздравляю.
Кстати, хороший термин спектр. Мне он нравится даже больше, чем диверсификация результатов. Хотя диверсификация, наверное, более понятный термин.
(Удалённый комментарий)
[User Picture]
From:Roman Frolin
Date:Декабрь 15, 2010 07:53 pm none (UTC)
(Link)
Поздравляю! Главное, что-бы пользователям понравилось!
[User Picture]
From:plakhov
Date:Декабрь 15, 2010 08:20 pm none (UTC)
(Link)
Спасибо!
[User Picture]
From:freedom_of_sea
Date:Декабрь 15, 2010 08:12 pm none (UTC)

Яндекс.ИскИн

(Link)
и Не разнообразие, а СВОЕОБРАЗИЕ "Singularity"
[User Picture]
From:plakhov
Date:Декабрь 15, 2010 08:20 pm none (UTC)

Re: Яндекс.ИскИн

(Link)
это пока в планах
[User Picture]
From:photographer
Date:Декабрь 15, 2010 08:24 pm none (UTC)
(Link)
Следом за alll -ом и в развитие идеи попрошу показывать сверху над результатами выдачи все угаданные категории, давая возможность мне ткнуть в ту, которую я вот сейчас имею в виду, но не запоминая её навсегда, потому что если сегодня я искал обзоры, завтра вполне могу искать где купить изученное вчера.
[User Picture]
From:bethrezen_ru
Date:Декабрь 15, 2010 08:37 pm none (UTC)
(Link)
Подобное есть в google.
Он подсовывает то, на что ты кликал выше в следующих запросах.
Также там можно отмечать сайты и они по всем запросам будут на первой странице.
Правда это только в Labs, насколько я помню.
[User Picture]
From:alamar
Date:Декабрь 15, 2010 08:26 pm none (UTC)
(Link)
Кстати, а на зарубежную выдачу эта штука в какой мере сейчас работает?
[User Picture]
From:plakhov
Date:Декабрь 15, 2010 08:39 pm none (UTC)
(Link)
очень ограниченно
[User Picture]
From:bethrezen_ru
Date:Декабрь 15, 2010 08:33 pm none (UTC)
(Link)
Правильно ли я понимаю, что обучение алгоритма идет только на основе анализа логов запросов?
[User Picture]
From:plakhov
Date:Декабрь 15, 2010 08:38 pm none (UTC)

нет, не только

(Link)
From:9000
Date:Декабрь 15, 2010 08:48 pm none (UTC)

(Link)
Поздравления.
From:(Anonymous)
Date:Декабрь 15, 2010 08:57 pm none (UTC)
(Link)
Очень поздравляю вас со стариной Петсоном! Круто получилось. И название неплохое досталось:) Надеюсь на совместное продолжение банкета.
[User Picture]
From:plakhov
Date:Декабрь 15, 2010 08:58 pm none (UTC)
(Link)
спасибо!
[User Picture]
From:dtjurev
Date:Декабрь 16, 2010 06:10 am none (UTC)
(Link)
Такой вопрос. Если я ввожу текст запроса "наполеон" и система определит, что большинство пользователей при этом имели в виду торт, а не полководца, то она выдаст мне первые результаты именно про торт, так? Но если я всё-таки имел в виду полководца, то получается, что я не получу желаемого? :)
А как насчёт такой системы. При вводе неоднозначного запроса, система просто задаёт вопрос:
- Вы имели в виду торт или полководца?
Я выбираю ответ, получаю адекватные результаты и... profit! :)
Такую фичу можно сделать опциональной, типа расширенного поиска. Если ограничить число уточняющих вопросов, скажем, двумя или тремя, то это не усложнит заметно процесс поиска, но драматически увеличит его качество. С такой системой работать будет даже интересно, имхо. :)
[User Picture]
From:plakhov
Date:Декабрь 16, 2010 09:06 am none (UTC)
(Link)
Идея в том, чтобы экономить клики и внимание пользователей. Всё должно как можно чаще работать "само", не требуя дополнительных действий.

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

Часто, кстати, этой системой удобно пользоваться вполне сознательно, когда хочешь получить разностороннюю информацию о некотором вполне определенном объекте. Я вот по мотивам поста bik_top ввёл запрос [терскол] поностальгировать: http://yandex.ru/yandsearch?text=%D1%82%D0%B5%D1%80%D1%81%D0%BA%D0%BE%D0%BB&lr=213
Выдача как руками нарисованная. Лепота.
[User Picture]
From:fregimus
Date:Декабрь 16, 2010 10:40 am none (UTC)
(Link)
Поздравляю, невероятно интересно! Если я что-то понял из описания и комментариев, наполеоны-торты и Наполеоны-полководцы разводятся по категориям и не конкурируют между собой, так?

А статьи будут, или это какбэ секрет фирмы?
[User Picture]
From:novik65
Date:Декабрь 16, 2010 12:56 pm none (UTC)
(Link)
Неладно что-то у вас там в яндексе - http://just-hoaxer.livejournal.com/264711.html
Не иначе, эта новая технология советы не любит ;)
[User Picture]
From:ljstructure
Date:Декабрь 17, 2010 09:12 am none (UTC)

Search Result Diversification

(Link)
[User Picture]
From:plakhov
Date:Декабрь 17, 2010 09:17 am none (UTC)

Re: Search Result Diversification

(Link)
Да, Спектр "об этом же". Другое дело, что повышение разнообразия выдачи для нас не было самоцелью, это ожидаемый, но все-таки не главный эффект.
[User Picture]
From:ilya_stremovsky
Date:Декабрь 17, 2010 03:30 pm none (UTC)
(Link)
Во-первых, поздравляю!
во-вторых, дилетантский вопрос. Мне кажется, или именно упорное неугадывание подобных контекстов, это главная видная невооруженным проблема AI переводчиков? Когда оно сует пирожных вместо полководцев.
Ваши (или они твои личные?) наработки, они в переводах применимы? Или не про то, не спасут и т.п.?
[User Picture]
From:ilya_stremovsky
Date:Декабрь 17, 2010 03:35 pm none (UTC)
(Link)
Хм, ты сам же пишешь про языки... но если можешь чуть более развернуто, ответить..

Кстати вдогонку. Почему я спросил... Удивило, что неоднозначностей при запросах, которые вообще-то немногословны (или я чудовищно ошибаюсь) и довольно бедны собственным контекстом всего 20%.

Обычный AI переводчик, ухитряется переврать как бы не половину слов. Меня всегда это удивляло.
[User Picture]
From:arikon
Date:Декабрь 21, 2010 10:23 am none (UTC)
(Link)
Андрей, поздравляю с запуском!
[User Picture]
From:milevsky
Date:Декабрь 29, 2010 01:52 pm none (UTC)
(Link)
Скажите, какой подход используется в Спектре: pointwise, listwise или pairwise?
[User Picture]
From:plakhov
Date:Декабрь 30, 2010 09:36 am none (UTC)
(Link)
Сложно ответить, потому что Спектр не является learning to rank методом и, соответственно, не очень хорошо ложится в классификацию Liu (в отличие от Матрикснета, скажем). Там, где оцениваются характеристики документа, это скорее pointwise, там, где по ним строится итоговая выдача - listwise.