3

Я пытаюсь полностью понять алгоритм Amazon от элемента к статье, чтобы применить его к моей системе, чтобы рекомендовать элементы, которые могут вам понравиться, соответствующие предыдущим элементам, которые понравились пользователю.Элементарная совместная фильтрация Amazon

До сих пор я прочитал: Amazon paper, item-to-item presentation и item-based algorithms. Также я нашел это question, но после этого я просто стал более смущенным.

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

  1. есть мой набор данных с деталями, которые понравились пользователям (я установил понравилось = 1 и не понравилось = 0).
  2. Использовать коэффициент корреляции Пирсона (как это делается? Я нашел формулу, но есть ли какой-нибудь пример?).
  3. Тогда что мне делать?

Так что я пришел с этим вопросы:

  1. Каковы различия между пунктом пункт-к-и фильтрации на основе элементов данных? Оба алгоритма одинаковы?
  2. Правильно ли заменить ранжированный счет любимым или нет?
  3. Правильно ли использовать алгоритм item-to-item, или есть ли другие подходящие для моего случая?

Любая информация по этой теме будет оценена.

ответ

3

Большие вопросы.

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

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

Данная матрица пользователей и их оценки изделий позволяют рассчитать сходство каждого предмета с каждым другим предметом. Матричные манипуляции и вычисления встроены во многие библиотеки: например, попробуйте scipy и numpy в Python. Вы можете просто перебирать элементы и использовать встроенные вычисления матрицы, чтобы выполнить большую часть работы в https://en.wikipedia.org/wiki/Cosine_similarity. Или загрузите фреймворк, такой как Mahout или Lenskit, который сделает это за вас.

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^