Transformers4Rec: привнося мощь NLP в современные рекомендательные системы
Введение
По мере стремительного роста цифровой коммерции и потребления онлайн-контента спрос на эффективные, персонализированные рекомендательные системы становится выше, чем когда-либо. Покупатели и зрители стриминговых сервисов ожидают индивидуально подобранных рекомендаций — будь то поиск товаров, фильмов или музыки. Однако традиционные рекомендательные системы, которые опираются на коллаборативную или контентную фильтрацию, используют статические исторические данные и часто с трудом адаптируются к меняющимся предпочтениям пользователей. Чтобы преодолеть эти ограничения, рекомендательные системы, использующие динамические модели ИИ, которые фиксируют эволюционирующее поведение пользователей, стали необходимыми и популярными.
На недавнем Unstructured Data Meetup, организованном Zilliz, Kunal Sonalkar, Data Scientist в Nordstrom, поделился идеями об использовании Transformers4Rec для реализации последовательных и сессионных рекомендаций, чтобы лучше удовлетворять меняющиеся потребности пользователей. В этой статье блога выделены ключевые выводы из презентации Kunal, а также наш взгляд на будущее рекомендательных систем. Вы также можете посмотреть полное выступление Kunal на YouTube, чтобы узнать больше.
Что такое Transformers4Rec?
Transformers4Rec — это мощная и гибкая библиотека, предназначенная для создания последовательных и сессионных рекомендательных систем с PyTorch. Благодаря интеграции с Transformers, одним из самых популярных фреймворков в обработке естественного языка (NLP), Transformers4Rec служит мостом между NLP и рекомендательными системами.
На следующем рисунке показано использование библиотеки transformers4Rec в рекомендательной системе. Входные данные для библиотеки — это последовательность взаимодействий пользователя, например товары, которые пользователь просматривает или добавляет в корзину во время сессии. Transformers4Rec обрабатывает эти взаимодействия, чтобы делать интеллектуальные прогнозы о том, что пользователь может захотеть дальше. Например, представьте, что клиент просматривает онлайн-книжный магазин. Сначала он смотрит несколько научно-фантастических романов, добавляет один из них в корзину, а позже просматривает несколько страниц связанных авторов. Transformers4Rec анализирует эту последовательность действий и прогнозирует, что клиент может заинтересоваться другой популярной научно-фантастической книгой или связанным фэнтезийным романом.
Figure- How Transformers4Rec works in a recommender system .png
Рисунок: Как Transformers4Rec работает в рекомендательной системе
Kunal подчеркивает, что для создания эффективной рекомендательной системы важно понимать намерение клиента — например, какой тип продукта его интересует и чувствителен ли он к цене, — чтобы соответствующим образом адаптировать рекомендации.
Например, два клиента, ищущие "shoes", могут получить разные рекомендации на основе своих предыдущих взаимодействий и предпочтений, таких как бюджет или предпочтение бренда.
shoes.png
Архитектура Transformers4Rec
Как мы уже упоминали ранее, архитектура Transformers4Rec предназначена для адаптации моделей-трансформеров к последовательным и сессионным рекомендациям путем структурированной обработки данных о взаимодействиях пользователей. Ее архитектура включает четыре основных компонента, которые совместно работают для формирования прогнозов: Feature Aggregation, Sequence Masking, Sequence Processing и Prediction Head.
Figure- Transformers4Rec Architecture .png
Рисунок: Архитектура Transformers4Rec
Агрегация признаков
Компонент Агрегация признаков собирает данные о взаимодействиях пользователей — как непрерывные, так и категориальные переменные, — чтобы построить комплексный профиль для рекомендаций. Например, в рекомендательной системе электронной коммерции категориальные признаки могут включать такие атрибуты, как бренд и тип продукта, тогда как непрерывные признаки могут отражать цену, ставки скидок или недавние взаимодействия (например, количество кликов по продукту за последние 24 часа).
Figure- Feature Aggregation in Transformers4Rec.png
Рисунок: Агрегация признаков в Transformers4Rec
Перед подачей этих последовательностей в transformer-блок данные взаимодействий необходимо предварительно обработать в стандартизированный формат, называемый векторными эмбеддингами (числовые представления данных взаимодействий в многомерном пространстве). Входные данные могут быть организованы по ID пользователя или ID сессии, при этом последовательность взаимодействий агрегируется в единое векторное представление, известное как «эмбеддинг взаимодействия». Этот эмбеддинг содержит контекстную информацию о взаимодействиях пользователя, такую как тип действий пользователя, задействованные товары и порядок взаимодействий, и может храниться в векторной базе данных для эффективного извлечения и семантического поиска. Надежная векторная база данных, такая как Milvus, или ее управляемый сервис Zilliz Cloud, который хорошо интегрируется с PyTorch, может упростить этот процесс. Кроме того, Transformers4Rec включает модуль NVTabular для простого преобразования необработанных данных в требуемый формат, что делает подготовку данных более управляемой.
Маскирование последовательностей
Компонент Маскирование последовательностей в Transformers4Rec применяет маски к взаимодействиям пользователей, чтобы предотвратить утечку данных и сохранить порядок последовательности, гарантируя, что модель учитывает временную шкалу событий. Например, при прогнозировании следующего товара пользователя этот модуль скрывает любые будущие действия, позволяя модели обучаться причинно, шаг за шагом.
Различные типы маскирования последовательностей в Transformers4Rec управляют тем, что модель «видит» во время обучения или инференса, что помогает ей выявлять значимые паттерны в поведении пользователей и улучшает ее способность прогнозировать следующее взаимодействие. Transformers4Rec предоставляет несколько вариантов маскирования последовательностей:
Causal Language Modeling (CLM): Этот метод маскирует будущие элементы в последовательности, обучая модель предсказывать каждый элемент, основываясь только на предыдущих элементах. CLM идеально подходит для последовательных рекомендаций, где порядок взаимодействий имеет решающее значение.
Masked Language Modeling (MLM): В MLM определенные позиции в последовательности случайным образом маскируются, и модель учится предсказывать скрытые элементы, используя окружающий контекст. Этот метод помогает модели понимать взаимосвязи между элементами без зависимости от строгого порядка.
Random Token Detection (RTD): RTD заменяет случайный элемент в последовательности несвязанным, и модель учится обнаруживать этот некорректный элемент. Этот метод учит модель отличать подлинные паттерны от случайного шума или аномалий.
Permutation Language Modeling (PLM): Здесь элементы в последовательности перемешиваются, и модель обучается предсказывать элементы в новом, переставленном порядке. PLM способствует гибкости, помогая модели распознавать паттерны в любом порядке.
Figure- Difference in Casual LM and Masked LM during Sequence Masking.png
Рисунок: Разница между Casual LM и Masked LM при маскировании последовательностей
Обычно перед обучением маскируется 20–30% позиционных эмбеддингов. Вероятность маскирования также играет роль в устойчивости рекомендательной системы.
Эти методы маскирования позволяют модели обучаться на основе взаимодействий пользователей различными способами, повышая её способность давать точные, контекстно-ориентированные рекомендации.
Обработка последовательностей
Компонент Обработка последовательностей передаёт входные признаки в трансформерные модели для предсказания замаскированных элементов или позиций в последовательности взаимодействий пользователя. Transformers4Rec поддерживает различные архитектуры для обработки последовательностей, включая XLNet, GPT-2 и LSTM, позволяя пользователям выбрать наиболее подходящую модель для своей рекомендательной системы.
Векторные эмбеддинги взаимодействий передаются в трансформерный блок, как показано во фрагменте кода ниже. Пользователи могут настраивать архитектуру трансформера, задавая такие параметры, как количество слоёв и длина последовательности. Последовательный блок в PyTorch можно создать, передав агрегированные входные данные, применив маскирование и включив нужную конфигурацию модели, что обеспечивает гибкую настройку для специализированных рекомендательных задач.
Sequence processing in Pytorch .png
Рис.) _Обработка последовательностей в Pytorch_
Голова предсказания
Голова предсказания — это финальный модуль во фреймворке Transformers4Rec, где выходные данные трансформерной модели используются для формирования практических рекомендаций.
Figure- Outputs from the transformer model are used to generate actionable recommendations. .png
Рисунок: Выходные данные трансформерной модели используются для формирования практических рекомендаций.
Этот модуль поддерживает различные сценарии использования, адаптированные к бизнес-потребностям, включая:
Предсказание следующего элемента: Этот вариант предсказывает следующий элемент, с которым пользователь, вероятно, будет взаимодействовать, основываясь на его предыдущих действиях, помогая предоставлять своевременные и релевантные рекомендации.
Бинарная классификация: Здесь модель рассчитывает вероятность того, что пользователь нажмёт на конкретный элемент. Это ценно для прогнозирования кликабельности (CTR), поскольку помогает определить, какие элементы с наибольшей вероятностью вовлекут пользователей, способствуя оптимизации макета и контента.
Регрессия: Задачи регрессии позволяют предсказывать непрерывные значения, такие как время, которое пользователь может провести с элементом, ожидаемое количество взаимодействий или даже оценочная сумма покупки.
Диаграмма ниже иллюстрирует сквозной производственный конвейер, включая все четыре компонента — агрегацию признаков, маскирование последовательностей, обработку последовательностей и голову предсказания, — работающие вместе для предоставления точных и контекстно-ориентированных рекомендаций.
Figure- End-to-End pipeline of a recommendation system built using Transformers4Rec.png
Рисунок: Сквозной конвейер рекомендательной системы, построенной с использованием Transformers4Rec
Оценка и сложности использования Transformers4Rec
Создание рекомендательной системы с Transformers4Rec требует как эффективной оценки, так и стратегического планирования для преодоления проблем масштабируемости и сопровождения.
Оценка системы
Эффективность рекомендательной системы во многом зависит от того, насколько точно она удовлетворяет потребности пользователей. Для Transformers4Rec распространённые метрики оценки включают точность и полноту, которые измеряют, насколько хорошо топ-‘N’ рекомендаций системы соответствуют предпочтениям пользователей. Кроме того, ранжирующие метрики, такие как Mean Average Precision (MAP) и Normalized Discounted Cumulative Gain (NDCG), также используются для оценки релевантности и порядка рекомендованных элементов.
Сложности
Масштабирование рекомендательной системы на базе Transformers4Rec связано со значительными вычислительными затратами, особенно при развертывании в большом масштабе с использованием ресурсов GPU. Создание и поддержка такой системы также требуют обширной инфраструктуры, охватывающей всё: от сбора и хранения данных до развертывания модели и инференса в реальном времени.
Выбор правильной инфраструктуры имеет решающее значение для создания системы, способной быстро извлекать релевантные рекомендации. Например, использование векторной базы данных, такой как Milvus, позволяет выполнять быстрый поиск по сходству и эффективно хранить векторные эмбеддинги, которые хорошо интегрируются в конвейер рекомендаций.
Еще одна ключевая задача — работа с новыми или часто меняющимися каталогами продуктов. Transformers4Rec должен предоставлять точные рекомендации для этих новых товаров даже при ограниченном объеме исторических данных. Это требует адаптивности как модели, так и инфраструктуры данных, чтобы обновлять рекомендации на основе свежего контекста.
Итоги
В этом блоге мы обсудили, как Transformers4Rec использует техники, вдохновленные NLP, для создания динамических персонализированных рекомендательных систем. Благодаря таким компонентам, как Feature Aggregation, Sequence Masking, Sequence Processing и Prediction Head, фреймворк фиксирует сложные пользовательские паттерны, чтобы предоставлять релевантные рекомендации в реальном времени. Ключевые метрики, включая precision, recall, MAP и NDCG, помогают оценивать эффективность системы, обеспечивая соответствие рекомендаций потребностям пользователей.
Мы также обсудили проблемы масштабирования Transformers4Rec, особенно связанные с затратами на инфраструктуру и потребностями в хранении, где такие инструменты, как векторная база данных Milvus, поддерживают эффективное хранение и извлечение векторов. Тонкая настройка параметров, таких как размерности векторов и длина последовательности, является ключевым методом, который оптимизирует производительность модели, делая Transformers4Rec гибким и мощным решением для современных рекомендательных систем.
Дополнительные материалы
Читать далее

Why Not All VectorDBs Are Agent-Ready
Explore why choosing the right vector database is critical for scaling AI agents, and why traditional solutions fall short in production.

DeepSeek Always Busy? Deploy It Locally with Milvus in Just 10 Minutes—No More Waiting!
Learn how to set up DeepSeek-R1 on your local machine using Ollama, AnythingLLM, and Milvus in just 10 minutes. Bypass busy servers and enhance AI responses with custom data.

Introducing DeepSearcher: A Local Open Source Deep Research
In contrast to OpenAI’s Deep Research, this example ran locally, using only open-source models and tools like Milvus and LangChain.


