Коллаборативная фильтрация: способы определения неявных оценок для продуктов для каждого пользователя? - PullRequest
6 голосов
/ 07 августа 2009

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

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

Данные, которые я сейчас собираю:

  • История заказов пользователя
  • История просмотра страниц товара как для анонимных, так и для зарегистрированных пользователей

Все эти данные имеют временную метку.

Что я ищу

Есть пара вещей, по которым я ищу предложения, и в идеале этот вопрос следует рассматривать скорее для обсуждения, а не для поиска единственного «правильного» ответа.

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

Что я НЕ ищу

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

  • Генерация количества пользовательских кластеров (21 на данный момент) с использованием алгоритма кластеризации k-средних с использованием коэффициента Пирсона для оценки расстояния
  • Для каждого пользователя (по требованию) вычисление графика их аналогичных пользователей путем поиска их наиболее и наименее похожих пользователей в их кластере и повторения для произвольной глубины.
  • Расчет баллов для каждого продукта на основе предпочтений других пользователей в графе пользователя
  • Сортировка результатов для получения списка рекомендаций

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

Ответы [ 2 ]

2 голосов
/ 14 марта 2011

Вот сенокос из ответа:

  • время, потраченное на просмотр товара
  • семантическая интерпретация оставленных комментариев о товаре
  • создать страницу обсуждения продукта, бренда или категории продукта и семантически интерпретировать комментарии
  • если они поделились страницей продукта (электронная почта, del.icio.us и т. Д.)
  • браузер (мобильный может заставить их тратить меньше времени на страницу с ноутбуком, показывая при этом большой интерес) и скорость соединения (влияет на время, проведенное на странице)
  • сходство профиля в Facebook
  • данные тепловой карты (например, & larave; la kissmetrics)

Какие продукты вы продаете? Это может помочь нам ответить вам лучше. (Поскольку это старый вопрос, я обращаюсь как к @Andrew Ingram, так и ко всем, кто задавал этот вопрос и нашел эту тему в результате поиска.)

1 голос
/ 07 августа 2009
  1. Вы можете разрешить пользователям явно указывать свои предпочтения, как netflix позволяет пользователям назначать звезды.
  2. Вы можете назначить положительное числовое значение для всего товара, который они купили, поскольку вы говорите, что у вас есть история покупок. Назначьте ноль для вещей, которые они не купили
  3. Вы могли бы сделать какую-то взвешенную стоимость для вещей, которые они купили, с учетом того, что популярно. (если почти каждый купил продукт, он мало что говорит о человеке, который также купил его)
  4. Вы также можете назначить меньшее числовое значение для элементов, которые пользователи просматривали, но не покупали.
...