Реализовав алгоритм, чтобы рекомендовать продукты с некоторым успехом, я сейчас ищу способы расчета исходных входных данных для этого алгоритма.
Моя цель - подсчитать балл за каждый продукт, с которым у пользователя есть какая-то история.
Данные, которые я сейчас собираю:
- История заказов пользователя
- История просмотра страниц товара как для анонимных, так и для зарегистрированных пользователей
Все эти данные имеют временную метку.
Что я ищу
Есть пара вещей, по которым я ищу предложения, и в идеале этот вопрос следует рассматривать скорее для обсуждения, а не для поиска единственного «правильного» ответа.
- Любые дополнительные данные, которые я могу собрать для пользователя, которые могут непосредственно означать интерес к продукту
- Алгоритмы / уравнения для преобразования этих данных в баллы для каждого продукта
Что я НЕ ищу
Просто чтобы избежать смещения этого вопроса с неправильными ответами, вот что я делаю, когда у меня есть эти данные для каждого пользователя:
- Генерация количества пользовательских кластеров (21 на данный момент) с использованием алгоритма кластеризации k-средних с использованием коэффициента Пирсона для оценки расстояния
- Для каждого пользователя (по требованию) вычисление графика их аналогичных пользователей путем поиска их наиболее и наименее похожих пользователей в их кластере и повторения для произвольной глубины.
- Расчет баллов для каждого продукта на основе предпочтений других пользователей в графе пользователя
- Сортировка результатов для получения списка рекомендаций
В принципе, я не ищу идей о том, что делать, если у меня есть входные данные (мне может понадобиться дополнительная помощь в этом позже, но это не главное в этом вопросе), просто для идеи о том, как генерировать эти входные данные в первую очередь