Модель Seq2seq или широко известная как модель кодировщика-декодера, представляет собой метод машинного перевода, субтитров к изображениям, суммирования текста и т. Д. На приведенном ниже рисунке мы можем увидеть модель кодировщика-декодера, которая используется для машинного перевода.

Мы можем использовать LSTM или его варианты, такие как GRU или Bidirectional LSTM, в качестве ячеек декодера кодера. Допустим, мы хотим создать модель, которая преобразует английское предложение во французское. Однако мы не можем напрямую передавать сырые английские предложения в качестве входных данных для кодировщика. Следовательно, нам нужно преобразовать эти слова в векторы. Мы можем использовать различные предварительно обученные модели, такие как Google word2vec, glove или fasttext, чтобы преобразовать эти слова в векторы, или же мы можем использовать слой внедрения, чтобы получить векторизованное представление для каждого слова.

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

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

Теперь попробуем проанализировать входы декодера. Во время обучения декодеру предоставляется ввод, который он должен был вывести на предыдущем шаге, за исключением первого слова, которое имеет токен (скажем, ‹GO›) в качестве ввода, представляющего начало предложения. Кроме того, ячейкам декодера в качестве входных данных предоставляется предыдущий вывод.

На каждом временном шаге декодер будет выводить оценку для каждого слова, которая превращается в вероятность функцией softmax. Мы также выбираем слово с наибольшей вероятностью в качестве нашего вывода (отличается от стратегии поиска луча). В этом случае предположим, что слово «хорошо» имеет вероятность 0,3, «I» имеет вероятность 0,4 и «am» имеет вероятность 0,3, тогда в соответствии со стратегией поиска «жадность» мы выбираем «I» в качестве вывода.

Во время вывода или во время тестирования у нас нет целевого предложения для ввода в декодер. Здесь модель полностью зависит от самой себя, где мы предоставляем оба ввода из предыдущего вывода из-за недоступности фактического резюме. Эта проблема известна как проблема смещения экспозиции. Эта проблема становится острой, если модель выдает неверный результат на определенном этапе, что, в свою очередь, влияет на всю последующую последовательность.

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

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