Контакты

Нейросеть захватила переводчик яндекса. Яндекс запустил новую версию переводчика Проблемы использования NMT для бизнеса

14.09.2017, Чт, 14:19, Мск , Текст: Валерия Шмырова

В сервисе «Яндекс.Переводчик» помимо статистического перевода стал доступен вариант перевода от нейросети. Ее преимущество в том, что она работает с целыми предложениями, лучше учитывает контекст и выдает согласованный, естественный текст. Однако когда нейросеть чего-то не понимает, она начинает фантазировать.

Запуск нейросети

Сервис «Яндекс.Переводчик» запустил нейронную сеть, которая поможет повысить качество перевода. Ранее перевод с одного языка на другой осуществлялся с помощью статистического механизма. Теперь процесс будет гибридным: свой вариант перевода будет предлагать и статистическая модель, и нейросеть. После этого алгоритм CatBoost, в основе которого лежит машинное обучение, будет выбирать лучший из полученных результатов.

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

Отличия от статистического переводчика

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

Перевод нейросети напоминает перевод человека

К особенностям нейросети относится склонность «фантазировать», когда ей что-то не понятно. Таким образом она пытается угадать правильный перевод.

У статистического переводчика есть свои преимущества: он удачнее переводит редкие слова и выражения - мало распространенные имена, топонимы и т. д. Кроме того, он не фантазирует в том случае, если смысл предложения не ясен. По словам разработчиков, статистическая модель лучше справляется с короткими фразами.

Другие механизмы

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

В затруднительных случаях нейросеть склонна фантазировать

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

Что такое «Яндекс.Переводчик»

«Яндекс.Переводчик - сервис по переводу текстов с одного языка на другой от компании «Яндекс», начавший работу в 2011 г. Изначально он работал только с русским, украинским и английским языком.

За время существования сервиса количество языков увеличилось до 94 языка. Среди них присутствуют и экзотические, такие как коса или папьяменто. Перевод можно выполнить между любыми двумя языками.

В 2016 г. в «Яндекс.Переводчик» был добавлен вымышленный и искусственно созданный язык, на котором общаются эльфы в книгах Дж. Р. Р. Толкина.

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

Алгоритмы анализируют расположение текста на странице, оформление и тип записи; сравнивают заголовки и содержимое. На основе такого анализа удается создавать более точные и читаемые переводы. Как сообщили в «Яндексе», искусственный интеллект сравнивает речевые обороты, лексику и другие особенности заголовков в разных языках и затем самостоятельно формирует правила, которые помогают распознать заголовок на странице и правильно его перевести. Также нейросеть различает слова в тексте и слова в пунктах меню или навигационных элементах.

Например, если раньше текст:

«Game of Thrones prequel announced
Book author George RR Martin co-created the as-yet-untitled show, one of five potential spinoffs»

браузер переводил в такие фразы:

«Игра престолов приквел объявил
Книгу автора Джорджа Мартина совместно создали пока безымянного шоу, одна из пяти возможных продолжениях»

то теперь перевод будет звучать так:

«Анонсирован приквел Game of Thrones
Автор книги Джордж РР Мартин выступил соавтором пока еще не названного шоу, одного из пяти потенциальных спиноффов»

Кроме того, перевод стал не только более точным, но и быстрым - теперь переводится не вся страница целиком, а только та часть, которую видит пользователь. Новые алгоритмы перевода в «Яндекс.Браузере» уже доступны в браузере для ПК и для Android-устройств. Версия для гаджетов под управлением операционной системы iOS появится в ближайшее время.

Проиндексированные поисковиками веб-сайты насчитывают более полу-миллиарда копий, а общее количество веб-страниц в десятки тысяч раз больше. Русскоязычный контент занимает 6% всего интернета.

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

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

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

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

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

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

Нейросетевой переводчик

Иностранный контент оформляется весьма специфично:

  • первые буквы слов в заголовках пишутся заглавными;
  • предложения строятся с упрощенной грамматикой, некоторые слова опускаются.

Навигационные меню на сайтах анализируются с учётом их расположения, например слово Back, правильно переводить назад (вернуться назад), а не спина.

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

Итоги применяемого перевода

Качество перевода можно измерить алгоритмом BLEU*, который сравнивает машинный и перевод от профессиональна. Шкала качества от 0 до 100%.

Чем лучше нейронный перевод, тем выше процент. Согласно этому алгоритму Яндекс браузер стал переводить в 1,7 раза лучше.

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

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

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

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

Подробнее о работе новой версии Яндекс.Переводчика вы можете прочитать в нашем с руководителем сервиса - британским компьютерным лингвистом Дэвидом Талботом.

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


Примеры перевода разных моделей, используемых в новой версии Яндекс.Переводчика

В современном интернете более 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), чем статистические модели предыдущих поколений. При этом пользователи далеко не всегда дочитывают страницы до конца, поэтому отправка всего текста веб-страниц в облако выглядит излишней. Чтобы сэкономить серверные ресурсы и пользовательский трафик мы научили Переводчик использовать

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