Машинный перевод яндекса доклад

Обновлено: 15.08.2022

В сентябре прошёл шестой Гипербатон — конференция Яндекса обо всём, что связано с технической документацией. Мы опубликуем несколько лекций с Гипербатона, которые, на наш взгляд, могут быть наиболее интересны читателям Хабра.

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

Начнем с доклада наших коллег. Приглашаю Ирину Рыбникову и Анастасию Пономарёву — они расскажут об опыте Яндекса по внедрению машинного перевода в наши процессы локализации.

Ирина Рыбникова:
— Спасибо. Мы расскажем про историю машинного перевода и про то, как мы используем его в Яндексе.

Еще в XVII веке ученые размышляли о существовании какого-то языка, который связывает между собой другие языки, и наверное, это слишком давно. Давайте поближе вернемся. Все мы хотим понимать людей вокруг — неважно, куда мы приехали, — мы хотим видеть, что написано на вывесках, мы хотим читать объявления, информацию о концертах. Идея вавилонской рыбки бороздит умы ученых, встречается в литературе, кинематографе — везде. Мы хотим сократить то время, за которое мы получаем доступ к информации. Мы хотим читать статьи о китайских технологиях, понимать любые сайты, которые мы видим, и хотим это получать здесь и сейчас.


В разрезе этого невозможно не говорить про машинный перевод. Это то, что помогает решать указанную задачу.


Отправной точкой считается 1954 год, когда в США на машине IBM 701 было переведено 60 предложений по общей тематике органической химии с русского на английский, и в основе всего этого лежало 250 терминов глоссария и шесть грамматических правил. Это называлось Джорджтаунским экспериментом, и это настолько потрясло реальность, что газеты пестрили заголовками, что еще три-пять лет, и проблема будет полностью решена, все будут счастливы. Но как вы знаете, все пошло немного по-другому.

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


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


Если говорить про качество, классический пример — цитата из Библии, которая переводилась тогда так. Пока недостаточно. Поэтому люди продолжали дальше работать над качеством. В 90-е годы возникла статистическая модель перевода, SMT, которая говорила о вероятностном распределении слов, предложений, и эта система принципиально отличалась тем, что она вообще ничего не знала про правила и про лингвистику. Она получала на вход огромное количество идентичных текстов, парных на одном языке и другом, и дальше сама принимала решения. Это было легко поддерживать, не нужны были кучи экспертов, не требовалось ждать. Можно было загружать и получать результат.


Требования к входящим данным были достаточно средние, от 1 до 10 млн сегментов. Сегменты — предложения, небольшие фразы. Но оставались свои трудности и не учитывался контекст, все было не очень легко. И в России, например, появились такие случаи.


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

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


Какие особенности этого метода? Не требуется образец перевода, мы смотрим на готовый переведенный текст сейчас и оцениваем объективно по любому разрезу. Но это дорого и долго.


Есть второй подход — автоматические референсные метрики. Их много, у каждой есть плюсы и минусы. Не буду углубляться, про эти ключевые слова потом можно почитать детальнее.

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


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


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

Хотелось бы рассказать, как мы в работе используем машинный перевод. Передаю слово Анастасии.

Анастасия Пономарёва:
— Мы в Яндексе в отделе локализации поняли достаточно быстро, что возможности у технологии машинного перевода большие, и решили попробовать использовать его в наших ежедневных задачах. С чего мы начали? Мы решили провести небольшой эксперимент. Мы решили перевести одни и те же тексты через обычный нейросетевой переводчик, а также собрать обученный машинный переводчик. Для этого мы подготовили корпуса текстов в паре русский-английский за те годы, что мы в Яндексе занимались локализацией текстов на эти языки. Далее мы пришли с этим корпусом текстов к нашим коллегам из Яндекс.Переводчика и попросили обучить движок.


