Вы читаете 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.