ВКонтакте сообщила о росте времени, проведённого пользователями в ленте, на 11% за первые месяцы 2026 года. Руководитель группы рекомендаций ленты Степан Малькевич в корпоративном блоге объяснил, что этот результат достигнут за счёт серии изменений в рекомендательной системе. Ключевые обновления затронули два компонента: блендер, который собирает финальную последовательность карточек, и ранкер, определяющий порядок публикаций.

Блендер — это механизм, который смешивает разные форматы контента, например клипы и посты, в единую ленту. Раньше пропорция форматов задавалась стохастическим алгоритмом: тип следующей карточки разыгрывался случайно с нужными вероятностями. Это давало правильное соотношение в среднем, но на отдельных экранах пропорция могла отклоняться. Теперь вместо розыгрыша используется алгоритм Брезенхема, изначально разработанный для растровой графики. Он определяет, какие пиксели закрасить, чтобы наклонная линия выглядела ровной. В контексте ленты алгоритм копит «долг» по каждому формату и на каждом шаге отдаёт место тому, кто отстал сильнее. В результате пропорция клипов и постов соблюдается на любом экране, а не только в среднем.

Кроме того, в блендере появилась новая ML-модель, которая подбирает персональное соотношение форматов для каждого пользователя. Она анализирует поведенческие сигналы: какие посты читает и лайкает человек, какие клипы досматривает, к какому формату возвращается. Например, два пользователя могут одинаково интересоваться путешествиями, но один предпочитает длинные тексты с фотографиями, а другой — короткие видео. Модель учитывает эти различия и формирует индивидуальную пропорцию.

Второе значимое обновление — перевод ранкера на композитный мультитаргет. Ранкер получает набор отобранных публикаций и определяет их порядок. Для обучения модели важно понимать, какие взаимодействия пользователя с постом считать успешными. Классический мультитаргет обучался на нескольких типах действий — лайках, репостах, скрытиях — с заранее заданными весами. Однако такой подход не учитывал контекст: например, репост может означать и «хочу сохранить, потому что понравилось», и «посмотрите, какой кринж». Переход в профиль автора тоже бывает следствием как интереса, так и раздражения.

Композитный мультитаргет решает эту проблему, рассчитывая единый итоговый таргет для каждой пары «пользователь — пост». Эта числовая оценка строится на совокупности всех событий, поэтому вклад одного действия может меняться в зависимости от остальных. Универсальные события разделены на три группы: однозначно положительные (лайк, репост, добавление в избранное, подписка), однозначно отрицательные (скрытие, жалоба, отписка) и неоднозначные (отправка в сообщении, переход в сообщество, переход в профиль автора). Отдельно учитывается время просмотра: очень короткий просмотр считается скипом и даёт отрицательный сигнал, а длинные просмотры — положительный.

При расчёте таргета система сначала проверяет однозначные сигналы. Если пользователь одновременно поставил лайк и скрыл публикацию, такой пример исключается из обучения, чтобы не добавлять шум. Неоднозначные события получают меньший базовый вес, но их значение зависит от контекста: если вместе с репостом был явный положительный сигнал, вклад репоста усиливается, если отрицательный — меняет знак. Это позволяет модели точнее интерпретировать сложные пользовательские действия.

Обновления затронули и другие аспекты: из положительных сигналов убраны действия вроде открытия фотографии или разворачивания текста, так как клик сам по себе не гарантирует интереса. Вместо этого добавлены события, связанные с длительностью просмотра. В совокупности эти изменения позволили увеличить время в ленте на 11%, что является значимым результатом для платформы, где конкуренция за внимание пользователей высока.