Рекомендатель Apache mahout — должен ли я воссоздавать модель данных для каждого пользователя?

Я новичок в рекомендации Apache Mahout. Вариант использования включает в себя предоставление предложений пользователям на основе их истории покупок. Я планирую использовать следующую информацию:

  • Категория покупки
  • Сумма покупки
  • Время покупки (пример — рекомендовать пару джинсов через 6 месяцев после покупки первой пары)
  • Местоположение пользователя

Чтобы идентифицировать пользователей с похожим шаблоном покупки/временем покупки и предоставить им больше предпочтений, нужно ли мне создавать собственную модель данных для каждого пользователя? Я планировал периодически импортировать из базы данных, чтобы воссоздать модель данных. Есть ли способ динамически отдавать предпочтение, как указано ниже:

  1. Местоположение + категория покупки + соответствие времени
  2. Категория покупки + соответствие времени
  3. Соответствие местоположения и времени (пример зимней одежды)

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

UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
        UserNeighborhood neighborhood = new ThresholdUserNeighborhood(0.1, similarity, model);
        UserBasedRecommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);
        List<RecommendedItem> recommendations = recommender.recommend(74, 10);

person Ankita    schedule 07.02.2017    source источник


Ответы (1)


В общем, чтобы достичь того, что вы предлагаете, вам нужно сделать шаг к своим данным, где вы добавляете функцию, такую ​​​​как t_since_last_purchase, которая в целом числе 0 -> inf. Например. дней с момента последней покупки.

Эта функция, время, будет еще одной связанной характеристикой пользователя.

Я думаю, вы смотрите на некоторые из старых рекомендаторов на основе Map-Reduce, которые на самом деле являются первоклассными, но, учитывая ваш вариант использования, вы можете проверить рекомендаторы, основанные на совместном использовании, которые имеют значительное преимущество, поскольку могут просматривать несколько действий пользователя (в вашем случае, местоположение, предыдущие покупки, время).

person rawkintrevo    schedule 07.02.2017