За последние десять лет популярный сервис Google Translate прошёл серьёзный эволюционный путь. Начиналось с поддержки всего нескольких языков, теперь этот сервис уже умеет работать со 103 языками, а каждый день с его помощью переводится более 140 миллиардов слов. Чтобы сделать это возможным, Google пришлось построить и поддерживать огромное количество распределённых систем. При этом вычислительные затраты оказались довольно большими.
Чтобы решить возникающие проблемы и повысить качество перевода Google интенсивно работает над новой технологией нейронного машинного перевода (GNMT, Google Network Machine Translation). Впервые она была анонсирована в сентябре этого года, а на прошлой неделе было объявлено о пробном запуске GNMT для восьми языков. Тогда никаких деталей Google не раскрыла, но с публикацией статьи «Google’s Multilingual Neural Machine Translation System: Enabling Zero-Shot Translation» стали известны новые интересные подробности.
Как отмечают разработчики, переход на GNMT действительно ощутимо улучшил качество перевода между языками, которые использовались для тестирования. Но масштабирование до поддержки всех 103 языков является настоящим вызовом. Обновлённая GNMT-технология позволяет одной системе осуществлять перевод сразу между несколькими языками. Предложенная архитектура не требует внесения изменений в ядро GNMT, но включает дополнительный токен, вставляющийся в начало предложения. Этот токен определяет, на какой язык нужно осуществить перевод. Отдельно отмечается так называемый метод Zero-shot Translation, который позволяет переводить отдельные фразы между языковыми парами, никогда ранее не встречающиеся. Zero-shot подразумевает такое обучение, когда ставится задача без наличия примеров решения похожих проблем. Например, стоит задача найти кота на фотографии. При этом фотографии с другими котами не показываются, а лишь даётся детальное описание того, как должен выглядеть кот.
Google демонстрирует это на примере GNMT с поддержкой трёх языков. Допустим, система проходит обучение для четырёх пар — с японского на английский, с английского на японский, с корейского на английский и с английского на корейский. В методе Zero-shot полученный опыт при переводе между этими парами используется для осуществления перевода тех же фраз между японским и корейским языками. По утверждению Google, такой тип обучения впервые использован в системах машинного перевода.
Вместо традиционного попарного перевода фраз (когда пары просто запоминаются в базе данных), Google использует так называемую трёхмерную репрезентацию данных. Нейронная сеть кодирует данные семантически. На разных языках такие семантические отпечатки будут выглядеть очень похоже, а построенная сеть называется интерлингвистической.
По мнению Google, результаты исследования будут интересны не только экспертам машинного обучения, но и лингвистам.
Источник: