Комментарии 10
Прикольно, мушиный recsys. Без понятия, что из этого выйдет, но эксперимент интересный.
Сразу пару предложений по улучшению:
Вместо того чтобы обучать персональную логистическую регрессию с нуля для каждого юзера (у которого мало данных т. е. холодный старт), лучше использовать общую предобученную модель для "скелета" (глобальные паттерны поведения людей) и небольшой вектор персональных поправок (адаптивных весов), которые накапливаются локально через LoRA-адаптацию.
Механизм забывания, чтобы модель подстраивалась под актуальное состояние пользователя, а не учитывала события полугодовой давности с тем же весом. Обычно это реализуется через L2-регуляризацию (weight decay) или экспоненциальное затухание коэффициентов со временем. Что будет лучше в вашем случае не знаю, надо тестить.
Заметил, что в последнее время интересные матералы и авторов по ML минусят, как будто это ии-слоп. Будем это исправлять по мере сил и возможностей. Спасибо за статью.
Спасибо вам, но но большая часть предложений уже мной была реализована кроме лоры)
Общая предобученная модель и небольшие персональные поправки уже используются: логистическая регрессия из листинга обучается на общей когорте, а новый пользователь начинает с нулевой поправки к её прогнозу. Возможно, в статье недостаточно ясно это разделил.
Забывание тоже есть. Экспоненциальное затухание по времени, быстрая и медленная память, плюс L2 при обновлениях. Но пока остаётся проверить, какой вклад даёт каждый механизм и насколько удачно выбраны параметры.
LoRA еще не пробовал. Сейчас персональная память корректирует логит общего прогноза через вектор весов поверх фиксированного представления. Нужно будет сформулировать сопоставимые эксперименты.
В ML не шарю, но идея с отдельной памятью под каждого юзера прикольная. А если человек резко сменил режим и начал работать по ночам, то система быстро подхватит или ещё долго будет жить его старыми привычками?
Да!!!))) вот это и хочется проверить, cможет ли система подхватить новый режим за один-два примера? Но пока такого результата у меня нет.
Хочу попробовать и вариант со спайковыми сетями, посмотреть, будет ли толк. Надеюсь, если кто-то уже делал похожее то подскажут, куда копать
Со спайковыми намучаетесь, но если подберете параметры LIF и добавите пластичность Хебба, то прям огонь будет. Если что у меня первые 3 статьи тут на Хабре были на эту тему, вдруг поможет.
Ок пойду читать )
Спасибо за наводку, попробовал 🙂 Взял LIF, перебрал настройки и добавил STDP, в том числе с учётом ошибки прогноза. Проверял пока на искусственных данных.
Мой вариант обычную персональную память не обошёл. Зато интересно: при смене режима первые улучшения после 1–2 новых ответов появились и без спайков. Правда, прошлый опыт у модели уже был — это не обучение с нуля.
Так что преимущества пока не получил, но спайки списывать рано: возможно, дело в том, как я перенёс идею в свою задачу. Код и результаты V10 выложил, буду рад замечаниям.
Интересная статья, лайк!

Один мозг на миллион пользователей: чему backend-разработчик может научиться у мозга мухи