Привет! Меня зовут Михаил Трапезников, я руководитель группы рекомендательных технологий в AI VK.

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

В этой статье я расскажу:

  1. Как мы создали нейропрофиль — единую трансформерную модель, которая объединяет сигналы пользователя из разных сервисов VK и формирует целостное представление о его интересах

  2. Как устроена его архитектура, какие данные она использует и как обучается на миллиардах взаимодействий с контентом

  3. Как кросс-доменный подход помогает улучшать рекомендации в VK Видео, VK Клипах и других продуктах экосистемы

Трансформер как основа

В основе нейропрофиля лежит трансформерная нейросеть, которая анализирует до 1 024 последних действий пользователя как единую последовательность событий. В отличие от классических подходов, она учитывает не отдельные лайки или просмотры, а взаимосвязи между действиями в разных сервисах и формирует целостное представление об интересах человека.

Вместо прогнозирования каждого отдельного действия модель интегрируется напрямую в рекомендательные системы продуктов VK. Это упрощает внедрение технологии и снижает затраты на поддержку локальных ML-пайплайнов.

В этом заключается наше главное отличие от альтернативных индустриальных подходов. Часто в рекомендациях упор делается на сложную многоэтапную схему последовательного предсказания микроповедения (что именно пользователь посмотрит, где поставит лайк, а где — дизлайк). 

Мы же сознательно выбрали путь архитектурной лаконичности. В основе нейропрофиля лежит классический трансформер, но его сила — в глубокой интеграции с Discovery-платформой. Благодаря этому команда VK может кратно быстрее разворачивать технологию сразу на десятки разных продуктов экосистемы без перестройки их внутренних пайплайнов. 

Архитектура нейропрофиля: двухбашенная модель

В основе решения лежит двухбашенная архитектура, которая создаёт идеальную, математически выверенную связь между скрытыми интересами пользователя и свойствами предлагаемого контента: 

  • Башня пользователя (User Tower) обрабатывает последовательность действий с учётом их порядка и контекста. С помощью механизма self-attention трансформер формирует динамический эмбеддинг, который отражает как долгосрочные интересы пользователя, так и его текущий интент

  • Башня объекта (Item Tower) кодирует контент — видео, клипы и посты — на основе его характеристик, таких как тематика, жанр и другие статичные свойства

На выходе система сравнивает представление пользователя и контента, вычисляя степень их соответствия. Этот сигнал затем используется рекомендательными алгоритмами для отбора наиболее релевантного контента.

Обогащение контекста модели

Чтобы трансформер внутри башни пользователя находил сложные паттерны поведения, ему нужны не только идентификаторы объектов, но и богатый контекст взаимодействий. Поэтому история действий пользователя преобразуется в последовательность токенов, каждый из которых объединяет несколько типов признаков.

Здесь важно подчеркнуть разделение ролей: мультимодальные модели в VK отвечают за описание самого контента (сводя видео, клипы и тексты в единое семантическое пространство), в то время как нейропрофиль агрегирует историю пользователя, связывая эти контентные векторы с его действиями. 

В результате структура токена раскладывается на три составляющие: 

  1. Контентное представление (Content Embeddings) — векторы из мультимодальной контентной модели. Они описывают семантику объекта: визуальное содержание видео, аудиохарактеристики или смысл текста

  2. Векторы событий (Event Embeddings) кодируют тип взаимодействия пользователя с контентом: лайки, репосты, глубину просмотра, а также негативные сигналы — например, дизлайки или быстрые пропуски

  3. Признаки источника (Source Embeddings) содержат информацию об авторе контента и помогают учитывать предпочтения пользователя к конкретным блогерам или сообществам

Особую роль играет время, которое помогает понять не только интерес пользователя, но и контекст его поведения. Для кодирования временных сигналов используется подход Time2Vec, учитывающий:

  • Абсолютное время события. Берётся абсолютный таймстемп события и нормируется на заведомо огромную константу. Это гарантирует, что в рамках жизненного цикла модели значения признака никогда не достигнут верхней границы

  • Относительное время сессии. Вычисляется точная дельта между временем первого события в текущей истории пользователя (в рамках последних 1 024 событий) и временем текущего действия. Это позволяет модели понимать фазу сессии и динамику утомляемости пользователя

  • Интервальное время. Рассчитывается разница таймстемпов между двумя строго соседними (смежными) событиями в истории. Данный признак сигнализирует о скорости потребления: кликал ли пользователь контент хаотично подряд или провёл внутри объекта значительное время

