В моем наборе данных каждое взаимодействие представляет собой транзакцию: пользователь покупает товар.
Если пользователь покупает один и тот же товар несколько раз, я сначала агрегирую транзакции по (пользователь, товар) и вычисляю частоту покупок.
Мой текущий подход к подготовке весов взаимодействия Это:
- Для каждой пары (пользователь, товар) вычислите частоту покупок.
- Для каждого пользователя найдите максимальную частоту покупок среди всех товаров, которые купил пользователь.
- Определите вес взаимодействия как:
Код: Выделить всё
weight(user, item) = frequency(user, item) / max_frequency_of_any_item_for_that_user
Например, если у пользователя:
- элемент A: 10 покупок
- элемент B: 4 покупки
- предмет C: 1 покупка
- предмет A: 10 / 10 = 1,0
- предмет B: 4 / 10 = 0,4
- пункт C: 1 / 10 = 0,1
Мои текущие настройки LightFM:
Код: Выделить всё
loss = warpКод: Выделить всё
max_sampled = 20Код: Выделить всё
no_components = 32Код: Выделить всё
item_alpha = 0.00001Код: Выделить всё
user_alpha = 0.0000001
- Является ли это разумным способом подготовить веса взаимодействия для LightFM в данных о покупках?
- Удаляет ли нормализация по максимальной частоте элементов каждого пользователя слишком много полезного сигнала?
- Существует ли лучший принцип подготовки весов взаимодействия для повторных покупок в рекомендациях с неявной обратной связью?
- На практике при использовании LightFM для данных о покупках веса взаимодействия должны в основном отражать:
- относительное предпочтение пользователя
- или абсолютную интенсивность покупок?
/>
Мобильная версия