Чтобы подкрепить эти ощущения, мы решили посчитать уже статистические показатели. Сначала мы посчитали коэффициент BLEU для переводов, сделанных через обычный нейросетевой движок, и получили такую цифру (0,34). Казалось бы, ее надо с чем-то сравнить. Мы снова пошли к коллегам из Яндекс.Переводчика и попросили объяснить, какой коэффициент BLEU считается пороговым для переводов, сделанных реальным человеком. Это от 0,6.

Потом мы решили проверить, какие результаты на обученных переводах. Получили 0,5. Результаты действительно обнадеживающие.


Привожу пример. Это реальная русская фраза из документации Директа. Потом она была переведена через обычный нейросетевой движок, а потом через обученный нейросетевой движок на наших текстах. Уже в первой же строчке мы замечаем, что традиционный для Директа, вид рекламы, не распознан. А уже в обученном нейросетевом движке появляется наш перевод, и даже аббревиатура практически верная.

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


Про каждую расскажу подробнее.


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


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

Мы проводили эксперимент, переводя плейлисты музыки, и получили такой пример.


Вот что думает машинный переводчик про звездных фабриканток. Что это ударники труда.


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


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


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


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


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


И еще одна, уже не такая значительная проблема — устаревшее написание.


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


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

Я покажу реальные варианты использования. У нас хорошо идет машинный перевод для технической документации. Это реальный кейс.


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


Переводчик оценил выбор is вместо тире, что тут поменялась структура фразы на английскую, адекватный выбор термина, которая является верным, и слово you, которого нет в оригинале, но он делает этот перевод именно английским, естественным.



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

Ирина:
— Для всех становится очевидным, что пользоваться этим надо, это уже является нашей реальностью, и исключать это из своих процессов и интересов нельзя. Но нужно подумать о нескольких вещах.


Определитесь с тем типов документов, контекста, с которым вы работаете. Подходит ли эта технология конкретно для вас?

Второй момент. Мы разговаривали про Яндекс.Переводчик, потому что мы в хороших отношениях, у нас прямой доступ к разработчикам и так далее, но по факту вам нужно определиться — какой из движков будет наиболее оптимальным для вас конкретно, для вашего языка, вашей тематики. Этой теме будет посвящен следующий доклад. Будьте готовы, что пока еще есть трудности, разработчики движков все вместе работают над решением трудностей, но пока они еще встречаются.


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

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

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


В самом начале своего выступления докладчик сообщил, что где-то в 2008 году он уже докладывал на конференции о запуске сервиса исправления опечаток поисковой системой Яндекс. Это уже стало определенного рода традицией, что выпуская какой-то сервис, команда Яндекса докладывает на конференции о его запуске.

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

Яндексу только оставалось решить, что и как начать переводить. Выбор, как переводить - очень простой, либо с использованием синтаксических правил, либо статистического машинного перевода. Яндекс сделал свой выбор в пользу статистического машинного перевода.

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

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

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

Далее Алексей наглядно продемонстрировал слушателям трудности перевода на примере разбора нескольких предложений.


Алексей высказал благодарность ученым, которые за последние 20 лет осуществили большой прорыв в области машинного перевода, разработав практически цельные, математические модели дословного и фразового перевода. Фактически, Яндексу оставалось только сесть и сделать. В компании есть такая группа, которая занимается машинным переводом уже лет восемь. Это направление очень активно развивается, проводятся семинары, конференции и так далее, но далеко не все так просто.

Основными тезисами в машинном переводе является вероятностная модель и попытка всеми возможными способами разбить задачу на ряд мелких и уже более решаемых задач. Есть задача – английское предложение. Нужно найти его наиболее вероятный русский перевод. Решение обычно классическое. Используется модель канала, - мы получаем вместо одной вероятности перевода английского предложения в русское уже две вероятности. Одна, грубо говоря, условная модель перевода и другая – известная модель языка. То есть, задача разбита уже на две.

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

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

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


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

По словам докладчика, дизайн машинного перевода довольно прост. Нужно собрать модель перевода и обучить ее. Иными словами, нужна модель языка и нужна программа, которая будет с этими двумя моделями работать, считать для каждого предложения вероятности перевода. На таблице с моделями языка видно, что чем длиннее цепочка, тем меньше вероятность. Есть метрики специальной оценки качества языковой модели.

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

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

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

