Контекст

Нейронные сети сейчас широко используются во многих сферах. Это огромное разнообразие приложений, от создания подписей к изображениям до прогнозов рака груди, является естественным следствием большого разнообразия нейронных архитектур ( Нейронные сети с прямой связью, сверточные нейронные сети и т. Д.…). Среди всех этих архитектур Long Short Term Memory (LSTM) - частный случай рекуррентных нейронных сетей - оказалась очень успешной в таких задачах, как машинный перевод, время прогнозирование серии или что-нибудь еще, где данные являются последовательными. В основном это связано с их способностью запоминать относительно долгосрочные зависимости, что достигается за счет учета предыдущей информации для дальнейших прогнозов.

Но одних LSTM не всегда достаточно. Иногда нам нужно настроить эти слои и адаптировать их к текущей задаче.

В Kwyk мы предлагаем онлайн-упражнения по математике. И каждый раз, когда мы отвечаем на упражнение, мы собираем некоторые данные, которые затем используются для адаптации домашнее задание для каждого студента, использующего сайт. Чтобы определить, какие упражнения с наибольшей вероятностью обеспечат прогресс ученика, нам необходимо знать, насколько вероятно, что он / она преуспеет в каждом упражнении в любой данный момент времени. И, имея возможность правильно предсказать эти вероятности успеха, мы можем выбрать домашнее задание, которое максимизирует общий прогресс.

Этот пост призван представить нашу модифицированную ячейку LSTM, «Multi-state LSTM», на которой мы основали нашу модель, чтобы попытаться решить эту проблему.

Краткий обзор данных

Когда ответ на упражнение получен, мы сохраняем информацию как об учащемся (или «пользователе»), так и об упражнении, вместе с дополнительным баллом, значением , которое равно либо (0), либо (1) в зависимости от успеха пользователя. Информация, которую мы собираем, представлена ​​в виде категориальных характеристик, которые говорят нам: «какое это упражнение?», «какая это глава? », « что это за ученик? », « из какого он класса? »… Это приводит к функциям, имеющим от десятков до тысяч модальностей, которые мы используем для прогнозирования переменной «оценка» и получения вероятностей успеха.

Модель на основе LSTM

Выбор модели на основе LSTM вызван двумя основными причинами.

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

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

Имея это в виду, мы придумали архитектуру, в которой для каждой категориальной функции общий LSTM будет хранить историю предыдущих результатов для каждой модальности.

Возьмем, к примеру, функцию «user_id». В этом случае нам необходимо адаптировать ячейку LSTM для запоминания на лету, но независимо для каждого ученика истории того, как он / она добивался успеха в прошлом. Для этого к базовой ячейке LSTM добавляется то, что мы называем «мультисостояние»:

Каждый раз, когда ярлык студента передается в ячейку LSTM с несколькими состояниями, он начинает с поиска соответствующего состояния и предыдущего результата. Затем состояние учащегося отправляется на обновление общей ячейки LSTM. Тем временем предыдущая оценка передается в эту ячейку LSTM, которая производит вывод. Затем результирующее состояние возвращается к обновлению данных учащегося в мультисостоянии. Наконец, как только мы наблюдаем фактический балл, это значение, в свою очередь, отправляется для обновления предыдущего балла учащегося в мультисостоянии.

Эта модифицированная версия базовой ячейки LSTM работает аналогично, но имеет дополнительное преимущество: теперь она может напрямую принимать последовательность студенческих меток в качестве входных данных:

В нашем предыдущем примере мы рассмотрели категориальную функцию «user_id», но на самом деле она может быть применена ко всем нашим категориальным функциям. Фактически, использование LSTM с несколькими состояниями, например, для функции «training_id», приведет к тому, что она узнает исторические показатели успешности для каждого упражнения. Отсюда вся использованная нами сеть довольно проста:

В общем, эта архитектура пытается изучить отдельные истории для каждой модальности каждой категориальной функции, а затем использует результаты LSTM для прогнозирования вероятности успеха для данного ученика в данном упражнении.

Результаты

Исходный уровень

Чтобы оценить нашу модель на основе LSTM, нам понадобится базовый уровень. Прежде чем пробовать какие-либо методы глубокого обучения, у нас был алгоритм повышения (Повышение градиента), в котором использовались некоторые ручные функции. На основе всех категориальных функций мы составили несколько быстрых и медленных скользящих средних предыдущих оценок по каждой модальности каждой функции. Затем мы передали эти функции классификатору Gradient Boosting и позволили волшебству случиться.

Сравнение

У обоих классификаторов одинаковый подход. Фактически, базовая модель использует ручные скользящие средние в качестве функций, а метод на основе LSTM автоматически изучает эти истории для прогнозирования оценок. Разумеется, оба алгоритма получили одинаковые оценки точности (базовый уровень: 74,61%, сеть на основе LSTM: 75,34%). Но предсказанные распределения сильно различаются:

Фактически, модель на основе LSTM, кажется, разделяет от 3 до 4 разных групп:

  • Один для студентов, которые не должны уметь правильно отвечать (вероятность <10%)
  • Один для тех, у кого есть средние или хорошие шансы на успех (50 ‹вероятность‹ 80%). Это могут быть студенты, по которым у нас недостаточно данных, или просто ученики с хорошими средними показателями.
  • Один для тех, у кого очень большие шансы на успех (вероятность ›90%).

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

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

  • Базовый уровень: 0,17
  • Сеть на основе LSTM: 0,16

Но, как мы обсуждали в предыдущем посте, когда реальная случайность связана с целями (здесь - предсказание человеческого поведения), мы получаем лучшую оценку производительности классификатора, глядя на его показатель надежности (REL) .

Надежность вычисляется путем сортировки данных по ячейкам с аналогичными прогнозируемыми вероятностями. Затем мы вычисляем MSE для каждого бина относительно среднего целевого значения в бункере. Наконец, мы берем общее среднее значение, чтобы получить значение REL.

Для каждой модели получены следующие показатели:

  • Исходный показатель: 3,86 е-3
  • Сеть на основе LSTM: 2,86 e-4

Действительно, мы видим, что сеть на основе LSTM более чем в 10 раз точнее, чем базовая линия повышения градиента, что должно объяснить лучшую сегрегацию, которую мы наблюдали при сравнении обоих распределений.

Заключение

Подводя итог, мы увидели на реальном примере, как LSTM могут быть эффективны для классификации последовательных данных. Но мы также увидели, как наша модифицированная версия LSTM - «Multi-state LSTM» - смогла достичь более высокой производительности без какой-либо предварительной обработки или разработки функций. вообще. Фактически, эта новая ячейка LSTM может напрямую принимать последовательность меток в качестве входных данных, что означает, что она может использоваться только категориальными функциями и по-прежнему дает хорошие результаты.

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

Автор: Hicham EL BOUKKOURI