Казалось бы, что общего у машинного перевода и прогнозов погоды? Давайте порассуждаем. Бывает, открываешь прогноз погоды, вглядываешься в засвеченный солнцем экран ноутбука и радостно читаешь, что «дождь в ближайшие 2 часа не прекратится». Или заходишь в ресторан, открываешь меню и видишь, что в качестве закуски предлагаются «пружинные ролики».
И прогнозы погоды, и машинный перевод (очевидно, благодаря которому блюдо превратилось в затейливый механизм) служат неиссякаемыми источниками шуток и мемов. Однако для машинного перевода ситуация может измениться очень скоро. Если лет пять назад « spring rolls » и могли поставить большинство автоматических систем в тупик, то сейчас на этом их уже не подловишь. Качество машинного перевода растет с каждым годом: в некоторых языковых парах для текстов ряда тематик оно может быть сравнимо с качеством перевода, выполненного квалифицированным специалистом. Но чем объясняется такой быстрый прогресс и почему глупых ошибок становится все меньше? Ответ кроется в истории развития систем.
Сама идея использовать машины для перевода появилась еще до создания персональных компьютеров. В 1930-е годы ученые даже экспериментировали с переводом отдельных, четко структурированных предложений, которые набирались на перфокартах, затем обрабатывались системой и печатались уже в переведенном варианте. В 1970-е годы получил распространение машинный перевод на основе правил. Идея проста и понятна: вносим в систему двуязычный словарь, задаем порядок грамматических преобразований, при желании добавляем правила транслитерации для слов, которые не удастся найти в словаре, и переводим. Хотя такой метод машинного перевода и может сработать для отдельных примитивных предложений, он совершенно неприменим для естественной речи и современные системы не имеют с ним ничего общего.
В 1980-х и 1990-х ученые пробуют множество новых подходов к переводу: усложняют пословный перевод, добавляя к нему все более тщательно продуманные системы морфологического разбора; используют интерлингвистические системы (то есть переводят не напрямую с языка А на язык В, а используют метаязык С, служащий промежуточным звеном для любых пар языков оригинала и перевода) и постепенно приходят к переводу не отдельных слов, а целых фраз, а затем и к статистическим методам.
Переход к использованию статистики стал первым качественным скачком в машинном переводе, ведь она позволила так или иначе учитывать контекст, хотя до уровня понимания текста человеком машинам еще было (и остается) далеко.
Собственно, как такового понимания текста у машин никогда и не было. Были более или менее удачные попытки его имитировать. Однако в любом случае, важной особенностью статистических методов стало то, что они не требовали предварительного прописывания правил, не нужны им были и словари. Вместо этого подобным системам, как и современным нейронным сетям, требовалось как можно больше двуязычных текстов для обучения (или сбора статистики).
Наконец, в середине 2010-х годов настала эпоха нейронного машинного перевода. Теперь автоматическая система перевода формировалась из двух сетей: кодера и декодера. Задачей первой было обработать входные данные на исходном языке и превратить их в набор характеристик и параметров, которые затем передавались второй сети. Вторая сеть — декодер — обрабатывала эти характеристики и формировала на их основе текст на другом языке. Как и в случае со статистическими методами, для работы сетей не требовалось заранее прописывать правила, по которым осуществляется перевод. Вместо этого сети формировали правила самостоятельно, обучаясь на корпусах двуязычных текстов. Чем больше были эти корпусы, тем лучшего качества перевода удавалось достигать. Так, даже нейронная сеть не может обеспечить высокое качество перевода с очень редких языков, для которых не существует достаточного количества текстов, пригодных для использования в качестве учебной базы.
В 2016 году компания Google объявила о начале применения системы GNMT, основанной на 8-слойной рекуррентной нейронной сети. Связи между элементами такой сети образуют направленную последовательность. Рекуррентная нейросеть может запоминать предшествующую информацию — в случае с обработкой естественного языка это означает учет контекста. В GNMT единицей перевода является не отдельная фраза, а целое предложение. Сперва кодер сопоставляет каждому слову исходного предложения массив, содержащий смыслы всех обработанных до этого слов. После прочтения всего предложения начинается этап декодирования, или составления предложения на языке перевода. При выборе каждого следующего слова декодер учитывает все элементы массивов, полученные на этапе кодирования, но присваивает им разный вес. Таким образом системе удается принимать во внимание контекст употребления слова.
Внедрение GNMT позволило значительно повысить качество перевода по сравнению с системами, основанными на обработке отдельных фраз. По данным компании Google, в переводе в нескольких распространенных языковых парах количество ошибок снизилось на 55–85%. Для тестирования использовались тексты из Википедии и новостных сайтов. Однако система была еще далека от идеала. Ошибки, даже серьезные, по-прежнему встречались, и при работе с более специфическими текстами она не могла обеспечить качество, сравнимое с профессиональным переводом.
В 2020 году Google объявила о замене GNMT новой системой, в которой в качестве декодера по-прежнему использовалась рекуррентная нейронная сеть, а вот архитектура кодера сильно изменилась. Компания считает, что новая система позволит не только повысить качество перевода между распространенными языковыми парами, но также в какой-то степени решит проблемы перевода с редких языков, для которых еще нет больших корпусов текстов.
Как бы то ни было, развитие автоматического перевода продолжается. Конечно, еще какое-то время нам будут попадаться на глаза нелепые переводы меню или вывесок, фотографии неправильно переведенных указателей и подписей к товарам в интернет-магазинах, но со временем таких ошибок почти не останется. Интересно, будет ли точность прогнозов погоды улучшаться также стремительно?