Введение в многоязычный нейронный машинный перевод с Zero Shot Training

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

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

Попробуем разобраться в этом дальше. Допустим, нам нужно сделать систему перевода между более чем 100 языками. Здесь, если мы настроим систему машинного перевода для каждой языковой пары, мы получим очень много языковых моделей. Однако с помощью нулевого обучения для перевода мы можем получить одну-единственную модель, которая понимает все языки. И именно поэтому Zero Shot Translation - это эффективный подход к многоязычному переводу. Сегодня мы углубимся в эту тему, чтобы получить наилучшие результаты, рассмотрев различные подходы к многоязычному машинному переводу.

Взгляд на многоязычный нейронный машинный перевод Google (GNMT)

Многоязычный нейронный машинный перевод Google (GMNMT) представил простую настройку данных путем добавления искусственного токена для указания требуемого целевого языка в исходную архитектуру NMT. Это оказалось весьма полезным в многоязычных системах машинного перевода. Основные преимущества такой системы:

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

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

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

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

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

Как в многоязычной системе, если у нас есть:

Португальский → Английский и Английский → Испанский

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

Раньше для преобразования между разными языками использовались мосты, или техника, основанная на поворотах. Там, если мы хотим преобразовать с английского языка в каннада, то сначала английский переводится в хинди, а затем хинди в каннада. Итак, здесь хинди работает как мост или стержень между обеими языковыми парами. Однако недостатком или ограничением этого подхода было то, что некоторая часть контекстного значения всегда терялась. Таким образом, Zero Shot Learning для перевода изменил подход к разработке современных систем машинного перевода.

Система многоязычного перевода GNMT

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

For NMT:
Hello, how are you? -> Hola, ¿cómo estás?
For Multilingual NMT ad additional token as:
<2es>Hello, how are you? -> Hola, ¿cómo estás?

В приведенном выше случае, если мы создаем простую систему NMT, мы передаем данные, как в первом случае, а если мы хотим создать многоязычную систему, то мы передаем данные, как показано во втором случае, где мы добавили ‹ 2es ›, который представляет токен целевого языка.

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

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

Многие-к-одному. В языковой модели "многие-к-одному" у нас есть несколько исходных языков и один целевой язык. Это простейшая комбинация языковых пар, поскольку нам не нужно предоставлять никаких дополнительных токенов. Этот метод превосходит все базовые методы NMT.

Модели «один ко многим». В языковой модели «один ко многим» у нас есть один исходный язык и несколько целевых языков. Здесь нам нужно предоставить дополнительный искусственный токен целевого языка. Этот подход не так эффективен, как подход «многие к одному».

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

Теперь, когда мы рассмотрели архитектуру GNMT для многоязычного машинного перевода, которая основана на GNMT с небольшим изменением обучающих данных, мы собираемся рассмотреть другие архитектуры многоязычного машинного перевода, основанные на «механизме внимания».

Многоязычный NMT с независимым от языка мостом внимания

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

Мы собираемся постичь знания об архитектуре, которая использует промежуточный «мост внимания», общий для всех языков. С помощью этого мы обучим сеть кодировщика-декодера, которая знает о многоязычных представлениях данных. Проще говоря, у нас будет сеть кодировщика-декодера, в которой есть мост, соединяющий все данные.

Модельная архитектура

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

Знакомство с механизмом внимания:

Предположим, у нас есть вход X = (x 1 ,..., X n ), в векторном пространстве R dx, и мы должны сгенерировать выходной перевод как Y = (y 1, ..., y m). Здесь у нас есть концепция вектора контекста c, который отслеживает контекст различных слов и то, как они связаны с другими словами в предложении. У нас есть RNN (повторяющийся Neural Network) кодировщик, который последовательно считывает каждый элемент в X для создания вектора контекста c. Мы получаем вектор контекста c из последнего скрытого состояния RNN. Для каждого присутствующего токена RNN генерирует скрытое состояние h t ∈ R dh.

ht = f(xt , ht−1) (1)

c = hn (2)

f: R dx × R dh → R dh - нелинейная функция активации.

Теперь давайте посмотрим на декодер, который последовательно вычисляет Y = (y 1, ..., y m) путем оптимизации:

Каждое распределение p t = p (y t | c) ∈ R dv обычно вычисляется с помощью функции softmax для всех слов в словаре с учетом текущего скрытого состояния декодера. Здесь dv - размер словарного запаса.

p t = soft tmax (y t − 1, s t) (4)

st = ϕ(c, yt−1, ht−1) (5)

Здесь ϕ - еще одна нелинейная функция активации.

Чтобы использовать сеть внимания в декодере, нам необходимо вычислить вектор контекста ct на каждом временном шаге t. Здесь мы не оптимизируем вектор контекста c на этапе кодировщика для генерации выходных слов. Следование этому подходу помогает декодеру назначать разные веса входному вектору на этапе декодирования. Вектор контекста ct - это взвешенная сумма скрытых состояний кодировщика.

Здесь αt, i указывает, насколько i-е входное слово способствует генерации t-го выходного слова.

Здесь g - нейронная сеть с прямой связью. Таким образом, с помощью вектора контекста мы отслеживаем контекст в предложении. В настоящее время архитектура Attention является основой многих современных моделей НЛП.

Теперь перейдем к настройке "Многоязычный"

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

Мост внимания. Использование самовнимания (моста внимания) в качестве кодировщика и декодера, чтобы оно понимало устойчивое языковое представление, - вот как происходит настоящее волшебство. Он является общим для всех языковых пар, которые служат в качестве нейронного интерлингва. Самовнимание помогает осмысленно изучать представления, где каждому слову присваивается векторное значение, основанное на весах других слов.

Предположим, у нас есть предложение «У меня есть питомец по имени приятель, он очень умен и озорник». С помощью самовнимания модель узнает, что «он» в предложении относится к «приятелю». Это также помогает сохранять более длинные контексты в предложениях. При кодировании каждого слова он также смотрит на другие позиции в предложении, обеспечивая лучшую кодировку.

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

Чтобы лучше понять механизм внимания, выполните следующие действия:





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

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

Для более глубокого понимания концепции, пожалуйста, просмотрите статью. Здесь мы можем найти его реализацию. Он основан на инструментарии OpenNMT-py, о котором я рассказывал в моем предыдущем блоге о Машинном переводе.



Дополнительное примечание. Поскольку метод перевода Zero-shot изучает все языки, его кодировщик и декодер знают все языки в процессе обучения. Мы также можем использовать его для техник перефразирования, настроив последний слой с той же языковой парой параллельного корпуса или любым другим корпусом перефразирования.

Заключение

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

Чтобы увидеть больше подобных статей, следите за нашей F acebook.