Яндекс · Москва · по договорённости
Яндекс Ритм — рекомендательный сервис для поиска товаров и услуг. Наш основной продукт — бесконечная контентная лента: она живёт на главной Яндекса на [ya.ru]([контакты и ссылка отклика — после бесплатной регистрации] и в поисковом приложении, а ещё у нас есть отдельный веб-сервис и приложения для iOS и Android. Каждый день лента показывает пользователям десятки миллионов карточек и подстраивается под то, что человеку интересно именно сейчас.
Цель сервиса — показать пользователю самый интересный контент среди доступных предложений и вырастить длительность просмотра, клики и покупки. Для этого мы строим собственный рекомендательный контур, работаем с десятком внутренних сервисов — рекомендациями, поиском, статистикой, модерацией, — а также обеспечиваем загрузку и импорт контента и поддерживаем всю инфраструктуру сервиса.
Команда бэкенда пишет на C++ и отвечает за всё, что происходит между запросом пользователя и готовой лентой: отбор кандидатов и ранжирование через сервис рекомендаций, обогащение карточек данными, логирование для обучения моделей и доставку всего этого на разные поверхности за сотни миллисекунд.
Что предстоит делать:
Умное смешивание контента в ленте
Сейчас лента собирается из карточек разных типов, и каждый источник отбирает лучшее со своей точки зрения. Главный вопрос, на который мы отвечаем: контент какого типа интереснее конкретному пользователю прямо сейчас? Вы будете строить технологию смешивания — от быстрой эвристики, которая уже регулирует состав ленты, до полноценного ранжирования самих карточек с помощью моделей.
Ограничения здесь вполне инженерные: ранжирование должно укладываться в сотни миллисекунд на запрос, реакцию пользователя нужно учитывать как можно быстрее, а новый тип карточек — подключать без переписывания половины сервиса. Вам предстоит реализовывать этот контур, доставлять признаки и выстраивать логирование так, чтобы на этих данных можно было обучать модели.
Новые типы контента и общая база объектов
Мы расширяем состав ленты за счёт интеграций с внутренними и внешними сервисами: у каждого своя модель контента, свои идентификаторы и свой способ отдавать рекомендации. Ваша задача — сделать так, чтобы подключение очередного источника было рутиной, а не проектом на квартал.
Для этого мы строим общую базу объектов: единое представление карточки, её признаки и накопленную статистику, а также доставку всех этих данных до сервиса рекомендаций. Здесь вы будете придумывать схему хранения, продумывать архитектуру интеграций и решать, что считать онлайн, а что с помощью офлайн-процессов.
Развитие платного продвижения
Часть карточек в ленте продвигается за деньги, и это отдельный технический контур: отбор продвигаемых объектов, аукцион, предсказание вероятности клика, связка карточек с рекламными кампаниями и учёт конверсий. Вы будете развивать рекламное ранжирование вместе с ML-инженерами и аналитиками — от формулы отбора до скорости, с которой новый продвигаемый объект доезжает до выдачи.
Задача интересна тем, что здесь всё время приходится соблюдать баланс: продвижение приносит выручку, но конкурирует за внимание пользователя с органическим контентом. Решения принимаются на основе экспериментов, и вы будете видеть эффект своей работы и в деньгах, и в продуктовых метриках.
Масштабирование на новые поверхности и пользовательские сценарии
Ритм расширяет список площадок, на которых показывается лента, поэтому вам предстоит поддерживать такие интеграции: управлять тем, какой набор контента доступен на конкретной поверхности, и учитывать её ограничения. Отдельный пласт работы — новые пользовательские сценарии, часто находящиеся на стыке нескольких сервисов Яндекса, которые повышают вовлечённость и приносят прибыль.
Инфраструктура и данные сервиса
Вы будете работать с YDB, заниматься обработкой данных и офлайн-процессами: считать статистику по объектам, готовить данные для моделей, поддерживать регулярные расчёты и следить за тем, чтобы всё это не деградировало под нагрузкой.
Больше о б
Отклик ведёт на сайт работодателя. Бесплатная регистрация открывает отклик и разбор резюме.
9400+ вакансий от 1600+ компаний — в основном напрямую с карьерных сайтов и из Telegram-каналов. У 800+ из них есть контакт нанимающего: пишешь человеку, а не в общую очередь. Регистрация бесплатная — откроет контакты и подбор вакансий под твоё резюме.