Нейросетевой переводчик быстрее ближе точнее. Нейросеть захватила переводчик яндекса

Яндекс.Переводчик научился дружить с нейросетью и отдавать пользователям более качественные тексты. В Яндексе стали использовать гибридную систему перевода: изначально работала статистическая, а теперь её дополняет технология машинного обучения CatBoost. Правда есть одно но. Пока что лишь для перевода с английского на русский.

В Яндексе утверждают, что это самое популярное направление переводов, которое занимает 80% от общего числа.

CatBoost - умная штука, которая, получив две версии перевода сравнивает их, выбирая наиболее человекоподобную.

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

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

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

Если вам интересны новости мира ИТ также сильно, как нам, подписывайтесь на наш Telegram-канал . Там все материалы появляются максимально оперативно. Или, может быть, вам удобнее ? Мы есть даже в .

Понравилась статья?

Или хотя бы оставить довольный комментарий, чтобы мы знали, какие темы наиболее интересны читателям. Кроме того, нас это вдохновляет. Форма комментариев ниже.

Что с ней так? Своё негодование вы можете высказать на [email protected]. Мы постараемся учесть ваше пожелание в будущем, чтобы улучшить качество материалов сайта. А сейчас проведём воспитательную работу с автором.

Эта заметка - большой комментарий к новости про Google Translate подключил русский язык к переводу с глубинным обучением . На первый взгляд, звучит и выглядит всё очень круто. Однако поясню, почему не стоит торопиться с выводами про «переводчики больше не нужны».


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

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

Все три условия важные.

Пока мы не видим даже первую часть (в плане «знает свой язык»). Ну, по крайней мере для русского, пока всё очень и очень плохо. Вот уж что-то, а расстановка запятых отлично алгоритмизуется (Word справился году так в 1994, лицензировав алгоритм у местных), да и для нейросети имеющегося корпуса текстов ООН просто выше крыши.

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

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


Вернёмся к нашим баранам переводчикам. По закону Парето, 80% профессиональных переводчиков - плохие. Это люди, которые закончили курсы иностранного языка или, в лучшем случае, какой-нибудь региональный пединститут по специальности «учитель иностранного языка младших классов для сельской местности». И никаких других знаний у них нет. Иначе не сидели бы на одной из самых низкооплачиваемых работ.

Знаете, на чём они зарабатывают? Нет, не на переводах. Как правило, заказчики этих переводов понимают текст на иностранном языке лучше переводчика.

Они сидят на требованиях законодательства и/или местных обычаев.

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

Ещё хуже, если он переводит «в обратную сторону», т.е. на чужой язык (привет китайцам). Тогда его труд с большой вероятностью попадает в «баннизмы» Экслера или их местный аналог.

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

Обратите внимание, 80% переводческих контор живут при нотариусах. Угадайте с трёх раз, почему?

Как на этих переводчиков повлияет появление хорошего машинного перевода? Да никак. Ну т.е. есть надежда, что качество их переводов всё-таки улучшится в каких-то мелких аспектах, где есть что переводить. Ну и всё. Рабочее время здесь существенно не уменьшится, потому что они и сейчас бОльшую часть времени копируют текст из графы в графу. «В этом сыре столько-то белков, столько-то углеводов...» Национальные формы в разных странах разные, поэтому работы им меньше не станет. Особенно если не прилагать усилий.

Промежуточный вывод: для нижних 80% не изменится ничего. Они и так зарабатывают не потому что переводчики, а потому что бюрократы самого нижнего уровня.

Теперь посмотрим на противоположную часть спектра, ну пусть это будут верхние 3%.

Самый ответственный, хотя и не самый технически сложный 1%: синхронный перевод очень важных переговоров. Обычно между крупными корпорациями, но в пределе - в ООН или похожих верхах. Одна ошибка переводчика при передаче даже не смысла - эмоций, может привести, в самом худшем случае, к атомной войне. При этом, как вы понимаете, эмоциональный окрас даже совпадающих буквально фраз в разных языках может очень отличаться. Т.е. переводчик должен идеально знать оба культурных контекста своих рабочих языков. Банальные примеры - слова «негр» и «инвалид». Они почти нейтральны в русском и ярко эмоционально окрашены, вплоть до обсценности, в современном английском.

Такие переводчики могут не бояться ИИ: никто никогда не доверит такую ответственность машине.

