Следующий контент составлен первой командой рекомендаций 4Paradigm,оригинальныйопубликованоСередина,авторСтив Хуанг.Воспроизведенный контент предназначен только для обучения и общения, а авторские права принадлежат оригинальному автору.
1. Предпосылки
в предыдущей статье«Хотите узнать о рекомендательных системах? Смотри сюда! (1) - Совместная фильтрация и разложение по единичным значениям"В разделе мы говорили о том, как совместная фильтрация (CF) и разложение по отдельным значениям (SVD) могут использоваться для создания рекомендательных систем. С появлением нейронных сетей большое внимание привлекло то, как использовать эту технологию для создания рекомендательных систем. В этом сообщении в блоге будет представлен Spotlight, рекомендательная система, основанная на PyTorch.
2. Spotlight
Spotlight — это хорошо реализованная среда Python для создания рекомендательных систем. Он содержит два основных типа моделей: модели декомпозиции и последовательные модели.
Модель декомпозиции использует идею SVD для декомпозиции матрицы полезности (матрицы, которая записывает взаимодействия между пользователями и элементами) на два скрытых представления матриц пользователей и элементов и передачи их обратно в сеть.
Модели последовательностей строятся с использованием моделей временных рядов, таких как долговременная память (LSTM) и одномерные сверточные нейронные сети (CNN). Поскольку бэкендом Spotlight является PyTorch, перед использованием PyTorch убедитесь, что у вас установлена правильная версия PyTorch.
взаимодействовать
В Spotlight матрица полезности называется взаимодействием. Чтобы создать неявное взаимодействие, мы назначаем идентификатор каждой паре взаимодействия пользователя и элемента. Дополнительная информация о рейтинге преобразует неявные взаимодействия в явные взаимодействия.
Модель декомпозиции
Модели декомпозиции используют неявные или явные взаимодействия. В следующей статье будет кратко описано неявное взаимодействие.
Идея неявных взаимодействий очень похожа на SVD, где пользователи и элементы отображаются в скрытое пространство, которое можно сравнивать напрямую. Обычно мы представляем пользователей и элементы двумя слоями внедрения соответственно.
Целью является взаимодействие (матрица полезности), которое мы передаем. Чтобы вычислить оценку для пары пользователь-элемент, мы берем скалярное произведение скрытого представления пользователя и элемента и передаем его сигмовидной функции активации.
Вычисляя потери для всех пар «пользователь-элемент» для реальных взаимодействий, мы можем выполнить обратное распространение и оптимизировать уровень встраивания, структурированный, как показано на рисунке ниже.
Эту модель можно обучить в Spotlight всего несколькими строками кода, и она очень похожа на набор инструментов scikit-learn:
последовательная модель
Последовательные модели рассматривают проблему рекомендации как проблему последовательного прогнозирования. Используя данные о предыдущем поведении пользователя, мы хотим знать, какие элементы ему, скорее всего, понравятся на следующем временном шаге.
Например, предположим, что пользователь А взаимодействует с элементами в последовательности [2, 4, 17, 3, 5]. Далее мы сделаем следующие предсказания расширенного окна.
[2] -> 4
[2, 4] -> 17
[2, 4, 17] -> 3
[2, 4, 17, 3] -> 5
Массив слева хранит предыдущие взаимодействия пользователя, а целые числа справа представляют элементы, с которыми пользователь А будет взаимодействовать в следующий раз.
Чтобы обучить такую модель, нам нужно всего лишь преобразовать исходные объекты взаимодействия в объекты последовательного взаимодействия. Остальные объекты одинаковые.
Следует отметить, что для обеспечения одинаковой длины каждой последовательности функция Sequence будет заполнять нулями перед последовательностями недостаточной длины.
Поэтому, чтобы функция работала, элемент с идентификатором 0 следует заменить на любой другой неиспользуемый идентификационный номер.
Выберите функцию потерь
У нас есть возможность изменить функцию потерь при указании модели. Модели с разными функциями потерь могут иметь существенные различия в производительности. В следующей статье будут кратко представлены два основных типа функций потерь, определенных в Spotlight.
- 'точечный':
Это самая простая форма по сравнению с другими формами функций потерь. Из-за разреженности выборки (несколько нулей в матрице полезности) учет всех элементов не будет выполнен. Поэтому мы рассматриваем только случайно выбранную часть отрицательных образцов (элементы, с которыми пользователь не взаимодействовал) и все положительные образцы.
- 'бпр':
Байесовский персонализированный рейтинг (BPR) обеспечивает ранжирование каждого элемента для каждого пользователя. BPR использует следующую формулу расчета, чтобы убедиться, что ранг положительных образцов выше, чем у отрицательных.
5. Заключение
В этой статье обсуждается, как создавать рекомендательные системы с помощью Spotlight. Этот метод прост и гибок и удовлетворит большинство потребностей. Хотя последовательные модели превосходят факторизованные модели для большинства задач, обучение последовательных моделей занимает больше времени. Более того, применение последовательной модели бесполезно, если между данными нет очевидной порядковой корреляции.
Связанное чтение:
Как AutoML реализует автоматический онлайн и O&M интеллектуальной системы рекомендаций?
Как реализовать технологическую посадку новых медиа с поддержкой ИИ?
Начало работы с рекомендательными системами, список знаний, которые вы не должны пропустить
Если вы хотите узнать больше, выполните поиск и следуйте официальной рекомендации Weibo@first, публичной учетной записи WeChat (ID: dsfsxj).