В настоящее время, в связи с резким увеличением количества вариантов продукта, многие компании в значительной степени полагаются на рекомендательные системы, которые помогают им сузить количество элементов, которые они представляют своим клиентам из внешнего интерфейса. Вспомните Netflix, который рекомендует фильмы своим подписчикам.

«Зачастую люди не знают, чего хотят, пока вы им это не покажете». Стив Джобс

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

Алгоритмы совместной фильтрации: используйте только рейтинги продуктов как средство для изучения предпочтений пользователей.

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

Гибридные алгоритмы: используйте как рейтинги продуктов, так и обзоры, чтобы узнать о предпочтениях клиентов.

Особенности клиента и продукта

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

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

Факторизация матрицы

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

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

Добавление дополнительных функций в матричную факторизацию

Предполагая, что дополнительные функции пользователя имеют уникальные значения для каждого пользователя, а дополнительные функции элементов имеют уникальное значение для каждого элемента, можно представить каждую из этих функций, специфичных для пользователя или элемента, в виде одномерного вектора. Например, если мы хотим добавить дополнительную пользовательскую функцию для возраста, тогда мы можем представить эту функцию вектором mx 1, где m - это количество пользователей, и каждая запись этого вектора содержит возраст конкретного пользователя.

Итак, если есть 3 дополнительные характеристики пользователя, их можно представить в виде векторов, по 3 вектора каждый с m элементами для m клиентов, которые будут действовать как дополнительные 3 столбца для матрицы факторов пользователя. В случае характеристик предмета, 3 вектора с n элементами будут добавлены в качестве дополнительных строк в матрицу предметного фактора. При обобщении этой идеи на случайные k 'дополнительных функций идея остается той же, k' пользовательских функций можно добавить в качестве дополнительных столбцов в матрицу факторов пользователя, а функции элементов k 'могут быть добавлены в качестве дополнительных строк в матрицу факторных факторов до тех пор, пока количество дополнительных пользовательских функций равно дополнительным элементам-функциям из-за умножения базовой матрицы между матрицами пользовательского фактора и элемента-фактора, где количество столбцов пользовательской матрицы должно быть равным к строкам матрицы элементов.

Это часть академической статьи под названием Использование текстовых обзоров в латентных факторных моделях для рекомендательных систем, которая будет представлена ​​на 36-м симпозиуме ACM / SIGAPP по прикладным вычислениям (SAC 2021) в треке веб-технологий.

Код Python Рекомендательной системы LDA-LFM можно найти по следующей ссылке на Github: LDA-LMF Github

Дополнительные примеры использования машинного обучения, статистики, эконометрики, глубокого обучения и т. Д. Вы можете найти в моем аккаунте Github