После демонстрации принципов работы программы перевода, Алексей перешел к построению моделей. Модель перевода должна быть представлена в виде таблицы, и таблица эта должна быть как можно больше. Там должны быть все фразы, какие есть в языке.

Где вообще можно взять все эти материалы? Можно из книжек, сайтов. Яндекс – крупнейший поисковик, проиндексировавший много документов, естественно и вполне логично было решить, что если начать разбирать все документы в индексе, то можно найти достаточное количество документов, из которых можно вытянуть модель перевода.

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


Модель выравнивания по словам, а надо начинать именно с нее, потому что если ее не существует, то незачем документы по web искать. Модели эти были разработаны почти двадцать лет назад компанией IBM. Алексей привел формулу только первой модели самого простого дословного сравнения. Потому что все последующие прибавляют сложности в эти формулы. Формула достаточна понятна. Вероятность перевода предложения с одного языка на другой выражается таким-то произведением сумм вероятностей, и делится это все на длину такого предложения, на длину русского предложения, которое в переводе должно получиться. Такие формулы используются в лексическом дословном выравнивании.

К примеру, есть три предложения английских и три соответствующих им предложения на русском языке. Всего четыре слова в предложении. Необходимо найти какой-то способ, который сопоставил бы английское слово с русским. Такие задачи обычно решаются интерактивным методом, поскольку тут есть скрытые переменные. Здесь используется метод, который называется exception optimization. Работает он очень устойчиво, надежно. Модели оптимизируются, условно равномерным распределением, чтобы слово перевелось на другое. Дальше происходит расчет весов. Расчет производится до тех пор, пока качество не устраивает. Буквально вот эта комбинация сходится на шестидесятой операции, и мы получаем точный перевод. Вот, собственно, так и была обучена первая модель для машинного перевода. Теперь только надо понимать, что в предложениях будет не три слова и не четыре, а в миллионы раз больше.

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

Подобно механизму выравнивания фраз работает и механизм выравнивания предложений. Эта тема уже давно разрабатывается. И уже много существует подходов, методов. Надо понимать, что есть некие проблемы. Люди, переводя на другой язык, могут разбить предложение на две части, и вот такие предложения приходится выбрасывать, потому что переводчик не знает, что с ними делать. Задача ведь состоит в том, чтобы сопоставить параллельные предложения, которые являются копиями. Тут десять английских предложений выравниваются в десять русских. Просто динамическим программированием проходят по этому пути, и на каждом шаге запоминается значение вероятности. А вставки и ударения отбрасываются.

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

Таким образом и были построены практически все узлы и детали, которые были необходимы для машинного перевода. Не хватает только документа. Здесь и становится актуальным понятие поиска.

Как же нужно искать правильные документы? Первое, что приходит в голову – это искать их на многоязычных сайтах. Они там все компактно лежат, отличаются такими тезисами и замечательно изначально выбраны. Можно посмотреть, что у них структура одинаковая. Работать с ними - одно удовольствие. Документы с разных сайтов бывают, но в целом, это похожие друг на друга страницы.

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


Алексей Байтин: Что с этим делается? Методом выделения связанных компонент делается искривизация. Вот этот словарь просто оптимизируется в размеры кластера. То есть мы хотим, чтобы не было каких-то больших кластеров, в которые попала комната вместе с космосом. И просто варьируя минимальным коэффициентом связанности, мы пытаемся лишние слабые звенья разрулить. За счет таких методов нам удается собрать словарь в двенадцать тысяч классов с хорошей полнотой и точностью. Это один из самых интересных промежуточных результатов работы по всему построителю машинного перевода.

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

Задача состоит не в том, чтобы эти два предложения дальше использовать. На этом этапе просто надо зацепиться за документ. Есть вероятность, что остальные предложения будут лучше ему соответствовать. Поэтому главная задача - поймать просто какие-то предложения, которые друг с другом связаны. То есть, сравнить все русские документы со всеми английскими. Если нарисовать матрицу, то она получится очень большой. Очевидно, что эта задача неподъемна, даже при использовании Яндекс ресурса.

