Каждый день
сайт и
приложение Яндекс.Переводчик помогают миллионам людей разобраться с чем-нибудь по учёбе, сделать покупку на иностранном сайте, понять, что написано на табличке в незнакомом городе или о чём поют в их любимых песнях. Полностью устранить языковой барьер Переводчик пока не может (хотя в перспективе мы хотим добиться именно этого), но уже сейчас сильно помогает через него перешагнуть. Он умеет переводить почти с сотни языков, включая те, на которых говорят малые народы и даже эльфы. Как он это делает?
Есть много способов обучить машину переводить с одного языка на другой. Например, можно дать ей словари и грамматики разных языков: с их помощью она освоит правила. Или можно показать ей много параллельных текстов — то есть таких, в которых одно и то же написано на разных языках. Сравнивая их, машина научится находить соответствия — например, поймёт, что слова dog и собака являются вероятными переводами друг друга. В основе такого подхода лежат не правила, а статистика, поэтому он называется статистическим.
Именно такая система работала в Яндекс.Переводчике с момента его запуска в 2011 году. Через шесть лет у неё появился напарник — нейронная сеть. Она тоже обучается на огромном массиве текстов, но перевод в ней устроен немного по-другому. В чём-то нейросетевая модель сильнее статистической, в других аспектах — уступает ей. Работая вместе, они компенсируют недостатки друг друга.
Статистический перевод
Статистическая модель разделяет предложение, которое нужно перевести, на отдельные слова и фразы, перебирает все варианты перевода для каждого фрагмента и взвешивает вероятность каждого из них. Делает он это исходя из того, как часто встречался тот или иной вариант перевода в текстах, на которых она училась. Например, spring — с большей вероятностью весна, чем пружина. Статистическая модель помнит и о том, вместе с какими словами обычно встречается слово: если рядом со spring стоит прилагательное early, то речь, должно быть, о весне; если metal — скорее, о пружине. Руководствуясь этой логикой, модель составляет несколько вариантов переводов всего предложения целиком и выбирает из них тот, в котором содержатся фрагменты с наибольшим вероятностным весом и фрагменты которого сочетаются лучше всего.
У статистического переводчика есть как достоинства, так и недостатки. С одной стороны, он хорошо запоминает редкие и сложные слова и фразы. Если они встречались в параллельных текстах, переводчик запомнит их и впредь будет переводить правильно. С другой стороны, результат перевода бывает похож на собранный пазл: общая картина вроде бы понятна, но если присмотреться, то видно, что она составлена из отдельных кусочков.
Нейросетевой перевод
Модели на нейронных сетях отлично справляются с обработкой естественной информации, например голоса или картинок. Задача перевода — превратить текст на одном языке в текст на другом языке, сохранив содержание и смысл. Текст — это тоже естественная информация, поэтому для нейронной сети такая задача вполне по силам.
Как и статистический переводчик, нейронная сеть анализирует массив параллельных текстов и учится находить в них закономерности. Но при переводе нейросеть работает не со словами и фразами, а с более крупными единицами — предложениями. Она получает на вход предложение на одном языке, а на выходе выдаёт предложение на другом языке. Дробления на слова и фразы не происходит — в нём нет необходимости.
Такой подход позволяет учесть смысловые связи внутри предложения — иными словами, понять его контекст. Слова и фразы не существуют в вакууме — они сочетаются с другими словами и фразами, образуя новые смыслы. Нейросеть улавливает смыслы даже в случае, если слова, которые их передают, находятся в разных частях предложения. Важность контекста сложно переоценить — именно на него в первую очередь обращают внимание люди-переводчики.

Поскольку нейросеть работает не с фрагментами, а с предложениями целиком, перевод получается более связным и «гладким». Чтобы избежать несогласований — например, папа пошла или сильный боль, — Яндекс.Переводчик проводит дополнительную проверку. Предложение, переведённое нейросетью, проходит через модель языка. Если в перевод вкрались грамматические ошибки, модель их исправит.
Гибридная система
У нейросетевого перевода тоже есть свои недостатки. Если по каким-то причинам нейронной сети трудно перевести то или иное предложение — а такое время от времени случается, — она поведёт себя примерно как студент на экзамене: начнёт что-то выдумывать от себя в надежде угадать правильный ответ.
Кроме того, нейросеть не всегда хорошо справляется с переводом мало распространённых имён, топонимов и других редких слов. Зато для статистического перевода, как вы помните, это нетрудная задача — если слово было в параллельных текстах, машина его запомнит. Поэтому в Яндекс.Переводчике используется гибридная система, которая объединяет статистический и нейросетевой перевод.
Текст, который вводит человек, обрабатывают обе системы — и нейронная сеть, и статистический переводчик. Затем алгоритм, основанный на методе обучения
CatBoost, оценивает, какой перевод лучше. При выставлении оценки учитываются десятки факторов — от длины предложения (короткие фразы лучше переводит статистическая модель) до синтаксиса. Перевод, признанный лучшим, показывается пользователю.
Сейчас гибридная система используется только для самого популярного направления перевода — с английского на русский, на него приходится около 80% запросов пользователей. В дальнейшем она включится и для других направлений — пока на них работает статистическая модель.
Владельцы сайтов и приложений могут добавить в свои продукты статистический перевод Яндекса с помощью API.