В результате каждое взаимодействие превращается в информативный токен, содержащий данные о контенте, типе действия, источнике и времени его совершения. 

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

Обучение модели

Исходные данные слишком шумные, а модель быстро начинает переоценивать популярные объекты. Поэтому обучение разделено на два этапа. 

Стадия 1. Предобучение (pre-train)

На первом этапе модель учится отделять потенциально интересный контент от заведомо нерелевантного. Для этого используются неявные сигналы вовлечённости, например глубина просмотра видео или время взаимодействия с контентом.

Обучение происходит на больших массивах данных с использованием техники Sampled Softmax, которая позволяет эффективно работать с многомиллионным каталогом контента. Чтобы избежать перекоса в сторону популярных объектов, применяется дополнительная коррекция, учитывающая частоту их появления на платформе.

Стадия 2. Дообучение (fine-tune)

После этого модель переходит к более точной настройке. На данном этапе она учится оценивать контент в контексте конкретной рекомендательной сессии, используя явные сигналы интереса: лайки, сохранения и полные досмотры.

Ключевым изменением на этой стадии стало внедрение подхода causal finetune (обучение на каузальных сессиях). Чтобы модель научилась предсказывать релевантность максимально близко к условиям реального рантайма, логика работы с историей была фундаментально перестроена:

  • Разделение сырой истории на causal-сессии. Непрерывный смешанный поток действий пользователя разбивается на смысловые блоки по типам контента. Например, если в истории [клип → видео → видео → пост → клип → видео → видео → видео] человек начал подряд смотреть длинные ролики, этот финальный паттерн выделяется в целевую сессию видео

  • Изоляция префикс-истории. Для обучения алгоритма берётся только та часть хронологии, которая произошла строго до начала этой целевой сессии. Модель лишается возможности заглянуть в будущее, что делает прогнозирование честным и предотвращает data leak

  • Оценка интента (User Tower). Префикс-история обрабатывается трансформером с механизмом full attention. На выходе алгоритм забирает финальный токен целевого домена (например, u_video для сессии видео или u_clips для сессии клипов). Этот токен математически описывает сформированный интент пользователя ровно за секунду до того, как он начал смотреть сессию

  • Вычисление релевантности (Item Tower). Параллельно фактические объекты из целевой сессии обрабатываются башней объектов, генерируя вектор самой сессии (s_video или s_clips). Модель дообучается максимизировать математическую близость (релевантность) между предсказанным интентом u и реальным вектором потреблённого контента s.

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

Технология двухстадийного обучения успешно перенесена в продакшен VK Видео и VK Клипов через специализированный инструмент Profile Stream Discovery-платформы VK, что позволило повысить релевантность рекомендаций, так как эти изменения сильно повлияли именно на модель ранжирования. 

Архитектура нейропрофиля. Модель «Хеймдаль»

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

Для её решения мы разработали кросс-доменную трансформерную модель «Хеймдаль». Её задача — объединять знания о предпочтениях пользователя между разными форматами контента и сервисами экосистемы. 

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

В отличие от предыдущих поколений моделей, «Хеймдаль» обучается предсказывать не отдельные действия пользователя, а следующий объект контента, который может его заинтересовать. Такой подход позволяет лучше понимать взаимосвязи между различными форматами и сценариями потребления контента.

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

После внедрения время просмотра контента в VK Клипах выросло на 5,5%, а на главной странице VK Видео обеспечило +1,1% TVT (Total View Time) поверх уже работающей однодоменной трансформерной модели. Иными словами, алгоритм ранжирования, который раньше учитывал только чистую историю просмотров видео, получил значительный буст к удержанию аудитории исключительно за счёт добавления контекста и паттернов поведения пользователя из соседних продуктов — VK Клипов и ленты ВКонтакте. 

Итоги

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

Что это даёт на практике:

  • Связь между форматами. Если человек активно смотрит короткие клипы про авторемонт, алгоритм вовремя подхватит этот интент и предложит ему релевантный часовой обзор в VK Видео.

  • Масштабирование для новых продуктов. Сервису не нужно собирать историю пользователя с нуля — есть готовое представление интересов пользователя.

  • Реальный буст на проде. Кейс с +1,1% TVT на главной VK Видео наглядно доказывает: данные из соседних продуктов отлично дообучают алгоритмы даже там, где уже работают сильные локальные нейросети.