Цель этого проекта — построить и оценить рекуррентные нейронные сети (RNN) для задач классификации на уровне предложений. Я оцениваю три архитектуры: двухуровневую сеть с долговременной кратковременной памятью (LSTM), двухуровневую двунаправленную сеть с долговременной кратковременной памятью (BiLSTM) и двухуровневую BiLSTM с уровнем внимания на уровне слов. Хотя они изучают полезное векторное представление, BiLSTM с механизмом внимания фокусируется на необходимых токенах при изучении текстового представления. С этой целью я использую опубликованный Google Jigsaw набор данных 2019 года на Kaggle с пометкой Jigsaw Unintended Bias in Toxicity Classification. используется для фильтрации онлайн-постов и комментариев, контроля над социальными сетями и обучения пользователей.

Ссылки

Разделы

Обзор рекуррентных нейронных сетей

‹ Наверх

RNN — это нейронные сети, используемые для решения задач, требующих последовательной обработки данных. Например:

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

На каждом временном шаге t входной последовательности RNN вычисляют выходные данные yt и обновление внутреннего состоянияht, используя входные данные xt и предыдущий ht-1 со скрытым состоянием. Затем они передают информацию о текущем временном шаге сети следующему. Скрытое состояние ht обобщает относящийся к задаче аспект прошлой последовательности входных данных до t, позволяя информации сохраняться с течением времени.

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

Хотя RNN изучают контекстуальные представления последовательных данных, они страдают от явления взрывающегося и исчезающего градиента в длинных последовательностях. Эти проблемы возникают из-за мультипликативного градиента, который может экспоненциально увеличиваться или уменьшаться во времени. RNN обычно используют три функции активации: RELU, Tanh и Sigmoid. Поскольку вычисление градиента также включает градиент по отношению к нелинейным активациям, архитектуры, использующие активацию RELU, могут страдать от проблемы взрывающегося градиента. Архитектуры, использующие Tanh/Sigmoid, могут страдать от проблемы исчезающего градиента. Отсечение градиента — ограничение градиента в пределах определенного диапазона — можно использовать для устранения взрывающегося градиента. Однако для проблемы исчезающего градиента можно использовать более сложную рекуррентную единицу с вентилями, такую ​​как Gated Recurrent Unit (GRU) или Long Short-Term Memory (LSTM).

Сети с долговременной кратковременной памятью (LSTM) и двунаправленная сеть с долговременной кратковременной памятью (BiLSTM)

‹ Наверх

LSTM — это особые типы RNN, которые решают проблему исчезающего градиента и могут запоминать информацию в течение длительного периода времени. Они состоят из закрытых структур, в которых данные выборочно забываются, обновляются, сохраняются и выводятся. У них есть особое состояние ячейки, называемое Ct, через которое течет информация, и три особых ворот: ворота забывания, ворота ввода и ворота вывода. Шлюзы LSTM постоянно обновляют информацию о состоянии ячейки. Ворота забывания отвечают за принятие решения о том, какая информация не должна находиться в состоянии ячейки. Входной вентиль отвечает за определение того, какая информация должна храниться в состоянии ячейки. Выходной вентиль отвечает за принятие решения о том, какая информация должна отображаться из состояния ячейки в момент времени t.

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

Механизмы внимания для классификации текста

‹ Наверх

Механизмы внимания для классификации текста были представлены в [Иерархические сети внимания для классификации документов]. Авторы предложили иерархическую сеть внимания, которая изучает векторное представление документов. Он состоит из: кодировщика последовательности слов, уровня внимания на уровне слов, кодировщика предложений и уровня внимания на уровне предложений. Кодер последовательности слов представляет собой одноуровневый двунаправленный GRU. Он принимает в качестве входных данных векторное вложение слов в предложение и вычисляет их векторные аннотации. Затем он передает его в качестве входных данных слою внимания на уровне слов, который вычисляет релевантные для задачи веса для каждого слова. Окончательный вектор предложения представляет собой взвешенную сумму аннотаций слов, основанную на весовых коэффициентах внимания. Кодер предложений также является одноуровневым двунаправленным GRU. Он использует вектор предложения для вычисления аннотации предложения. Внимание на уровне предложения вычисляет релевантные для задачи веса для каждого предложения в документе. Конечный вектор документа представляет собой взвешенную сумму аннотаций предложений, основанную на весовых коэффициентах внимания.

Набор данных

‹ Наверх

Для этого проекта я использую опубликованный набор данных Google Jigsaw 2019 года на Kaggle. Набор данных включает 1 804 874 пользовательских комментария, аннотированных их уровнем токсичности — значением от 0 до 1. Помимо столбцов текста и уровня токсичности, в наборе данных есть 43 дополнительных столбца. Я использую текст комментария в качестве входных данных и предсказываю оценку токсичности и следующие подтипы токсичности:

  • Тяжелая токсичность.
  • Непристойный.
  • Атака на личность.
  • Оскорблять.
  • Угроза.

Предварительная обработка данных

‹ Наверх

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

  • Удалите все символы в моем корпусе, которых нет в моих вложениях.
  • Удалите все апострофы, которые появляются в начале токена.
  • Используйте TreebankWordTokenizer для обработки сокращений.
  • Замените значения больше 0,5 на 1, а значения меньше 0,5 на 0 в целевом столбце.

LSTM-модель

Модель BiLSTM

‹ Наверх

BiLSTM с моделью внимания

‹ Наверх

В документе для привлечения внимания веса W, смещение b, и вектор контекста u инициализируются случайным образом. В моей реализации я использую только веса W.

Обучение с использованием наборов для обучения и проверки

‹ Наверх

Я разделил корпус на наборы данных для обучения, проверки и тестирования — 99/0,5/0,5. Я сохраняю только первые 50 000 наиболее частых токенов, а для остальных используется уникальный токен UNK. Целевой функцией является взвешенная бинарная кросс-энтропийная потеря. Я обучаю модель на экземпляре GPU с пятью эпохами. В каждую эпоху модели оцениваются на проверочном наборе, и сохраняются модели с наименьшей функцией потерь.

Оценка с помощью набора тестов

‹ Наверх

Я использую ROC-AUC, чтобы оценить, насколько эффективны мои модели при классификации различных типов. AUC — это независимый от порога показатель со значением от 0 до 1. Он измеряет вероятность того, что случайно выбранный отрицательный пример получит более низкий балл, чем случайно выбранный положительный пример. AUC, равная 1,0, означает, что все пары «отрицательный/положительный» полностью упорядочены, при этом все отрицательные элементы получают более низкие баллы, чем все положительные элементы.

Все три модели имеют примерно одинаковые характеристики. Настройка параметров может улучшить производительность моделей внимания и BiLSTM.

Тестирование на реальных данных

‹ Наверх

Все три модели имеют примерно одинаковые характеристики. Настройка параметров может улучшить производительность моделей внимания и BiLSTM.

Искусственный интеллект простым языком

А вы знали, что у нас четыре публикации? Найдите их всех на plainenglish.io — проявите свою любовь, подписавшись на наши публикации и подписавшись на наш канал YouTube!

использованная литература

‹ Вернуться к



https://www.deeplearningbook.org/contents/rnn.html