Seq2seq — это семейство подходов машинного обучения, используемых для обработки естественного языка . [1] Приложения включают в себя перевод языка , субтитры изображений , разговорные модели и резюмирование текста . [2] Seq2seq использует преобразование последовательностей : он превращает одну последовательность в другую.
Естественно, возникает вопрос, можно ли проблему перевода рассматривать как проблему криптографии. Когда я смотрю на статью на русском языке, я говорю: «Это на самом деле написано на английском, но закодировано какими-то странными символами. Теперь я приступлю к расшифровке».
— Уоррен Уивер , Письмо Норберту Винеру , 4 марта 1947 г.
seq2seq — это подход к машинному переводу (или, в более общем смысле, к последовательной трансдукции ), корни которого лежат в теории информации, где коммуникация понимается как процесс кодирования-передачи-декодирования, а машинный перевод может изучаться как частный случай коммуникации. Эта точка зрения была разработана, например, в модели шумного канала машинного перевода.
Конкретно, seq2seq преобразует входную последовательность в действительный числовой вектор с помощью нейронной сети (кодировщика), а затем преобразует ее обратно в выходную последовательность с помощью другой нейронной сети (декодера).
Идея трансдукции последовательности кодер-декодер была разработана в начале 2010-х годов (см. [3] [1] для предыдущих статей). Наиболее часто цитируемыми статьями, которые являются авторами seq2seq, являются две статьи 2014 года. [3] [1]
В seq2seq, предложенном ими, и кодер, и декодер были LSTM . Это имело проблему «узкого места», поскольку вектор кодирования имел фиксированный размер, поэтому для длинных входных последовательностей информация имела тенденцию теряться, поскольку их было трудно вписать в вектор кодирования фиксированной длины. Механизм внимания , предложенный в 2014 году, [4] решил проблему узкого места. Они назвали свою модель RNNsearch , поскольку она «эмулирует поиск по исходному предложению во время декодирования перевода».
Проблема с моделями seq2seq на этом этапе заключалась в том, что рекуррентные нейронные сети трудно распараллелить. Публикация Transformers 2017 года [5] решила эту проблему, заменив кодирующую RNN на блоки Transformer с собственным вниманием («блоки кодировщика»), а декодирующую RNN — на блоки Transformer с перекрестным вниманием и каузальной маской («блоки декодировщика»).
Одна из статей, цитируемых в качестве источника seq2seq, — (Sutskever et al 2014), [1] опубликованная в Google Brain, когда они работали над проектом машинного перевода Google. Исследование позволило Google перестроить Google Translate в Google Neural Machine Translation в 2016 году. [1] [6] Томаш Миколов утверждал, что разработал несколько идей до прихода в Google Brain , включая машинный перевод seq2seq, о чем он упомянул Илье Суцкеверу и Куоку Ле , когда они работали в Google Brain, но те не признали его в своей статье. [7]
Миколов работал над RNNLM (использование RNN для моделирования языка) для своей докторской диссертации [8] и более известен разработкой word2vec .
Кодер отвечает за обработку входной последовательности и сбор ее существенной информации, которая хранится как скрытое состояние сети и, в модели с механизмом внимания, как вектор контекста. Вектор контекста представляет собой взвешенную сумму входных скрытых состояний и генерируется для каждого момента времени в выходных последовательностях.
Декодер берет вектор контекста и скрытые состояния из кодера и генерирует окончательную выходную последовательность. Декодер работает в авторегрессионной манере, производя один элемент выходной последовательности за раз. На каждом шаге он рассматривает ранее сгенерированные элементы, вектор контекста и информацию о входной последовательности, чтобы сделать прогнозы для следующего элемента в выходной последовательности. В частности, в модели с механизмом внимания вектор контекста и скрытое состояние объединяются вместе, чтобы сформировать скрытый вектор внимания, который используется в качестве входных данных для декодера.
Механизм внимания — это усовершенствование, представленное Бахданау и др. в 2014 году для устранения ограничений в базовой архитектуре Seq2Seq, где более длинная входная последовательность приводит к тому, что вывод скрытого состояния кодера становится нерелевантным для декодера. Он позволяет модели выборочно фокусироваться на различных частях входной последовательности во время процесса декодирования. На каждом шаге декодера модель выравнивания вычисляет оценку внимания, используя текущее состояние декодера и все скрытые векторы внимания в качестве входных данных. Модель выравнивания — это еще одна модель нейронной сети, которая обучается совместно с моделью seq2seq, используемой для вычисления того, насколько хорошо вход, представленный скрытым состоянием, совпадает с предыдущим выводом, представленным скрытым состоянием внимания. Затем к оценке внимания применяется функция softmax , чтобы получить вес внимания.
В некоторых моделях состояния кодировщика напрямую подаются в функцию активации, устраняя необходимость в модели выравнивания. Функция активации получает одно состояние декодера и одно состояние кодировщика и возвращает скалярное значение их релевантности. [9]
В 2019 году Facebook объявила о своем использовании в символической интеграции и разрешении дифференциальных уравнений . Компания заявила, что она может решать сложные уравнения быстрее и с большей точностью, чем коммерческие решения, такие как Mathematica , MATLAB и Maple . Сначала уравнение разбирается на древовидную структуру, чтобы избежать нотационных особенностей. Затем нейронная сеть LSTM применяет свои стандартные возможности распознавания образов для обработки дерева. [10]
В 2020 году Google выпустила Meena, чат-бота на основе seq2seq с 2,6 миллиардами параметров , обученного на наборе данных объемом 341 ГБ. Google заявила, что чат-бот имеет в 1,7 раза большую емкость модели, чем GPT-2 от OpenAI , [11] чей преемник в мае 2020 года, GPT-3 с 175 миллиардами параметров , обучен на «наборе данных объемом 45 ТБ простых текстовых слов (45 000 ГБ), который был ... отфильтрован до 570 ГБ». [12]
В 2022 году Amazon представила AlexaTM 20B, модель языка seq2seq среднего размера (20 миллиардов параметров) . Она использует кодер-декодер для выполнения обучения с небольшим количеством попыток. Кодер выводит представление входных данных, которое декодер использует в качестве входных данных для выполнения определенной задачи, например, перевода входных данных на другой язык. Модель превосходит гораздо более крупную GPT-3 в переводе и резюмировании языка. Обучение сочетает шумоподавление (соответствующую вставку отсутствующего текста в строки) и причинно-языковое моделирование (осмысленное расширение входного текста). Она позволяет добавлять функции на разных языках без массивных рабочих процессов обучения. AlexaTM 20B достигла передовой производительности в задачах обучения с небольшим количеством попыток во всех языковых парах Flores-101, превзойдя GPT-3 по нескольким задачам. [13]