Следующий 1% - это художественные переводчики. Ну вот у меня, например, целая полка выделена под тщательно собираемые оригинальные англоязычные издания Конана Дойля, Льюиса Кэролла, Хью Лори - в оригинале, без всяких там адаптаций и наших местных перепечаток. Чтение этих книг отлично развивает словарный запас, знаете ли, ну помимо огромного эстетического удовольствия. Я, дипломированный переводчик, могу пересказать очень близко к тексту любое предложение из этих книг. Но взяться за перевод? Увы, нет.

Я даже не заикаюсь о переводах поэзии.

Наконец, самый технически сложный (для нейросети - вообще невозможный) 1% это научно-технический перевод. Обычно, если какая-то команда в какой-то стране вырвалась вперёд в своей области, они называют свои открытия и изобретения на своём языке. Может так оказаться, что в другой стране другая команда независимо изобрела/открыла то же самое. Так появились, например, законы Бойля-Мариотта, Менделеева-Пуассона и споры на тему Попов / Маркони, Можайский / братья Райт / Сантос-Дюмон.

Но если иностранная команда «совсем ускакала» вперёд, у «догоняющих» учёных есть два варианта в лингвистическом смысле: калькировать или переводить.

Калькировать названия новых технологий, конечно, проще. Именно так в русском появились алгебра , медицина и компьютер , во французском - bistro , datcha и vodka ; в английском - sputnik , tokamak и perestroika .

Но иногда всё-таки переводят. Голос гуманитария в моей голове дико прётся от термина тачсота для обозначения аргумента преобразования Фурье от преобразования Фурье, как перевод для querquency . Шутки в сторону, таких терминов нет в гугле - но у меня есть бумажный учебник по цифровой обработке сигналов, одобренный и освящённый минобром, в котором эти термины есть.

И да, анализ тачсоты - это единственный (известный мне) способ отличить мужской голос от женского. Варианты?

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

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

Итого, слухи о скорой смерти профессии обычного переводчика немного преувеличены. На всех уровнях немного ускорится работа и немного увеличится конкуренция, но - ничего необычного.

А вот кому достанется - так это переводчикам-журналистам. Ещё 10 лет назад они могли спокойно сослаться на англоязычную статью, из которой ничего не поняли, и написать полный бред. Сегодня тоже пытаются, но знающие английский читатели их раз за разом макают в… ну вы поняли.

В-общем, их время прошло. С универсальным машинным переводчиком среднего уровня, пусть и немного корявым, «журналисты» типа



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

Как известно, в основе нейронного переводчика механизм двунаправленных рекуррентных нейронных сетей (Bidirectional Recurrent Neural Networks), построенный на матричных вычислениях, который позволяет строить существенно более сложные вероятностные модели, чем статистические машинные переводчики. Однако всегда считалось, что нейронный перевод, как и статистический, требует для обучения параллельных корпусов текстов на двух языках. На этих корпусах обучается нейросеть, принимая человеческий перевод за эталонный.

Как теперь выяснилось, нейросети способны освоить новый язык для перевода даже без параллельного корпуса текстов! На сайте препринтов arXiv.org опубликованы сразу две работы на эту тему.

«Представьте, что вы даёте какому-то человеку много китайских книг и много арабских книг - среди них нет одинаковых - и этот человек обучается переводить с китайского на арабский. Это кажется невозможным, правда? Но мы показали, что компьютер способен на такое», - говорит Микель Артетксе (Mikel Artetxe), учёный, работающий в области компьютерных наук в Университете Страны Басков в Сан-Себастьяне (Испания).

Большинство нейросетей машинного перевода обучается «с учителем», в роли которого как раз выступает параллельный корпус текстов, переведённый человеком. В процессе обучения, грубо говоря, нейросеть делает предположение, сверяется с эталоном, и вносит необходимые настройки в свои системы, затем обучается дальше. Проблема в то, что для некоторых языков в мире нет большого количества параллельных текстов, поэтому они недоступны для традиционных нейросетей машинного перевода.


«Универсальный язык» нейронной сети Google Neural Machine Translation (GNMT). На левой иллюстрации разными цветами показаны кластеры значений каждого слова, справа внизу - смыслы слова, полученные для него из разных человеческих языков: английского, корейского и японского

Составив гигантский «атлас» для каждого языка, затем система пытается наложить один такой атлас на другой - и вот пожалуйста, у вас готово некое подобие параллельных текстовых корпусов!

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


