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

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

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

Рекомендации на основе контента могут предлагать объяснения рекомендаций на основе используемых ими ключевых слов (например, Pandora, см. выше).

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

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

Создание рекомендательной системы на основе контента

Создание рекомендации на основе контента состоит из трех шагов:

  1. Предварительная обработка и извлечение признаков
  2. Обучение на основе моделей для профиля пользователя
  3. Фильтрация и рекомендация

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

Затем мы должны очистить и обработать эти документы, чтобы они были готовы к обработке.

Уборка

Очистка состоит из трех этапов:

  • Удаление стоп-слов: стоп-слова — это общеупотребительные слова, которые имеют мало общего с содержанием элемента. Такие слова, как «a», «the» и «at» являются стоп-словами в английском языке. Как правило, артикли, союзы, предлоги и местоимения являются стоп-словами.
  • Стемминг — это процесс объединения слов со схожими корнями. Если в описании есть слова «драка», «драка» и «драка», мы можем рассматривать эти слова как одно ключевое слово «драка». Однако это может привести к неточностям, так как некоторые слова имеют одинаковые корни, но разные значения.
  • Извлечение фраз — это объединение последовательности слов во фразу с большим значением, чем у отдельных слов. Например, если слова «горячий» и «собака» появляются последовательно в таком порядке, обычно их можно превратить в «хот-дог».

После очистки ключевые слова преобразуются в представление векторного пространства.

Обратная частота документа используется для исключения общих слов во всех документах. Вместо того, чтобы полностью удалять такие слова, как стоп-слова, мы просто игнорируем их.

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

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

Эти симпатии и антипатии в конечном итоге будут преобразованы в унарную, бинарную, интервальную или реальную систему оценок.

Выбор функций и взвешивание

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

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

Джини

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

Энтропия

Вы также можете выбрать функции, используя концепцию энтропии из теории информации; то есть менее вероятные результаты содержат больше информации или большую значимость. Эта мера дает такие же результаты, что и индекс Джини, поскольку работает по тем же принципам.

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

Взвешивание функций

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

Если вы не хотите сразу удалять функции, но все же хотите присвоить каждой функции разные уровни важности, вы можете использовать взвешивание функций.

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

g(w)=a−Gini(w)

где a — некоторое значение больше 1.

Примеры моделей

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

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

Классификатор ближайших соседей

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

Это дорого! Этот алгоритм будет работать за O(|test| * |train|).

Кластеризация K-средних может использоваться для уменьшения количества документов. В системах с дискретными значениями рейтинга документы группируются по рейтингу и кластеризуются с помощью k-средних. Если s – количество оценок, а p – количество кластеров, будут созданы документы s*p. для ранжирования, что значительно менее затратно в вычислительном отношении.

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

Правила ассоциации

Другой способ моделирования рекомендательных систем на основе контента — это правила ассоциации. Я подробно рассказываю об этом и реализую в этой статье.

Байесовский классификатор

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

Для этой модели мы будем использовать бинарную рейтинговую систему. Нам нужно найти условную вероятность того, что активному пользователю нравится или не нравится каждый элемент X по каждому ключевому слову. Затем мы нормализуем эту вероятность и используем результат (1 или 0) в качестве прогнозируемого рейтинга.

Выводы

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

Чтобы увидеть реализацию рекомендательной системы на основе контента, см. мою рекомендательную систему на основе правил или систему факторизации на основе контента Тумаса. Чтобы узнать больше о рекомендательных системах, посетите начало нашей серии статей.