Статьи

От классического стека к нейросетевому. Как нейронки меняют правила игры в рекомендациях, поиске и рекламе

Поиск, рекомендации и реклама — три кита, на которых держатся цифровые платформы. Казалось бы, каждый отвечает за свое: первый помогает найти информацию, второй — провести время, третий — монетизировать внимание.

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

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

Содержание

Задача трех систем

Поиск начинается с запроса. Пользователь вводит пару слов, и система за доли секунды отбирает из миллиардов документов (видео, постов, клипов) сначала тысячи подходящих, а потом их ранжирует и показывает десятку лучших. Это грубая фильтрация, а за ней — точная настройка под интересы.

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

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

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

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

Как пользователи и контент становятся векторами

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

Эмбеддинг пользователя строится по активности. Алгоритм смотрит, что человек лайкал, какие видео смотрел подряд, на каких роликах залипал дольше обычного, что комментировал, на какие каналы подписан. Добавляет демографию — если она известна: возраст, пол, регион. Иногда — даже временные паттерны: активен ли пользователь утром или вечером, в будни или выходные.

Контент кодируется иначе. Для видео система берет заголовок, описание, категории, теги и даже обложку (ее переводят в числа с помощью сверточных сетей). Учитываются метаданные: кто автор, сколько просмотров, в каких плейлистах ролик встречается. Добавляются сигналы из самих медиа — например, спектрограмма звука или текст, распознанный из речи. Даже настроение комментариев может попасть в вектор — через анализ тональности.

Так создаются два мира чисел — пользователей и контента. Эмбеддинги решают главную задачу: как быстро отобрать релевантное из миллиона вариантов. Вместо полного перебора запускается приближенный поиск ближайших соседей (approximate nearest neighbor search), и за миллисекунды находятся 500 наиболее подходящих материалов для пользователя на основе его эмбеддинга.

Но это только первый этап. Дальше включается ранжирование. Более сложная модель оценивает отобранный список: уточняет прогноз интереса, применяет бизнес-ограничения (например, ограничивает повторения одного автора) и расставляет финальные приоритеты. Так работает масштабируемая воронка рекомендаций — от широкого отбора до точечной выдачи.

Ранжирование под микроскопом

Система не просто «угадывает», что показать. Она отбирает лучшее через трехступенчатую воронку, где на каждом этапе предсказывает интерес все точнее.

Первый этап — отбор кандидатов. Алгоритм быстро фильтрует миллионы единиц контента, чтобы оставить несколько тысяч подходящих. Используются сверхбыстрые методы. Например, уже упомянутый приближенный поиск ближайших соседей для поиска по эмбеддингам. Или классический инвертированный индекс для текстов. Цель — не промахнуться с релевантностью, но и не потратить слишком много времени на вычисления. За миллисекунды система отсеивает 99 процентов контента и оставляет то, что хотя бы примерно подходит пользователю.

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

Третий этап — финальное ранжирование. До него доходят около сотни кандидатов. Тут работают глубокие нейросети и алгоритмы коллаборативной фильтрации. Они просчитывают вероятность клика (CTR, click-through rate), досмотра видео, дочитывания текста, лайка или репоста. Модель может потратить больше времени на каждый объект, ведь их осталось немного и точность здесь особенно важна.

Зачем такая сложность? Одна нейросеть, которая оценивает сразу миллионы постов, обрушит систему: слишком дорого и медленно. А многоступенчатая воронка балансирует точность и скорость. Быстрая фильтрация плюс умный финальный рэнкинг равно масштабируемая, отзывчивая система.

Топливо для всей этой архитектуры — данные. Например, в VK хранилище реализовано как единая Discovery платформа, которая аккумулирует сигналы: клики, лайки, подписки, время просмотра, поисковые запросы, реакции на рекламу. Эти данные помогают обучать модели и обновлять эмбеддинги.

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