Что делается? Используется метод, состоящий из цепочки совпадающих слов, в данном случае - признаков. И в каждом предложении, тексте, эти цепочки признаков объединяются.

Запустив все вышеперечисленное в работу, обойдя весь web, лежащий в архиве поисковика, была получена такая модель перевода: запустив 40 миллионов русских предложений, было получено около 600 миллионов слоев. Теперь, при помощи этих кодеров можно английское предложение свободно перевести в русское. То есть, задача решена.

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

Зал: - Вопрос касается алгоритма. Используете ли вы семантическую связь или используете ли вы синонимию при переводе?

- Нет. Ничего не используем.

Зал: - Какой примерно объем документов должна получить система, чтобы начать нормально переводить?

- У нас был объем от сотен тысяч документов до нескольких миллионов.

Зал: - А вы можете сделать персональный инструмент для переводчика, объединив со словарями, который выдавал бы еще обратную связь?

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

Зал: - Если бы вы могли привлечь колоссальные человеческие ресурсы при русской разметке текста или оценки перевода, это бы сильно помогло?

- Я, честно говоря, не думаю. Может быть, когда-нибудь это и придет. Люди будут улучшать машинный перевод. Можно высадить миллион человек, и они будут совершенствовать перевод, но большие усилия математиков или установка еще одной тысячи машин, скорее всего, не повлияет на результат. У нас сейчас есть аналитики, которые оценивают качество.

Зал: - Я переписываюсь сейчас на немецком и французском языках. Немецкого я совершенно не знаю, и приходится пользоваться подобного рода переводом. Когда пытаешься перевести с одного языка на другой язык фразу, чтобы потом использовать ее в письме, одно слово меняешь в предложении, и уже полпредложения может перевести по-другому. Потому что программа смотрит статистику вот этих кусочков и получается совершенно другая картина. Если бы можно было по-разному заменять исходное предложение, заменять синонимы, применять другие глаголы, но чтобы целый смысл оставался, и я бы видел, что перевод стал лучше после этого изменения, я бы его с большей готовностью перенес в письмо. А сейчас разницы никакой нет, проверять приходиться в Яндексе и Google на чистоту вот этого предложения, говорят ли так.

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

"Эффект Твита": как Twitter влияет на ранжирование. Часть II

Перевод статьи John Doherty "The Tweet Effect: How Twitter Affects Rankings" Часть I Обилие социальных медиа привнесло некоторые изменения в индустрию поисковой оптимизации и.

"Эффект Твита": как Twitter влияет на ранжирование. Часть I

Перевод статьи John Doherty "The Tweet Effect: How Twitter Affects Rankings" Обилие социальных медиа привнесло некоторые изменения в индустрию поисковой оптимизации и он-лайн.

Что говорит тихое поражение Google о его инновационном потенциале

Google+ изнутри — как пользоваться и что напоминает

Интернет облетела весть о долгожданном запуске социальной сети от Google и началась очередная погоня за инвайтами — как и многие другие социальные проекты, проект Google+.

Оптимизация сайта и его продвижение практически всегда идут рука об руку с контекстной и баннерной рекламой

Доклад был представлен Константином Симаковым на второй профессиональной SEO конференции PROOFSEO, состоявшейся в Москве, в Ирис Конгресс Отеле, 8 и 9 апреля 2011 года


В рамках данного исследования был проведён анализ ошибочно переведённых фрагментов машинного перевода на материале отрывка из научно-популярного издания о деменции.Мы выделили массив ошибок, допущенных системами Google Translate и Яндекс.Переводчик, и классифицировали их по трём группам ошибок, связанных с денотативным и жанрово-стилистическим содержанием оригинала, а также с оформлением текста на языке перевода, и постарались объяснить причины их возникновения.

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

