Лого vc.ru

Грязные данные, вымышленные языки и синтаксические особенности

Грязные данные, вымышленные языки и синтаксические особенности

Разработчик из команды машинного перевода «Яндекса» Антон Дворкович о том, какие вызовы стоят перед машинным переводом будущего.

Найти в сети быстрый и бесплатный онлайн-переводчик сегодня проще простого, но мало кто задумывается, что создать такой сервис может себе позволить далеко не каждая компания. Во всем мире таких компаний совсем немного: можно выделить Google, Microsoft, Baidu и российский «Яндекс».

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

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

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

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

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

Как печатать на китайском

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

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

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

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

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

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

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

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

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

«Грязные» данные

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

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

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

Например, недавно мы заметили, что на нашем сервисе фраза «тю-тю» переводилась как «bye-bye». Углубившись в проблему, мы нашли ее причину: всему виной оказались сайты когда-то давно переведенные не очень качественным машинным переводчиком, которые до сих пор индексируются поисковиком.

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

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

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

«Драгоценные» слова

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

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

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

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

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

Такие разные языки

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

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

1) Bize (2) katılsan (3) harika (4) olacaktı → (4) It would be (3) great (2) if you join (1) us.

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

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

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

Отрывок из «Фауста» Тургенева на языке оригинала выглядит так:

А все-таки мне кажется, что, несмотря на весь мой жизненный опыт, есть еще что-то такое на свете, друг Горацио, чего я не испытал, и это «что-то» чуть ли не самое важное. Эх, до чего я дописался! Прощай!

А вот его перевод на немецкий:

Trotz all meiner Lebenserfahrung scheint mir jedoch, Freund Horatio, es gebe noch etwas in der Welt, was ich nicht erfahren, und dieses Etwas möchte vielleicht das Wichtigste sein. Doch wo bin ich hingeraten? Lebe wohl!

По-немецки hingeraten означает буквально «Эх, где я очутился»; То, что речь идет о написании послания, понятно только по контексту.

В английском языке, например, есть сложные выражения вроде «danced into» — что примерно значит «вошёл танцуя». А во французском есть такое явление, как двойное отрицание: «он не придет» — «il ne viendra pas».

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

«Как это будет на папьяменто?»

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

Чтобы решить эту проблему, в «Яндексе» научились применять знания о влиянии языков друг на друга. Например, на трёх Карибских островах (Аруба, Бонэйр и Кюрасао) разговаривают на языке папьяменто, который представляет из себя смесь испанского, португальского и английского языков с приправой из различных африканских и еврейских диалектов, завезённых сюда в период Великих географических открытий.

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

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

Большие ожидания

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

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

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

Присылайте свои колонки о том, как изменится наш мир, на future@vc.ru.

Убейте меня если я когда-либо соскочу с Гугл.транслейта на рукожопый переводчик яндекса

Подскажите, какого года эта картинка?
В начале этого года Гугл выкатил совершенно новую версию переводчика, который ну просто отлично всё переводит:
translate.google.com/#auto/ru/Spicy%20Mussels%20in%20an%20Earthen%20pot.
"Пряные мидии в глиняном горшке."

translate.google.com/#auto/ru/Stir-fried%20Squid%20with%20lime%20Caper%20butter%2C%20%26%20steamed%20rice.
"Жареный кальмар с липовым маслом Caper, и приготовленный на пару рис."

0

Упс. Пропустил "served":
"Пряные мидии служили в глиняном горшке."
Да, здесь косяк. Но не такой ужасный, как на картинке

translate.google.com/#en/ru/Spicy%20Mussels%20served%20in%20a%20Earthen%20pot

"Пряные мидии подают в глиняном горшочке"

Перевод поставьте не "авто", а "en".

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

0

С запятой я знаю, что там ошибка. Но хотелось, чтобы всё было честно

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

0

QA в Яндексе и QA в Гугле - это как взвод и армия.
Новые релизы гуглотранслейта реально намного лучше.

Влад, спасибо за вопрос!
Качество перевода измеряется с помощью сравнения переводов тестовых предложений (их обычно несколько тысяч), сделанных машиной, с эталонными, сделанными профессиональными переводчиками. При этом чаще всего используется автоматическая метрика BLEU (en.wikipedia.org/wiki/BLEU). Для более точной оценки иногда используют ручные метрики Adequacy & Fluency(clck.ru/BBWhi).
Что касается сравнения с Google Translate - тут всё зависит от направления перевода, о котором мы говорим: в каких-то направлениях мы оказываемся хуже, в каких-то лучше; к тому же, это достаточно быстро меняется со временем, так как над качеством постоянно ведётся работа и у Google, и у нас. Но могу сказать, что в целом для большинства направлений, включающих русский язык, большую часть времени мы впереди :)
А пользовательский фидбек хоть и помогает находить и решать локальные проблемы в переводе, но всё же главными факторами для построения качественного машинного переводчика являются скорее объёмы обучающих данных и алгоритмы обучения.

Отличная статья, не важно какой жопорукости у какого поисковика сейчас переводчик :) Все-равно прийдет тот день, когда мы будем запускать себе вавилонскую рыбку в ухо, как в у Дугласа Адамса в "Автостопом по галактике" и будем мгновенно понимать все языки вселенной ))))

0

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

0

Забавно!
Сто раз видел цитаты той публикации, но вообще не пришло в голову, что "Dzmitry Bahdanau" это "Дмитрий Богданов", тем более бывший стажер Яндекса.

0

Просто вы не беларус.

Он этим летом был стажером в брейне в mtv

0

Вы упомянули именно MateCat. Интересно почему. Я решил что это что-то стоящее. К сожалению сразу наткнулся на пару багов и оставил попытки что-то сделать. Кто может посоветовать хороший онлайн CAT? Желательно чтобы markdown понимал.

0

Антон, а есть ли у Яндекса планы сделать возможность тренировки кастомных нейронных движков МТ на собственных корпусах?

0

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

0

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

Прямой эфир
Нейронная сеть научилась читать стихи
голосом Пастернака и смотреть в окно на осень
Подписаться на push-уведомления