Так, в Китае тысячи блогеров, или ванхунов, снимают ролики с товарами, которые можно купить прямо в плеере. Объемы этого рынка поражают. За два часа стрима с ярмарки в Москве блогерша Даньдань продала российские товары на 6,2 миллиона долларов.

При этом важно не быть навязчивым. Если пользователь уже купил мультиварку, не стоит предлагать вторую. Лучше — специи, книгу рецептов, фартук. Умная система подбирает не самую очевидную вещь, а то, что расширяет интерес и дополняет покупку.

Зоопарк моделей

В финальном ранжировании сегодня используется целый зоопарк нейросетевых моделей, и легко запутаться, где заканчивается одна архитектура и начинается другая. Начнем с базового: все новые модели — нейросети. Это общее семейство, в которое входят как классические многослойные перцептроны (MLP), так и более современные архитектуры: сверточные (CNN), рекуррентные (RNN) и, конечно, трансформеры.

Трансформеры — это особый тип нейросети, построенный на механизме self-attention, который позволяет в последовательности чего-либо сравнивать каждый элемент со всеми остальными элементами и вычислять их взаимную важность. В рекомендательных системах их применяют в моделях вроде BERT4Rec или SASRec, где действия пользователя обрабатываются как последовательность, а модель учится предсказывать следующее действие.

Большие языковые модели (LLM) вроде GPT или T5 — это большие трансформеры, обученные на текстах. Их используют в рекомендациях как генеративных агентов: задают в виде текста историю взаимодействий и получают в ответ текстовую рекомендацию. В отличие от специальных трансформеров они универсальны, но требуют больше ресурсов.

Мультимодальные модели — это не отдельная архитектура, а свойство. Такие модели работают сразу с несколькими типами данных: текстом, изображениями, звуком. Обычно они тоже основаны на трансформерах и используют энкодеры — модули, которые превращают каждый формат данных в вектор. Например, текст кодируется через BERT, изображение — через ResNet, и все это объединяется в общее векторное пространство.

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

Что делают «диффузионки»?

Диффузионные модели учатся восстанавливать «чистые» предпочтения пользователя из шума. Механизм похож на то, как работает генерация изображений в Stable Diffusion: данные искажаются шумом шаг за шагом, а потом восстанавливаются в обратную сторону.

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

По сравнению с языковыми моделями и трансформерами диффузионные модели дают большую гибкость при генерации сложных распределений. Они лучше справляются с неустойчивыми сигналами и показывают прирост точности до десяти процентов на шумных датасетах. Минусы — больше шагов при инференсе и выше ресурсоемкость, хотя это частично решается сжатием в латентное пространство (L-DiffRec) и учетом временных сдвигов (T-DiffRec). Для некоторых задач они уже начинают конкурировать с трансформерами, особенно там, где важна устойчивость к шуму и персонализация.

Все модели работают по-разному, но цель у них одна — понять, что понравится пользователю, даже если он об этом еще не знает.

Трансформируем правила игры

В подавляющем большинстве современных реализаций нейросетевая модель есть не что иное, как трансформер. Именно архитектура трансформера позволяет обрабатывать разные типы данных (текст, изображение, звук) как последовательности, применять к ним общий self-attention и собирать в единое векторное пространство.

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

Модель учится предсказывать следующий элемент в последовательности действий пользователя. Поэтому один из лидирующих подходов в рекомендациях — SASRec (Self-Attentive Sequential Recommendation) — в реальных условиях дает прирост точности на 2,5–3 процента.

Допустим, Алексей лайкнул пост о Cyberpunk, прокомментировал мем про программистов, поставил реакцию на видео с котиком, поделился статьей о нейросетях и одновременно слушал группу «Кино». Рекомендательный трансформер получает эту цепочку как последовательность токенов — закодированных действий. Затем применяет позиционное кодирование (чтобы понимать порядок) и self-attention (чтобы сравнить каждый элемент с каждым и оценить, насколько они связаны). Алгоритм замечает интерес к IT, юмору и ретрокультуре. На выходе — прогноз: что еще заинтересует Алексея. Например, игривый пост о ретроиграх 80-х или видео, где нейросеть сочиняет музыку в стиле Цоя.

