«Рискованная и дерзкая работа». Чем занимаются исследователи?
Зачем технологическим компаниям исследовательские отделы? Как связано написание научных статей и улучшение сервисов Яндекса? С какими задачами каждый день сталкиваются исследователи? Выпускник Мехмата МГУ Арсений Ванунц рассказывает о своей стажировке в отделе исследований и о том, над чем он продолжает работать уже как сотрудник компании.
Целый отдел исследователей
Отдел исследований в Яндексе появился 10 лет назад, он необходим для осмысления огромного индустриального опыта компании. Исследовательская работа позволяет постоянно улучшать продукты Яндекса и, как мы надеемся, способствует мировому научному признанию. Сейчас мы публикуем порядка 10-15 статей в год на ведущих конференциях и приносим пользу поиску, переводу, картинкам и многим другим продуктам.
Наш отдел включает три группы. Прикладные исследования, где в основном заняты машинным обучением, машинным переводом и обработкой естественных языков. Группа теории, где я проходил стажировку и работаю сейчас. И наконец, группа компьютерного зрения, одна из важнейших областей в computer science, эти технологии используются в огромном количестве продуктов Яндекса от беспилотников до распознавания изображений.
Выбрать задачу
Чтобы попасть на стажировку, нужно сделать тестовое задание и пройти пять собеседований, в том числе несколько специализированных. Одно было посвящено алгоритмам, другое — математике, еще одно — машинному обучению. Мне помог опыт учебы на Мехмате и то, что я узнал в Школе анализа данных, где продолжаю учиться и сейчас.
После собеседования предлагают выбрать задачу на всю стажировку. Одна из трех предложенных задач, была посвящена улучшению выдачи в Яндекс.Блендере — внутреннем инструменте компании, который определяет, что нужно показать рядом с результатами поискового запроса: ссылки на Маркет, Карты и тому подобное. Вторая заключалась в том, чтобы сделать предсказания Яндекс.Навигатора о времени в пути более точными. Однако меня сразу предупредили, что в этой задаче очень велика вероятность провала: в отделе навигатора и так работают топовые специалисты по машинному обучению, и вряд ли стажёр сможет их переплюнуть
А третья, которую я в итоге выбрал, — просто задачка по математике, точнее по экономике: повторяющиеся игры, которые встречаются в рекламных аукционах. На самом деле это была задача по поиску оптимального алгоритма динамического выставления цен на рекламные места.
Вооружившись бумагой и ручкой
Я работал парт-тайм, потому что мне нужно было совмещать исследования в Яндексе с учёбой в ШАДе и МГУ (в итоге даже это мне не удалось: в ШАДе пришлось брать академ), поэтому моя стажировка длилась полгода. Стажировка с полным рабочим днем длится три месяца.
Каждый день, вооружившись бумагой и ручкой, ты пытаешься решить задачу.
Думаешь про разные гипотезы, читаешь научную литературу, в основном на английском. Там, как правило, много «магии», которую не всегда могут объяснить и сами авторы. Хороший навык — уметь самому понять, что они имели ввиду.
У каждого стажера есть руководитель, который следит за процессом решения задачи. Мы сидели рядом, а также специально встречались три раза в неделю для обсуждения.
В исследованиях важен опыт: если у тебя его нет, велика вероятность, что ты закопаешься во второстепенных аспектах задачи или начнешь искать совсем не там.
Роль руководителя — сначала дать тебе волю, а потом направить, если что-то пошло не так.
Решение оказалось простым и контринтуитивным: оптимальным является алгоритм, предлагающий одну и ту же цену. Мы с руководителем показали результаты заказчикам, после чего они поняли, что нужен другой сеттинг. Такое бывает. В итоге мы искали решение в терминах равновесия Нэша и теории игр. Цены все-таки надо было менять, потому что в реальности рекламодатель ведет себя не так как в идеальной математической модели, которую мы вывели в первой задаче.
Кроме времени на решения задач где-то месяц я писал научную статью по первому решению, отправили статью на NIPS, — конференцию по машинному обучению и нейронным сетям (два из трех отзывов были положительными, но статью не приняли). Примерно столько же времени заняла подготовка статьи и доклада по нашему второму решению.
Рискованная работа
Главное отличие исследовательской работы от задач разработчика или аналитика в том, что кроме четко поставленной задачи у тебя ничего нет, неизвестно как это сделать, какими путями прийти к решению. Это рискованная и дерзкая работа для тех, кто не боится проявлять инициативу.
После прохождения стажировки и еще пяти собеседований я устроился на постоянную работу в исследовательскую команду. На собеседованиях были задания по машинному обучению, которые проверяют уже не столько теоретические знания, сколько техническую подкованность.
Я по-прежнему занимаюсь экономикой, вместе с группой исследователей работаю над ценообразованием для Яндекс.Толоки. Это краудсорсинг платформа на которой любой желающий за вознаграждение может выполнять задачи по анализу контента, которые можно сделать только руками (например указать где на картинках вывески, или какие-то другие объекты). Тут тоже надо научиться предлагать правильные цены, и это большая экономическая задача.