Вы читаете 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)
А у тебя какая должность в Яндексе?
(Ответить) (Thread)
[User Picture]
From:plakhov
Date:Декабрь 15, 2010 01:31 pm none (UTC)
(Link)
Старший программист
(Ответить) (Parent) (Thread)
[User Picture]
From:petsen
Date:Декабрь 15, 2010 12:29 pm none (UTC)
(Link)
Поздравляю!Ура!
(Ответить) (Thread)
[User Picture]
From:plakhov
Date:Декабрь 15, 2010 01:30 pm none (UTC)
(Link)
И тебя я поздравляю!
Сейчас небольшой апдейт напишу
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]
From:802_11
Date:Декабрь 15, 2010 12:34 pm none (UTC)
(Link)
нечаянно семантиквеб :>
куал
(Ответить) (Thread)
[User Picture]
From:itman
Date:Декабрь 15, 2010 02:40 pm none (UTC)
(Link)
+1
(Ответить) (Parent) (Thread)
[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

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

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

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

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

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

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

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

(Link)
чтобы не повторяться:
http://habrahabr.ru/company/yandex/blog/110059/#comment_3499287
(Ответить) (Parent) (Thread) (Развернуть)
From:9000
Date:Декабрь 15, 2010 08:48 pm none (UTC)

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

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

Search Result Diversification

(Link)
Это связано с "Search Result Diversification" ?
http://www.google.com/search?hl=en&newwindow=1&biw=1272&bih=829&q=Search+Result+Diversification&aq=f&aqi=g1&aql=&oq=&gs_rfai=

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

Re: Search Result Diversification

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

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

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