Статья для понимания структуры модели Encoder-Decoder и Seq2Seq в НЛП.

NLP

Эта статья была впервые опубликована на сайте easyAI:«Одна статья для понимания структуры модели Encoder-Decoder и Seq2Seq в НЛП»легкая любовь.специальность/любовь-плавник я вопросы…

一文看懂Encoder-Decoder和Seq2Seq

Encoder-Decoder — модельный фреймворк в области НЛП. Он широко используется для таких задач, как машинный перевод, распознавание речи и т. д.

В этой статье подробно представлены Encoder-Decoder, Seq2Seq и схема их обновления. Внимание.

Что такое кодер-декодер?

Модель кодировщик-декодер в основном является концепцией в области НЛП. Это не относится к конкретному алгоритму, а является общим термином для класса алгоритмов. Encoder-Decoder — это общая структура, в рамках которой можно использовать разные алгоритмы для решения разных задач.

Фреймворк Encoder-Decoder — это хорошая интерпретация основных идей машинного обучения:

Превратите реальные проблемы в математические и решайте реальные проблемы, решая математические задачи.

Кодер также называется кодировщиком. Его роль состоит в том, чтобы «преобразовать реальные проблемы в математические задачи».

Encoder将现实问题转化为数学问题

Декодер, также известный как декодер, его роль состоит в том, чтобы «решать математические проблемы и преобразовывать их в реальные решения».

Decoder求解数学问题,并转化为现实世界的解决方案

Соединение двух звеньев, выраженное на общей схеме, выглядит следующим образом:

图解Encoder-Decoder

Что касается кодировщика-декодера, следует отметить 2 момента:

  1. Вне зависимости от длины входа и выхода длина «вектора c» в середине фиксирована (это тоже его дефект, который будет подробно объяснен ниже)
  2. Различные кодировщики и декодеры могут быть выбраны в соответствии с различными задачами (может бытьRNN, но обычно его вариантыLSTMилиGRU)

Пока он соответствует вышеуказанной структуре, его можно в совокупности назвать моделью кодировщика-декодера. Когда речь заходит о модели Encoder-Decoder, часто упоминается термин — Seq2Seq.

Что такое Seq2Seq?

Seq2Seq (сокращение от Sequence-to-sequence) буквально принимает одну последовательность и выводит другую. Наиболее важным аспектом этой структуры является то, что длины входных и выходных последовательностей являются переменными. Например, следующая картинка:

Как показано выше: вводятся 6 китайских символов и выводятся 3 английских слова. Вход и выход имеют разную длину.

Происхождение Seq2Seq

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

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

Связь между «Seq2Seq» и ​​«Кодер-декодер»

Seq2Seq (выделено специально) не относится конкретно к конкретному методу, его можно в совокупности назвать моделью Seq2Seq, чтобы соответствовать цели «входной последовательности и выходной последовательности».

Конкретные методы, используемые Seq2Seq, в основном относятся к категории модели Encoder-Decoder (акцент на методах).

Подводить итоги:

  • Seq2Seq относится к широкой категории кодеров-декодеров.
  • Seq2Seq подчеркивает цель, а Encoder-Decoder подчеркивает метод.

Каковы приложения Encoder-Decoder?

Encoder-Decoder的一些应用

Машинный перевод, диалоговые боты, генерация стихов, завершение кода, резюмирование статей (текст в текст)

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

Документ Google "Seq2Seq для машинного перевода"Sequence to Sequence Learning with Neural Networks

Seq2Seq应用:机器翻译

Распознавание речи (аудио - текст)

Распознавание речи также имеет мощные функции последовательности и больше подходит для модели кодировщик-декодер.

Документ Google, использующий Seq2Seq для распознавания речи "A Comparison of Sequence-to-Sequence Models for Speech Recognition

Seq2Seq应用:语音识别

Генерация описания изображения (изображение-текст)

Говоря простым языком, это «видеть картинку и говорить», машина извлекает особенности картинки, а затем выражает их словами. Это приложение представляет собой комбинацию компьютерного зрения и НЛП.

Бумага для создания описания изображения »Последовательность к последовательности – видео к тексту

Seq2Seq应用:图像描述生成

Дефекты кодировщика-декодера

Как упоминалось выше: существует только один «вектор c» между Encoder (энкодером) и Decoder (декодером) для передачи информации, и длина c фиксирована.

Для простоты понимания сравним его с процессом «сжатие-распаковка»:

Сожмите изображение размером 800x800 пикселей в 100 КБ, и оно будет выглядеть относительно четким. Затем изображение размером 3000X3000 пикселей также сжимается до 100 КБ и выглядит размытым.

Encoder-Decoder的缺点:输入过长会损失信息

Encoder-Decoder — аналогичная проблема: когда входная информация слишком длинная, часть информации будет потеряна.

Внимание, чтобы решить проблему потери информации

Механизм Attention призван решить проблему «слишком длинной информации и потери информации».

ВниманиеОсобенностью модели является то, что Eecoder больше не кодирует всю входную последовательность как «промежуточный вектор C» фиксированной длины, а кодирует ее как последовательность векторов. представилВниманиеизEncoder-DecoderМодель выглядит следующим образом:

图解attention

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