Система рекомендаций по истории взаимодействий
Я много читал и пробовал, но все еще застрял с решением моей проблемы (хотя я думаю, что это должно быть относительно не так сложно, и что-то обязательно будет реализовано раньше).
По сути, я хочу реализовать рекомендательную систему и не могу найти подходящую библиотеку (в основном, язык lib не имеет значения, но предпочтительнее Python или Java) или алгоритм.
Прежде всего, структура данных:
У меня есть три файла: users.csv, items.csv и взаимодействия.csv
Пользователи имеют функции: City, Country, Gender, Birthdate
(и в основном это функции, которые я хочу использовать для расчета сходства между пользователями)
Предметы - это в основном разные спортивные мероприятия и имеют следующую структуру: SportName, Location, StartTime, League
(и в основном это те функции, которые я хочу использовать для расчета сходства элементов)
Взаимодействия - это в основном история посещаемых пользователем событий со структурой: UserId, ItemId, TimeWhenTicketWasBought
,
Первая проблема заключается в том, что в моем наборе данных нет оценок, и большинство алгоритмов требуют эту функцию.
По сути, я хочу получить персональные рекомендации для пользователей на основе их истории посещений. (например, если пользователь в основном посещает футбольные матчи определенной лиги, было бы разумно рекомендовать другие игры той же лиги или, возможно, другие игры в том же месте).
При этом для пользователей с холодным стартом я хочу рекомендовать товары схожих пользователей к текущим.
Другая проблема заключается в том, что эта область довольно динамична, новые события создаются каждый день, а старые события уже исчезли и должны быть исключены из рекомендаций.
Звучит как обычная проблема, но я до сих пор не могу найти пример кода, обширное написание или библиотеку. Просто обзоры.
К этому времени я проверял в основном библиотеки Python (TensorRec, LightFM, Surprise), но не могу понять, как достичь своих целей.
Сногсшибательный подход был бы решением, использующим Deep Learning (LSTMs и Recurrent Neural Networks), но все же я не могу найти хорошее руководство, с чего начать.
Любая помощь, любые ссылки на библиотеки или учебники, примеры кода или исследования приветствуются. Заранее спасибо.