В последние годы нейронный машинный перевод (НМП) с использованием моделей «трансформер» добился необычайных успехов. НМП на основе глубоких нейросетей обычно обучаются с начала до конца на очень объёмных параллельных корпусах текстов (текстовых парах) исключительно на основе самих данных, без необходимости назначать точные правила языка.
Несмотря на все успехи, НМП-модели могут проявлять чувствительность к небольшим изменениям входных данных, что может проявляться в виде различных ошибок – недоперевод, переперевод, неправильный перевод. К примеру, следующее немецкое предложение качественная НМП-модель «трансформер» переведёт правильно.
“Der Sprecher des Untersuchungsausschusses hat angekündigt, vor Gericht zu ziehen, falls sich die geladenen Zeugen weiterhin weigern sollten, eine Aussage zu machen.”
(Машинный перевод: “The spokesman of the Committee of Inquiry has announced that if the witnesses summoned continue to refuse to testify, he will be brought to court.”)
Перевод: представитель следственного комитета объявил, что если приглашённые свидетели будут и дальше отказываться давать показания, его привлекут к ответственности.
Однако при внесении небольшого изменения во входящее предложение, заменив слово geladenen на синоним vorgeladenen, перевод резко меняется (и становится неверным):
“Der Sprecher des Untersuchungsausschusses hat angekündigt, vor Gericht zu ziehen, falls sich die vorgeladenen Zeugen weiterhin weigern sollten, eine Aussage zu machen.”
(Машинный перевод: “The investigative committee has announced that he will be brought to justice if the witnesses who have been invited continue to refuse to testify.”).
Перевод: следственный комитет объявил, что его привлекут к правосудию, если приглашённые свидетели будут и дальше отказываться давать показания.
Отсутствие устойчивости у НМП-моделей не даёт применять коммерческие системы к задачам, в которых недопустим подобный уровень нестабильности. Поэтому наличие обучающихся устойчивых переводящих моделей не просто желаемо, но часто и просто необходимо. При этом, хотя устойчивость нейросетей активно изучается сообществом исследователей компьютерного зрения, материалов по устойчивым обучающимся НМП-моделям можно найти немного.
В нашей работе «Устойчивый машинный перевод с двойным состязательным вводом» мы предлагаем подход, использующий сгенерированные состязательные примеры для улучшения стабильности моделей машинного перевода к небольшим изменениям входа. Мы обучаем устойчивую НМП-модель преодолевать состязательные примеры, сгенерированные с учётом знаний об этой модели и в целях искажения её предсказаний. Мы показываем, что такой подход улучшает эффективность НМП-модели на стандартных тестах.
Обучение модели при помощи AdvGen
Идеальная НМП-модель должна генерировать похожие переводы для разных входов, имеющих небольшие отличия. Идея нашего подхода – мешать модели перевода при помощи состязательных входных данных в надежде увеличения её устойчивости. Это происходит при помощи алгоритма «состязательной генерации» (Adversarial Generation, AdvGen), генерирующего допустимые состязательные примеры, мешающие модели, а потом скармливающего их в модель для обучения. Хотя этот метод вдохновлён идеей генеративных состязательных сетей (ГСС), он не использует сеть-дискриминатор, а просто применяет состязательный пример в обучении, по сути, диверсифицируя и расширяя обучающий набор.
Первый шаг – внести возмущение в данные при помощи AdvGen. Начинаем мы с того, что используем трансформер для подсчёта потери перевода на основе исходного входящего предложения, целевого входного предложения и целевого выходного предложения. Затем AdvGen случайным образом выбирает слова в исходном предложении, действуя в предположении об их равномерном распределении. У каждого слова есть соответствующий ему список похожих слов, т.е. кандидатов на подстановку. Из него AdvGen выбирает слово, которое с наибольшей вероятностью приведёт к ошибкам в выходе трансформера. Затем это сгенерированное состязательное предложение скармливается обратно в трансформер, запуская стадию защиты.
Сначала модель трансформера применяется ко входящему предложению (слева внизу), и затем подсчитывается потеря перевода совместно с целевым выходным предложением (выше вверху) и целевым входным предложением (в середине справа, начиная с “<sos>”). Затем AdvGen принимает исходное предложение, распределение выбора слов, кандидаты для слов, и потери перевода в качестве входных данных и создаёт пример состязательного исходного текста.
На этапе защиты состязательный исходный текст скармливается обратно в трансформер. Снова подсчитывается потеря перевода, но на этот раз уже с использованием состязательного входного исходника. Используя такой же метод, что и ранее, AdvGen использует целевое входящее предложение, распределение выбора слов, подсчитанное из матрицы внимания, кандидаты для замены слов, и потери перевода для создания примера состязательного исходного текста.
На этапе защиты состязательный исходный текст становится входом для трансформера, и подсчитываются потери перевода. Используя такой же метод, что и ранее, AdvGen создаёт пример состязательного исходного текста на основе целевого входа.
Наконец, состязательное предложение скармливается обратно в трансформер, и подсчитываются потеря устойчивости на основе примера состязательного исходника, состязательного примера целевого входа и целевого предложения. Если вмешательство в текст привело к значительным потерям, они минимизируются так, чтобы, когда модели встречаются сходные возмущения, она не повторяла такой же ошибки. С другой стороны, если возмущение приводит к небольшим потерям, ничего не происходит, что говорит о том, что модель уже способна справляться с подобными возмущениями.
Эффективность работы модели
Мы демонстрируем эффективность нашего подхода, применяя его к стандартным тестам переводов с китайского на английский и с английского на немецкий. Мы получаем значительное улучшение перевода на 2,8 и 1,6 пунктов BLEU соответственно, по сравнению с конкурирующей моделью трансформера, и достигаем нового рекордного качества перевода.
Сравнение моделей трансформера на стандартных на стандартных тестах
Затем мы оцениваем работу нашей модели на зашумлённом наборе данных при помощи процедуры, сходной с той, что описана для AdvGen. Мы берём чистые входные данные, к примеру, такие, которые используются в стандартных тестах переводчиков, и случайным образом выбираем слова, которые заменяем на похожие. Мы обнаруживаем, что наша модель демонстрирует улучшенную устойчивость по сравнению с другими недавними моделями.
Сравнение трансформера и других моделей на искусственно зашумлённых входных данных
Эти результаты показывают, что наши методы способны преодолеть небольшие возмущения, возникающие во входящем предложении, и улучшить эффективность обобщения. Он опережает конкурирующие модели перевода и достигает рекордной эффективности перевода на стандартных тестах. Мы надеемся, что наша модель переводчика станет устойчивой основой для улучшения результатов решения многих следующих задач, особенно чувствительных или нетерпимых к неидеальным входным текстам.
Автор: SLY_G