Проектная школа программирования GoTo corporate blog
Python
Programming
Data Mining
Machine learning
23 November 2016

Как остановить отток людей с онлайн-курса и заодно попасть на хакатон

Онлайн-курсы, кроме своей удобности и доступности, славятся тем, что на них необычайно легко забивать, что с успехом и делают многие слушатели. Забивать слушателям случается по самым разным причинам — непонятен курс, пропущен дедлайн, не успел набрать баллы, вышел Fallout 4 – у всех свои оправдания. А вот у нас оправданий быть не может: если человек покидает курс, мир теряет потенциального разработчика или специалиста по анализу данных, а ещё киловатт-часы и затраченное нашим героем время.


Самая сложная задача здесь — определить, кто из пользователей убежит, а зная их, уже намного проще предотвратить потери: “предупрежден, значит вооружен”.


В конце статьи вы узнаете, как с помощью решения проблемы попасть на хакатон по анализу данных


image



Поскольку вопрос ухода пользователя не определен однозначно, и никто никогда точно не может предсказать реальный исход, на помощь приходят методы машинного обучения.
Обычно, про применение методов машинного обучения для предсказания оттока мы слышим в контексте всяческих банков и телекома. Аналогично, подобные проблемы возникают и у образовательных проектов


Было бы очень круто научиться предотвращать такие ситуации – предугадывать случаи, когда слушатель вот-вот уйдёт с курса и, если возможно, возвращать его обратно напоминанием, советом, печенькой или ещё чем-нибудь.


Stepik.org – крупный российский образовательный – платформа для онлайн-курсов, который и предоставил нам данные для задачи предсказания оттока пользователей.


Говоря более строго, мы хотим по данным о пользователе и его активности в рамках курса определить, закончит ли он курс. Под словами “закончить курс” при этом стоит понимать “набрать нужное количество баллов для прохождения”.


Каждый курс представляет собой последовательность степов – минимальных кусочков урока, каждый из которых можно “посетить” и “пройти”. Некоторые степы становятся пройденными сразу при посещении — например, теоретический материал, для других же необходимо выполнить какое-то задание, оно будет автоматически проверено, и баллы за степ будут засчитаны только в случае правильного ответа.


Чтобы обеспечить большую свободу в аналитике поиске признаков, влияющих на то, закончит ли пользователь курс, данные пользователей предоставлены в максимально подробном виде: с указанием времени, когда пользователь совершил каждое действие – открыл видео, отправил код на проверку или ответил на вопросы теста.


Традиционный способ предсказывать уход пользователя – для начала – попытаться найти те признаки, которые отличают прошедших курс от “отвалившихся”.


Примеры таких признаков:


  • количество заданий, выполненных за 2 недели (гипотеза: более усердные пользователи чаще заканчивают курс),
  • среднее время выполнения задания,
  • регулярность работы над курсом (что бы это не значило),
  • доля пропущенных видео/заданий.

Обычно лучше использовать сразу несколько признаков, объединив их вместе некоторым правилом (например, деревьями решений). Стоит ожидать, что даже несколько объединённых признаков не дадут идеальных предсказаний ухода пользователей.


Чтобы сравнивать различные подходы, стоит использовать формальные метрики качества. Пример такой метрики – точность – доля случаев, когда ваш алгоритм правильно угадал, пройдёт ли пользователь курс. Другой пример — f1_metrics — среднее между precision и recall — двумя главными характеристиками качества классификации. Precision — "точность", доля верно отмеченных истинных примеров, среди всех истинных. Recall — "отзыв", доля тех же истинных и правильно размеченных примеров, но уже среди всех отмеченных примеров.


Соревнование


Для задачи была выбрана платформа Kaggle.com, где и запущено соревнование, которое помимо великой цели наставления заблудших на истинный путь просвещения, является третьей частью отборочного этапа на финал хакатона GoToHack. Это трехдневное мероприятие для студентов и школьников, которое состоится в декабре 2016 года при поддержке РВК.


Помимо упомянутого соревнования, потенциальным участникам хакатона были предложены две более простых задачи на тех же данных, что даны отбирающимся в поток для начинающих. Первая блиц-задача целиком учебная, а вот вторая, подобно соревнованию, несет в себе полезные наблюдения по улучшению курса.


Иногда бывает, что слушатели возвращаются к степам несколько раз: либо там было что-то очень интересное, либо материал было трудно понять с первого раза. Находить такие блоки важно, чтобы определять слишком сложные части курса, после которых слушатель может перестать понимать материал. Собственно во втором блице необходимо выяснить самые “возвращающие степы”. Подробнее про блицы можно можно прочитать на странице отбора.


Теперь расскажем про базовое решение для задачи предсказания оттока. В простейшем случае было выбрано просто учитывать количество пройденных степов к текущему моменту. Таким образом, для каждого пользователя считается одно число, которое и используется для предсказания. Baseline предельно прост и будет понятен даже людям, не очень близко знакомым с машинным обучением. Само соревнование доступно после прохода по секретной ссылке. До конца соревнования еще больше недели, так что все из вас еще имеют шанс поучаствовать. Надеемся, что участники не просто пройдут отбор на хакатон, но так же покажут действительно применимый результат на реальных данных.


Подробнее про хакатон


Это уже второй GoToHack по анализу данных. Первый успешно состоялся в феврале 2016, настало время расти. Больше участников, солиднее призы, старше участники. В этот раз приглашаем школьников и студентов до 20 лет в один из двух потоков (тем, кто старше, стоит заглянуть в самый конец статьи). Начинающему потоку проведут мастер-классы по анализу данных и машинному обучению, продвинутый же сразу ринется сражаться с заготовленными датасетами или реализовывать свою собственную идею.


Кстати, о датасетах. Хакатон посвящен теме образования и HR, поэтому и задачи от партнеров будут соответствующие. Например, HeadHunter предоставит базу своих вакансий и немного резюме, а SkyEng предложил временной ряд действий пользователя и голосовые записи уроков.


В общем, ждем всех заинтересованных 9-11 декабря в Москве. Торопитесь, до конца отбора осталась неделя. Среди призов не только гаджеты, но и, например, обучение в проектной школе GoTo или летней школе по байесовским методам в глубинном обучении или участие в финале Олимпиады НТИ с бонусами при поступлении в университеты.
Заявки принимаются до 27 ноября, познакомиться с заданиями можно здесь.


Кстати, всех, кто старше 20 лет и имеет реальный опыт в индустрии, мы приглашаем стать кураторами/консультантами команд на нашем хакатоне. Подробнее здесь.


+12
5.1k 19
Comments 3
Top of the day