Книгоиздание является одним из процессов, подлежащих возможной автоматизации в будущем. На сегодняшний день количество книг, переведённых системами машинного перевода и отредактированных далее человеком слишком мало, чтобы делать выводы об эффективности машинных переводчиков в этой области, однако и разработчики, и представители книжного рынка, и постредакторы машинного перевода позитивно относятся к тому, чтобы делегировать часть переводческих задач автоматизированным системам, тем самым осуществить переквалификацию действующих переводчиков [1, 3, 4, 5, 6].

Мы проанализировали ошибки, допущенные двумя популярными системами машинного перевода. Ошибками в переводе считаются неоправданные переводческие трансформации, нарушение логики изложения на языке перевода и несоблюдение узуса и норм переводящего языка. Для данной работы в качестве основы была выбрана классификация ошибок по Д. М. Бузаджи и соавт. [2]. В ней выделяется четыре крупные группы переводческих ошибок, но поскольку в исследуемом материале не была представлена группа, связанная с нарушениями передачи авторской оценки, было принято решение не учитывать её при демонстрации полученных результатов. Несмотря на тот факт, что в научно-популярной литературе оценочная лексика встречается гораздо чаще, чем в специализированных текстах [2, с. 60], конкретно в анализируемом отрывке изложение материала близится к объективному с нейтральным уровнем экспрессии. Авторы не говорят о себе и не выражают свою позицию по тому или иному вопросу, лишь популяризуют знание. Таким образом, мы ограничились тремя группами переводческих ошибок, а именно:

1) нарушения при передаче денотативного содержания текста;

2) нарушения при передаче стилистических характеристик оригинала;

3) нарушения нормы и узуса ПЯ.

Материалом исследования послужил отрывок из англоязычной научно-популярной книги о деменции [7]: разделы, описывающие деменцию как заболевание, её симптомы и четыре основных вида. Перевод осуществлялся системами Google Translate и Яндекс.Переводчик, которые различаются в своём подходе к данному процессу. Первая система использует нейронный машинный перевод, изредка обращаясь к статистическому подходу; вторая переводит по гибридному типу, выбирая один из вариантов статистического или нейронного перевода для каждого исходного сегмента. Обе системы постоянно обучаются за счёт пополнения учебных корпусов (как правило, это web-тексты) и активного участия пользовательского сообщества в развитии данных систем. Переведённый машинными переводчиками текст подлежал сравнению с опубликованным на русском языке переводом данного произведения [8]. Для удобства сравнения анализируемый текст был разбит на смысловые единства согласно опубликованному переводу. Каждый такой блок, содержащий заголовок, абзац или группу абзацев помещался в поле для исходного текста в интерфейсе машинных переводчиков. Выведенный в поле с переводом текст подлежал дальнейшему количественно-качественному анализу содержащихся в нём ошибок. Текст машинного перевода нами не редактировался.

Всего в переводе от Google Translate было зафиксировано 405 случаев переводческих ошибок (100 %), из которых наибольшую частотность имеет такой вид ошибок, как неточная передача информации: 139 случаев (34.3 %). Далее следуют нарушения при передаче жанрово-стилистических особенностей текста оригинала: 82 случая (20.2 %). Третье место по частотности разделяют калькирование и нарушения узуса ПЯ: по 40 случаев каждого вида (9.9 %). Общее число случаев переводческих ошибок в рамках исследованного материала от Яндекс.Переводчика составило 439 единиц (100 %). Распределение ошибок по частотности аналогично тому, что было у зарубежной системы машинного перевода. Неточная передача информации представлена наиболее часто: 143 случая (32.6 %). Вторыми по частотности являются нарушения при передаче жанрово-стилистических особенностей текста оригинала: 91 случай (20.7 %). Далее следует калькирование: 56 случаев (12.8 %).

Табличное отображение ошибок по видам внутри групп для каждой системы машинного перевода выглядит следующим образом:

Частотность ошибок, допущенных системами машинного перевода Google Translate и Яндекс.Переводчик


