Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Recommendation System

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

Рекомендательная система, или рекомендатель, — это программное обеспечение, которое предсказывает, какие материалы могут заинтересовать пользователя, например товары, видео, песни, статьи или публикации, и ранжирует их для этого пользователя. Система учится на явных отзывах, например оценках звёздами, и гораздо чаще — на неявных, таких как клики, время просмотра и покупки. Это делает её одним из самых широко используемых приложений машинного обучения. Два события определили развитие этой области: описание Amazon коллаборативной фильтрации «товар-товар» в 2003 году и Netflix Prize (2006–2009), в рамках которой команде, улучшившей предсказания оценок фильмов Netflix на 10%, выплатили 1 млн долларов.

Как работают рекомендательные системы#

Коллаборативная фильтрация использует только сведения о том, кто с чем взаимодействовал. Методы на основе пользователей ищут людей с похожей историей, методы на основе объектов — материалы, понравившиеся одним и тем же пользователям, а матричная факторизация, получившая известность во время Netflix Prize, обучается находить вектор для каждого пользователя и объекта. Их скалярное произведение предсказывает вероятность взаимодействия. При контентной фильтрации описывают характеристики объектов, например жанр, текст, обработанный с помощью обработки естественного языка (NLP), или эмбеддинги изображений, и рекомендуют материалы, похожие на те, что уже понравились пользователю. Такой подход работает даже для объектов, с которыми ещё никто не взаимодействовал. Гибридные системы объединяют оба сигнала: контентные признаки помогают рекомендовать новый объект, пока не накопится достаточно взаимодействий.

В этом примере коллаборативная фильтрация на основе объектов применяется к небольшой матрице оценок: система предсказывает оценки, которые один пользователь поставил бы фильмам, ещё не попавшим в его список, на основе косинусного сходства столбцов оценок фильмов:

import numpy as np

# Ratings from 4 users (rows) for 5 movies (columns); 0 means not rated
ratings = np.array(
    [
        [5, 4, 0, 1, 0],
        [4, 5, 1, 0, 1],
        [1, 0, 5, 4, 5],
        [0, 1, 4, 5, 0],
    ]
)

# Item-item cosine similarity between the movies' rating columns
norms = np.linalg.norm(ratings, axis=0)
item_sim = ratings.T @ ratings / np.outer(norms, norms)

# Predict user 3's rating of each movie as a similarity-weighted average of their own ratings
user = ratings[3]
rated = user > 0
scores = item_sim[:, rated] @ user[rated] / item_sim[:, rated].sum(axis=1)

for movie in np.flatnonzero(~rated):
    print(f"Movie {movie}: predicted rating {scores[movie]:.2f}")

Пользователь 3, последняя строка, высоко оценил фильмы 2 и 3, а фильм 1 оценил низко. Поэтому прогнозируемая оценка фильма 4, чьи оценки близки к оценкам фильмов 2 и 3, равна 4.10, а фильма 0, чьи оценки близки к оценкам фильма 1, — 2.09. Система рекомендует фильм 4.

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

Многоэтапный конвейер#

Крупные сервисы не могут запускать ресурсоёмкую модель для миллионов объектов при каждом запросе, поэтому формируют рекомендации поэтапно. Генерация кандидатов, или извлечение, сужает каталог до нескольких сотен объектов с помощью недорогих сигналов, например коллаборативной фильтрации или поиска по эмбеддингам. Затем ранжирующая модель оценивает каждого кандидата по множеству признаков и предсказывает вероятность клика, просмотра или покупки. На заключительном этапе повторного ранжирования добавляют разнообразие, актуальность и бизнес-правила. В 2016 году YouTube описал эту двухэтапную архитектуру. Каждая показанная рекомендация также создаёт обратную связь для обучения следующей модели, поэтому система учится на данных, сформированных её предыдущими решениями.

Современные системы масштабируют модели ранжирования и извлечения так же, как языковые модели. Генеративные рекомендательные системы Meta, представленные на ICML 2024, рассматривают действия каждого пользователя как последовательность, достигли 1,5 трлн параметров и улучшили показатели в онлайн A/B-тестах на 12.4%.

Визуальные рекомендации#

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

Применение#

  • Розничная торговля и электронная коммерция: На страницах товаров показывают списки «покупатели этого товара также купили» и персонализированные главные страницы, составленные на основе истории просмотров и покупок.
  • Стриминговые сервисы: Видеосервисы и музыкальные платформы ранжируют контент и составляют плейлисты на основе истории просмотров и прослушиваний. Netflix также персонализирует изображения для каждого фильма и сериала.
  • Ленты соцсетей и новостей: Платформы ранжируют публикации, короткие видео и статьи по прогнозируемой вовлечённости и обновляют порядок каждый раз, когда пользователь открывает ленту.
  • Мода: Поиск визуально похожих товаров предлагает одежду, подходящую по стилю, цвету или рисунку к вещи, которую покупатель просматривал или фотографировал.
  • Поиск: Поисковая система отвечает на явно заданный запрос, а рекомендатель предугадывает желания пользователя без запроса. В современных системах используются общие компоненты извлечения и ранжирования.
  • Векторный поиск и векторные базы данных: Поиск сохранённых эмбеддингов, ближайших к эмбеддингу запроса, — основа этапа извлечения в рекомендательной системе.
  • Модели повторного ранжирования: Модели второго этапа, которые точнее переоценивают короткий список кандидатов; в рекомендательной системе эту роль выполняет этап ранжирования.
  • Предиктивное моделирование: Этап ранжирования — это модель, предсказывающая вероятность взаимодействия, а полноценный рекомендатель также выполняет извлечение, упорядочивание и обработку обратной связи.

Сложности#

  • Проблема холодного старта: У новых пользователей и объектов нет истории взаимодействий, поэтому системы используют запасные варианты: популярность, вопросы при регистрации или контентные признаки.
  • Разреженность: Каждый пользователь взаимодействует лишь с небольшой долей большого каталога, поэтому большая часть матрицы взаимодействий пользователей и объектов пуста.
  • Смещение в сторону популярного контента и циклы обратной связи: Обучение на зарегистрированных взаимодействиях отдаёт предпочтение объектам, которые уже часто показывали. Из-за этого выбор для пользователя сужается и могут образовываться пузыри фильтров.
  • Оценка качества: Офлайн-метрики, например precision@k и NDCG на исторических данных, часто расходятся с результатами онлайн A/B-тестов, которые измеряют фактическую реакцию пользователей на новые рекомендации.
  • Конфиденциальность: Подробные профили поведения — это персональные данные, защищённые законодательством о защите данных в ЕС и других юрисдикциях.
  • Регулирование: Закон ЕС о цифровых услугах требует, чтобы очень крупные онлайн-платформы и поисковые системы предлагали для каждой рекомендательной системы хотя бы один вариант, не основанный на профилировании.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

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

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

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

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

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения