Статья по мотивам выступления на конференции РИФ+КИБ 2017.
Neural Machine Translation: почему только сейчас?
Про нейронные сети говорят уже давно, и, казалось бы, что одна из классических задач искусственного интеллекта – машинный перевод – просто напрашивается на то, чтобы решаться на базе этой технологии.
Тем не менее, вот динамика популярности в поиске запросов про нейронные сети вообще и про нейронный машинный перевод в частности:
Прекрасно видно, что на радарах вплоть до недавнего времени нет ничего про нейронный машинный перевод – и вот в конце 2016 года свои новые технологии и системы машинного перевода, построенные на базе нейронных сетей, продемонстрировали сразу несколько компаний, среди которых Google, Microsoft и SYSTRAN. Они появились почти одновременно, с разницей в несколько недель или даже дней. Почему так?
Для того, чтобы ответить на этот вопрос, необходимо понять, что такое машинный перевод на базе нейронных сетей и в чем его ключевое отличие от классических статистических систем или аналитических систем, которые используются сегодня для машинного перевода.
В основе нейронного переводчика механизм двунаправленных рекуррентных нейронных сетей (Bidirectional Recurrent Neural Networks), построенный на матричных вычислениях, который позволяет строить существенно более сложные вероятностные модели, чем статистические машинные переводчики.
Как и статистический перевод, нейронный перевод требует для обучения параллельные корпуса, позволяющие сравнить автоматический перевод с эталонным «человеческим», только в процессе обучения оперирует не отдельными фразами и словосочетаниями, а целыми предложениями. Основная проблема в том, что для тренировки такой системы требуется существенно больше вычислительных мощностей.
Для ускорения процесса разработчики используют GPU от NVIDIA, а Google также и Tensor Processing Unit (TPU) – чипы собственной разработки, адаптированные специально для технологий машинного обучения. Графические чипы изначально оптимизированы под алгоритмы матричных вычислений, и поэтому выигрыш в производительности составляет 7-15 раз в сравнении с CPU.
Даже при всем этом тренировка одной нейронной модели требует от 1 до 3 недель, тогда как статистическая модель примерно того же размера настраивается за 1-3 дня, и с увеличением размера эта разница увеличивается.
Однако не только технологические проблемы были тормозом для развития нейронных сетей в контексте задачи машинного перевода. В конце концов, обучать языковые модели можно было и раньше, пусть и медленнее, но принципиальных препятствий не было.
Свою роль сыграла в том числе и мода на нейронные сети. Разработки внутри себя вели многие, но заявлять об этом не спешили, опасаясь, возможно, что не получат того прироста качества, которое общество ожидает от словосочетания Neural Networks. Этим можно объяснить тот факт, что сразу несколько нейронных переводчиков были анонсированы один за другим.
Качество перевода: чей BLEU score толще?
Попробуем понять, соответствует ли рост качества перевода накопленным ожиданиям и тому росту затрат, которые сопровождают разработку и поддержку нейронных сетей для перевода.
Google в своем исследования демонстрирует, что нейронный машинный перевод дает Relative Improvement от 58% до 87%, в зависимости от языковой пары, по сравнению с классическим статистическим подходом (или Phrase Based Machine Translation, PBMT, как его еще называют).
SYSTRAN проводит исследование, в котором качество перевода оценивается путем выбора из нескольких представленных вариантов, сделанных различными системами, а также «человеческого» перевода. И заявляет, что его нейронный перевод предпочитают в 46% случаев переводу, сделанному человеком.
Качество перевода: есть ли прорыв?
Несмотря на то, что Google заявляет об улучшении на 60% и даже выше, в этом показателе есть небольшой подвох. Представители компании говорят о «Relative Improvement», то есть насколько им удалось с нейронным подходом приблизится к качеству Human Translation по отношению к тому, что было в классическом статистическом переводчике.
Эксперты отрасли, анализирующие результаты, представленные Google в статье «Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation», достаточно скептически относятся к представленным результатам и говорят, что фактически BLEU score удалось улучшить только на 10%, а существенный прогресс заметен именно на достаточно простых тестах из Wikipedia, которые, скорее всего, были использованы и в процессе обучения сети.
Внутри PROMT мы регулярно проводим сравнение перевода на различных текстах наших систем с конкурентами, и поэтому под рукой всегда есть примеры, на которых мы можем проверить, действительно ли нейронный перевод так превосходит предыдущее поколение, как заявляют производители.
Исходный текст (EN): Worrying never did anyone any good.
Перевод Google PBMT: Не беспокоясь не делал никому ничего хорошего.
Перевод Google NMT: Беспокойство никогда никому не помогало.
Кстати, перевод той же фразы на Translate.Ru: «Волнение никогда не приносило никому пользы», можно заметить, что он был и остался таким же и без использования нейронных сетей.
Microsoft Translator в этом вопросе тоже не отстает. В отличие от коллег из Google они даже сделали сайт, на котором можно сделать перевод и сравнить два результата: нейронный и донейронный, чтобы убедиться, что утверждения о росте в качестве не голословны.
На этом примере мы видим, что прогресс есть, и он действительно заметный. На первый взгляд, похоже, что заявление разработчиков о том, что машинный перевод практически догнал «человеческий» — правда. Но так ли это на самом деле, и что это значит с точки зрения практического применения технологии для бизнеса?
В общем случае перевод с применением нейронных сетей превосходит перевод статистический, и у этой технологии есть огромный потенциал для развития. Но если внимательно подойти к вопросу, то мы сможем убедиться, что прогресс не во всем, и не для всех задач можно применять нейронные сети без оглядки на саму задачу.
Машинный перевод: в чем задачи
От автоматического переводчика всю историю его существования – а это уже более 60 лет! – ждали некой магии, представляя его как машинку из фантастических фильмов, которая мгновенно переводит любую речь в инопланетный свист и обратно.
На самом деле, задачи бывают разного уровня, один из которых подразумевает «универсальный» или, если можно так выразится, «бытовой» перевод для повседневных задач и облегчения понимания. С задачами этого уровня прекрасно справляются онлайн-сервисы по переводу и множество мобильных продуктов.
К таким задачам можно отнести:
• быстрый перевод слов и коротких текстов для различных целей;
• автоматический перевод в процессе общения на форумах, в социальных сетях, мессенджерах;
• автоматический перевод при чтении новостей, статей Wikipedia;
• переводчик в путешествиях (mobile).
Все те примеры роста качества перевода с использованием нейронных сетей, которые мы рассматривали выше, как раз и относятся к этим задачам.
Однако с целями и задачами бизнеса в отношении машинного перевода все обстоит несколько иначе. Вот, например, некоторые требования, которые предъявляются к корпоративным системам машинного перевода:
• перевод деловой переписки с клиентами, партнерами, инвесторами, иностранными сотрудниками;
• локализация сайтов, интернет-магазинов, описаний продуктов, инструкций;
• перевод пользовательского контента (отзывы, форумы, блоги);
• возможность интеграции перевода в бизнес-процессы и программные продукты и сервисы;
• точность перевода с соблюдением терминологии, конфиденциальность и безопасность.
Попробуем понять на примерах, решаемы ли любые задачи бизнеса по переводу с помощью нейронных сетей и как именно.
Кейс: Amadeus
Amadeus — одна из крупнейших в мире глобальных систем дистрибуции авиабилетов. С одной стороны к ней подключены авиаперевозчики, с другой – агентства, которые должны получать всю информацию об изменениях в режиме реального времени и доносить до своих клиентов.
Задача — локализация условий применения тарифов (Fare Rules), формирующихся в системе бронирования автоматически из разных источников. Эти правила формируются всегда на английском языке. Ручной перевод здесь практически невозможен, ввиду того, что информации много и она часто меняется. Агент по продаже авиабилета хотел бы читать Fare Rules на русском языке, чтобы оперативно и квалифицированно консультировать своих клиентов.
Требуется понятный перевод, передающий смысл тарифных правил, с учетом типичных терминов и аббревиатур. И требуется, чтобы автоматический перевод был интегрирован непосредственно в систему бронирования Amadeus.
Подробно задача и реализация проекта расписаны в документе.
Попробуем сравнить перевод, сделанный через PROMT Cloud API, интегрированный в Amadeus Fare Rules Translator, и «нейронный» перевод от Google.
Оригинал: ROUND TRIP INSTANT PURCHASE FARES
PROMT (Аналитический подход): ТАРИФЫ МГНОВЕННОЙ ПОКУПКИ РЕЙСА ТУДА И ОБРАТНО
GNMT: КРУГЛЫЕ ПОКУПКИ
Очевидно, что тут нейронный переводчик не справляется, и чуть дальше станет понятно, почему.
Кейс: TripAdvisor
TripAdvisor один из крупнейших в мире туристических сервисов, который не нуждается в представлении. По данным статьи, опубликованной The Telegraph, ежедневно на сайте появляется 165,600 новых отзывов о различных туристических объектах на разных языках.
Задача перевод отзывов туристов с английского на русский язык с качеством перевода, достаточным для того, чтобы понять смысл этого отзыва. Основная сложность: типичные особенности user generated content (тексты с ошибками, опечатками, пропусками слов).
Также частью задачи была автоматическая оценка качества перевода перед публикацией на сайте TripAdvisor. Так как ручная оценка всего переводимого контента невозможна, решение по машинному переводу должно предоставить автоматический механизм оценки качества переведенных текстов — confidence score, чтобы дать возможность TripAdvisor публиковать переведенные отзывы только высокого качества.
Для решения была использована технология PROMT DeepHybrid, позволяющая получить более качественный и понятный конечному читателю перевод в том числе и за счет статистического постредактирования результатов перевода.
Посмотрим на примеры:
Оригинал: We ate there last night on a whim and it was a lovely meal. The service was attentive without being over bearing.
PROMT (Гибридный перевод): Мы ели там в последний вечер случайно, и это была прекрасная еда. Персонал был внимательным, но не властным.
GNMT: Мы ели там прошлой ночью по прихоти, и это была прекрасная еда. Обслуживание было внимательным, не будучи более подшипников.
Здесь все не так удручающе с точки зрения качества, как в предыдущем примере. И вообще, по своим параметрам эта задача потенциально может быть решена с применением нейронных сетей, и это может еще повысить качество перевода.
Проблемы использования NMP для бизнеса
Как уже говорилось ранее, «универсальный» переводчик не всегда дает приемлемое качество и не может поддерживать специфическую терминологию. Чтобы интегрировать в свои процессы и применять нейронные сети для перевода, нужно выполнить основные требования:
• Наличие достаточных объемов параллельных текстов для того, чтобы иметь возможность обучать нейронную сеть. Часто у заказчика их просто мало или вообще текстов по данной тематике не существует в природе. Они могут быть засекречены или находится в состоянии не очень пригодном для автоматической обработки.
Для создания модели нужна база, где содержится минимум 100 млн. токенов (словоупотреблений), а чтобы получить перевод более-менее приемлемого качества – 500 млн. токенов. Далеко не каждая компания обладает таким объемом материалов.
• Наличие механизма или алгоритмов автоматической оценки качества получаемого результата.
• Достаточные вычислительные мощности.
«Универсальный» нейронный переводчик чаще всего не подходит по качеству, а чтобы развернуть свою частную нейронную сеть, способную обеспечить приемлемое качество и скорость работы, требуется «маленькое облако».
• Непонятно, что делать с конфиденциальностью.
Не каждый заказчик готов отдавать свой контент для перевода в облако по соображениям безопасности, а NMP – это история в первую очередь облачная.
Выводы
• В общем случае нейронный автоматический перевод дает результат более высокого качества, чем «чисто» статистический подход;
• Автоматический перевод через нейронную сеть – лучше подходит для решения задачи «универсального перевода»;
• Ни один из подходов к МП сам по себе не является идеальным универсальным инструментом для решения любой задачи перевода;
• Для решения задач по переводу в бизнесе только специализированные решения могут гарантировать соответствие всем требованиям.
Мы приходим к абсолютно очевидному и логичному решению, что для своих задач по переводу нужно использовать тот переводчик, который максимально для этого подходит. Не важно, есть внутри нейронная сеть или нет. Понимание самой задачи – важнее.