CNN успешно справляется с различными задачами классификации текстов. В [1] автор показал, что простая CNN с небольшой настройкой гиперпараметров и статическими векторами дает отличные результаты на нескольких тестах, улучшая современное состояние в 4 из 7 задач.

Однако при обучении применению CNN для встраивания слов отслеживание размеров матриц может сбивать с толку. Цель этого короткого сообщения - просто отслеживать эти измерения и понимать, как CNN работает для классификации текста. Мы бы использовали однослойную CNN в предложении из 7 слов с вложениями слов размерности 5 - игрушечный пример, помогающий понять CNN. Все примеры взяты из [2].

Настройка

# предложение

Пример: «Мне очень нравится этот фильм!», Здесь 6 слов, а восклицательный знак трактуется как слово - некоторые исследователи делают это по-другому и не обращают внимания на восклицательный знак - всего в предложении 7 слов. Авторы выбрали 5 в качестве размерности векторов слов. Мы используем s для обозначения длины предложения, а d для обозначения размерности вектора слова, поэтому теперь у нас есть матрица предложений формы s x d или 7 x 5.

#filters

Одним из желаемых свойств CNN является то, что она сохраняет двумерную пространственную ориентацию в компьютерном зрении. Тексты, как и картинки, имеют ориентацию. Тексты имеют не двухмерную структуру, а одномерную структуру, в которой последовательность слов имеет значение. Мы также напоминаем, что каждое слово в примере заменяется 5-мерным вектором слов, поэтому мы фиксируем одно измерение фильтра, чтобы оно соответствовало векторам слов (5), и изменяли размер области, h . Размер области относится к количеству строк - представляющих слово - матрицы предложений, которые будут отфильтрованы.

На рисунке #filters - это иллюстрации фильтров, а не то, что было отфильтровано фильтром из матрицы предложений; следующий абзац сделает это различие более ясным. Здесь авторы решили использовать 6 фильтров - 2 дополнительных фильтра для рассмотрения (2,3,4) слов.

#featuremaps

В этом разделе мы подробно рассмотрим, как CNN выполняет свертки / фильтрацию. Я заполнил некоторые числа в матрице предложений и матрице фильтров для ясности.

Во-первых, фильтр из двух слов, представленный желтой матрицей w 2 x 5, накладывается на векторы слов «I» и «like». Затем он выполняет поэлементное произведение для всех своих элементов 2 x 5, а затем суммирует их и получает одно число (0,6 x 0,2 + 0,5 x 0,1 +… + 0,1 x 0,1 = 0,51). 0,51 записывается как первый элемент выходной последовательности o для этого фильтра. Затем фильтр перемещается на 1 слово вниз и перекрывает векторы слов «like» и «this» и выполняет ту же операцию, чтобы получить 0,53. Следовательно, o будет иметь форму (s - h +1 x 1), в данном случае (7–2 + 1 x 1 )

Чтобы получить карту признаков, c, мы добавляем член смещения (скаляр, т.е. фигуру 1 × 1) и применяем функцию активации (например, ReLU). Это дает нам c, той же формы, что и o (s - h +1 x 1).

# 1max

Обратите внимание, что размерность c зависит как от s, так и от h, другими словами, она будет различаться для предложений разной длины и фильтров разных размеры региона. Чтобы решить эту проблему, авторы используют функцию объединения 1-max и извлекают наибольшее число из каждого вектора c.

# concat1max

После объединения 1-max у нас обязательно будет вектор фиксированной длины из 6 элементов (= количество фильтров = количество фильтров на размер области (2) x количество рассматриваемых размеров области (3)). Этот вектор фиксированной длины затем можно передать в слой softmax (полностью связанный) для выполнения классификации. Ошибка классификации затем распространяется обратно на следующие параметры в рамках обучения:

  • Матрицы w, которые дали o
  • Термин смещения, который добавляется к o для получения c
  • Векторы слов (необязательно, для принятия решения используйте производительность проверки)

Заключение

В этом коротком сообщении разъясняется, как работает CNN по встраиванию слов, уделяя внимание размерности матриц на каждом промежуточном этапе.

Ссылки

  1. Ким Ю. Сверточные нейронные сети для классификации предложений. 2014;
  2. Чжан И., Уоллес Б. Анализ чувствительности (и руководство для практикующих) сверточных нейронных сетей для классификации предложений. Препринт arXiv arXiv: 151003820. 2015; PMID: 463165