Архитектура предлагаемой системы. Для каждого предложения на языке L1 система учится чередованию двух шагов: 1) шумоподавление (denoising), которое оптимизирует вероятность кодирования зашумлённой версии предложения с общим энкодером и его реконструкции декодером L1; 2) обратный перевод (back-translation), когда предложение переводится в режиме вывода (то есть кодируется общим энкодером и декодируется декодером L2), а затем оптимизируется вероятность кодирования этого переведённого предложения с общим энкодером и восстановления оригинального предложения декодером L1. Иллюстрация: Микеля Артетксе и др.


Предлагаемая архитектура и цели обучения системы (из второй научной работы). Архитектура представляет собой модель перевода по предложениям, где и энкодер, и декодер работают на двух языках, в зависимости от идентификатора входного языка, который меняет местами поисковые таблицы. Вверху (автокодирование): модель обучается выполнять шумоподавление в каждом домене. Внизу (перевод): как и прежде, плюс мы кодируем с другого языка, используя в качестве входных данных перевод, произведённый моделью в предыдущей итерации (голубой прямоугольник). Зелёные эллипсы указывают термины в функции потерь. Иллюстрация: Гильома Лампла и др.

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

Работы представлены для Международной конференции по обучающим представлениям 2018 года (International Conference on Learning Representations). Ни одна из статей ещё не опубликована в научной прессе.

В современном интернете более 630 миллионов сайтов, но лишь 6% из них содержат русскоязычный контент. Языковой барьер – главная проблема распространения знаний между пользователями сети, и мы верим, что решать её нужно не только обучением иностранным языкам, но и с помощью автоматического машинного перевода в браузере.

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

Гибридный переводчик слов и фраз

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

Единственный способ машине постоянно адаптироваться к изменяющимся условиям – это учиться самостоятельно на большом количестве параллельных текстов (одинаковые по смыслу, но написаны на разных языках). В этом заключается статистический подход к машинному переводу. Компьютер сравнивает параллельные тексты и самостоятельно выявляет закономерности.

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

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

Однако процесс обучения векторным представлениям явно более статистически требователен, чем механическое запоминание примеров. Кроме того, непонятно, что делать с теми редкими входными словами, которые недостаточно часто встречались, чтобы сеть могла построить для них приемлемое векторное представление. В этой ситуации логично совместить оба метода.

С прошлого года Яндекс.Переводчик использует гибридную модель . Когда Переводчик получает от пользователя текст, он отдаёт его на перевод обеим системам - и нейронной сети, и статистическому переводчику. Затем алгоритм, основанный на методе обучения , оценивает, какой перевод лучше. При выставлении оценки учитываются десятки факторов - от длины предложения (короткие фразы лучше переводит статистическая модель) до синтаксиса. Перевод, признанный лучшим, показывается пользователю.

Именно гибридная модель теперь используется в Яндекс.Браузере, когда пользователь выделяет для перевода конкретные слова и фразы на странице.

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

Нейросетевой переводчик веб-страниц

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

Заголовок . Обычно яркий и крупный текст, который мы видим сразу при заходе на страницу. Заголовок часто содержит суть новости, поэтому важно перевести его правильно. Но сделать это сложно, потому что текста в заголовке мало и без понимания контекста можно допустить ошибку. В случае с английским языком всё ещё сложнее, потому что англоязычные заголовки часто содержат фразы с нетрадиционной грамматикой, инфинитивы или даже пропускают глаголы. Например, Game of Thrones prequel announced .

Навигация . Слова и фразы, которые помогают нам ориентироваться на сайте. Например, Home , Back и My account вряд ли стоит переводить как «Дом», «Спина» и «Мой счёт», если они расположены в меню сайта, а не в тексте публикации.

Основной текст . С ним всё проще, он мало отличается от обычных текстов и предложений, которые мы можем найти в книгах. Но даже здесь важно обеспечивать консистентность переводов, то есть добиваться того, чтобы в рамках одной веб-страницы одни и те же термины и понятия переводились одинаково.

Для качественного перевода веб-страниц недостаточно использовать нейросетевую или гибридную модель – необходимо учитывать ещё и структуру страниц. А для этого нам нужно было разобраться со множеством технологических трудностей.

Классификация сегментов текста . Для этого мы опять же используем CatBoost и факторы, основанные как на самом тексте, так и на HTML-разметке документов (тэг, размер текста, числа ссылок на единицу текста, ...). Факторы достаточно разнородные, поэтому именно CatBoost (основанный на градиентном бустинге) показывает лучшие результаты (точность классификации выше 95%). Но одной классификации сегментов недостаточно.

