В современном Интернете более 630 миллионов сайтов, но только 6% из них содержат русскоязычный контент. Языковой барьер является основной проблемой распространения знаний между пользователями сети, и мы считаем, что ее необходимо решать не только путем обучения иностранным языкам, но и с помощью автоматического машинного перевода в браузере.
Сегодня мы расскажем читателям Хабра о двух важных технологических изменениях в переводчике Яндекс Браузера.
Во-первых, при переводе выделенных слов и фраз теперь используется гибридная модель, и мы напомним, чем этот подход отличается от использования чисто нейронных сетей.
Во-вторых, нейросети переводчика теперь учитывают структуру веб-страниц, об особенностях которой мы также поговорим под катом.
Гибридный переводчик слов и фраз
Первые системы машинного перевода были основаны на словари и правила (по сути, рукописные обычные символы), что и определило качество перевода.Профессиональные лингвисты годами работали над разработкой все более подробных ручных правил.
Эта работа была настолько трудоемкой, что серьезное внимание уделялось только самым популярным парам языков, но даже внутри них машины справлялись плохо.
Живой язык — очень сложная система, плохо подчиняющаяся правилам.
Еще сложнее описать правила соответствия между двумя языками.
Единственный способ для машины постоянно адаптироваться к меняющимся условиям — это самостоятельно учиться на большом количестве параллельных текстов (одинаковых по смыслу, но написанных на разных языках).
Это статистический подход к машинному переводу.
Компьютер сравнивает параллельные тексты и самостоятельно выявляет закономерности.
ты статистический переводчик есть как преимущества, так и недостатки.
С одной стороны, он хорошо запоминает редкие и сложные слова и фразы.
Если они были найдены в параллельных текстах, переводчик запомнит их и продолжит правильно переводить.
С другой стороны, результат перевода может напоминать собранный пазл: общая картина кажется ясной, но если присмотреться, то можно увидеть, что она состоит из отдельных частей.
Причина в том, что переводчик представляет отдельные слова как идентификаторы, которые никоим образом не отражают связь между ними.
Это несовместимо с тем, как люди воспринимают язык, где слова определяются тем, как они используются, как они соотносятся с другими словами и отличаются от них.
Помогает решить эту проблему нейронные сети .
Встраивание слов, используемое в нейронном машинном переводе, обычно связывает каждое слово с вектором длиной в несколько сотен чисел.
Векторы, в отличие от простых идентификаторов при статистическом подходе, формируются при обучении нейронной сети и учитывают связи между словами.
Например, модель может признать, что, поскольку «чай» и «кофе» часто встречаются в схожих контекстах, оба этих слова должны быть возможны в контексте нового слова «разлив», в котором, скажем, только одно из них появилось в данные обучения.
Однако процесс изучения векторных представлений явно более трудоемкий, чем механическое запоминание примеров.
Кроме того, неясно, что делать с теми редкими входными словами, которые встречаются недостаточно часто, чтобы сеть могла построить для них приемлемое векторное представление.
В данной ситуации логично объединить оба метода.
С прошлого года Яндекс.
Переводчик использует гибридная модель .
Когда Переводчик получает текст от пользователя, он передает его на перевод обеим системам — нейронной сети и статистическому переводчику.
Тогда алгоритм, основанный на методе обучения CatBoost , оценивает, какой перевод лучше.
При присвоении рейтинга учитываются десятки факторов — от длины предложения (короткие фразы лучше переводятся статистической моделью) до синтаксиса.
Пользователю показывается перевод, признанный лучшим.
Именно гибридная модель сейчас используется в Яндекс.
Браузере, когда пользователь выбирает на странице для перевода определенные слова и фразы.
Этот режим особенно удобен для тех, кто вообще владеет иностранным языком и хотел бы переводить только незнакомые слова.
Но если, например, вместо привычного английского вам встретится китайский, то без постраничного переводчика обойтись будет сложно.
Казалось бы, разница только в объёме переводимого текста, но не всё так просто.
Нейросетевой переводчик веб-страниц
С момента Джорджтаунский эксперимент и почти по сей день все системы машинного перевода обучены переводить каждое предложение исходного текста отдельно.А веб-страница — это не просто набор предложений, а структурированный текст, содержащий принципиально разные элементы.
Давайте посмотрим на основные элементы большинства страниц.
Заголовок .
Обычно яркий и крупный текст, который мы видим сразу при входе на страницу.
Заголовок часто содержит суть новости, поэтому важно правильно его перевести.
Но сделать это сложно, так как в заголовке недостаточно текста и не понимая контекста можно допустить ошибку.
В случае с английским все еще сложнее, потому что англоязычные названия часто содержат фразы с нетрадиционной грамматикой, инфинитивы или даже отсутствующие глаголы.
Например, Анонсирован приквел «Игры престолов» .
Навигация .
Слова и фразы, которые помогают нам ориентироваться на сайте.
Например, Дом , Назад И Мой счет Вряд ли стоит переводить как «Домой», «Назад» и «Мой аккаунт», если они расположены в меню сайта, а не в тексте публикации.
Основной текст .
С ним все проще; он мало чем отличается от обычных текстов и предложений, которые мы можем найти в книгах.
Но даже здесь важно обеспечить последовательность перевода, то есть обеспечить, чтобы в пределах одной и той же веб-страницы одни и те же термины и понятия переводились одинаково.
Для качественного перевода веб-страниц недостаточно использовать нейросетевую или гибридную модель — необходимо также учитывать структуру страниц.
И для этого нам пришлось столкнуться со многими технологическими трудностями.
Классификация текстовых сегментов .
Для этого мы снова используем CatBoost и факторы, основанные как на самом тексте, так и на HTML-разметке документов (тег, размер текста, количество ссылок на единицу текста,.
).
Факторы достаточно неоднородны, поэтому CatBoost (основанный на градиентном бустинге) показывает лучшие результаты (точность классификации выше 95%).
Но одной классификации сегментов недостаточно.
Искаженные данные .
Традиционно алгоритмы Яндекс.
Переводчика обучаются на текстах из Интернета.
Казалось бы, это идеальное решение для обучения переводчика веб-страниц (иными словами, сеть учится на текстах той же природы, что и тексты, на которых мы собираемся ее использовать).
Но как только мы научились отделять разные сегменты друг от друга, мы обнаружили интересную особенность.
В среднем на веб-сайтах контент занимает примерно 85% всего текста, а на заголовки и навигацию приходится лишь 7,5%.
Помните также, что сами заголовки и элементы навигации заметно отличаются по стилю и грамматике от остального текста.
Эти два фактора вместе приводят к проблеме искажения данных.
Нейронной сети выгоднее просто игнорировать особенности этих сегментов, которые очень плохо представлены в обучающей выборке.
Сеть учится хорошо переводить только основной текст, из-за чего страдает качество перевода заголовков и навигации.
Чтобы нейтрализовать этот неприятный эффект, мы сделали две вещи: каждой паре параллельных предложений присвоили в качестве метаинформации один из трех типов сегментов (содержание, заголовок или навигация) и искусственно увеличили концентрацию последних двух в обучающем корпусе до 33. % из-за того, что стали чаще показывать подобные примеры обучающейся нейросети.
Многозадачное обучение .
Поскольку теперь мы можем разделить текст на веб-страницах на три класса сегментов, может показаться естественной идея обучить три отдельные модели, каждая из которых будет обрабатывать перевод различного типа текста — заголовков, навигации или контента.
Это действительно хорошо работает, но еще лучше работает схема, в которой мы обучаем одну нейросеть переводить все типы текстов сразу.
Ключ к пониманию лежит в идее многозадачное обучение (MTL): Если между несколькими задачами машинного обучения существует внутренняя связь, то модель, которая учится решать эти задачи одновременно, может научиться решать каждую из задач лучше, чем узкоспециализированная модель! Тонкая настройка .
У нас уже был достаточно хороший машинный перевод, поэтому обучать нового переводчика для Яндекс.
Браузера с нуля было бы неразумно.
Разумнее взять базовую систему перевода обычных текстов и обучить ее работе с веб-страницами.
В контексте нейронных сетей это часто называют тонкой настройкой.
Но если подойти к этой проблеме в лоб, т.е.
просто инициализировать веса нейронной сети значениями из готовой модели и начать обучение на новых данных, то можно столкнуться с эффектом сдвига предметной области: по мере обучения качество переводов веб-страниц (внутридоменных) увеличится, но качество перевода обычных (внедоменных) текстов упадет. Чтобы избавиться от этой неприятной особенности, во время дополнительного обучения мы накладываем на нейронную сеть дополнительное ограничение, запрещающее ей слишком сильно менять веса по сравнению с исходным состоянием.
Это выражается математически добавлением члена к функции потерь, который равен Расстояние Кульбака – Лейблера (KL-дивергенция) между распределениями вероятностей генерации очередного слова, выдаваемыми исходной и дополнительной обучающими сетями.
Как видно на иллюстрации, это приводит к тому, что повышение качества перевода веб-страниц больше не приводит к ухудшению перевода обычного текста.
Полировка частотных фраз из навигации .
Работая над новым переводчиком, мы собрали статистику по текстам различных сегментов веб-страниц и увидели кое-что интересное.
Тексты, относящиеся к элементам навигации, достаточно сильно стандартизированы, поэтому зачастую состоят из одних и тех же шаблонных фраз.
Это настолько мощный эффект, что более половины всех навигационных фраз, встречающихся в Интернете, приходится всего на 2 тысячи самых частых.
Мы, конечно, этим воспользовались и отдали на проверку нашим переводчикам несколько тысяч самых распространенных фраз и их переводов, чтобы быть абсолютно уверенными в их качестве.
Внешние выравнивания.
Было еще одно важное требование к переводчику веб-страниц в Браузере — он не должен искажать разметку.
Когда HTML-теги размещаются за пределами или на границах предложения, проблем не возникает. Но если внутри предложения есть, например, два подчеркнутых слова , то в переводе мы хотим видеть «два подчеркнутых слова».
Те.
В результате перевода должны быть соблюдены два условия:
- Подчеркнутый фрагмент в переводе должен точно соответствовать подчеркнутому фрагменту в исходном тексте.
- Последовательность перевода на границах подчеркнутого фрагмента не должна нарушаться.
Это помогает понять, что именно необходимо подчеркнуть (курсивом, в формате гиперссылки,.
).
Наблюдатель пересечения .
Мощные модели трансляции нейронных сетей, которые мы обучили, требуют значительно больше вычислительных ресурсов на наших серверах (как ЦП, так и графических процессоров), чем предыдущие поколения статистических моделей.
При этом пользователи не всегда дочитывают страницы до конца, поэтому отправка всего текста веб-страниц в облако кажется ненужной.
Для экономии ресурсов сервера и пользовательского трафика мы научили Переводчик использовать API наблюдателя за пересечением отправлять на перевод только тот текст, который отображается на экране.
Благодаря этому нам удалось снизить расход трафика на перевод более чем в 3 раза.
Несколько слов о результатах реализации нейросетевого переводчика с учетом структуры веб-страниц в Яндекс Браузере.
Для оценки качества переводов мы используем метрику BLEU*, которая сравнивает переводы, выполненные машинным и профессиональным переводчиком, и оценивает качество машинного перевода по шкале от 0 до 100%.
Чем ближе машинный перевод к человеческому переводу, тем выше процент. Обычно пользователи замечают изменение качества, когда показатель BLEU увеличивается как минимум на 3%.
Новый переводчик Яндекс.
Браузера показал прирост почти на 18%.
Машинный перевод — одна из самых сложных, горячих и исследованных проблем в области технологий искусственного интеллекта.
Это связано как с ее чисто математической привлекательностью, так и с ее актуальностью в современном мире, где каждую секунду в Интернете создается невероятное количество контента на самых разных языках.
Машинный перевод, который до недавнего времени вызывал в основном смех (помните пастухи мышей ), сегодня помогает пользователям преодолевать языковые барьеры.
До идеального качества еще далеко, поэтому мы продолжим двигаться в авангарде технологий в этом направлении, чтобы пользователи Яндекс.
Браузера могли выйти за пределы, например, Рунета и находить полезный контент в любой точке Интернета.
Теги: #Машинное обучение #браузеры #Программное обеспечение #искусственный интеллект #Яндекс #нейронные сети #переводчик #команда Яндекс.
браузера #машинный перевод
-
Распределенная Субд Для Предприятия
19 Oct, 24 -
Робокуб 2010 Завершился
19 Oct, 24 -
Обзор Беспроводных Контроллеров Для Ps3
19 Oct, 24