Как решить проблему с рекомендациями к продукту, например: Пользователь __bought__ XXX также __viewed__ YYY - PullRequest
4 голосов
/ 29 марта 2011

В настоящее время я изучаю систему рекомендаций, узнал кое-что о совместной фильтрации, пользовательском CF, Item CF, очевидно, использовать эти алгоритмы для решения таких проблем, как: 1) Пользователь купил XXX также купил YYY 2) Пользователь просматривал XXX, также просматривал YYY

Мой вопрос: как решить проблему, например: 1) Пользователь купил XXX также просмотрел YYY 2) Пользователь просмотрел XXX и купил YYY?

Обновление: только что исправил заголовок: "Пользователь купил XXX также просмотр YYY"

Ответы [ 5 ]

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

Хотя я не уверен, что это действительно «рекомендация», я могу рассказать вам, как вы подходите к рекомендациям для разных доменов в Mahout.Вы должны построить два DataModel s, один из которых будет основан на покупках пользовательских элементов, а другой - на представлениях пользовательских элементов.Вы бы использовали данные покупки в качестве входных данных для реализации UserSimilarity или ItemSimilarity, но затем передавали данные вида в качестве входных данных DataModel для реализации Recommender.Тогда вы будете вычислять что-то более похожее на то, что вы предлагаете.

0 голосов
/ 01 апреля 2011

Как правило, вам нужно два набора данных.Т.е. идентификатор транзакции и продукт как первый и идентификатор посетителя и продукты рассматриваются как вторые, чтобы получить% уверенности в том, что любые два продукта продаются (или просматриваются) вместе.Вы можете использовать R (программное обеспечение для статистики) и установить пакет под названием «arules», чтобы легко сгенерировать эти рекомендации.

Вот пример кода, который вы, возможно, захотите проверить в R

setwd («C: / Документы и настройки / rp / Рабочий стол / Вывод»);install.packages ( «arules»);библиотека ( «arules»);txn = read.transactions (file = ”Transactions_sample.csv”, rm.duplicates = FALSE, format = ”single”, sep = ”,”, cols = c (1,2));basket_rules <- apriori (txn, параметр = список (sup = 0,5, conf = 0,9, target = «rules»));inspect (basket_rules); </p>

Если вы действительно хотите понять, как это работает, вы можете обратиться к техническому документу по номеру http://www.tatvic.com/resources, названному анализом шаблона покупки продукта, в котором указано, как вы можете это сделать.это просто с вашими веб-данными.

Кроме того, если вы хотите использовать готовый API для него, он доступен на http://www.liftsuggest.com/how-lift-product-recommendation-works

0 голосов
/ 29 марта 2011

Вам необходимо обратиться к главе 2 книги OReilly 'Programming Collective Intelligence' . Чтобы найти подходящие продукты, т. Е. Раздел «Клиент, который купил этот товар, также купил ...», вам необходимо

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

Существуют алгоритмы, задействованные в вышеуказанных шагах. Более подробная информация приведена в этой книге вместе с кодом Python для этих алгоритмов.

0 голосов
/ 29 марта 2011

Скажем, у вас есть две таблицы товаров и sold_products.Каждый раз, когда вы продаете товар, он добавляется в таблицу sold_products.Мы скажем, что две таблицы связаны product_id, order_id используется для группировки заказов вместе в sold_products.

Предположим, что продукт, который вы просматриваете, имеет product_id 1234.

  1. Получить список order_ids из последних 25 заказов, которые содержат продукт.

SELECT DISTINCT sold_products.order_id FROM sold_products WHERE product_id = 1234 LIMIT 25

  1. Оттуда мыпоместит все идентификаторы в строку, разделенную символами

, например, PO1234, PO435, PO3456 ....

  1. Выберите идентификаторы продуктов из этих заказов, и мне нравитсяранжирование по частоте

ВЫБЕРИТЕ РАЗЛИЧНЫЕ продукты. * ИЗ ПРОДАНО_ ПРОДУКТОВ ВЛЕВО СОСТАВЛЯЕТ продукты на products.product_id = sold_products.product_id ГДЕ sold_products.order_id IN (PO1234, PO435, PO3456 ....) И НЕ продано_продукты.product_id = 1234 GROUP BY sold_products.product_id ЗАКАЗАТЬ ПО СЧЕТУ (1) DESC

0 голосов
/ 29 марта 2011

Посмотрите на Вкусовые рамки . Для получения дополнительной альтернативы, проверьте этот пост Рекомендации Двигатели для приложений Java

...