Главная сила трансформеров в том, что они учатся на связях между действиями, а не просто их регистрируют. Если пользователь регулярно лайкает IT-контент, модель поймет, что это стабильный интерес, и увеличит его вес. Даже если в цепочке затесался один случайный клик, он не собьет картину: self-attention умеет отделять важное от случайного.

Чем отличается трансформер и большая языковая модель в рекомендациях?

Трансформеры вроде SASRec и BERT4Rec обрабатывают действия пользователя как последовательность и предсказывают следующее, что может его заинтересовать. Они работают как языковые модели, но обучены с нуля на взаимодействиях: кликах, лайках, просмотрах. Вход — список действий, выход — вероятностное распределение по объектам. Их основная задача — повысить точность за счет учета порядка и контекста.

LLM4Rec идут дальше. Это уже готовые языковые модели (например, T5 или GPT), которым подают действия пользователя в виде текстового промпта. Вместо числового вывода — генерация ответа: рекомендация в виде текста или списка. Такие модели не обучаются с нуля, а донастраиваются на рекомендательные задачи. Они работают в zero-shot или few-shot режиме (без предварительного обучения на конкретном пользователе), умеют объяснять рекомендации и могут учитывать нестандартные сигналы — от текстов до поведения.

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

Семантика и мультимодальность

Один из прорывов последних лет — мультимодальные модели. По такому принципу, к примеру, работает Zelda — семейство моделей и фреймворк, лежащий в основе рекомендаций VK. Она считывает семантику текста, визуальные признаки картинки и, если нужно, особенности звука и все это кодирует в одно общее векторное пространство (shared embedding space). Это позволяет системе не просто находить похожее, а понимать, что объекты связаны по смыслу, даже если нет прямых меток, категорий или тегов. То есть модель работает со смыслом, а не с дословными совпадениями.

Допустим, пользователь читает пост о путешествиях по Европе. Классическая content-based система посоветовала бы похожие текстовые посты — с такими же тегами или ключевыми словами. Но если автор не отметил публикацию как «туризм» или «путешествия», алгоритм потерял бы ее из виду. А мультимодальная модель смотрит глубже. Она может порекомендовать фото европейских улиц или видео с обзором достопримечательностей, даже если пользователь не проявлял интерес к визуальному контенту напрямую. Она увидела смысловую связь — и использовала ее.

Этот подход заметно точнее и систем, которые работали на разложении матриц — классической технике рекомендаций второго поколения. Там вся модель сводилась к таблице «пользователи × объекты», где алгоритм пытался предсказать недостающие оценки на основе уже известных. Это работало, пока пользователь смотрел и лайкал однотипный контент, например комедии или спортивные видео. Но стоило интересам смениться, система терялась: она не понимала, почему человек внезапно зацепился за историческую драму или начал смотреть ролики про космос.

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

Будущее за нейросетевыми рекомендациями

Сегодня нейросетевые методы пробуют внедрять на каждом из этапов воронки ранжирования: для генерации эмбеддингов, для предранжирования и оценки интереса. Следующий возможный шаг — постепенно перейти к сквозным (end-to-end) архитектурам, когда одна большая нейросеть берет на себя все. Модель учится на действиях пользователей, учитывает как коллаборативные сигналы (что смотрят люди с похожими интересами), так и контентные (о чем пост или видео) и предсказывает, что человек захочет сделать: кликнуть, посмотреть, купить, пролистать.

Нейросети обходят бустинг в трех аспектах:

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

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

Реклама: ООО «Управляющая компания ВК», ИНН 7714481197, Erid: 2W5zFHf8cWC

Источник

Нажмите, чтобы оценить статью
[Итого: 0 Среднее значение: 0]

Похожие статьи

Добавить комментарий

Кнопка «Наверх»