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

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

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

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

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

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

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

1. Calculate the number of samples/number of words per sample ratio.
2. If this ratio is less than 1500, tokenize the text as n-grams and use a
simple multi-layer perceptron (MLP) model to classify them (left branch in the
flowchart below):
  a. Split the samples into word n-grams; convert the n-grams into vectors.
  b. Score the importance of the vectors and then select the top 20K using the scores.
  c. Build an MLP model.
3. If the ratio is greater than 1500, tokenize the text as sequences and use a
   sepCNN model to classify them (right branch in the flowchart below):
  a. Split the samples into words; select the top 20K words based on their frequency.
  b. Convert the samples into word sequence vectors.
  c. If the original number of samples/number of words per sample ratio is less
     than 15K, using a fine-tuned pre-trained embedding with the sepCNN
     model will likely provide the best results.
4. Measure the model performance with different hyperparameter values to find
   the best model configuration for the dataset.

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

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

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

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

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

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

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

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

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

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

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