Каковы сегодня самые популярные алгоритмы системы рекомендаций?

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

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

Совместная фильтрация

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

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

Пользователь-Пользователь

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

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

Пункт-Пункт

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

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

Пользовательский элемент

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

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

Эту факторизацию лучше всего обучить с помощью SVD, но поскольку этот алгоритм требует больших вычислительных ресурсов, мы часто предпочитаем альтернативы. Для средних наборов данных ALS даст разумные характеристики. Для большого набора данных только алгоритм SGD сможет масштабироваться, но будет очень медленным.

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

Алгоритмы User-Item имеют тот недостаток, что нет эффективного метода обновления вложений после добавления нового элемента или нового пользователя.

На основе содержания

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

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

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

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

Гибридные модели и глубокое обучение

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

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

Схемы обучения таких алгоритмов близки к традиционному глубокому обучению, то есть мини-пакетному SGD с эвристикой ускорения. Но тот факт, что наборы данных рекомендаций сильно отличаются от обычных наборов данных компьютерного зрения, значительно усложняет использование существующих реализаций и инструментов (например, многие оптимизаторы в библиотеках, таких как TensorFlow или PyTorch, не поддерживают разреженное обновление импульса, что является краеугольным камнем обучение глубоких моделей для рекомендации). Инженерам и исследователям часто приходится реализовывать и обучать больше вещей самостоятельно, что требует как времени экспертов, так и больших вычислительных ресурсов.

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

Первоначально Answer на Quora - Emile Contal, соучредитель Crossing Minds.