Шаг 2.5: Выберите модель

На этом этапе мы собрали наш набор данных и получили представление о ключевых характеристиках наших данных. Далее, на основе показателей, которые мы собрали на шаге 2 , нам следует подумать о том, какую модель классификации нам следует использовать. Это значит задавать такие вопросы, как:

  • Как представить текстовые данные алгоритму, который ожидает числового ввода? (Это называется предварительной обработкой данных и векторизацией.)
  • Какой тип модели следует использовать?
  • Какие параметры конфигурации следует использовать для вашей модели?

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

В этом руководстве мы пытаемся значительно упростить процесс выбора модели классификации текста. Для данного набора данных наша цель — найти алгоритм, который обеспечивает близкую к максимальной точности при минимизации времени вычислений, необходимого для обучения. Мы провели большое количество (~ 450 тыс.) экспериментов по задачам разных типов (особенно проблемам анализа настроений и классификации тем), используя 12 наборов данных, чередуя для каждого набора данных различные методы предварительной обработки данных и разные архитектуры моделей. Это помогло нам определить параметры набора данных, которые влияют на оптимальный выбор.

Алгоритм выбора модели и блок-схема ниже представляют собой краткое изложение наших экспериментов. Не волнуйтесь, если вы еще не понимаете все используемые в них термины; в следующих разделах данного руководства они будут объяснены более подробно.

Алгоритм подготовки данных и построения модели

  1. Рассчитайте количество образцов/количество слов на соотношение образцов.
  2. Если это соотношение меньше 1500, токенизируйте текст как n-граммы и используйте простую модель многослойного перцептрона (MLP) для их классификации (левая ветвь на блок-схеме ниже):
    1. Разделить образцы на n-граммы слов; преобразовать n-граммы в векторы.
    2. Оцените важность векторов, а затем выберите 20 тысяч лучших, используя оценки.
    3. Постройте модель MLP.
  3. Если соотношение больше 1500, токенизируйте текст как последовательности и используйте модель sepCNN для их классификации (правая ветвь на блок-схеме ниже):
    1. Разделите образцы на слова; выберите 20 тысяч самых популярных слов в зависимости от их частоты.
    2. Преобразуйте образцы в векторы последовательности слов.
    3. Если исходное соотношение количество выборок/количество слов на выборку составляет менее 15 000, использование точно настроенного предварительно обученного внедрения с моделью sepCNN, вероятно, даст наилучшие результаты.
  4. Измерьте производительность модели с различными значениями гиперпараметров, чтобы найти лучшую конфигурацию модели для набора данных.

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

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

Блок-схема классификации текста

Рисунок 5. Блок-схема классификации текста.

Эта блок-схема отвечает на два ключевых вопроса:

  1. Какой алгоритм или модель обучения вам следует использовать?
  2. Как следует подготовить данные, чтобы эффективно изучить взаимосвязь между текстом и меткой?

Ответ на второй вопрос зависит от ответа на первый вопрос; способ предварительной обработки данных для загрузки в модель будет зависеть от того, какую модель мы выберем. Модели можно условно разделить на две категории: те, которые используют информацию о порядке слов (модели последовательностей), и те, которые рассматривают текст просто как «мешки» (наборы) слов (модели n-грамм). Типы моделей последовательностей включают сверточные нейронные сети (CNN), рекуррентные нейронные сети (RNN) и их варианты. Типы моделей n-грамм включают:

В результате наших экспериментов мы заметили, что соотношение «количества образцов» (S) к «количеству слов на образец» (W) коррелирует с тем, какая модель работает хорошо.

Когда значение этого отношения мало (<1500), небольшие многослойные перцептроны, которые принимают на вход n-граммы (которые мы назовем Вариантом А ), работают лучше или, по крайней мере, так же хорошо, как модели последовательностей. MLP легко определить и понять, и они требуют гораздо меньше вычислительного времени, чем модели последовательностей. Если значение этого отношения велико (>= 1500), используйте модель последовательности ( вариант B ). В последующих шагах вы можете перейти к соответствующим подразделам (помеченным A или B ) для типа модели, который вы выбрали на основе соотношения образцов/слов на образец.

В случае нашего набора данных обзора IMDb соотношение образцов/слов на образец составляет ~144. Это означает, что мы создадим модель MLP.