Создать систему, которая анализирует поведение пользователей и содержание стримов, чтобы предлагать каждому зрителю наиболее релевантные каналы и трансляции. Рекомендательная система поможет зрителям открывать новые интересные каналы и стримы, экономя время на поиск контента.
- Сбор и подготовка данных: агрегировать данные о пользователях, чат-сообщениях за последний месяц, взаимодействиях (просмотры, подписки) и метаданных стримов.
- Разработка моделей рекомендаций: реализовать и обучить несколько моделей – в том числе GMF (Generalized Matrix Factorization) и NCF (Neural Collaborative Filtering) – для прогнозирования предпочтений пользователей на основе их действий. Учесть оптимизацию гиперпараметров (Optuna) и подобрать лучшие функции активации для нейросетей.
- Контентный анализ через LLM: построить пайплайн рекомендаций на основе профилей пользователей и содержания стримов. С помощью моделей класса LLM (Large Language Model) автоматически тегировать стримы, определять их тематику и формировать «вектора предпочтений» пользователей по темам.
- Инфраструктура и интеграция: разработать клиент для API GoodGame и скрипты конвертации данных, настроить базу данных и кэширование для быстрого доступа к данным. Обеспечить генерацию рекомендаций в реальном времени и интеграцию системы с фронтендом платформы.
- Тестирование и качество: протестировать рекомендации на основе реальных действий пользователей и собрать метрики качества. Реализовать подход к оценке рекомендаций по аналогии с решениями Twitch и построить систему оценки кликабельности рекомендаций (CTR) для валидирования эффективности.
Результат представляет собой список каналов или текущих трансляций, отсортированный по релевантности к интересам пользователя. Помимо списка рекомендуемых стримов, система генерирует объяснительные метаданные – например, основные совпадающие теги или категории – чтобы обосновать, почему предложены те или иные каналы. В процессе тестирования также собираются показатели качества (точность модели, CTR рекомендаций), которые позволяют оценить эффективность алгоритмов.
Для обучения и работы системы были использованы разнообразные данные GoodGame: истории просмотров и подписок пользователей, логи чата за последние 30 дней, информация о стримах (игра, жанр, описание) и профили пользователей. Также учитывались агрегированные статистики по каналам и активности аудитории. Эти данные прошли предварительную обработку: очищены, закэшированы в базе данных и преобразованы в удобный формат для моделей (например, числовые идентификаторы, эмбеддинги признаков, тематические теги).