N + 1: Дэвид, прежде чем мы начнем разговор о вашей новой системе гибридного перевода, хочу задать общий вопрос. Если говорить о задачах, которые стоят сегодня перед разработчиками машинного перевода вообще, то какую из них вы назвали бы самой сложной?

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

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

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

Память или анализ

Хорошо, тогда давайте перейдем к деталям вашей разрабботки. Обычно машинный перевод строится на основе статистической модели. Однако в последнее время все более популярны становятся нейросети. В чем, по-вашему, состоят преимущества нейросетей перед статистическим подходом к переводу?

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

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


Чтобы объяснить нам, как работает новая гибридная система машинного перевода Яндекса, Дэвид Талбот нарисовал пояснительную схему. На ней видно, как (снизу вверх) исходный текст на английском языке попадает в систему, где его одновременно переводят на русский статистическим методом (SMT — statistical machine translation) и методом, основанным на применении нейросетей (NMT — neural machine translation). После этого классификатор CatBoost оценивает обе версии перевода в соответствии с системой BLEU. В итоге пользователь (User) увидит ту версию, кторая наберет больше очков (BLEU score; на схеме — правая, выполненная нейросетью), а вторая версия (левая, статистическая) будет отвергнута.

В новой версии Яндекс.Переводчика имеется функция, которая позволяет сравнить перевод новой гибридной и статистической версии — так пользователи смогут увидеть, что именно поменялось и насколько стало лучше.

Существуют ли такие аспекты перевода, в которых подход, основанный на использовании нейросетей, проигрывает статистическому?

Память плюс анализ

Как она работает?

Наша гибридная модель просто переключается между двумя подходами. На практике это происходит так. У нас есть две модели — нейронная и статистическая. Переводчик на входе получает текст и пропускает его через обе модели. Затем CatBoost, наш собственный алгоритм машинного обучения, действует как классификатор, выбирая лучший вариант на основании входных данных. Обычно мы ожидаем, что нейронный перевод будет лучше, но иногда он дает неверный результат. Тогда классификатор в режиме реального времени выбирает статистическую модель.

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

То есть классификатор может только выбрать одну из двух моделей?

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

Намерены ли вы связать эти две модели более тесно?

Разработанная нами гибридная модель — довольно простой способ использовать два подхода одновременно. Но существуют и другие.

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

Сейчас два наших метода перевода работают как две независимые системы. В будущем мы надеемся научить их более тесному сотрудничеству.

Как именно CatBoost выбирает лучший вариант перевода?

BLEU (bilingual evaluation understudy) — это алгоритм для оценки качества машинного перевода, который определяет количество слов, совпадающих в переводе системы и эталонном переводе предложения. В качестве коэффициента BLEU Яндекс.Переводчик использует процент совпавших n-грамм (где n ≤ 4).

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

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


Перевод и метафоры

Правда ли, что одна из самых сложных задач для машинного переводчика — это передача выразительных языковых средств, например метафор?

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

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

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

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

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

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

Нет, на грамматике зависимостей. Контекстно-свободные грамматики более популярны в англоязычных лингвистических сообществах, а грамматика зависимостей — в русскоязычных, а также, например, во Франции и Чехии. Такой подход более естественен для описания языков, в которых нет строгого порядка слов в предложении, потому что он помогает обозначить роль отдельных слов, а не их порядок.

Человек плюс машина

Какова вероятность того, что машинный перевод достигнет совершенства и живые переводчики останутся без работы?

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

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

Как вы думаете, машинный перевод будет способствовать сохранению редких языков?

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

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

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

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

И последний вопрос. Известно, что до перехода в Яндекс вы работали в Google. Что повлияло на ваше решение сменить место работы?

У нас потрясающая команда. Алексей Байтин (прошлый руководитель сервиса. — Прим. N+1) собрал уникальную команду профессионалов, каких в мире технологий очень мало. Невозможно отказаться от шанса поработать с такой командой во времена больших изменений в области машинного перевода. К тому же Яндекс — довольно маленькая компания по сравнению с той же Google, и это позволяет ей быть более гибкой. И мне это очень нравится.

Читайте также: