Uber Eats: рекомендации учитывают действия текущей сессии

Суточные агрегаты не отражали последние действия пользователя. Историю действий добавили в модель, а признаки обновляют за секунды.

Статья · на английском

Next-Gen Restaurant Recommendation with Generative Modeling and Real-Time Features

Yicheng Chen, Peng Chen, Nikat Patel, Sanjeev Suresh, Bo Ling · Опубликовано: 16 апреля 2026 г.

От статистики к последовательности

В DeepCVR сохранили ветку DCNv2 для обычных признаков и добавили трансформер для истории кликов и заказов. Оцениваемый ресторан включают в последовательность: модель связывает прошлые действия с конкретным кандидатом.

Исходная и гибридная архитектуры Uber Eats.

Исходная и гибридная архитектуры Uber Eats.

Источник: Uber
Оригинал: From Statistics-Based Features to User Behavioral Sequence Features

Одинаковые признаки при обучении и работе

UserContext хранит события. Java-функции вычисляют признаки в сервисе; Spark восстанавливает прошлое состояние и вызывает те же функции для обучения. Результаты дополнительно сверяют по выборочным логам. Отставание данных сократилось с суток и более до нескольких секунд.

Получение UserContext из потока и исторических данных.

Получение UserContext из потока и исторических данных.

Источник: Uber
Оригинал: From Batch-Processed to Near-Real-Time Features

Оценивать список за один проход

Следующий вариант делает трансформер основной частью модели и оценивает сразу несколько ресторанов. Обычные признаки включаются в представление кандидатов. Статья описывает движение к генеративным рекомендациям, не заявляя генерацию всей страницы.

Оригинал: From a Discriminative Model to a Generative Model

Инженерная часть и оставшиеся задачи

Конвертацию ONNX → TensorRT вынесли из запуска сервиса: исчезла конвертация длительностью 10–60 секунд. Предобработку отделили от GPU-вычислений. Длинные истории и совместное ранжирование всей страницы остаются планами; доставка и география ограничивают допустимые рекомендации.

Оригинал: ML System Optimization