Перекос в данных . Традиционно алгоритмы Яндекс.Переводчика обучаются на текстах из интернета. Казалось бы, это идеальное решение для обучения переводчика веб-страниц (иными словами, сеть учится на текстах той же природы, что и у тех текстов, на которых мы собираемся её применять). Но как только мы научились отделять друг от друга различные сегменты, мы обнаружили интересную особенность. В среднем на сайтах контент занимает примерно 85% всего текста, а на заголовки и навигацию приходится всего по 7.5%. Вспомним также, что сами заголовки и элементы навигации по стилю и грамматике заметно отличаются от остального текста. Эти два фактора в совокупности приводят к проблеме перекоса данных. Нейронной сети выгоднее просто игнорировать особенности этих весьма бедно представленных в обучающей выборке сегментов. Сеть обучается хорошо переводить только основной текст, из-за чего страдает качество перевода заголовков и навигации. Чтобы нивелировать этот неприятный эффект, мы сделали две вещи: к каждой паре параллельных предложений мы приписали в качестве метаинформации один из трёх типов сегментов (контент, заголовок или навигация) и искусственно подняли концентрацию двух последних в тренировочном корпусе до 33% за счёт того, что стали чаще показывать обучающейся нейросети подобные примеры.

Multi-task learning . Поскольку теперь мы умеем разделять тексты на веб-страницах на три класса сегментов, может показаться естественной идеей обучать три отдельные модели, каждая из которых будет справляться с переводом своего типа текстов – заголовков, навигации или контента. Это действительно работает неплохо, однако ещё лучше работает схема, при которой мы обучаем одну нейросеть переводить сразу все типы текстов. Ключ к пониманию лежит в идее mutli-task learning (MTL): если между несколькими задачами машинного обучения имеется внутренняя связь, то модель, которая учится решать эти задачи одновременно, может научиться решать каждую из задач лучше, чем узкопрофильная специализированная модель!

Fine-tuning . У нас уже был весьма неплохой машинный перевод, поэтому было бы неразумно обучать новый переводчик для Яндекс.Браузера с нуля. Логичнее взять базовую систему для перевода обычных текстов и дообучить её для работы с веб-страницами. В контексте нейросетей это часто называют термином fine-tuning. Но если подойти к этой задаче в лоб, т.е. просто инициализировать веса нейронной сети значениями из готовой модели и начать учить на новых данных, то можно столкнуться с эффектом доменного сдвига: по мере обучения качество перевода веб-страниц (in-domain) будет расти, но качество перевода обычных (out-of-domain) текстов будет падать. Чтобы избавиться от этой неприятной особенности, при дообучении мы накладываем на нейросеть дополнительное ограничение, запрещая ей слишком сильно менять веса по сравнению с начальным состоянием.

Математически это выражается добавлением слагаемого к функции потерь (loss function), представляющего из себя расстояние Кульбака-Лейблера (KL-divergence) между распределениями вероятностей порождения очередного слова, выдаваемыми исходной и дообучаемой сетями. Как можно видеть на иллюстрации, это приводит к тому, что рост качества перевода веб-страниц больше не приводит к деградации перевода обычного текста.

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

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

External alignments. К переводчику веб-страниц в Браузере было ещё одно важное требование – он не должен искажать разметку. Когда тэги HTML располагаются вне предложений или на их границах, никаких проблем не возникает. Но если внутри предложения есть, например, two underlined words , то в переводе мы хотим видеть “два подчёркнутых слова”. Т.е. в результате перевода должны выполняться два условия:

  1. Подчёркнутый фрагмент в переводе должен соответствовать именно подчёркнутому фрагменту в исходном тексте.
  2. Согласованность перевода на границах подчёркнутого фрагмента не должна нарушаться.
Для того чтобы обеспечить такое поведение, мы сначала переводим текст как обычно, а затем с помощью статистических моделей пословного выравнивания определяем соответствия между фрагментами исходного и переведённого текстов. Это помогает понять, что именно нужно подчеркнуть (выделить курсивом, оформить как гиперссылку, ...).

Intersection observer . Мощные нейросетевые модели перевода, которые мы натренировали, требуют заметно больше вычислительных ресурсов на наших серверах (как CPU, так и GPU), чем статистические модели предыдущих поколений. При этом пользователи далеко не всегда дочитывают страницы до конца, поэтому отправка всего текста веб-страниц в облако выглядит излишней. Чтобы сэкономить серверные ресурсы и пользовательский трафик мы научили Переводчик использовать