В поставленной задаче требовалось предсказать для пользователей бинарные лейблы: склонен ли пользователь к благотворительности или нет. Для решения задачи были предоставлены разнородные данные: вещественные признаки пользователей, признаки похожих пользователей, а также последовательности некоторых состояний.
В ходе хакатона был проведен анализ полученных данных и испробованы различные подходы к решению. Окончательным способом решения оказалось применение градиентного бустинга на векторных представлениях пользователей.
Было обучено несколько моделей GB с использованием библиотеки Catboost поверх различных наборов представлений признаков пользователей:
- вещественные признаки пользователей, объединенные со средним значением похожих признаков
- выученные векторные представления последовательностей состояний, интерпретированные как агрегация векторных представлений вершин
Каждый GB обучается независимо на задачу, совпадающую с целевой. Таким образом каждая модель извлекает максимум информации из предоставленных ей данных. Предсказываемые вероятности балансируются с помощью обучаемых весов логистической регрессии. Общая схема модели выглядит следующим образом:
model_head_fit.ipynb - файл с обучением головы модели (логистической регрессии)
model_related_code.ipynb - файл с обучением градиетных бустингов, скрытых представлений графов, эмбедингов и всего такого :)
Остальные файлы относятся к анализу данных и предыдущей версии модели, не показавшей себя хорошо.
Google's sentient AI
- Никита Хорошавцев Natifick - проектирование и реализации модели
- Карпухин Сергей shredder67 - проектирование и реализация модели
- Антон Зотов AntZot - анализ данных и подготовка презентации
- Артем Гришин Lp0419 - анализ данных и подготовка презентации