Эта статья была впервые опубликована на сайте easyAI:«Одна статья для понимания структуры модели Encoder-Decoder и Seq2Seq в НЛП»легкая любовь.специальность/любовь-плавник я вопросы…
Encoder-Decoder — модельный фреймворк в области НЛП. Он широко используется для таких задач, как машинный перевод, распознавание речи и т. д.
В этой статье подробно представлены Encoder-Decoder, Seq2Seq и схема их обновления. Внимание.
Что такое кодер-декодер?
Модель кодировщик-декодер в основном является концепцией в области НЛП. Это не относится к конкретному алгоритму, а является общим термином для класса алгоритмов. Encoder-Decoder — это общая структура, в рамках которой можно использовать разные алгоритмы для решения разных задач.
Фреймворк Encoder-Decoder — это хорошая интерпретация основных идей машинного обучения:
Превратите реальные проблемы в математические и решайте реальные проблемы, решая математические задачи.
Кодер также называется кодировщиком. Его роль состоит в том, чтобы «преобразовать реальные проблемы в математические задачи».
Декодер, также известный как декодер, его роль состоит в том, чтобы «решать математические проблемы и преобразовывать их в реальные решения».
Соединение двух звеньев, выраженное на общей схеме, выглядит следующим образом:
Что касается кодировщика-декодера, следует отметить 2 момента:
- Вне зависимости от длины входа и выхода длина «вектора c» в середине фиксирована (это тоже его дефект, который будет подробно объяснен ниже)
- Различные кодировщики и декодеры могут быть выбраны в соответствии с различными задачами (может быть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?
Машинный перевод, диалоговые боты, генерация стихов, завершение кода, резюмирование статей (текст в текст)
"Текст в текст" является наиболее типичным приложением, где длина входной последовательности и выходной последовательности могут сильно различаться.
Документ Google "Seq2Seq для машинного перевода"Sequence to Sequence Learning with Neural Networks》
Распознавание речи (аудио - текст)
Распознавание речи также имеет мощные функции последовательности и больше подходит для модели кодировщик-декодер.
Документ Google, использующий Seq2Seq для распознавания речи "A Comparison of Sequence-to-Sequence Models for Speech Recognition》
Генерация описания изображения (изображение-текст)
Говоря простым языком, это «видеть картинку и говорить», машина извлекает особенности картинки, а затем выражает их словами. Это приложение представляет собой комбинацию компьютерного зрения и НЛП.
Бумага для создания описания изображения »Последовательность к последовательности – видео к тексту》
Дефекты кодировщика-декодера
Как упоминалось выше: существует только один «вектор c» между Encoder (энкодером) и Decoder (декодером) для передачи информации, и длина c фиксирована.
Для простоты понимания сравним его с процессом «сжатие-распаковка»:
Сожмите изображение размером 800x800 пикселей в 100 КБ, и оно будет выглядеть относительно четким. Затем изображение размером 3000X3000 пикселей также сжимается до 100 КБ и выглядит размытым.
Encoder-Decoder — аналогичная проблема: когда входная информация слишком длинная, часть информации будет потеряна.
Внимание, чтобы решить проблему потери информации
Механизм Attention призван решить проблему «слишком длинной информации и потери информации».
ВниманиеОсобенностью модели является то, что Eecoder больше не кодирует всю входную последовательность как «промежуточный вектор C» фиксированной длины, а кодирует ее как последовательность векторов. представилВниманиеизEncoder-DecoderМодель выглядит следующим образом:
Таким образом, когда генерируется каждый выход, информация, содержащаяся во входной последовательности, может быть полностью использована. И этот метод дает очень хорошие результаты в переводческих задачах.